-

fastlane can be installed in multiple ways. The preferred method is with Bundler. fastlane can also be installed directly through with Homebrew (if on macOS). It is possible to use macOS's system Ruby, but it's not recommended, as it can be hard to manage dependencies, and causes conflicts.

+

fastlane can be installed in multiple ways. The preferred method is with Bundler. fastlane can also be installed directly through Homebrew (if on macOS). It is possible to use macOS's system Ruby, but it's not recommended, as it can be hard to manage dependencies and cause conflicts.

Managed Ruby environment + Bundler (macOS/Linux/Windows)

Ruby

-

If you use macOS, system Ruby is not recommended. There is a variety of ways to install Ruby without having to modify your system environment. For macOS and Linux, rbenv is one of the most popular ways to manage your Ruby environment.

+

If you use macOS, system Ruby is not recommended. There are a variety of ways to install Ruby without having to modify your system environment. For macOS and Linux, rbenv is one of the most popular ways to manage your Ruby environment.

fastlane supports Ruby versions 2.5 or newer. Verify which Ruby version you're using:

$ ruby --version
 ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-darwin19]
diff --git a/index.html b/index.html
index 026f2e310..a43438cda 100644
--- a/index.html
+++ b/index.html
@@ -404,10 +404,10 @@ 

Why fastlane?

Getting Started

Installing fastlane

-

fastlane can be installed in multiple ways. The preferred method is with Bundler. fastlane can also be installed directly through with Homebrew (if on macOS). It is possible to use macOS's system Ruby, but it's not recommended, as it can be hard to manage dependencies, and causes conflicts.

+

fastlane can be installed in multiple ways. The preferred method is with Bundler. fastlane can also be installed directly through Homebrew (if on macOS). It is possible to use macOS's system Ruby, but it's not recommended, as it can be hard to manage dependencies and cause conflicts.

Managed Ruby environment + Bundler (macOS/Linux/Windows)

Ruby

-

If you use macOS, system Ruby is not recommended. There is a variety of ways to install Ruby without having to modify your system environment. For macOS and Linux, rbenv is one of the most popular ways to manage your Ruby environment.

+

If you use macOS, system Ruby is not recommended. There are a variety of ways to install Ruby without having to modify your system environment. For macOS and Linux, rbenv is one of the most popular ways to manage your Ruby environment.

fastlane supports Ruby versions 2.5 or newer. Verify which Ruby version you're using:

$ ruby --version
 ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-darwin19]
@@ -674,5 +674,5 @@ 

Where to go from here?

diff --git a/search/search_index.json b/search/search_index.json index 718cff50e..3dd206d8d 100644 --- a/search/search_index.json +++ b/search/search_index.json @@ -1 +1 @@ -{"config":{"lang":["en"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"fastlane fastlane is the easiest way to automate beta deployments and releases for your iOS and Android apps. \ud83d\ude80 It handles all tedious tasks, like generating screenshots, dealing with code signing, and releasing your application. You can start by creating a Fastfile file in your repository, here\u2019s one that defines your beta or App Store release process: lane :beta do increment_build_number build_app upload_to_testflight end lane :release do capture_screenshots build_app upload_to_app_store # Upload the screenshots and the binary to iTunes slack # Let your team-mates know the new version is live end You just defined 2 different lanes, one for beta deployment, one for App Store. To release your app in the App Store, all you have to do is fastlane release Why fastlane? fastlane \ud83d\ude80 Save hours every time you push a new release to the store or beta testing service \u2728 Integrates with all your existing tools and services (more than 400 integrations) \ud83d\udcd6 100% open source under the MIT license \ud83c\udfa9 Easy setup assistant to get started in a few minutes \u2692 Runs on your machine, it's your app and your data \ud83d\udc7b Integrates with all major CI systems \ud83d\udda5 Supports iOS, Mac, and Android apps \ud83d\udd27 Extend and customise fastlane to fit your needs, you're not dependent on anyone \ud83d\udcad Never remember any commands any more, just fastlane \ud83d\udea2 Deploy from any computer, including a CI server Getting Started Installing fastlane fastlane can be installed in multiple ways. The preferred method is with Bundler . fastlane can also be installed directly through with Homebrew (if on macOS). It is possible to use macOS's system Ruby, but it's not recommended, as it can be hard to manage dependencies, and causes conflicts. Managed Ruby environment + Bundler (macOS/Linux/Windows) Ruby If you use macOS, system Ruby is not recommended. There is a variety of ways to install Ruby without having to modify your system environment . For macOS and Linux, rbenv is one of the most popular ways to manage your Ruby environment. fastlane supports Ruby versions 2.5 or newer. Verify which Ruby version you're using: $ ruby --version ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-darwin19] Bundler It is recommended that you use Bundler and Gemfile to define your dependency on fastlane . This will clearly define the fastlane version to be used and its dependencies, and will also speed up fastlane execution. Install Bundler by running gem install bundler Create a ./Gemfile in the root directory of your project with the content source \"https://rubygems.org\" gem \"fastlane\" Run bundle update and add both the ./Gemfile and the ./Gemfile.lock to version control Every time you run fastlane , use bundle exec fastlane [lane] On your CI, add bundle install as your first build step To update fastlane , just run bundle update fastlane Homebrew (macOS) This way, you don't have to install Ruby separately, and instead homebrew installs the adequate Ruby version for fastlane . See this page for details. brew install fastlane System Ruby + RubyGems (macOS/Linux/Windows) This is not recommended for your local environment, but you can still install fastlane to system Ruby's environment. Using sudo often occurs unwanted results later due to file permission and makes managing your environment harder. sudo gem install fastlane Setting up fastlane Navigate to your iOS or Android app and run fastlane init fastlane will automatically detect your project, and ask for any missing information. For more details about how to get up and running, check out the getting started guides: fastlane Getting Started guide for iOS fastlane Getting Started guide for Android Questions and support Before submitting a new GitHub issue, please make sure to search for existing GitHub issues . If that doesn't help, please submit an issue on GitHub and provide information about your setup, in particular the output of the fastlane env command. System requirements fastlane is officially supported to run on macOS. \ud83d\udc27 Linux and \ud83d\udda5\ufe0f Windows are partially supported. Some underlying software like Xcode are only available on macOS, but many other tools, actions, and the spaceship module can work on other platforms. fastlane team Helmut Januschka Felix Krause J\u00e9r\u00f4me Lacoste Jan Piotrowski Luka Mirosevic Olivier Halligon Jimmy Dee Iulian Onofrei Danielle Tomlinson Aaron Brager Kohki Miki Stefan Natchev Maksym Grebenets Joshua Liebowitz Manu Wallner Fumiya Nakamura Matthew Ellis Josh Holtz Special thanks to all contributors for extending and improving fastlane . Metrics fastlane tracks a few key metrics to understand how developers are using the tool and to help us know what areas need improvement. No personal/sensitive information is ever collected. Metrics that are collected include: The number of fastlane runs A salted hash of the app identifier or package name, which helps us anonymously identify unique usage of fastlane You can easily opt-out of metrics collection by adding opt_out_usage at the top of your Fastfile or by setting the environment variable FASTLANE_OPT_OUT_USAGE . Check out the metrics code on GitHub 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. Where to go from here? fastlane Getting Started guide for iOS fastlane Getting Started guide for Android","title":"Home"},{"location":"#fastlane","text":"fastlane is the easiest way to automate beta deployments and releases for your iOS and Android apps. \ud83d\ude80 It handles all tedious tasks, like generating screenshots, dealing with code signing, and releasing your application. You can start by creating a Fastfile file in your repository, here\u2019s one that defines your beta or App Store release process: lane :beta do increment_build_number build_app upload_to_testflight end lane :release do capture_screenshots build_app upload_to_app_store # Upload the screenshots and the binary to iTunes slack # Let your team-mates know the new version is live end You just defined 2 different lanes, one for beta deployment, one for App Store. To release your app in the App Store, all you have to do is fastlane release","title":"fastlane"},{"location":"#why-fastlane","text":"fastlane \ud83d\ude80 Save hours every time you push a new release to the store or beta testing service \u2728 Integrates with all your existing tools and services (more than 400 integrations) \ud83d\udcd6 100% open source under the MIT license \ud83c\udfa9 Easy setup assistant to get started in a few minutes \u2692 Runs on your machine, it's your app and your data \ud83d\udc7b Integrates with all major CI systems \ud83d\udda5 Supports iOS, Mac, and Android apps \ud83d\udd27 Extend and customise fastlane to fit your needs, you're not dependent on anyone \ud83d\udcad Never remember any commands any more, just fastlane \ud83d\udea2 Deploy from any computer, including a CI server","title":"Why fastlane?"},{"location":"#getting-started","text":"","title":"Getting Started"},{"location":"#questions-and-support","text":"Before submitting a new GitHub issue, please make sure to search for existing GitHub issues . If that doesn't help, please submit an issue on GitHub and provide information about your setup, in particular the output of the fastlane env command.","title":"Questions and support"},{"location":"#system-requirements","text":"fastlane is officially supported to run on macOS. \ud83d\udc27 Linux and \ud83d\udda5\ufe0f Windows are partially supported. Some underlying software like Xcode are only available on macOS, but many other tools, actions, and the spaceship module can work on other platforms.","title":"System requirements"},{"location":"#fastlane-team","text":"","title":"fastlane team"},{"location":"#metrics","text":"fastlane tracks a few key metrics to understand how developers are using the tool and to help us know what areas need improvement. No personal/sensitive information is ever collected. Metrics that are collected include: The number of fastlane runs A salted hash of the app identifier or package name, which helps us anonymously identify unique usage of fastlane You can easily opt-out of metrics collection by adding opt_out_usage at the top of your Fastfile or by setting the environment variable FASTLANE_OPT_OUT_USAGE . Check out the metrics code on GitHub","title":"Metrics"},{"location":"#license","text":"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.","title":"License"},{"location":"actions/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 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 build_mac_app Alias for the build_app action but only for macOS mac spm Runs Swift Package Manager on your project ios, android, mac build_ios_app Alias for the build_app action but only for iOS ios xcclean Cleans the project using xcodebuild ios, mac xcarchive Archives the project using xcodebuild ios, mac build_android_app Alias for the gradle action ios, android xcexport Exports the project using xcodebuild ios, mac build_app Easily build and sign your app (via gym ) ios, mac xcbuild Builds the project using xcodebuild ios, mac xctest Runs tests on the given simulator ios, mac xcodes Make sure a certain version of Xcode is installed, installing it only if needed ios, mac create_xcframework Package multiple build configs of a library/framework into a single xcframework ios, 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 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 capture_android_screenshots Automated localized screenshots of your Android app (via screengrab ) android 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 match_nuke Easily nuke your certificate and provisioning profiles (via match ) ios, mac get_provisioning_profile Generates a provisioning profile, saving it in the current folder (via sigh ) ios, mac sync_code_signing Easily sync your certificates and profiles across your team (via match ) ios, mac notarize Notarizes a macOS app mac get_certificates Create new iOS code signing certificates (via cert ) ios update_code_signing_settings Configures Xcode's Codesigning options ios, mac install_provisioning_profile Install provisioning profile from path 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 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_app_store Upload metadata and binary to App Store Connect (via deliver ) 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_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 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 commit_github_file This will commit a file directly on GitHub via the API 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 backuped 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 \ud83d\ude80 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 google_play_track_version_codes Retrieves version codes for a Google Play track android plugin_scores \u001b[31mNo description provided\u001b[0m ios, android, mac ruby_version Verifies the minimum ruby version required ios, android, mac setup_travis Setup the keychain and match to work with Travis CI ios, android, mac ensure_env_vars Raises an exception if the specified env vars are not set ios, android, mac google_play_track_release_names Retrieves release names for a Google Play track android opt_out_usage This will stop uploading the information which actions were run ios, android, mac environment_variable Sets/gets env vars for Fastlane.swift. Don't use in ruby, use ENV[key] = val ios, android, mac get_managed_play_store_publishing_rights Obtain publishing rights for custom apps on Managed Google Play Store android min_fastlane_version Verifies the minimum fastlane version required ios, android, mac println Alias for the puts action ios, android, mac create_app_on_managed_play_store Create Managed Google Play Apps android validate_play_store_json_key Validate that the Google Play Store json_key works android echo Alias for the puts action ios, android, mac setup_ci Setup the keychain and match to work with CI ios, mac setup_circle_ci Setup the keychain and match to work with CircleCI ios, android, mac ensure_bundle_exec Raises an exception if not using bundle exec to run fastlane ios, android, mac modify_services Modifies the services of the app created on Developer Portal ios 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 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","title":"Available Actions"},{"location":"actions/#fastlane-actions","text":"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","title":"fastlane actions"},{"location":"actions/#testing","text":"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","title":"Testing"},{"location":"actions/#building","text":"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 build_mac_app Alias for the build_app action but only for macOS mac spm Runs Swift Package Manager on your project ios, android, mac build_ios_app Alias for the build_app action but only for iOS ios xcclean Cleans the project using xcodebuild ios, mac xcarchive Archives the project using xcodebuild ios, mac build_android_app Alias for the gradle action ios, android xcexport Exports the project using xcodebuild ios, mac build_app Easily build and sign your app (via gym ) ios, mac xcbuild Builds the project using xcodebuild ios, mac xctest Runs tests on the given simulator ios, mac xcodes Make sure a certain version of Xcode is installed, installing it only if needed ios, mac create_xcframework Package multiple build configs of a library/framework into a single xcframework ios, mac","title":"Building"},{"location":"actions/#screenshots","text":"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 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 capture_android_screenshots Automated localized screenshots of your Android app (via screengrab ) android","title":"Screenshots"},{"location":"actions/#project","text":"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","title":"Project"},{"location":"actions/#code-signing","text":"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 match_nuke Easily nuke your certificate and provisioning profiles (via match ) ios, mac get_provisioning_profile Generates a provisioning profile, saving it in the current folder (via sigh ) ios, mac sync_code_signing Easily sync your certificates and profiles across your team (via match ) ios, mac notarize Notarizes a macOS app mac get_certificates Create new iOS code signing certificates (via cert ) ios update_code_signing_settings Configures Xcode's Codesigning options ios, mac install_provisioning_profile Install provisioning profile from path ios, mac","title":"Code Signing"},{"location":"actions/#documentation","text":"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","title":"Documentation"},{"location":"actions/#beta","text":"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","title":"Beta"},{"location":"actions/#push","text":"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","title":"Push"},{"location":"actions/#releasing-your-app","text":"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 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_app_store Upload metadata and binary to App Store Connect (via deliver ) 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_play_store Upload metadata, screenshots and binaries to Google Play (via supply ) android","title":"Releasing your app"},{"location":"actions/#source-control","text":"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 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 commit_github_file This will commit a file directly on GitHub via the API ios, android, mac","title":"Source Control"},{"location":"actions/#notifications","text":"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","title":"Notifications"},{"location":"actions/#app-store-connect","text":"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","title":"App Store Connect"},{"location":"actions/#misc","text":"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 backuped 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 \ud83d\ude80 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 google_play_track_version_codes Retrieves version codes for a Google Play track android plugin_scores \u001b[31mNo description provided\u001b[0m ios, android, mac ruby_version Verifies the minimum ruby version required ios, android, mac setup_travis Setup the keychain and match to work with Travis CI ios, android, mac ensure_env_vars Raises an exception if the specified env vars are not set ios, android, mac google_play_track_release_names Retrieves release names for a Google Play track android opt_out_usage This will stop uploading the information which actions were run ios, android, mac environment_variable Sets/gets env vars for Fastlane.swift. Don't use in ruby, use ENV[key] = val ios, android, mac get_managed_play_store_publishing_rights Obtain publishing rights for custom apps on Managed Google Play Store android min_fastlane_version Verifies the minimum fastlane version required ios, android, mac println Alias for the puts action ios, android, mac create_app_on_managed_play_store Create Managed Google Play Apps android validate_play_store_json_key Validate that the Google Play Store json_key works android echo Alias for the puts action ios, android, mac setup_ci Setup the keychain and match to work with CI ios, mac setup_circle_ci Setup the keychain and match to work with CircleCI ios, android, mac ensure_bundle_exec Raises an exception if not using bundle exec to run fastlane ios, android, mac modify_services Modifies the services of the app created on Developer Portal ios 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","title":"Misc"},{"location":"actions/#deprecated","text":"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","title":"Deprecated"},{"location":"advanced/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 Advanced fastlane This file is not used any more and its content was moved to subpages. Please follow the links to the content's new location. // Closure-wrapped for security. (function () { var anchorMap = { // templates \"A\": \"/advanced/actions/\", \"B\": \"/advanced/Appfile/\", \"C\": \"/advanced/Fastfile/\", \"D\": \"/advanced/lanes/\", \"E\": \"/advanced/other/\", \"F\": \"/advanced/fastlane/\", // actual anchors \"passing-parameters\": \"/advanced/lanes/\", \"switching-lanes\": \"/advanced/lanes/\", \"output-environment-variables\": \"/advanced/fastlane/\", \"interacting-with-the-user\": \"/advanced/actions/\", \"run-actions-directly\": \"/advanced/actions/\", \"shell-values\": \"/advanced/actions/\", \"priorities-of-parameters-and-options\": \"/advanced/fastlane/\", \"importing-another-fastfile\": \"/advanced/Fastfile/\", \"using-fastlane_require\": \"/advanced/Fastfile/\", \"environment-variables\": \"/advanced/other/\", \"lane-properties\": \"/advanced/lanes/\", \"lane-context\": \"/advanced/lanes/\", \"private-lanes\": \"/advanced/lanes/\", \"load-own-actions-from-external-folder\": \"/advanced/Fastfile/\", \"skip-update-check-when-launching-fastlane\": \"/advanced/fastlane/\", \"hide-changelog-information-at-the-end-of-running-fastlane\": \"/advanced/fastlane/\", \"adding-credentials\": \"/advanced/other/\", \"control-configuration-by-lane-and-by-platform\": \"/advanced/lanes/\", \"manually-manage-the-fastlane-match-repo\": \"/advanced/other/\", \"directory-behavior\": \"/advanced/fastlane/\", \"appfile\": \"/advanced/Appfile/\", \"building-actions\": \"/advanced/actions/\", } /* * Best practice for extracting hashes: * https://stackoverflow.com/a/10076097/151365 */ var hash = window.location.hash.substring(1); if (hash) { /* * Best practice for javascript redirects: * https://stackoverflow.com/a/506004/151365 */ if (anchorMap[hash]) { link = anchorMap[hash] + '#' + hash; window.location.replace(link); } } })(); Passing Parameters This content was moved and now lives here . Switching lanes This content was moved and now lives here . Output environment variables This content was moved and now lives here . Interacting with the user This content was moved and now lives here . Run actions directly This content was moved and now lives here . Shell values This content was moved and now lives here . Priorities of parameters and options This content was moved and now lives here . Importing another Fastfile This content was moved and now lives here . Using fastlane_require This content was moved and now lives here . Environment Variables This content was moved and now lives here . Lane Properties This content was moved and now lives here . Lane Context This content was moved and now lives here . Private Lanes This content was moved and now lives here . Load own actions from external folder This content was moved and now lives here . Skip update check when launching fastlane This content was moved and now lives here . Hide changelog information at the end of running fastlane This content was moved and now lives here . Adding Credentials This content was moved and now lives here . Control configuration by lane and by platform This content was moved and now lives here . Manually Manage the fastlane match Repo This content was moved and now lives here . Directory behavior This content was moved and now lives here . Appfile This content was moved and now lives here . Building Actions This content was moved and now lives here .","title":"Advanced"},{"location":"advanced/#advanced-fastlane","text":"This file is not used any more and its content was moved to subpages. Please follow the links to the content's new location. // Closure-wrapped for security. (function () { var anchorMap = { // templates \"A\": \"/advanced/actions/\", \"B\": \"/advanced/Appfile/\", \"C\": \"/advanced/Fastfile/\", \"D\": \"/advanced/lanes/\", \"E\": \"/advanced/other/\", \"F\": \"/advanced/fastlane/\", // actual anchors \"passing-parameters\": \"/advanced/lanes/\", \"switching-lanes\": \"/advanced/lanes/\", \"output-environment-variables\": \"/advanced/fastlane/\", \"interacting-with-the-user\": \"/advanced/actions/\", \"run-actions-directly\": \"/advanced/actions/\", \"shell-values\": \"/advanced/actions/\", \"priorities-of-parameters-and-options\": \"/advanced/fastlane/\", \"importing-another-fastfile\": \"/advanced/Fastfile/\", \"using-fastlane_require\": \"/advanced/Fastfile/\", \"environment-variables\": \"/advanced/other/\", \"lane-properties\": \"/advanced/lanes/\", \"lane-context\": \"/advanced/lanes/\", \"private-lanes\": \"/advanced/lanes/\", \"load-own-actions-from-external-folder\": \"/advanced/Fastfile/\", \"skip-update-check-when-launching-fastlane\": \"/advanced/fastlane/\", \"hide-changelog-information-at-the-end-of-running-fastlane\": \"/advanced/fastlane/\", \"adding-credentials\": \"/advanced/other/\", \"control-configuration-by-lane-and-by-platform\": \"/advanced/lanes/\", \"manually-manage-the-fastlane-match-repo\": \"/advanced/other/\", \"directory-behavior\": \"/advanced/fastlane/\", \"appfile\": \"/advanced/Appfile/\", \"building-actions\": \"/advanced/actions/\", } /* * Best practice for extracting hashes: * https://stackoverflow.com/a/10076097/151365 */ var hash = window.location.hash.substring(1); if (hash) { /* * Best practice for javascript redirects: * https://stackoverflow.com/a/506004/151365 */ if (anchorMap[hash]) { link = anchorMap[hash] + '#' + hash; window.location.replace(link); } } })();","title":"Advanced fastlane"},{"location":"advanced/#passing-parameters","text":"This content was moved and now lives here .","title":"Passing Parameters"},{"location":"advanced/#switching-lanes","text":"This content was moved and now lives here .","title":"Switching lanes"},{"location":"advanced/#output-environment-variables","text":"This content was moved and now lives here .","title":"Output environment variables"},{"location":"advanced/#interacting-with-the-user","text":"This content was moved and now lives here .","title":"Interacting with the user"},{"location":"advanced/#run-actions-directly","text":"This content was moved and now lives here .","title":"Run actions directly"},{"location":"advanced/#shell-values","text":"This content was moved and now lives here .","title":"Shell values"},{"location":"advanced/#priorities-of-parameters-and-options","text":"This content was moved and now lives here .","title":"Priorities of parameters and options"},{"location":"advanced/#importing-another-fastfile","text":"This content was moved and now lives here .","title":"Importing another Fastfile"},{"location":"advanced/#using-fastlane_require","text":"This content was moved and now lives here .","title":"Using fastlane_require"},{"location":"advanced/#environment-variables","text":"This content was moved and now lives here .","title":"Environment Variables"},{"location":"advanced/#lane-properties","text":"This content was moved and now lives here .","title":"Lane Properties"},{"location":"advanced/#lane-context","text":"This content was moved and now lives here .","title":"Lane Context"},{"location":"advanced/#private-lanes","text":"This content was moved and now lives here .","title":"Private Lanes"},{"location":"advanced/#load-own-actions-from-external-folder","text":"This content was moved and now lives here .","title":"Load own actions from external folder"},{"location":"advanced/#skip-update-check-when-launching-fastlane","text":"This content was moved and now lives here .","title":"Skip update check when launching fastlane"},{"location":"advanced/#hide-changelog-information-at-the-end-of-running-fastlane","text":"This content was moved and now lives here .","title":"Hide changelog information at the end of running fastlane"},{"location":"advanced/#adding-credentials","text":"This content was moved and now lives here .","title":"Adding Credentials"},{"location":"advanced/#control-configuration-by-lane-and-by-platform","text":"This content was moved and now lives here .","title":"Control configuration by lane and by platform"},{"location":"advanced/#manually-manage-the-fastlane-match-repo","text":"This content was moved and now lives here .","title":"Manually Manage the fastlane match Repo"},{"location":"advanced/#directory-behavior","text":"This content was moved and now lives here .","title":"Directory behavior"},{"location":"advanced/#appfile","text":"This content was moved and now lives here .","title":"Appfile"},{"location":"advanced/#building-actions","text":"This content was moved and now lives here .","title":"Building Actions"},{"location":"app-store-connect-api/","text":"App Store Connect API Introduction The App Store Connect API (which Apple announced at WWDC18 and is continuously working on) is an official public API used to manage app metadata, pricing and availability, provisioning, and more. This API follows the JSON API spec and introduces a new authorization option using API Keys to generate a JSON Web Token (JWT) . fastlane has historically used Apple IDs with username and password to authenticate using a cookie-based web session. fastlane will continue using this same cookie-based web session to authenticate with an unofficial version of the App Store Connect API. However, it is recommended to use the API Key authentication when you are able to. The benefits include: No 2FA needed Better performance Documented API Increased reliability Supported Actions/Tools The App Store Connect API has not been integrated into all tools and actions yet. Below are the statuses of each tool: Name Apple ID API Key pilot Yes Yes deliver Yes Yes sigh Yes Yes cert Yes Yes match Yes Yes produce Partial No pem Yes No precheck Yes (except for IAP) Yes (except for IAP) download_dsyms Yes Yes app_store_build_number Yes Yes Creating an App Store Connect API Key Create a new App Store Connect API Key in the Users page For more info, go to the App Store Connect API Docs Select the \"Keys\" tab Give your API Key an appropriate role for the task at hand. You can read more about roles in Permissions in App Store Connect Note the Issuer ID as you will need it for the configuration steps below Download the newly created API Key file ( .p8 ) This file cannot be downloaded again after the page has been refreshed Using an App Store Connect API Key The API Key (located in the .p8 ) file, the key id, and the issuer id are needed to create the JWT token for authorization. There are multiple ways that these pieces of information can be input into fastlane . Note: The App Store Connect API does not yet have the ability to determine if the team is App Store or Enterprise. The app_store_connect_api_key action and the fastlane API Key JSON file format allow for an optional in_house key as a temporary workaround. Using app_store_connect_api_key action There is a new app_store_connect_api_key action which takes the key id, the issuer id, and API Key file ( .p8 ) to generate a dictionary/hash used for JWT authorization. This action can be used in two ways: Use return value and pass in as an option lane :release do api_key = app_store_connect_api_key( key_id: \"D383SF739\", issuer_id: \"6053b7fe-68a8-4acb-89be-165aa6465141\", key_filepath: \"./AuthKey_D383SF739.p8\", duration: 1200, # optional (maximum 1200) in_house: false # optional but may be required if using match/sigh ) pilot(api_key: api_key) end Use the shared value in lane context The app_store_connect_api_key action sets Actions.lane_context[SharedValues::APP_STORE_CONNECT_API_KEY] and actions (like pilot ) will automatically load the API Key from Actions.lane_context lane :release do app_store_connect_api_key( key_id: \"D383SF739\", issuer_id: \"6053b7fe-68a8-4acb-89be-165aa6465141\", key_filepath: \"./AuthKey_D383SF739.p8\", duration: 1200, # optional (maximum 1200) in_house: false # optional but may be required if using match/sigh ) # Automatically loads Actions.lane_context[SharedValues::APP_STORE_CONNECT_API_KEY] pilot end Using fastlane API Key hash option Keys and values that can be used in hash in api_key parameter in actions (e.g. upload_to_testflight ) and tools (e.g. cert ) are described in fastlane API Key JSON file format below. The only difference when using hash is that you could use filepath instead of key . Below is an example of API key being used with CLI: $ bundle exec fastlane match appstore \\ --api_key \" { \\\"filepath\\\": \\\"/Users/bartek/Downloads/AuthKey_TJP2GMDZCI.p8\\\", \\\"key_id\\\": \\\"TJP2GMDZCI\\\", \\\"issuer_id\\\": \\\"57246542-96fe-1a63-e053-0824d011072a\\\" } \" Please note that key_content and key_filepath described in app_store_connect_api_key action are invalid both in hash and in JSON file. View Token code on Github Using fastlane API Key JSON file Below is an example of the fastlane API Key JSON file format that tools and actions will also be able to read. The JSON file requires: key_id issuer_id key (the content of the .p8 file) The JSON file allows optional: duration (session length in seconds, maximum 1200) in_house (boolean value if team is Enterprise or not) { \"key_id\": \"D383SF739\", \"issuer_id\": \"6053b7fe-68a8-4acb-89be-165aa6465141\", \"key\": \"-----BEGIN PRIVATE KEY-----\\nMIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHknlhdlYdLu\\n-----END PRIVATE KEY-----\", \"duration\": 1200, # optional (maximum 1200) \"in_house\": false # optional but may be required if using match/sigh } Below is an example of a JSON file being used by an action: lane :release do pilot( api_key_path: \"fastlane/D383SF739.json\" ) end Below is an example of a JSON file being used with CLI: $ fastlane pilot distribute --api_key_path fastlane/D383SF739.json","title":"Using App Store Connect API"},{"location":"app-store-connect-api/#app-store-connect-api","text":"","title":"App Store Connect API"},{"location":"app-store-connect-api/#introduction","text":"The App Store Connect API (which Apple announced at WWDC18 and is continuously working on) is an official public API used to manage app metadata, pricing and availability, provisioning, and more. This API follows the JSON API spec and introduces a new authorization option using API Keys to generate a JSON Web Token (JWT) . fastlane has historically used Apple IDs with username and password to authenticate using a cookie-based web session. fastlane will continue using this same cookie-based web session to authenticate with an unofficial version of the App Store Connect API. However, it is recommended to use the API Key authentication when you are able to. The benefits include: No 2FA needed Better performance Documented API Increased reliability","title":"Introduction"},{"location":"app-store-connect-api/#supported-actionstools","text":"The App Store Connect API has not been integrated into all tools and actions yet. Below are the statuses of each tool: Name Apple ID API Key pilot Yes Yes deliver Yes Yes sigh Yes Yes cert Yes Yes match Yes Yes produce Partial No pem Yes No precheck Yes (except for IAP) Yes (except for IAP) download_dsyms Yes Yes app_store_build_number Yes Yes","title":"Supported Actions/Tools"},{"location":"app-store-connect-api/#creating-an-app-store-connect-api-key","text":"Create a new App Store Connect API Key in the Users page For more info, go to the App Store Connect API Docs Select the \"Keys\" tab Give your API Key an appropriate role for the task at hand. You can read more about roles in Permissions in App Store Connect Note the Issuer ID as you will need it for the configuration steps below Download the newly created API Key file ( .p8 ) This file cannot be downloaded again after the page has been refreshed","title":"Creating an App Store Connect API Key"},{"location":"app-store-connect-api/#using-an-app-store-connect-api-key","text":"The API Key (located in the .p8 ) file, the key id, and the issuer id are needed to create the JWT token for authorization. There are multiple ways that these pieces of information can be input into fastlane . Note: The App Store Connect API does not yet have the ability to determine if the team is App Store or Enterprise. The app_store_connect_api_key action and the fastlane API Key JSON file format allow for an optional in_house key as a temporary workaround.","title":"Using an App Store Connect API Key"},{"location":"create-action/","text":"Local actions You can create your own actions to extend the functionality of fastlane for your project. The action you create will behave exactly like the built in actions. Just run fastlane new_action , enter the name of the action and edit the generated Ruby file in fastlane/actions/[action_name].rb . After you finished writing your action, add it to your version control, so it is available for your whole team. From then on, you can just use your action in your Fastfile , just like any other action. Submitting the action to the fastlane main repo Please be aware we may not accept all actions submitted to be bundled with fastlane . Before you submit a pull request adding the action to the fastlane code base, submit an issue proposing the new action and why it should be built-in. In general we tend to accept actions that Generally usable for a big majority of developers (e.g. basic interactions with git) Solve pain points for mobile app developers (iOS and Android) have an easy to read documentation and great test coverage In general, we might not accept actions that Solve specific use-cases for only a small subset of developers Access the API of a third party service, the third party service should own and maintain the action Complex actions, that will require a lot of work to maintain in the future Everything that isn't mobile developer related","title":"Create Your Own Action"},{"location":"create-action/#local-actions","text":"You can create your own actions to extend the functionality of fastlane for your project. The action you create will behave exactly like the built in actions. Just run fastlane new_action , enter the name of the action and edit the generated Ruby file in fastlane/actions/[action_name].rb . After you finished writing your action, add it to your version control, so it is available for your whole team. From then on, you can just use your action in your Fastfile , just like any other action.","title":"Local actions"},{"location":"create-action/#submitting-the-action-to-the-fastlane-main-repo","text":"Please be aware we may not accept all actions submitted to be bundled with fastlane . Before you submit a pull request adding the action to the fastlane code base, submit an issue proposing the new action and why it should be built-in. In general we tend to accept actions that Generally usable for a big majority of developers (e.g. basic interactions with git) Solve pain points for mobile app developers (iOS and Android) have an easy to read documentation and great test coverage In general, we might not accept actions that Solve specific use-cases for only a small subset of developers Access the API of a third party service, the third party service should own and maintain the action Complex actions, that will require a lot of work to maintain in the future Everything that isn't mobile developer related","title":"Submitting the action to the fastlane main repo"},{"location":"faqs/","text":"FAQs I'm getting an SSL error If your output contains something like SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed that usually means you are using an outdated version of OpenSSL. Make sure to install the latest one using homebrew . brew update && brew upgrade openssl If you use rvm , try the following rvm osx-ssl-certs update all fastlane is slow (to start) If you experience slow launch times of fastlane , try this to solve this problem: Uninstall unused gems [sudo] gem cleanup Error when running fastlane with Jenkins This is usually caused when running Jenkins as its own user. While this is possible, you'll have to take care of creating a temporary Keychain, filling it and then using it when building your application. For more information about the recommended setup with Jenkins open the Jenkins Guide . Code signing issues Check out the codesigning.guide website for more information on how to properly setup code-signing in your team using match . When should I use cert , sigh and match ? cert allows you to create a new code signing certificate + private key (note that the private key is only stored on your machine and won't be synced to any other mac) sigh allows you to create and download a provisioning profile (those are synced via the \uf8ff developer portal) match uses those 2 tools in combination with a git repo you provide, to sync all private key, certificates and provisioning profiles across all your team's Macs and CI servers We recommend using match as it removes the complexity out of code signing, while still being in full control. This way you can sync all the signing identities across your team and your CI server. For more information check out codesigning.guide . Multiple targets of the same underlying app If you have one code base, but multiple branded applications Create different .env files for each environment and reference those environment variables in the Deliverfile , Fastfile , etc. Example: Create a .env.app1 , .env.app2 , and .env.app3 . Define each of these like the following... DLV_FIRST_NAME=Josh DLV_LAST_NAME=Holtz DLV_PRIM_CATG=Business DLV_SCND_CATG=Games Now your Deliver file should look something like this: app_review_information( first_name: ENV['DLV_FIRST_NAME'], last_name: ENV['DLV_LAST_NAME'] ) primary_category ENV['DLV_PRIM_CATG'] secondary_category ENV['DLV_SCND_CATG'] Now to run this, all you need to do is specify the environment argument when running fastlane and it will pull from the .env file that matches the same name... Ex: fastlane build --env app1 will use .env.app1 Ex: fastlane build --env app2 will use .env.app2 You can also references these environment variables almost anywhere in fastlane . You can even define a lane to perform actions on multiple targets: desc \"Deploy both versions\" lane :deploy_all do sh \"fastlane deploy --env paid\" sh \"fastlane deploy --env free\" end And you can combine multiple envs in one go Ex: fastlane build --env app1,env1,env2 will use .env.app1 .env.env1 and .env.env2 More on the .env file can be found here . Disable colored output Set the FASTLANE_DISABLE_COLORS or the NO_COLOR environment variable to disable ANSI colors (e.g. for CI machines) export FASTLANE_DISABLE_COLORS=1 export NO_COLOR=1 Enable tab auto complete for fastlane lane names Supported shells: bash , zsh , fish . fastlane enable_auto_complete Follow the on screen prompt to add a line to your bash / zsh / fish profile. \"User interaction is not allowed\" when using fastlane via SSH This error can occur when you run fastlane via SSH. To fix it check out this reply on StackOverflow . Some fastlane commands like deliver , scan , gym , or pilot hang indefinitely or produce strange errors and symbols Make sure your LC_ALL and LANG variables are set up correctly. fastlane requires an UTF-8 environment, so setting those variables to en_US.UTF-8 should fix your issues. Refer to the fastlane setup instructions for details.","title":"FAQs"},{"location":"faqs/#faqs","text":"","title":"FAQs"},{"location":"uploading-app-privacy-details/","text":"Uploading App Privacy Details Introduction Apple announced that as of December 8, 2020, the App Store would start displaying detailed information about an app's privacy practices. App Store Connect will ask developers a series of questions on how privacy is respected over an array of categories. A category then allows for a selection of multiple purposes. After the purposes are selected, there are then questions on how the data is selected. An example would be: Contact Info - Name Purposes: Product Personalization App Functionality Data Protections Data linked to user Data used to track user Financial Info - Credit Card Purposes: App Functionality Data Protections Data not linked to user Uploading App Privacy Details with fastlane fastlane has the ability to upload your app's app privacy details with the upload_app_privacy_details_to_app_store action. This action has two steps. The first is answering an interactive questionnaire (similar to what App Store Connect dashboard offers) and saving the answers to a JSON config file. The second is the upload of the app privacy answers to App Store Connect. The action outputs a JSON config file to fastlane/app_privacy_details.json (by default) which will save your configuration. This JSON file is output so the answers can be saved in source control, reviewed by you or team members, and used for other apps. The JSON file can then be used again by this action (with the json_path option) to skip the interactive questions. These two steps can be done together or separate. Option 1: Answer and Upload Together By default, upload_app_privacy_details_to_app_store will prompt you with questions and then upload them directly to App Store Connect. The action will also output a JSON config file to fastlane/app_privacy_details.json . In CLI... fastlane run upload_app_privacy_details_to_app_store \\ username:\"your@email.com\" \\ team_name:\"Your Team\" \\ app_identifier:\"com.your.bundle\" or in Fastfile ... upload_app_privacy_details_to_app_store( username: \"your@email.com\", team_name: \"Your Team\", app_identifier: \"com.your.bundle\" ) or in Fastfile.swift ... uploadAppPrivacyDetailsToAppStore(username: \"your@email.com\", appIdentifier: \"com.your.bundle\", teamName: \"Your Team\") Option 2: Answer and Upload Separate If you do not want to upload the app privacy details to App Store Connect right away, skip_upload:true can be passed to the action. This will prompt you with the interactive questions and save the JSON configuration file but that is it. After reviewing the file, the same action can be used again with the json_path option to bypass the questions (since the answers are in the JSON file) and upload them right away to App Store Connect. Step 1: Answering Questions In CLI... fastlane run upload_app_privacy_details_to_app_store \\ username:\"your@email.com\" \\ team_name:\"Your Team\" \\ app_identifier:\"com.your.bundle\" \\ skip_upload:true or in Fastfile ... upload_app_privacy_details_to_app_store( username: \"your@email.com\", team_name: \"Your Team\", app_identifier: \"com.your.bundle\", skip_upload: true ) or in Fastfile.swift ... uploadAppPrivacyDetailsToAppStore(username: \"your@email.com\", appIdentifier: \"com.your.bundle\", teamName: \"Your Team\", skipUpload: true) Step 2: Uploading In CLI... fastlane run upload_app_privacy_details_to_app_store \\ username:\"your@email.com\" \\ team_name:\"Your Team\" \\ app_identifier:\"com.your.bundle\" \\ json_path:\"fastlane/app_privacy_details.json\" or in Fastfile ... upload_app_privacy_details_to_app_store( username: \"your@email.com\", team_name: \"Your Team\", app_identifier: \"com.your.bundle\", json_path: \"fastlane/app_privacy_details.json\" ) or in Fastfile.swift ... uploadAppPrivacyDetailsToAppStore(username: \"your@email.com\", appIdentifier: \"com.your.bundle\", teamName: \"Your Team\", jsonPath: \"fastlane/app_privacy_details.json\") Requirements This action requires an Apple ID with owner or admin permissions on the Apple Development team. The APIs this action uses are also not available on the official App Store Connect API so the App Store Connect API Key cannot be used at this time. Example JSON configuration file Below are two examples of the app_privacy_details.json file that upload_app_privacy_details_to_app_store action will create. Not collecting data This is what will be output if your app does not collect any data. [ { \"data_protections\": [ \"DATA_NOT_COLLECTED\" ] } ] Collecting data This is what will be output that matches the example at the top of this page. [ { \"category\": \"PAYMENT_INFORMATION\", \"purposes\": [ \"APP_FUNCTIONALITY\" ], \"data_protections\": [ \"DATA_NOT_LINKED_TO_YOU\" ] }, { \"category\": \"NAME\", \"purposes\": [ \"PRODUCT_PERSONALIZATION\", \"APP_FUNCTIONALITY\" ], \"data_protections\": [ \"DATA_LINKED_TO_YOU\", \"DATA_USED_TO_TRACK_YOU\" ] } ] Data Values These are the values you will see in your JSON configuration file. You won't need to ever manually enter these values in your JSON configuration file (as this is what the interactive questionnaire will output for you). Categories PAYMENT_INFORMATION CREDIT_AND_FRAUD OTHER_FINANCIAL_INFO PRECISE_LOCATION SENSITIVE_INFO PHYSICAL_ADDRESS EMAIL_ADDRESS NAME PHONE_NUMBER OTHER_CONTACT_INFO CONTACTS EMAILS_OR_TEXT_MESSAGES PHOTOS_OR_VIDEOS AUDIO GAMEPLAY_CONTENT CUSTOMER_SUPPORT OTHER_USER_CONTENT BROWSING_HISTORY SEARCH_HISTORY USER_ID DEVICE_ID PURCHASE_HISTORY PRODUCT_INTERACTION ADVERTISING_DATA OTHER_USAGE_DATA CRASH_DATA PERFORMANCE_DATA OTHER_DIAGNOSTIC_DATA OTHER_DATA HEALTH FITNESS COARSE_LOCATION Purposes THIRD_PARTY_ADVERTISING DEVELOPERS_ADVERTISING ANALYTICS PRODUCT_PERSONALIZATION APP_FUNCTIONALITY OTHER_PURPOSES Data Protections Uses DATA_LINKED_TO_YOU or DATA_NOT_LINKED_TO_YOU Optionally uses DATA_USED_TO_TRACK_YOU","title":"Uploading App Privacy Details"},{"location":"uploading-app-privacy-details/#uploading-app-privacy-details","text":"","title":"Uploading App Privacy Details"},{"location":"uploading-app-privacy-details/#introduction","text":"Apple announced that as of December 8, 2020, the App Store would start displaying detailed information about an app's privacy practices. App Store Connect will ask developers a series of questions on how privacy is respected over an array of categories. A category then allows for a selection of multiple purposes. After the purposes are selected, there are then questions on how the data is selected. An example would be: Contact Info - Name Purposes: Product Personalization App Functionality Data Protections Data linked to user Data used to track user Financial Info - Credit Card Purposes: App Functionality Data Protections Data not linked to user","title":"Introduction"},{"location":"uploading-app-privacy-details/#uploading-app-privacy-details-with-fastlane","text":"fastlane has the ability to upload your app's app privacy details with the upload_app_privacy_details_to_app_store action. This action has two steps. The first is answering an interactive questionnaire (similar to what App Store Connect dashboard offers) and saving the answers to a JSON config file. The second is the upload of the app privacy answers to App Store Connect. The action outputs a JSON config file to fastlane/app_privacy_details.json (by default) which will save your configuration. This JSON file is output so the answers can be saved in source control, reviewed by you or team members, and used for other apps. The JSON file can then be used again by this action (with the json_path option) to skip the interactive questions. These two steps can be done together or separate.","title":"Uploading App Privacy Details with fastlane"},{"location":"uploading-app-privacy-details/#example-json-configuration-file","text":"Below are two examples of the app_privacy_details.json file that upload_app_privacy_details_to_app_store action will create.","title":"Example JSON configuration file"},{"location":"uploading-app-privacy-details/#data-values","text":"These are the values you will see in your JSON configuration file. You won't need to ever manually enter these values in your JSON configuration file (as this is what the interactive questionnaire will output for you).","title":"Data Values"},{"location":"actions/adb/","text":"adb Run ADB Actions see adb --help for more details adb Supported platforms android Author @hjanuschka Returns The output of the adb command 1 Example adb( command: \"shell ls\" ) Parameters Key Description Default serial Android serial of the device to use for this command '' command All commands you want to pass to the adb command, e.g. kill-server adb_path The path to your adb binary (can be left blank if the ANDROID_SDK_ROOT, ANDROID_HOME or ANDROID_SDK environment variable is set) adb * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action adb CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run adb To pass parameters, make use of the : symbol, for example fastlane run adb parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"adb"},{"location":"actions/adb/#adb","text":"Run ADB Actions see adb --help for more details adb Supported platforms android Author @hjanuschka Returns The output of the adb command","title":"adb"},{"location":"actions/adb/#1-example","text":"adb( command: \"shell ls\" )","title":"1 Example"},{"location":"actions/adb/#parameters","text":"Key Description Default serial Android serial of the device to use for this command '' command All commands you want to pass to the adb command, e.g. kill-server adb_path The path to your adb binary (can be left blank if the ANDROID_SDK_ROOT, ANDROID_HOME or ANDROID_SDK environment variable is set) adb * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/adb/#documentation","text":"To show the documentation in your terminal, run fastlane action adb","title":"Documentation"},{"location":"actions/adb/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run adb To pass parameters, make use of the : symbol, for example fastlane run adb parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/adb/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/adb_devices/","text":"adb_devices Get an array of Connected android device serials Fetches device list via adb, e.g. run an adb command on all connected devices. adb_devices Supported platforms android Author @hjanuschka Returns Returns an array of all currently connected android devices 1 Example adb_devices.each do |device| model = adb(command: \"shell getprop ro.product.model\", serial: device.serial).strip puts \"Model #{model} is connected\" end Parameters Key Description Default adb_path The path to your adb binary (can be left blank if the ANDROID_SDK_ROOT environment variable is set) adb * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action adb_devices CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run adb_devices To pass parameters, make use of the : symbol, for example fastlane run adb_devices parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"adb_devices"},{"location":"actions/adb_devices/#adb_devices","text":"Get an array of Connected android device serials Fetches device list via adb, e.g. run an adb command on all connected devices. adb_devices Supported platforms android Author @hjanuschka Returns Returns an array of all currently connected android devices","title":"adb_devices"},{"location":"actions/adb_devices/#1-example","text":"adb_devices.each do |device| model = adb(command: \"shell getprop ro.product.model\", serial: device.serial).strip puts \"Model #{model} is connected\" end","title":"1 Example"},{"location":"actions/adb_devices/#parameters","text":"Key Description Default adb_path The path to your adb binary (can be left blank if the ANDROID_SDK_ROOT environment variable is set) adb * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/adb_devices/#documentation","text":"To show the documentation in your terminal, run fastlane action adb_devices","title":"Documentation"},{"location":"actions/adb_devices/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run adb_devices To pass parameters, make use of the : symbol, for example fastlane run adb_devices parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/adb_devices/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/add_extra_platforms/","text":"add_extra_platforms Modify the default list of supported platforms add_extra_platforms Supported platforms ios, android, mac Author @lacostej 1 Example add_extra_platforms( platforms: [:windows, :neogeo] ) Parameters Key Description Default platforms The optional extra platforms to support '' * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action add_extra_platforms CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run add_extra_platforms To pass parameters, make use of the : symbol, for example fastlane run add_extra_platforms parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"add_extra_platforms"},{"location":"actions/add_extra_platforms/#add_extra_platforms","text":"Modify the default list of supported platforms add_extra_platforms Supported platforms ios, android, mac Author @lacostej","title":"add_extra_platforms"},{"location":"actions/add_extra_platforms/#1-example","text":"add_extra_platforms( platforms: [:windows, :neogeo] )","title":"1 Example"},{"location":"actions/add_extra_platforms/#parameters","text":"Key Description Default platforms The optional extra platforms to support '' * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/add_extra_platforms/#documentation","text":"To show the documentation in your terminal, run fastlane action add_extra_platforms","title":"Documentation"},{"location":"actions/add_extra_platforms/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run add_extra_platforms To pass parameters, make use of the : symbol, for example fastlane run add_extra_platforms parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/add_extra_platforms/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/add_git_tag/","text":"add_git_tag This will add an annotated git tag to the current branch This will automatically tag your build with the following format: // , where: grouping is just to keep your tags organised under one 'folder', defaults to 'builds' lane is the name of the current fastlane lane, if chosen to be included via 'includes_lane' option, which defaults to 'true' prefix is anything you want to stick in front of the version number, e.g. 'v' postfix is anything you want to stick at the end of the version number, e.g. '-RC1' build_number is the build number, which defaults to the value emitted by the increment_build_number action For example, for build 1234 in the 'appstore' lane, it will tag the commit with builds/appstore/1234 . add_git_tag Supported platforms ios, android, mac Author @lmirosevic, @maschall 3 Examples add_git_tag # simple tag with default values add_git_tag( grouping: \"fastlane-builds\", includes_lane: true, prefix: \"v\", postfix: \"-RC1\", build_number: 123 ) # Alternatively, you can specify your own tag. Note that if you do specify a tag, all other arguments are ignored. add_git_tag( tag: \"my_custom_tag\" ) Parameters Key Description Default tag Define your own tag text. This will replace all other parameters grouping Is used to keep your tags organised under one 'folder' builds includes_lane Whether the current lane should be included in the tag and message composition, e.g. ' / / ' true prefix Anything you want to put in front of the version number (e.g. 'v') '' postfix Anything you want to put at the end of the version number (e.g. '-RC1') '' build_number The build number. Defaults to the result of increment_build_number if you're using it * message The tag message. Defaults to the tag's name * commit The commit or object where the tag will be set. Defaults to the current HEAD * force Force adding the tag false sign Make a GPG-signed tag, using the default e-mail address's key false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action add_git_tag CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run add_git_tag To pass parameters, make use of the : symbol, for example fastlane run add_git_tag parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"add_git_tag"},{"location":"actions/add_git_tag/#add_git_tag","text":"This will add an annotated git tag to the current branch This will automatically tag your build with the following format: // , where: grouping is just to keep your tags organised under one 'folder', defaults to 'builds' lane is the name of the current fastlane lane, if chosen to be included via 'includes_lane' option, which defaults to 'true' prefix is anything you want to stick in front of the version number, e.g. 'v' postfix is anything you want to stick at the end of the version number, e.g. '-RC1' build_number is the build number, which defaults to the value emitted by the increment_build_number action For example, for build 1234 in the 'appstore' lane, it will tag the commit with builds/appstore/1234 . add_git_tag Supported platforms ios, android, mac Author @lmirosevic, @maschall","title":"add_git_tag"},{"location":"actions/add_git_tag/#3-examples","text":"add_git_tag # simple tag with default values add_git_tag( grouping: \"fastlane-builds\", includes_lane: true, prefix: \"v\", postfix: \"-RC1\", build_number: 123 ) # Alternatively, you can specify your own tag. Note that if you do specify a tag, all other arguments are ignored. add_git_tag( tag: \"my_custom_tag\" )","title":"3 Examples"},{"location":"actions/add_git_tag/#parameters","text":"Key Description Default tag Define your own tag text. This will replace all other parameters grouping Is used to keep your tags organised under one 'folder' builds includes_lane Whether the current lane should be included in the tag and message composition, e.g. ' / / ' true prefix Anything you want to put in front of the version number (e.g. 'v') '' postfix Anything you want to put at the end of the version number (e.g. '-RC1') '' build_number The build number. Defaults to the result of increment_build_number if you're using it * message The tag message. Defaults to the tag's name * commit The commit or object where the tag will be set. Defaults to the current HEAD * force Force adding the tag false sign Make a GPG-signed tag, using the default e-mail address's key false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/add_git_tag/#documentation","text":"To show the documentation in your terminal, run fastlane action add_git_tag","title":"Documentation"},{"location":"actions/add_git_tag/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run add_git_tag To pass parameters, make use of the : symbol, for example fastlane run add_git_tag parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/add_git_tag/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/app_store_build_number/","text":"app_store_build_number Returns the current build_number of either live or edit version Returns the current build number of either the live or testflight version - it is useful for getting the build_number of the current or ready-for-sale app version, and it also works on non-live testflight version. If you need to handle more build-trains please see latest_testflight_build_number . app_store_build_number Supported platforms ios, mac Author @hjanuschka 4 Examples app_store_build_number app_store_build_number( app_identifier: \"app.identifier\", username: \"user@host.com\" ) app_store_build_number( live: false, app_identifier: \"app.identifier\", version: \"1.2.9\" ) api_key = app_store_connect_api_key( key_id: \"MyKeyID12345\", issuer_id: \"00000000-0000-0000-0000-000000000000\", key_filepath: \"./AuthKey.p8\" ) build_num = app_store_build_number( api_key: api_key ) Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * initial_build_number sets the build number to given value if no build is in current train app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your App Store Connect team if you're in multiple teams * live Query the live version (ready-for-sale) true version The version number whose latest build number we want platform The platform to use (optional) ios team_name The name of your App Store Connect team if you're in multiple teams * * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The app_store_build_number action generates the following Lane Variables: SharedValue Description SharedValues::LATEST_BUILD_NUMBER The latest build number of either live or testflight version SharedValues::LATEST_VERSION The version of the latest build number To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action app_store_build_number CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run app_store_build_number To pass parameters, make use of the : symbol, for example fastlane run app_store_build_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"app_store_build_number"},{"location":"actions/app_store_build_number/#app_store_build_number","text":"Returns the current build_number of either live or edit version Returns the current build number of either the live or testflight version - it is useful for getting the build_number of the current or ready-for-sale app version, and it also works on non-live testflight version. If you need to handle more build-trains please see latest_testflight_build_number . app_store_build_number Supported platforms ios, mac Author @hjanuschka","title":"app_store_build_number"},{"location":"actions/app_store_build_number/#4-examples","text":"app_store_build_number app_store_build_number( app_identifier: \"app.identifier\", username: \"user@host.com\" ) app_store_build_number( live: false, app_identifier: \"app.identifier\", version: \"1.2.9\" ) api_key = app_store_connect_api_key( key_id: \"MyKeyID12345\", issuer_id: \"00000000-0000-0000-0000-000000000000\", key_filepath: \"./AuthKey.p8\" ) build_num = app_store_build_number( api_key: api_key )","title":"4 Examples"},{"location":"actions/app_store_build_number/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * initial_build_number sets the build number to given value if no build is in current train app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your App Store Connect team if you're in multiple teams * live Query the live version (ready-for-sale) true version The version number whose latest build number we want platform The platform to use (optional) ios team_name The name of your App Store Connect team if you're in multiple teams * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/app_store_build_number/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The app_store_build_number action generates the following Lane Variables: SharedValue Description SharedValues::LATEST_BUILD_NUMBER The latest build number of either live or testflight version SharedValues::LATEST_VERSION The version of the latest build number To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/app_store_build_number/#documentation","text":"To show the documentation in your terminal, run fastlane action app_store_build_number","title":"Documentation"},{"location":"actions/app_store_build_number/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run app_store_build_number To pass parameters, make use of the : symbol, for example fastlane run app_store_build_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/app_store_build_number/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/app_store_connect_api_key/","text":"app_store_connect_api_key Load the App Store Connect API token to use in other fastlane tools and actions Load the App Store Connect API token to use in other fastlane tools and actions app_store_connect_api_key Supported platforms ios, mac Author @joshdholtz 3 Examples app_store_connect_api_key( key_id: \"D83848D23\", issuer_id: \"227b0bbf-ada8-458c-9d62-3d8022b7d07f\", key_filepath: \"D83848D23.p8\" ) app_store_connect_api_key( key_id: \"D83848D23\", issuer_id: \"227b0bbf-ada8-458c-9d62-3d8022b7d07f\", key_filepath: \"D83848D23.p8\", duration: 200, in_house: true ) app_store_connect_api_key( key_id: \"D83848D23\", issuer_id: \"227b0bbf-ada8-458c-9d62-3d8022b7d07f\", key_content: \"-----BEGIN EC PRIVATE KEY-----\\nfewfawefawfe\\n-----END EC PRIVATE KEY-----\" ) Parameters Key Description Default key_id The key ID issuer_id The issuer ID key_filepath The path to the key p8 file key_content The content of the key p8 file is_key_content_base64 Whether :key_content is Base64 encoded or not false duration The token session duration 500 in_house Is App Store or Enterprise (in house) team? App Store Connect API cannot determine this on its own (yet) false set_spaceship_token Authorizes all Spaceship::ConnectAPI requests by automatically setting Spaceship::ConnectAPI.token true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The app_store_connect_api_key action generates the following Lane Variables: SharedValue Description SharedValues::APP_STORE_CONNECT_API_KEY The App Store Connect API key information used for authorization requests. This hash can be passed directly into the :api_key options on other tools or into Spaceship::ConnectAPI::Token.create method To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action app_store_connect_api_key CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run app_store_connect_api_key To pass parameters, make use of the : symbol, for example fastlane run app_store_connect_api_key parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"app_store_connect_api_key"},{"location":"actions/app_store_connect_api_key/#app_store_connect_api_key","text":"Load the App Store Connect API token to use in other fastlane tools and actions Load the App Store Connect API token to use in other fastlane tools and actions app_store_connect_api_key Supported platforms ios, mac Author @joshdholtz","title":"app_store_connect_api_key"},{"location":"actions/app_store_connect_api_key/#3-examples","text":"app_store_connect_api_key( key_id: \"D83848D23\", issuer_id: \"227b0bbf-ada8-458c-9d62-3d8022b7d07f\", key_filepath: \"D83848D23.p8\" ) app_store_connect_api_key( key_id: \"D83848D23\", issuer_id: \"227b0bbf-ada8-458c-9d62-3d8022b7d07f\", key_filepath: \"D83848D23.p8\", duration: 200, in_house: true ) app_store_connect_api_key( key_id: \"D83848D23\", issuer_id: \"227b0bbf-ada8-458c-9d62-3d8022b7d07f\", key_content: \"-----BEGIN EC PRIVATE KEY-----\\nfewfawefawfe\\n-----END EC PRIVATE KEY-----\" )","title":"3 Examples"},{"location":"actions/app_store_connect_api_key/#parameters","text":"Key Description Default key_id The key ID issuer_id The issuer ID key_filepath The path to the key p8 file key_content The content of the key p8 file is_key_content_base64 Whether :key_content is Base64 encoded or not false duration The token session duration 500 in_house Is App Store or Enterprise (in house) team? App Store Connect API cannot determine this on its own (yet) false set_spaceship_token Authorizes all Spaceship::ConnectAPI requests by automatically setting Spaceship::ConnectAPI.token true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/app_store_connect_api_key/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The app_store_connect_api_key action generates the following Lane Variables: SharedValue Description SharedValues::APP_STORE_CONNECT_API_KEY The App Store Connect API key information used for authorization requests. This hash can be passed directly into the :api_key options on other tools or into Spaceship::ConnectAPI::Token.create method To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/app_store_connect_api_key/#documentation","text":"To show the documentation in your terminal, run fastlane action app_store_connect_api_key","title":"Documentation"},{"location":"actions/app_store_connect_api_key/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run app_store_connect_api_key To pass parameters, make use of the : symbol, for example fastlane run app_store_connect_api_key parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/app_store_connect_api_key/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/appaloosa/","text":"appaloosa Upload your app to Appaloosa Store Appaloosa is a private mobile application store. This action offers a quick deployment on the platform. You can create an account, push to your existing account, or manage your user groups. We accept iOS and Android applications. appaloosa Supported platforms ios, android, mac Author @Appaloosa 1 Example appaloosa( # Path tor your IPA or APK binary: '/path/to/binary.ipa', # You can find your store\u2019s id at the bottom of the \u201cSettings\u201d page of your store store_id: 'your_store_id', # You can find your api_token at the bottom of the \u201cSettings\u201d page of your store api_token: 'your_api_key', # User group_ids visibility, if it's not specified we'll publish the app for all users in your store' group_ids: '112, 232, 387', # You can use fastlane/snapshot or specify your own screenshots folder. # If you use snapshot please specify a local and a device to upload your screenshots from. # When multiple values are specified in the Snapfile, we default to 'en-US' locale: 'en-US', # By default, the screenshots from the last device will be used device: 'iPhone6', # Screenshots' filenames should start with device's name like 'iphone6-s1.png' if device specified screenshots: '/path/to_your/screenshots' ) Parameters Key Description Default binary Binary path. Optional for ipa if you use the ipa or xcodebuild action * api_token Your API token store_id Your Store id group_ids Your app is limited to special users? Give us the group ids '' screenshots Add some screenshots application to your store or hit [enter] * locale Select the folder locale for your screenshots en-US device Select the device format for your screenshots description Your app description changelog Your app changelog * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action appaloosa CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appaloosa To pass parameters, make use of the : symbol, for example fastlane run appaloosa parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"appaloosa"},{"location":"actions/appaloosa/#appaloosa","text":"Upload your app to Appaloosa Store Appaloosa is a private mobile application store. This action offers a quick deployment on the platform. You can create an account, push to your existing account, or manage your user groups. We accept iOS and Android applications. appaloosa Supported platforms ios, android, mac Author @Appaloosa","title":"appaloosa"},{"location":"actions/appaloosa/#1-example","text":"appaloosa( # Path tor your IPA or APK binary: '/path/to/binary.ipa', # You can find your store\u2019s id at the bottom of the \u201cSettings\u201d page of your store store_id: 'your_store_id', # You can find your api_token at the bottom of the \u201cSettings\u201d page of your store api_token: 'your_api_key', # User group_ids visibility, if it's not specified we'll publish the app for all users in your store' group_ids: '112, 232, 387', # You can use fastlane/snapshot or specify your own screenshots folder. # If you use snapshot please specify a local and a device to upload your screenshots from. # When multiple values are specified in the Snapfile, we default to 'en-US' locale: 'en-US', # By default, the screenshots from the last device will be used device: 'iPhone6', # Screenshots' filenames should start with device's name like 'iphone6-s1.png' if device specified screenshots: '/path/to_your/screenshots' )","title":"1 Example"},{"location":"actions/appaloosa/#parameters","text":"Key Description Default binary Binary path. Optional for ipa if you use the ipa or xcodebuild action * api_token Your API token store_id Your Store id group_ids Your app is limited to special users? Give us the group ids '' screenshots Add some screenshots application to your store or hit [enter] * locale Select the folder locale for your screenshots en-US device Select the device format for your screenshots description Your app description changelog Your app changelog * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/appaloosa/#documentation","text":"To show the documentation in your terminal, run fastlane action appaloosa","title":"Documentation"},{"location":"actions/appaloosa/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appaloosa To pass parameters, make use of the : symbol, for example fastlane run appaloosa parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/appaloosa/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/appetize/","text":"appetize Upload your app to Appetize.io to stream it in browser If you provide a public_key , this will overwrite an existing application. If you want to have this build as a new app version, you shouldn't provide this value. To integrate appetize into your GitHub workflow check out the device_grid guide . appetize Supported platforms ios, android Author @klundberg, @giginet, @steprescott 2 Examples appetize( path: \"./MyApp.zip\", api_token: \"yourapitoken\", # get it from https://appetize.io/docs#request-api-token public_key: \"your_public_key\" # get it from https://appetize.io/dashboard ) appetize( path: \"./MyApp.zip\", api_host: \"company.appetize.io\", # only needed for enterprise hosted solution api_token: \"yourapitoken\", # get it from https://appetize.io/docs#request-api-token public_key: \"your_public_key\" # get it from https://appetize.io/dashboard ) Parameters Key Description Default api_host Appetize API host api.appetize.io api_token Appetize.io API Token url URL from which the ipa file can be fetched. Alternative to :path platform Platform. Either ios or android ios path Path to zipped build on the local filesystem. Either this or url must be specified public_key If not provided, a new app will be created. If provided, the existing build will be overwritten note Notes you wish to add to the uploaded app timeout The number of seconds to wait until automatically ending the session due to user inactivity. Must be 30, 60, 90, 120, 180, 300, 600, 1800, 3600 or 7200. Default is 120 * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The appetize action generates the following Lane Variables: SharedValue Description SharedValues::APPETIZE_API_HOST Appetize API host. SharedValues::APPETIZE_PUBLIC_KEY a public identifier for your app. Use this to update your app after it has been initially created. SharedValues::APPETIZE_APP_URL a page to test and share your app. SharedValues::APPETIZE_MANAGE_URL a page to manage your app. To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action appetize CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appetize To pass parameters, make use of the : symbol, for example fastlane run appetize parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"appetize"},{"location":"actions/appetize/#appetize","text":"Upload your app to Appetize.io to stream it in browser If you provide a public_key , this will overwrite an existing application. If you want to have this build as a new app version, you shouldn't provide this value. To integrate appetize into your GitHub workflow check out the device_grid guide . appetize Supported platforms ios, android Author @klundberg, @giginet, @steprescott","title":"appetize"},{"location":"actions/appetize/#2-examples","text":"appetize( path: \"./MyApp.zip\", api_token: \"yourapitoken\", # get it from https://appetize.io/docs#request-api-token public_key: \"your_public_key\" # get it from https://appetize.io/dashboard ) appetize( path: \"./MyApp.zip\", api_host: \"company.appetize.io\", # only needed for enterprise hosted solution api_token: \"yourapitoken\", # get it from https://appetize.io/docs#request-api-token public_key: \"your_public_key\" # get it from https://appetize.io/dashboard )","title":"2 Examples"},{"location":"actions/appetize/#parameters","text":"Key Description Default api_host Appetize API host api.appetize.io api_token Appetize.io API Token url URL from which the ipa file can be fetched. Alternative to :path platform Platform. Either ios or android ios path Path to zipped build on the local filesystem. Either this or url must be specified public_key If not provided, a new app will be created. If provided, the existing build will be overwritten note Notes you wish to add to the uploaded app timeout The number of seconds to wait until automatically ending the session due to user inactivity. Must be 30, 60, 90, 120, 180, 300, 600, 1800, 3600 or 7200. Default is 120 * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/appetize/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The appetize action generates the following Lane Variables: SharedValue Description SharedValues::APPETIZE_API_HOST Appetize API host. SharedValues::APPETIZE_PUBLIC_KEY a public identifier for your app. Use this to update your app after it has been initially created. SharedValues::APPETIZE_APP_URL a page to test and share your app. SharedValues::APPETIZE_MANAGE_URL a page to manage your app. To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/appetize/#documentation","text":"To show the documentation in your terminal, run fastlane action appetize","title":"Documentation"},{"location":"actions/appetize/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appetize To pass parameters, make use of the : symbol, for example fastlane run appetize parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/appetize/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/appetize_viewing_url_generator/","text":"appetize_viewing_url_generator Generate an URL for appetize simulator Check out the device_grid guide for more information appetize_viewing_url_generator Supported platforms ios Author @KrauseFx Returns The URL to preview the iPhone app Parameters Key Description Default public_key Public key of the app you wish to update * base_url Base URL of Appetize service https://appetize.io/embed device Device type: iphone4s, iphone5s, iphone6, iphone6plus, ipadair, iphone6s, iphone6splus, ipadair2, nexus5, nexus7 or nexus9 iphone5s scale Scale of the simulator orientation Device orientation portrait language Device language in ISO 639-1 language code, e.g. 'de' color Color of the device black launch_url Specify a deep link to open when your app is launched os_version The operating system version on which to run your app, e.g. 10.3, 8.0 params Specify params value to be passed to Appetize proxy Specify a HTTP proxy to be passed to Appetize * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action appetize_viewing_url_generator CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appetize_viewing_url_generator To pass parameters, make use of the : symbol, for example fastlane run appetize_viewing_url_generator parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"appetize_viewing_url_generator"},{"location":"actions/appetize_viewing_url_generator/#appetize_viewing_url_generator","text":"Generate an URL for appetize simulator Check out the device_grid guide for more information appetize_viewing_url_generator Supported platforms ios Author @KrauseFx Returns The URL to preview the iPhone app","title":"appetize_viewing_url_generator"},{"location":"actions/appetize_viewing_url_generator/#parameters","text":"Key Description Default public_key Public key of the app you wish to update * base_url Base URL of Appetize service https://appetize.io/embed device Device type: iphone4s, iphone5s, iphone6, iphone6plus, ipadair, iphone6s, iphone6splus, ipadair2, nexus5, nexus7 or nexus9 iphone5s scale Scale of the simulator orientation Device orientation portrait language Device language in ISO 639-1 language code, e.g. 'de' color Color of the device black launch_url Specify a deep link to open when your app is launched os_version The operating system version on which to run your app, e.g. 10.3, 8.0 params Specify params value to be passed to Appetize proxy Specify a HTTP proxy to be passed to Appetize * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/appetize_viewing_url_generator/#documentation","text":"To show the documentation in your terminal, run fastlane action appetize_viewing_url_generator","title":"Documentation"},{"location":"actions/appetize_viewing_url_generator/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appetize_viewing_url_generator To pass parameters, make use of the : symbol, for example fastlane run appetize_viewing_url_generator parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/appetize_viewing_url_generator/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/appium/","text":"appium Run UI test by Appium with RSpec appium Supported platforms ios, android Author @yonekawa 1 Example appium( app_path: \"appium/apps/TargetApp.app\", spec_path: \"appium/spec\", platform: \"iOS\", caps: { versionNumber: \"9.1\", deviceName: \"iPhone 6\" }, appium_lib: { wait: 10 } ) Parameters Key Description Default platform Appium platform name spec_path Path to Appium spec directory app_path Path to Appium target app file invoke_appium_server Use local Appium server with invoke automatically true host Hostname of Appium server 0.0.0.0 port HTTP port of Appium server 4723 appium_path Path to Appium executable caps Hash of caps for Appium::Driver appium_lib Hash of appium_lib for Appium::Driver * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action appium CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appium To pass parameters, make use of the : symbol, for example fastlane run appium parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"appium"},{"location":"actions/appium/#appium","text":"Run UI test by Appium with RSpec appium Supported platforms ios, android Author @yonekawa","title":"appium"},{"location":"actions/appium/#1-example","text":"appium( app_path: \"appium/apps/TargetApp.app\", spec_path: \"appium/spec\", platform: \"iOS\", caps: { versionNumber: \"9.1\", deviceName: \"iPhone 6\" }, appium_lib: { wait: 10 } )","title":"1 Example"},{"location":"actions/appium/#parameters","text":"Key Description Default platform Appium platform name spec_path Path to Appium spec directory app_path Path to Appium target app file invoke_appium_server Use local Appium server with invoke automatically true host Hostname of Appium server 0.0.0.0 port HTTP port of Appium server 4723 appium_path Path to Appium executable caps Hash of caps for Appium::Driver appium_lib Hash of appium_lib for Appium::Driver * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/appium/#documentation","text":"To show the documentation in your terminal, run fastlane action appium","title":"Documentation"},{"location":"actions/appium/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appium To pass parameters, make use of the : symbol, for example fastlane run appium parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/appium/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/appledoc/","text":"appledoc Generate Apple-like source code documentation from the source code Runs appledoc [OPTIONS] for the project appledoc Supported platforms ios, mac Author @alexmx 1 Example appledoc( project_name: \"MyProjectName\", project_company: \"Company Name\", input: [ \"MyProjectSources\", \"MyProjectSourceFile.h\" ], ignore: [ \"ignore/path/1\", \"ingore/path/2\" ], options: \"--keep-intermediate-files --search-undocumented-doc\", warnings: \"--warn-missing-output-path --warn-missing-company-id\" ) Parameters Key Description Default input Path(s) to source file directories or individual source files. Accepts a single path or an array of paths output Output path templates Template files path docset_install_path DocSet installation path include Include static doc(s) at path ignore Ignore given path exclude_output Exclude given path from output index_desc File including main index description project_name Project name project_version Project version project_company Project company company_id Company UTI (i.e. reverse DNS name) create_html Create HTML false create_docset Create documentation set false install_docset Install documentation set to Xcode false publish_docset Prepare DocSet for publishing false no_create_docset Create HTML and skip creating a DocSet false html_anchors The html anchor format to use in DocSet HTML clean_output Remove contents of output path before starting false docset_bundle_id DocSet bundle identifier docset_bundle_name DocSet bundle name docset_desc DocSet description docset_copyright DocSet copyright message docset_feed_name DocSet feed name docset_feed_url DocSet feed URL docset_feed_formats DocSet feed formats. Separated by a comma [atom,xml] docset_package_url DocSet package (.xar) URL docset_fallback_url DocSet fallback URL docset_publisher_id DocSet publisher identifier docset_publisher_name DocSet publisher name docset_min_xcode_version DocSet min. Xcode version docset_platform_family DocSet platform family docset_cert_issuer DocSet certificate issuer docset_cert_signer DocSet certificate signer docset_bundle_filename DocSet bundle filename docset_atom_filename DocSet atom feed filename docset_xml_filename DocSet xml feed filename docset_package_filename DocSet package (.xar,.tgz) filename options Documentation generation options crossref_format Cross reference template regex exit_threshold Exit code threshold below which 0 is returned 2 docs_section_title Title of the documentation section (defaults to \"Programming Guides\" warnings Documentation generation warnings logformat Log format [0-3] verbose Log verbosity level [0-6,xcode] * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The appledoc action generates the following Lane Variables: SharedValue Description SharedValues::APPLEDOC_DOCUMENTATION_OUTPUT Documentation set output path To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action appledoc CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appledoc To pass parameters, make use of the : symbol, for example fastlane run appledoc parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"appledoc"},{"location":"actions/appledoc/#appledoc","text":"Generate Apple-like source code documentation from the source code Runs appledoc [OPTIONS] for the project appledoc Supported platforms ios, mac Author @alexmx","title":"appledoc"},{"location":"actions/appledoc/#1-example","text":"appledoc( project_name: \"MyProjectName\", project_company: \"Company Name\", input: [ \"MyProjectSources\", \"MyProjectSourceFile.h\" ], ignore: [ \"ignore/path/1\", \"ingore/path/2\" ], options: \"--keep-intermediate-files --search-undocumented-doc\", warnings: \"--warn-missing-output-path --warn-missing-company-id\" )","title":"1 Example"},{"location":"actions/appledoc/#parameters","text":"Key Description Default input Path(s) to source file directories or individual source files. Accepts a single path or an array of paths output Output path templates Template files path docset_install_path DocSet installation path include Include static doc(s) at path ignore Ignore given path exclude_output Exclude given path from output index_desc File including main index description project_name Project name project_version Project version project_company Project company company_id Company UTI (i.e. reverse DNS name) create_html Create HTML false create_docset Create documentation set false install_docset Install documentation set to Xcode false publish_docset Prepare DocSet for publishing false no_create_docset Create HTML and skip creating a DocSet false html_anchors The html anchor format to use in DocSet HTML clean_output Remove contents of output path before starting false docset_bundle_id DocSet bundle identifier docset_bundle_name DocSet bundle name docset_desc DocSet description docset_copyright DocSet copyright message docset_feed_name DocSet feed name docset_feed_url DocSet feed URL docset_feed_formats DocSet feed formats. Separated by a comma [atom,xml] docset_package_url DocSet package (.xar) URL docset_fallback_url DocSet fallback URL docset_publisher_id DocSet publisher identifier docset_publisher_name DocSet publisher name docset_min_xcode_version DocSet min. Xcode version docset_platform_family DocSet platform family docset_cert_issuer DocSet certificate issuer docset_cert_signer DocSet certificate signer docset_bundle_filename DocSet bundle filename docset_atom_filename DocSet atom feed filename docset_xml_filename DocSet xml feed filename docset_package_filename DocSet package (.xar,.tgz) filename options Documentation generation options crossref_format Cross reference template regex exit_threshold Exit code threshold below which 0 is returned 2 docs_section_title Title of the documentation section (defaults to \"Programming Guides\" warnings Documentation generation warnings logformat Log format [0-3] verbose Log verbosity level [0-6,xcode] * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/appledoc/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The appledoc action generates the following Lane Variables: SharedValue Description SharedValues::APPLEDOC_DOCUMENTATION_OUTPUT Documentation set output path To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/appledoc/#documentation","text":"To show the documentation in your terminal, run fastlane action appledoc","title":"Documentation"},{"location":"actions/appledoc/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appledoc To pass parameters, make use of the : symbol, for example fastlane run appledoc parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/appledoc/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/appstore/","text":"appstore Alias for the upload_to_app_store action deliver uploads screenshots, metadata and binaries to App Store Connect. Use deliver to submit your app for App Store review. Features \u2022 Quick Start \u2022 Usage \u2022 Tips deliver is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Features Upload hundreds of localized screenshots completely automatically Upload a new ipa/pkg file to App Store Connect without Xcode from any Mac Maintain your app metadata locally and push changes back to App Store Connect Easily implement a real Continuous Deployment process using fastlane Store the configuration in git to easily deploy from any Mac, including your Continuous Integration server Get a HTML preview of the fetched metadata before uploading the app metadata and screenshots to iTC Automatically uses precheck to ensure your app has the highest chances of passing app review the first time To upload builds to TestFlight check out pilot . Quick Start The guide will create all the necessary files for you, using the existing app metadata from App Store Connect. cd [your_project_folder] fastlane deliver init Enter your App Store Connect credentials Enter your app identifier Enjoy a good drink, while the computer does all the work for you From now on, you can run fastlane deliver to deploy a new update, or just upload new app metadata and screenshots. Usage Check out your local ./fastlane/metadata and ./fastlane/screenshots folders (if you don't use fastlane it's ./metadata instead) You'll see your metadata from App Store Connect. Feel free to store the metadata in git (not the screenshots). You can now modify it locally and push the changes back to App Store Connect. Run fastlane deliver to upload the app metadata from your local machine fastlane deliver Provide the path to an ipa file to upload and submit your app for review: fastlane deliver --ipa \"App.ipa\" --submit_for_review or you can specify path to pkg file for macOS apps: fastlane deliver --pkg \"MacApp.pkg\" If you use fastlane you don't have to manually specify the path to your ipa / pkg file. This is just a small sub-set of what you can do with deliver , check out the full documentation in #more-options Download existing screenshots from App Store Connect fastlane deliver download_screenshots Download existing metadata from App Store Connect fastlane deliver download_metadata To get a list of available options run fastlane action deliver Use in a Fastfile deliver deliver( submit_for_review: true, force: true, metadata_path: \"./metadata\" ) More options View all available options and their valid values Available options All the options below can easily be added to your Deliverfile . The great thing: if you use fastlane you can use all these options from your Fastfile too, for example: deliver( submit_for_review: true, metadata_path: \"../folder\" ) app_identifier The bundle identifier (e.g. \"com.krausefx.app\") username Your Apple ID email address ipa A path to a signed ipa file, which will be uploaded. If you don't provide this value, only app metadata will be uploaded. If you want to submit the app for review make sure to either use fastlane deliver --submit_for_review or add submit_for_review true to your Deliverfile ipa(\"App.ipa\") if you use fastlane the ipa file will automatically be detected. pkg A path to a signed pkg file, which will be uploaded. Submission logic of ipa applies to pkg files. pkg(\"MacApp.pkg\") app_version Optional, as it is usually automatically detected. Specify the version that should be created / edited on App Store Connect: app_version(\"2.0\") skip_app_version_update In the case if deliver uploads your application to App Store Connect it will automatically update \"Prepare for submission\" app version (which could be found on App Store Connect->My Apps->App Store page) The option allows uploading your app without updating \"Prepare for submission\" version. This could be useful in the case if you are generating a lot of uploads while not submitting the latest build for Apple review. The default value is false. skip_app_version_update(true) submit_for_review Add this to your Deliverfile to automatically submit the app for review after uploading metadata/binary. This will select the latest build. submit_for_review(true) screenshots_path A path to a folder containing subfolders for each language. This will automatically detect the device type based on the image resolution. Also includes \uf8ff Watch Support. metadata_path Path to the metadata you want to use. The folder has to be structured like this If you run deliver init this will automatically be created for you. force force(true) If set to true , no HTML report will be generated before the actual upload. You can also pass --force when calling deliver . price_tier Pass the price tier as number. This will be active from the current day. price_tier 0 trade_representative_contact_information Trade Representative Contact information for Korean App Store. Available options: first_name , last_name , address_line1 , address_line2 , address_line3 , city_name , state , country , postal_code , phone_number , email_address , is_displayed_on_app_store . trade_representative_contact_information( first_name: \"Felix\", last_name: \"Krause\", address_line1: \"1 Infinite Loop\", address_line2: \"\", address_line3: null, city_name: \"Cupertino\", state: \"California\", country: \"United States\", postal_code: \"95014\", phone_number: \"+43 123123123\", email_address: \"github@krausefx.com\", ) You can also provide these values by creating files in a metadata/trade_representative_contact_information/ directory. The file names must match the pattern .txt (e.g. first_name.txt , address_line1.txt etc.). The contents of each file will be used as the value for the matching key. Values provided in the Deliverfile or Fastfile will be take priority over values from these files. is_displayed_on_app_store is the option on App Store Connect described as: Display Trade Representative Contact Information on the Korean App Store app_review_information Contact information for the app review team. Available options: first_name , last_name , phone_number , email_address , demo_user , demo_password , notes . app_review_information( first_name: \"Felix\", last_name: \"Krause\", phone_number: \"+43 123123123\", email_address: \"github@krausefx.com\", demo_user: \"demoUser\", demo_password: \"demoPass\", notes: \"such notes, very text\" ) You can also provide these values by creating files in a metadata/review_information/ directory. The file names must match the pattern .txt (e.g. first_name.txt , notes.txt etc.). The contents of each file will be used as the value for the matching key. Values provided in the Deliverfile or Fastfile will be take priority over values from these files. app_review_attachment_file You can provide additional information to the app review team as a file attachment. As of this writing, Apple supports following file attachment formats: .pdf, .doc, .docx, .rtf, .pages, .xls, .xlsx, .numbers, .zip, .rar, .plist, .crash, .jpg, .png, .mp4, or .avi. Provide an empty string (i.e. \"\", not null) to remove the existing attachment file (if any) from the review information being edited. app_review_attachment_file: \"./readme.txt\" submission_information Must be a hash. This is used as the last step for the deployment process, where you define if you use third party content or use encryption. A list of available options . submission_information({ add_id_info_serves_ads: true, ... }) automatic_release Should the app be released to all users once Apple approves it? If set to false , you'll have to manually release the update once it got approved. automatic_release(true) # or automatic_release(false) phased_release Enable or disable the phased releases feature of App Store Connect. If set to true , the update will be released over a 7 day period. Default behavior is to leave whatever you defined on App Store Connect. phased_release(true) # or phased_release(false) reset_ratings Reset your app's summary rating for all territories. If set to true , it will reset rating when this version is released. Default behavior is to keep existing rating. reset_ratings(true) # or reset_ratings(false) app_rating_config_path You can set the app age ratings using deliver . You'll have to create and store a JSON configuration file. Copy the template to your project folder and pass the path to the JSON file using the app_rating_config_path option. The keys/values on the top allow one of 3 strings: \"NONE\", \"INFREQUENT_OR_MILD\" or \"FREQUENT_OR_INTENSE\", and the items on the bottom allow false or true. More information in #reference . Metadata All options below are useful if you want to specify certain app metadata in your Deliverfile or Fastfile Localized Localized values should be set like this description({ 'en-US' => \"English Description here\", 'de-DE' => \"Deutsche Beschreibung hier\" }) name The title/name of the app subtitle Localized subtitle of the app subtitle( \"en-US\" => \"Awesome English subtitle here\", \"de-DE\" => \"Jetzt mit deutschen Untertiteln!\" ) description The description of the app release_notes The release_notes (What's new / Changelog) of the latest version support_url, marketing_url, privacy_url These URLs are shown in the AppStore keywords Keywords separated using a comma. keywords( \"en-US\" => \"Keyword1, Keyword2\" ) promotional_text Localized promotional text promotional_text( \"en-US\" => \"Hey, you should totally buy our app, it's the best\", \"de-DE\" => \"App kaufen bitte\" ) app_icon A path to a new app icon, which must be exactly 1024x1024px app_icon('./AppIcon.png') apple_watch_app_icon A path to a new app icon for the \uf8ff Watch, which must be exactly 1024x1024px apple_watch_app_icon('./AppleWatchAppIcon.png') platform The platform of your application (a.e. ios, osx). This option is optional. The default value is \"ios\" and deliver should be able to figure out the platform from your binary. However, in the case if multiple binaries present, you can specify a platform which you want to deliver explicitly. The available options: 'ios' 'appletvos' 'osx' Non-Localized copyright The up to date copyright information. copyright(\"#{Time.now.year} Felix Krause\") primary_category The english name of the category you want to set (e.g. Business , Books ) See #reference for a list of available categories secondary_category The english name of the secondary category you want to set primary_first_sub_category The english name of the primary first sub category you want to set primary_second_sub_category The english name of the primary second sub category you want to set secondary_first_sub_category The english name of the secondary first sub category you want to set secondary_second_sub_category The english name of the secondary second sub category you want to set Submit Build deliver allows you to promote an existing build to production. Below are examples to select a previously uploaded build and submit it for review. fastlane deliver submit_build --build_number 830 Submit build in a Fastfile lane :submit_review do deliver( build_number: '830', submit_for_review: true, automatic_release: true, force: true, # Skip HTMl report verification skip_metadata: true, skip_screenshots: true, skip_binary_upload: true ) end Omit build_number to let fastlane automatically select the latest build number for the current version being edited for release from App Store Connect. Compliance and IDFA settings Use the submission_information parameter for additional submission specifiers, including compliance and IDFA settings. Look at the Spaceship's app_submission.rb file for options. See this example . fastlane deliver submit_build --build_number 830 --submission_information \"{\\\"export_compliance_uses_encryption\\\": false, \\\"add_id_info_uses_idfa\\\": false }\" App Privacy Details Starting on December 8, 2020, Apple announced that developers are required to provide app privacy details that will help users understand an app's privacy practies. deliver does not allow for updating of this information but this can be done with the upload_app_privacy_details_to_app_store action. More information on Uploading App Privacy Details Credentials A detailed description about how your credentials are handled is available in a credentials_manager . How does this thing even work? Is magic involved? \ud83c\udfa9 Your password will be stored in the macOS keychain, but can also be passed using environment variables. (More information available on CredentialsManager ) Before actually uploading anything to iTunes, deliver will generate a HTML summary of the collected data. deliver uses the following techniques under the hood: The iTMSTransporter tool is used to upload the binary to App Store Connect. iTMSTransporter is a command line tool provided by Apple. For all metadata related actions deliver uses spaceship Tips Available language codes ar-SA, ca, cs, da, de-DE, el, en-AU, en-CA, en-GB, en-US, es-ES, es-MX, fi, fr-CA, fr-FR, he, hi, hr, hu, id, it, ja, ko, ms, nl-NL, no, pl, pt-BR, pt-PT, ro, ru, sk, sv, th, tr, uk, vi, zh-Hans, zh-Hant Available Metadata Folder Options deliver allows for metadata to be set through .txt files in the metadata folder. This metadata folder location is defaulted to ./fastlane/metadata but can be overridden through the metadata_path parameter. Below are all allowed metadata options. Non-Localized Metadata Key Editable While Live Directory Filename copyright Yes copyright.txt primary_category No primary_category.txt secondary_category No secondary_category.txt primary_first_sub_category No primary_first_sub_category.txt primary_second_sub_category No primary_second_sub_category.txt secondary_first_sub_category No secondary_first_sub_category.txt secondary_second_sub_category No secondary_second_sub_category.txt Localized Metadata Key Editable While Live Directory Filename name No // name.txt subtitle No // subtitle.txt privacy_url Yes // privacy_url.txt apple_tv_privacy_policy No // apple_tv_privacy_policy.txt description Yes // description.txt keywords No // keywords.txt release_notes Yes // release_notes.txt support_url Yes // support_url.txt marketing_url Yes // marketing_url.txt promotional_text Yes // promotional_text.txt Review Information Metadata Key Editable While Live Directory Filename Deprecated Filename first_name Yes /review_information first_name.txt review_first_name.txt last_name Yes /review_information last_name.txt review_last_name.txt phone_number Yes /review_information phone_number.txt review_phone_number.txt email_address Yes /review_information email_address.txt review_email.txt demo_user Yes /review_information demo_user.txt review_demo_user.txt demo_password Yes /review_information demo_password.txt review_demo_password.txt notes Yes /review_information notes.txt review_notes.txt Reference View all available categories, etc. Available Categories FOOD_AND_DRINK BUSINESS EDUCATION SOCIAL_NETWORKING BOOKS SPORTS FINANCE REFERENCE GRAPHICS_AND_DESIGN DEVELOPER_TOOLS HEALTH_AND_FITNESS MUSIC WEATHER TRAVEL ENTERTAINMENT STICKERS GAMES LIFESTYLE MEDICAL MAGAZINES_AND_NEWSPAPERS UTILITIES SHOPPING PRODUCTIVITY NEWS PHOTO_AND_VIDEO NAVIGATION Available Game Subcategories MZGenre.Action MZGenre.Adventure MZGenre.Arcade MZGenre.Board MZGenre.Card MZGenre.Casino MZGenre.Dice MZGenre.Educational MZGenre.Family MZGenre.Music MZGenre.Puzzle MZGenre.Racing MZGenre.RolePlaying MZGenre.Simulation MZGenre.Sports MZGenre.Strategy MZGenre.Trivia MZGenre.Word GAMES_SPORTS GAMES_WORD GAMES_MUSIC GAMES_ADVENTURE GAMES_ACTION GAMES_ROLE_PLAYING GAMES_CASUAL GAMES_BOARD GAMES_TRIVIA GAMES_CARD GAMES_PUZZLE GAMES_CASINO GAMES_STRATEGY GAMES_SIMULATION GAMES_RACING GAMES_FAMILY Available Stickers Subcategories STICKERS_PLACES_AND_OBJECTS STICKERS_EMOJI_AND_EXPRESSIONS STICKERS_CELEBRATIONS STICKERS_CELEBRITIES STICKERS_MOVIES_AND_TV STICKERS_SPORTS_AND_ACTIVITIES STICKERS_EATING_AND_DRINKING STICKERS_CHARACTERS STICKERS_ANIMALS STICKERS_FASHION STICKERS_ART STICKERS_GAMING STICKERS_KIDS_AND_FAMILY STICKERS_PEOPLE STICKERS_MUSIC Available age rating groups Non Boolean Values 0: None (Legacy value, use NONE instead) 1: Infrequent/Mild (Legacy value, use INFREQUENT_OR_MILD instead) 2: Frequent/Intense (Legacy value, use FREQUENT_OR_INTENSE instead) NONE INFREQUENT_OR_MILD FREQUENT_OR_INTENSE Keys 'alcoholTobaccoOrDrugUseOrReferences' 'contests' 'gamblingSimulated' 'medicalOrTreatmentInformation' 'profanityOrCrudeHumor' 'sexualContentGraphicAndNudity' 'sexualContentOrNudity' 'horrorOrFearThemes' 'matureOrSuggestiveThemes' 'unrestrictedWebAccess' 'violenceCartoonOrFantasy' 'violenceRealisticProlongedGraphicOrSadistic' 'violenceRealistic' 'kidsAgeBand' Boolean Keys gambling 'seventeenPlus' unrestrictedWebAccess Kids Age Values FIVE_AND_UNDER SIX_TO_EIGHT NINE_TO_ELEVEN null Keys kidsAgeBand Default values Deliver has a special default language code which allows you to provide values that are not localized, and which will be used as defaults when you don\u2019t provide a specific localized value. In order to use default , you will need to tell deliver which languages your app uses. You can do this in either of two ways: Create the folders named with the language in the metadata folder (i.e. fastlane/metadata/en-US or fastlane/metadata/de-DE) Add the following to your Deliverfile languages(['en-US','de-DE']) You can use this either in json within your Deliverfile and/or as folders in your metadata folder. deliver will take the union of both language sets from the Deliverfile and from the metadata folder and create on single set of languages which will be enabled. Imagine that you have localized data for the following language codes: en-US, de-DE, el, it You can set the following in your Deliverfile release_notes({ 'default' => \"Shiny and new\", 'de-DE' => \"glaenzend und neu\" }) Deliver will use \"Shiny and new\" for en-US, el and it. It will use \"glaenzend und neu\" for de-DE. You can do the same with folders default keywords.txt marketing_url.txt name.txt privacy_url.txt support_url.txt release_notes.txt en-US description.txt de-DE description.txt el description.txt it description.txt In this case, default values for keywords, urls, name and release notes are used in all localizations, but each language has a fully localized description Uploading screenshots for \"iPad Pro (12.9-inch) (3rd generation)\" Starting March 20, 2019 Apple's App Store requires 12.9-inch iPad Pro (3rd generation) screenshots additionally to the iPad Pro 2nd generation screenshots . As fastlane historically uses the screenshot dimensions to determine the \"display family\" of a screenshot, this poses a problem as both use the same dimensions and are recognized as the same device family. To solve this a screenshot of a 12.9-inch iPad Pro (3rd generation) must contain either the string iPad Pro (12.9-inch) (3rd generation) , IPAD_PRO_3GEN_129 , or ipadPro129 (Apple's internal naming of the display family for the 3rd generation iPad Pro) in its filename to be assigned the correct display family and to be uploaded to the correct screenshot slot in your app's metadata. Automatically create screenshots If you want to integrate deliver with snapshot , check out fastlane ! Jenkins integration Detailed instructions about how to set up deliver and fastlane in Jenkins can be found in the fastlane README . Firewall Issues deliver uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" fastlane deliver HTTP Proxy iTunes Transporter is a Java application bundled with Xcode. In addition to utilizing the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" , you need to configure the transporter application to use the proxy independently from the system proxy or any environment proxy settings. You can find the configuration file within Xcode: for Xcode11 and later TOOLS_PATH=$( xcode-select -p ) REL_PATH='../SharedFrameworks/ContentDeliveryServices.framework/Versions/A/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" for Xcode10 or earlier TOOLS_PATH=$( xcode-select -p ) REL_PATH='../Applications/Application Loader.app/Contents/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" Add necessary proxy configuration values to the net.properties according to Java Proxy Configuration . As an alternative to editing the properties files, proxy configuration can be specified on the command line directly: DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV -Dhttp.proxyHost=myproxy.com -Dhttp.proxyPort=8080\" Limit App Store Connect has a limit of 150 binary uploads per day. Editing the Deliverfile Change syntax highlighting to Ruby . Provider Short Name If you are on multiple App Store Connect teams, deliver needs a provider short name to know where to upload your binary. deliver will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option. appstore Supported platforms ios, mac Author @KrauseFx 3 Examples upload_to_app_store( force: true, # Set to true to skip verification of HTML preview itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) deliver # alias for \"upload_to_app_store\" appstore # alias for \"upload_to_app_store\" Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of your app * app_version The version that should be edited or created ipa Path to your ipa file * pkg Path to your pkg file * build_number If set the given build number (already uploaded to iTC) will be used instead of the current built one platform The platform to use (optional) ios edit_live Modify live metadata, this option disables ipa upload and screenshot upload false use_live_version Force usage of live version rather than edit version false metadata_path Path to the folder containing the metadata files screenshots_path Path to the folder containing the screenshots skip_binary_upload Skip uploading an ipa or pkg to App Store Connect false skip_screenshots Don't upload the screenshots false skip_metadata Don't upload the metadata (e.g. title, description). This will still upload screenshots false skip_app_version_update Don\u2019t create or update the app version that is being prepared for submission false force Skip verification of HTML preview file false overwrite_screenshots Clear all previously uploaded screenshots before uploading the new ones false sync_screenshots Sync screenshots with local ones. This is currently beta option so set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well false submit_for_review Submit the new version for Review after uploading everything false verify_only Verifies archive with App Store Connect without uploading false reject_if_possible Rejects the previously submitted build if it's in a state where it's possible false automatic_release Should the app be automatically released once it's approved? (Can not be used together with auto_release_date ) auto_release_date Date in milliseconds for automatically releasing on pending approval (Can not be used together with automatic_release ) phased_release Enable the phased release feature of iTC false reset_ratings Reset the summary rating when you release a new version of the application false price_tier The price tier of this application app_rating_config_path Path to the app rating's config submission_information Extra information for the submission (e.g. compliance specifications, IDFA settings) team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your Developer Portal team, if you're in multiple teams. Different from your iTC team ID! * dev_portal_team_name The name of your Developer Portal team if you're in multiple teams * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column * run_precheck_before_submit Run precheck before submitting to app review true precheck_default_rule_level The default precheck rule level unless otherwise configured :warn individual_metadata_items DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - An array of localized metadata items to upload individually by language so that errors can be identified. E.g. ['name', 'keywords', 'description']. Note: slow app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the app icon apple_watch_app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the Apple Watch app icon copyright Metadata: The copyright notice primary_category Metadata: The english name of the primary category (e.g. Business , Books ) secondary_category Metadata: The english name of the secondary category (e.g. Business , Books ) primary_first_sub_category Metadata: The english name of the primary first sub category (e.g. Educational , Puzzle ) primary_second_sub_category Metadata: The english name of the primary second sub category (e.g. Educational , Puzzle ) secondary_first_sub_category Metadata: The english name of the secondary first sub category (e.g. Educational , Puzzle ) secondary_second_sub_category Metadata: The english name of the secondary second sub category (e.g. Educational , Puzzle ) trade_representative_contact_information DEPRECATED! This is no longer used by App Store Connect - Metadata: A hash containing the trade representative contact information app_review_information Metadata: A hash containing the review information app_review_attachment_file Metadata: Path to the app review attachment file description Metadata: The localised app description name Metadata: The localised app name subtitle Metadata: The localised app subtitle keywords Metadata: An array of localised keywords promotional_text Metadata: An array of localised promotional texts release_notes Metadata: Localised release notes for this version privacy_url Metadata: Localised privacy url apple_tv_privacy_policy Metadata: Localised Apple TV privacy policy text support_url Metadata: Localised support url marketing_url Metadata: Localised marketing url languages Metadata: List of languages to activate ignore_language_directory_validation Ignore errors when invalid languages are found in metadata and screenshot directories false precheck_include_in_app_purchases Should precheck check in-app purchases? true app The (spaceship) app ID of the app you want to use/modify * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action appstore CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appstore To pass parameters, make use of the : symbol, for example fastlane run appstore parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"appstore"},{"location":"actions/appstore/#appstore","text":"Alias for the upload_to_app_store action deliver uploads screenshots, metadata and binaries to App Store Connect. Use deliver to submit your app for App Store review. Features \u2022 Quick Start \u2022 Usage \u2022 Tips","title":"appstore"},{"location":"actions/appstore/#features","text":"Upload hundreds of localized screenshots completely automatically Upload a new ipa/pkg file to App Store Connect without Xcode from any Mac Maintain your app metadata locally and push changes back to App Store Connect Easily implement a real Continuous Deployment process using fastlane Store the configuration in git to easily deploy from any Mac, including your Continuous Integration server Get a HTML preview of the fetched metadata before uploading the app metadata and screenshots to iTC Automatically uses precheck to ensure your app has the highest chances of passing app review the first time To upload builds to TestFlight check out pilot .","title":"Features"},{"location":"actions/appstore/#quick-start","text":"The guide will create all the necessary files for you, using the existing app metadata from App Store Connect. cd [your_project_folder] fastlane deliver init Enter your App Store Connect credentials Enter your app identifier Enjoy a good drink, while the computer does all the work for you From now on, you can run fastlane deliver to deploy a new update, or just upload new app metadata and screenshots.","title":"Quick Start"},{"location":"actions/appstore/#usage","text":"Check out your local ./fastlane/metadata and ./fastlane/screenshots folders (if you don't use fastlane it's ./metadata instead) You'll see your metadata from App Store Connect. Feel free to store the metadata in git (not the screenshots). You can now modify it locally and push the changes back to App Store Connect. Run fastlane deliver to upload the app metadata from your local machine fastlane deliver Provide the path to an ipa file to upload and submit your app for review: fastlane deliver --ipa \"App.ipa\" --submit_for_review or you can specify path to pkg file for macOS apps: fastlane deliver --pkg \"MacApp.pkg\" If you use fastlane you don't have to manually specify the path to your ipa / pkg file. This is just a small sub-set of what you can do with deliver , check out the full documentation in #more-options Download existing screenshots from App Store Connect fastlane deliver download_screenshots Download existing metadata from App Store Connect fastlane deliver download_metadata To get a list of available options run fastlane action deliver","title":"Usage"},{"location":"actions/appstore/#more-options","text":"View all available options and their valid values","title":"More options"},{"location":"actions/appstore/#available-options","text":"All the options below can easily be added to your Deliverfile . The great thing: if you use fastlane you can use all these options from your Fastfile too, for example: deliver( submit_for_review: true, metadata_path: \"../folder\" )","title":"Available options"},{"location":"actions/appstore/#metadata","text":"All options below are useful if you want to specify certain app metadata in your Deliverfile or Fastfile","title":"Metadata"},{"location":"actions/appstore/#submit-build","text":"deliver allows you to promote an existing build to production. Below are examples to select a previously uploaded build and submit it for review. fastlane deliver submit_build --build_number 830","title":"Submit Build"},{"location":"actions/appstore/#credentials","text":"A detailed description about how your credentials are handled is available in a credentials_manager .","title":"Credentials"},{"location":"actions/appstore/#tips","text":"","title":"Tips"},{"location":"actions/appstore/#available-language-codes","text":"ar-SA, ca, cs, da, de-DE, el, en-AU, en-CA, en-GB, en-US, es-ES, es-MX, fi, fr-CA, fr-FR, he, hi, hr, hu, id, it, ja, ko, ms, nl-NL, no, pl, pt-BR, pt-PT, ro, ru, sk, sv, th, tr, uk, vi, zh-Hans, zh-Hant","title":"Available language codes"},{"location":"actions/appstore/#available-metadata-folder-options","text":"deliver allows for metadata to be set through .txt files in the metadata folder. This metadata folder location is defaulted to ./fastlane/metadata but can be overridden through the metadata_path parameter. Below are all allowed metadata options.","title":"Available Metadata Folder Options"},{"location":"actions/appstore/#reference","text":"View all available categories, etc.","title":"Reference"},{"location":"actions/appstore/#default-values","text":"Deliver has a special default language code which allows you to provide values that are not localized, and which will be used as defaults when you don\u2019t provide a specific localized value. In order to use default , you will need to tell deliver which languages your app uses. You can do this in either of two ways: Create the folders named with the language in the metadata folder (i.e. fastlane/metadata/en-US or fastlane/metadata/de-DE) Add the following to your Deliverfile languages(['en-US','de-DE']) You can use this either in json within your Deliverfile and/or as folders in your metadata folder. deliver will take the union of both language sets from the Deliverfile and from the metadata folder and create on single set of languages which will be enabled. Imagine that you have localized data for the following language codes: en-US, de-DE, el, it You can set the following in your Deliverfile release_notes({ 'default' => \"Shiny and new\", 'de-DE' => \"glaenzend und neu\" }) Deliver will use \"Shiny and new\" for en-US, el and it. It will use \"glaenzend und neu\" for de-DE. You can do the same with folders default keywords.txt marketing_url.txt name.txt privacy_url.txt support_url.txt release_notes.txt en-US description.txt de-DE description.txt el description.txt it description.txt In this case, default values for keywords, urls, name and release notes are used in all localizations, but each language has a fully localized description","title":"Default values"},{"location":"actions/appstore/#uploading-screenshots-for-ipad-pro-129-inch-3rd-generation","text":"Starting March 20, 2019 Apple's App Store requires 12.9-inch iPad Pro (3rd generation) screenshots additionally to the iPad Pro 2nd generation screenshots . As fastlane historically uses the screenshot dimensions to determine the \"display family\" of a screenshot, this poses a problem as both use the same dimensions and are recognized as the same device family. To solve this a screenshot of a 12.9-inch iPad Pro (3rd generation) must contain either the string iPad Pro (12.9-inch) (3rd generation) , IPAD_PRO_3GEN_129 , or ipadPro129 (Apple's internal naming of the display family for the 3rd generation iPad Pro) in its filename to be assigned the correct display family and to be uploaded to the correct screenshot slot in your app's metadata.","title":"Uploading screenshots for \"iPad Pro (12.9-inch) (3rd generation)\""},{"location":"actions/appstore/#automatically-create-screenshots","text":"If you want to integrate deliver with snapshot , check out fastlane !","title":"Automatically create screenshots"},{"location":"actions/appstore/#jenkins-integration","text":"Detailed instructions about how to set up deliver and fastlane in Jenkins can be found in the fastlane README .","title":"Jenkins integration"},{"location":"actions/appstore/#firewall-issues","text":"deliver uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" fastlane deliver","title":"Firewall Issues"},{"location":"actions/appstore/#http-proxy","text":"iTunes Transporter is a Java application bundled with Xcode. In addition to utilizing the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" , you need to configure the transporter application to use the proxy independently from the system proxy or any environment proxy settings. You can find the configuration file within Xcode: for Xcode11 and later TOOLS_PATH=$( xcode-select -p ) REL_PATH='../SharedFrameworks/ContentDeliveryServices.framework/Versions/A/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" for Xcode10 or earlier TOOLS_PATH=$( xcode-select -p ) REL_PATH='../Applications/Application Loader.app/Contents/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" Add necessary proxy configuration values to the net.properties according to Java Proxy Configuration . As an alternative to editing the properties files, proxy configuration can be specified on the command line directly: DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV -Dhttp.proxyHost=myproxy.com -Dhttp.proxyPort=8080\"","title":"HTTP Proxy"},{"location":"actions/appstore/#limit","text":"App Store Connect has a limit of 150 binary uploads per day.","title":"Limit"},{"location":"actions/appstore/#editing-the-deliverfile","text":"Change syntax highlighting to Ruby .","title":"Editing the Deliverfile"},{"location":"actions/appstore/#provider-short-name","text":"If you are on multiple App Store Connect teams, deliver needs a provider short name to know where to upload your binary. deliver will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option. appstore Supported platforms ios, mac Author @KrauseFx","title":"Provider Short Name"},{"location":"actions/appstore/#3-examples","text":"upload_to_app_store( force: true, # Set to true to skip verification of HTML preview itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) deliver # alias for \"upload_to_app_store\" appstore # alias for \"upload_to_app_store\"","title":"3 Examples"},{"location":"actions/appstore/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of your app * app_version The version that should be edited or created ipa Path to your ipa file * pkg Path to your pkg file * build_number If set the given build number (already uploaded to iTC) will be used instead of the current built one platform The platform to use (optional) ios edit_live Modify live metadata, this option disables ipa upload and screenshot upload false use_live_version Force usage of live version rather than edit version false metadata_path Path to the folder containing the metadata files screenshots_path Path to the folder containing the screenshots skip_binary_upload Skip uploading an ipa or pkg to App Store Connect false skip_screenshots Don't upload the screenshots false skip_metadata Don't upload the metadata (e.g. title, description). This will still upload screenshots false skip_app_version_update Don\u2019t create or update the app version that is being prepared for submission false force Skip verification of HTML preview file false overwrite_screenshots Clear all previously uploaded screenshots before uploading the new ones false sync_screenshots Sync screenshots with local ones. This is currently beta option so set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well false submit_for_review Submit the new version for Review after uploading everything false verify_only Verifies archive with App Store Connect without uploading false reject_if_possible Rejects the previously submitted build if it's in a state where it's possible false automatic_release Should the app be automatically released once it's approved? (Can not be used together with auto_release_date ) auto_release_date Date in milliseconds for automatically releasing on pending approval (Can not be used together with automatic_release ) phased_release Enable the phased release feature of iTC false reset_ratings Reset the summary rating when you release a new version of the application false price_tier The price tier of this application app_rating_config_path Path to the app rating's config submission_information Extra information for the submission (e.g. compliance specifications, IDFA settings) team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your Developer Portal team, if you're in multiple teams. Different from your iTC team ID! * dev_portal_team_name The name of your Developer Portal team if you're in multiple teams * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column * run_precheck_before_submit Run precheck before submitting to app review true precheck_default_rule_level The default precheck rule level unless otherwise configured :warn individual_metadata_items DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - An array of localized metadata items to upload individually by language so that errors can be identified. E.g. ['name', 'keywords', 'description']. Note: slow app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the app icon apple_watch_app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the Apple Watch app icon copyright Metadata: The copyright notice primary_category Metadata: The english name of the primary category (e.g. Business , Books ) secondary_category Metadata: The english name of the secondary category (e.g. Business , Books ) primary_first_sub_category Metadata: The english name of the primary first sub category (e.g. Educational , Puzzle ) primary_second_sub_category Metadata: The english name of the primary second sub category (e.g. Educational , Puzzle ) secondary_first_sub_category Metadata: The english name of the secondary first sub category (e.g. Educational , Puzzle ) secondary_second_sub_category Metadata: The english name of the secondary second sub category (e.g. Educational , Puzzle ) trade_representative_contact_information DEPRECATED! This is no longer used by App Store Connect - Metadata: A hash containing the trade representative contact information app_review_information Metadata: A hash containing the review information app_review_attachment_file Metadata: Path to the app review attachment file description Metadata: The localised app description name Metadata: The localised app name subtitle Metadata: The localised app subtitle keywords Metadata: An array of localised keywords promotional_text Metadata: An array of localised promotional texts release_notes Metadata: Localised release notes for this version privacy_url Metadata: Localised privacy url apple_tv_privacy_policy Metadata: Localised Apple TV privacy policy text support_url Metadata: Localised support url marketing_url Metadata: Localised marketing url languages Metadata: List of languages to activate ignore_language_directory_validation Ignore errors when invalid languages are found in metadata and screenshot directories false precheck_include_in_app_purchases Should precheck check in-app purchases? true app The (spaceship) app ID of the app you want to use/modify * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/appstore/#documentation","text":"To show the documentation in your terminal, run fastlane action appstore","title":"Documentation"},{"location":"actions/appstore/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appstore To pass parameters, make use of the : symbol, for example fastlane run appstore parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/appstore/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/apteligent/","text":"apteligent Upload dSYM file to Apteligent (Crittercism) apteligent Supported platforms ios Author @Mo7amedFouad 1 Example apteligent( app_id: \"...\", api_key: \"...\" ) Parameters Key Description Default dsym dSYM.zip file to upload to Apteligent app_id Apteligent App ID key e.g. 569f5c87cb99e10e00c7xxxx api_key Apteligent App API key e.g. IXPQIi8yCbHaLliqzRoo065tH0lxxxxx * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action apteligent CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run apteligent To pass parameters, make use of the : symbol, for example fastlane run apteligent parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"apteligent"},{"location":"actions/apteligent/#apteligent","text":"Upload dSYM file to Apteligent (Crittercism) apteligent Supported platforms ios Author @Mo7amedFouad","title":"apteligent"},{"location":"actions/apteligent/#1-example","text":"apteligent( app_id: \"...\", api_key: \"...\" )","title":"1 Example"},{"location":"actions/apteligent/#parameters","text":"Key Description Default dsym dSYM.zip file to upload to Apteligent app_id Apteligent App ID key e.g. 569f5c87cb99e10e00c7xxxx api_key Apteligent App API key e.g. IXPQIi8yCbHaLliqzRoo065tH0lxxxxx * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/apteligent/#documentation","text":"To show the documentation in your terminal, run fastlane action apteligent","title":"Documentation"},{"location":"actions/apteligent/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run apteligent To pass parameters, make use of the : symbol, for example fastlane run apteligent parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/apteligent/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/artifactory/","text":"artifactory This action uploads an artifact to artifactory Connect to the artifactory server using either a username/password or an api_key artifactory Supported platforms ios, android, mac Author @koglinjg, @tommeier 2 Examples artifactory( username: \"username\", password: \"password\", endpoint: \"https://artifactory.example.com/artifactory/\", file: \"example.ipa\", # File to upload repo: \"mobile_artifacts\", # Artifactory repo repo_path: \"/ios/appname/example-major.minor.ipa\" # Path to place the artifact including its filename ) artifactory( api_key: \"api_key\", endpoint: \"https://artifactory.example.com/artifactory/\", file: \"example.ipa\", # File to upload repo: \"mobile_artifacts\", # Artifactory repo repo_path: \"/ios/appname/example-major.minor.ipa\" # Path to place the artifact including its filename ) Parameters Key Description Default file File to be uploaded to artifactory repo Artifactory repo to put the file in repo_path Path to deploy within the repo, including filename endpoint Artifactory endpoint username Artifactory username password Artifactory password api_key Artifactory API key properties Artifact properties hash {} ssl_pem_file Location of pem file to use for ssl verification ssl_verify Verify SSL true proxy_username Proxy username proxy_password Proxy password proxy_address Proxy address proxy_port Proxy port read_timeout Read timeout * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The artifactory action generates the following Lane Variables: SharedValue Description SharedValues::ARTIFACTORY_DOWNLOAD_URL The download url for file uploaded SharedValues::ARTIFACTORY_DOWNLOAD_SIZE The reported file size for file uploaded To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action artifactory CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run artifactory To pass parameters, make use of the : symbol, for example fastlane run artifactory parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"artifactory"},{"location":"actions/artifactory/#artifactory","text":"This action uploads an artifact to artifactory Connect to the artifactory server using either a username/password or an api_key artifactory Supported platforms ios, android, mac Author @koglinjg, @tommeier","title":"artifactory"},{"location":"actions/artifactory/#2-examples","text":"artifactory( username: \"username\", password: \"password\", endpoint: \"https://artifactory.example.com/artifactory/\", file: \"example.ipa\", # File to upload repo: \"mobile_artifacts\", # Artifactory repo repo_path: \"/ios/appname/example-major.minor.ipa\" # Path to place the artifact including its filename ) artifactory( api_key: \"api_key\", endpoint: \"https://artifactory.example.com/artifactory/\", file: \"example.ipa\", # File to upload repo: \"mobile_artifacts\", # Artifactory repo repo_path: \"/ios/appname/example-major.minor.ipa\" # Path to place the artifact including its filename )","title":"2 Examples"},{"location":"actions/artifactory/#parameters","text":"Key Description Default file File to be uploaded to artifactory repo Artifactory repo to put the file in repo_path Path to deploy within the repo, including filename endpoint Artifactory endpoint username Artifactory username password Artifactory password api_key Artifactory API key properties Artifact properties hash {} ssl_pem_file Location of pem file to use for ssl verification ssl_verify Verify SSL true proxy_username Proxy username proxy_password Proxy password proxy_address Proxy address proxy_port Proxy port read_timeout Read timeout * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/artifactory/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The artifactory action generates the following Lane Variables: SharedValue Description SharedValues::ARTIFACTORY_DOWNLOAD_URL The download url for file uploaded SharedValues::ARTIFACTORY_DOWNLOAD_SIZE The reported file size for file uploaded To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/artifactory/#documentation","text":"To show the documentation in your terminal, run fastlane action artifactory","title":"Documentation"},{"location":"actions/artifactory/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run artifactory To pass parameters, make use of the : symbol, for example fastlane run artifactory parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/artifactory/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/automatic_code_signing/","text":"automatic_code_signing Configures Xcode's Codesigning options Please use update_code_signing_settings action instead. Configures Xcode's Codesigning options of all targets in the project automatic_code_signing Supported platforms ios, mac Author @mathiasAichinger, @hjanuschka, @p4checo, @portellaa, @aeons Returns The current status (boolean) of codesigning after modification 8 Examples # enable automatic code signing enable_automatic_code_signing enable_automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\" ) # disable automatic code signing disable_automatic_code_signing disable_automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\" ) # also set team id disable_automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\", team_id: \"XXXX\" ) # Only specific targets disable_automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\", use_automatic_signing: false, targets: [\"demo\"] ) # via generic action automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\", use_automatic_signing: false ) automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\", use_automatic_signing: true ) Parameters Key Description Default path Path to your Xcode project * use_automatic_signing Defines if project should use automatic signing false team_id Team ID, is used when upgrading project targets Specify targets you want to toggle the signing mech. (default to all targets) code_sign_identity Code signing identity type (iPhone Developer, iPhone Distribution) profile_name Provisioning profile name to use for code signing profile_uuid Provisioning profile UUID to use for code signing bundle_identifier Application Product Bundle Identifier * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action automatic_code_signing CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run automatic_code_signing To pass parameters, make use of the : symbol, for example fastlane run automatic_code_signing parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"automatic_code_signing"},{"location":"actions/automatic_code_signing/#automatic_code_signing","text":"Configures Xcode's Codesigning options Please use update_code_signing_settings action instead. Configures Xcode's Codesigning options of all targets in the project automatic_code_signing Supported platforms ios, mac Author @mathiasAichinger, @hjanuschka, @p4checo, @portellaa, @aeons Returns The current status (boolean) of codesigning after modification","title":"automatic_code_signing"},{"location":"actions/automatic_code_signing/#8-examples","text":"# enable automatic code signing enable_automatic_code_signing enable_automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\" ) # disable automatic code signing disable_automatic_code_signing disable_automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\" ) # also set team id disable_automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\", team_id: \"XXXX\" ) # Only specific targets disable_automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\", use_automatic_signing: false, targets: [\"demo\"] ) # via generic action automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\", use_automatic_signing: false ) automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\", use_automatic_signing: true )","title":"8 Examples"},{"location":"actions/automatic_code_signing/#parameters","text":"Key Description Default path Path to your Xcode project * use_automatic_signing Defines if project should use automatic signing false team_id Team ID, is used when upgrading project targets Specify targets you want to toggle the signing mech. (default to all targets) code_sign_identity Code signing identity type (iPhone Developer, iPhone Distribution) profile_name Provisioning profile name to use for code signing profile_uuid Provisioning profile UUID to use for code signing bundle_identifier Application Product Bundle Identifier * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/automatic_code_signing/#documentation","text":"To show the documentation in your terminal, run fastlane action automatic_code_signing","title":"Documentation"},{"location":"actions/automatic_code_signing/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run automatic_code_signing To pass parameters, make use of the : symbol, for example fastlane run automatic_code_signing parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/automatic_code_signing/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/backup_file/","text":"backup_file This action backs up your file to \"[path].back\" backup_file Supported platforms ios, android, mac Author @gin0606 1 Example backup_file(path: \"/path/to/file\") Parameters Key Description Default path Path to the file you want to backup * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action backup_file CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run backup_file To pass parameters, make use of the : symbol, for example fastlane run backup_file parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"backup_file"},{"location":"actions/backup_file/#backup_file","text":"This action backs up your file to \"[path].back\" backup_file Supported platforms ios, android, mac Author @gin0606","title":"backup_file"},{"location":"actions/backup_file/#1-example","text":"backup_file(path: \"/path/to/file\")","title":"1 Example"},{"location":"actions/backup_file/#parameters","text":"Key Description Default path Path to the file you want to backup * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/backup_file/#documentation","text":"To show the documentation in your terminal, run fastlane action backup_file","title":"Documentation"},{"location":"actions/backup_file/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run backup_file To pass parameters, make use of the : symbol, for example fastlane run backup_file parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/backup_file/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/backup_xcarchive/","text":"backup_xcarchive Save your [zipped] xcarchive elsewhere from default path backup_xcarchive Supported platforms ios, mac Author @dral3x 1 Example backup_xcarchive( xcarchive: \"/path/to/file.xcarchive\", # Optional if you use the `xcodebuild` action destination: \"/somewhere/else/\", # Where the backup should be created zip_filename: \"file.xcarchive\", # The name of the backup file zip: false, # Enable compression of the archive. Defaults to `true`. versioned: true # Create a versioned (date and app version) subfolder where to put the archive ) Parameters Key Description Default xcarchive Path to your xcarchive file. Optional if you use the xcodebuild action * destination Where your archive will be placed zip Enable compression of the archive true zip_filename Filename of the compressed archive. Will be appended by .xcarchive.zip . Default value is the output xcarchive filename * versioned Create a versioned (date and app version) subfolder where to put the archive true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The backup_xcarchive action generates the following Lane Variables: SharedValue Description SharedValues::BACKUP_XCARCHIVE_FILE Path to your saved xcarchive (compressed) file To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action backup_xcarchive CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run backup_xcarchive To pass parameters, make use of the : symbol, for example fastlane run backup_xcarchive parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"backup_xcarchive"},{"location":"actions/backup_xcarchive/#backup_xcarchive","text":"Save your [zipped] xcarchive elsewhere from default path backup_xcarchive Supported platforms ios, mac Author @dral3x","title":"backup_xcarchive"},{"location":"actions/backup_xcarchive/#1-example","text":"backup_xcarchive( xcarchive: \"/path/to/file.xcarchive\", # Optional if you use the `xcodebuild` action destination: \"/somewhere/else/\", # Where the backup should be created zip_filename: \"file.xcarchive\", # The name of the backup file zip: false, # Enable compression of the archive. Defaults to `true`. versioned: true # Create a versioned (date and app version) subfolder where to put the archive )","title":"1 Example"},{"location":"actions/backup_xcarchive/#parameters","text":"Key Description Default xcarchive Path to your xcarchive file. Optional if you use the xcodebuild action * destination Where your archive will be placed zip Enable compression of the archive true zip_filename Filename of the compressed archive. Will be appended by .xcarchive.zip . Default value is the output xcarchive filename * versioned Create a versioned (date and app version) subfolder where to put the archive true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/backup_xcarchive/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The backup_xcarchive action generates the following Lane Variables: SharedValue Description SharedValues::BACKUP_XCARCHIVE_FILE Path to your saved xcarchive (compressed) file To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/backup_xcarchive/#documentation","text":"To show the documentation in your terminal, run fastlane action backup_xcarchive","title":"Documentation"},{"location":"actions/backup_xcarchive/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run backup_xcarchive To pass parameters, make use of the : symbol, for example fastlane run backup_xcarchive parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/backup_xcarchive/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/badge/","text":"badge Automatically add a badge to your app icon Please use the badge plugin instead. This action will add a light/dark badge onto your app icon. You can also provide your custom badge/overlay or add a shield for more customization. More info: https://github.com/HazAT/badge Note : If you want to reset the badge back to default, you can use sh 'git checkout -- /Assets.xcassets/' . badge Supported platforms ios, android, mac Author @DanielGri 4 Examples badge(dark: true) badge(alpha: true) badge(custom: \"/Users/xxx/Desktop/badge.png\") badge(shield: \"Version-0.0.3-blue\", no_badge: true) Parameters Key Description Default dark Adds a dark flavored badge on top of your icon custom Add your custom overlay/badge image no_badge Hides the beta badge shield Add a shield to your app icon from shields.io alpha Adds and alpha badge instead of the default beta one path Sets the root path to look for AppIcons . shield_io_timeout Set custom duration for the timeout of the shields.io request in seconds glob Glob pattern for finding image files alpha_channel Keeps/adds an alpha channel to the icon (useful for android icons) shield_gravity Position of shield on icon. Default: North - Choices include: NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast shield_no_resize Shield image will no longer be resized to aspect fill the full icon. Instead it will only be shrunk to not exceed the icon graphic * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action badge CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run badge To pass parameters, make use of the : symbol, for example fastlane run badge parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"badge"},{"location":"actions/badge/#badge","text":"Automatically add a badge to your app icon Please use the badge plugin instead. This action will add a light/dark badge onto your app icon. You can also provide your custom badge/overlay or add a shield for more customization. More info: https://github.com/HazAT/badge Note : If you want to reset the badge back to default, you can use sh 'git checkout -- /Assets.xcassets/' . badge Supported platforms ios, android, mac Author @DanielGri","title":"badge"},{"location":"actions/badge/#4-examples","text":"badge(dark: true) badge(alpha: true) badge(custom: \"/Users/xxx/Desktop/badge.png\") badge(shield: \"Version-0.0.3-blue\", no_badge: true)","title":"4 Examples"},{"location":"actions/badge/#parameters","text":"Key Description Default dark Adds a dark flavored badge on top of your icon custom Add your custom overlay/badge image no_badge Hides the beta badge shield Add a shield to your app icon from shields.io alpha Adds and alpha badge instead of the default beta one path Sets the root path to look for AppIcons . shield_io_timeout Set custom duration for the timeout of the shields.io request in seconds glob Glob pattern for finding image files alpha_channel Keeps/adds an alpha channel to the icon (useful for android icons) shield_gravity Position of shield on icon. Default: North - Choices include: NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast shield_no_resize Shield image will no longer be resized to aspect fill the full icon. Instead it will only be shrunk to not exceed the icon graphic * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/badge/#documentation","text":"To show the documentation in your terminal, run fastlane action badge","title":"Documentation"},{"location":"actions/badge/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run badge To pass parameters, make use of the : symbol, for example fastlane run badge parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/badge/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/build_and_upload_to_appetize/","text":"build_and_upload_to_appetize Generate and upload an ipa file to appetize.io This should be called from danger. More information in the device_grid guide . build_and_upload_to_appetize Supported platforms ios Author @KrauseFx Parameters Key Description Default xcodebuild Parameters that are passed to the xcodebuild action {} scheme The scheme to build. Can also be passed using the xcodebuild parameter api_token Appetize.io API Token public_key If not provided, a new app will be created. If provided, the existing build will be overwritten note Notes you wish to add to the uploaded app timeout The number of seconds to wait until automatically ending the session due to user inactivity. Must be 30, 60, 90, 120, 180, 300, 600, 1800, 3600 or 7200. Default is 120 * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action build_and_upload_to_appetize CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_and_upload_to_appetize To pass parameters, make use of the : symbol, for example fastlane run build_and_upload_to_appetize parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"build_and_upload_to_appetize"},{"location":"actions/build_and_upload_to_appetize/#build_and_upload_to_appetize","text":"Generate and upload an ipa file to appetize.io This should be called from danger. More information in the device_grid guide . build_and_upload_to_appetize Supported platforms ios Author @KrauseFx","title":"build_and_upload_to_appetize"},{"location":"actions/build_and_upload_to_appetize/#parameters","text":"Key Description Default xcodebuild Parameters that are passed to the xcodebuild action {} scheme The scheme to build. Can also be passed using the xcodebuild parameter api_token Appetize.io API Token public_key If not provided, a new app will be created. If provided, the existing build will be overwritten note Notes you wish to add to the uploaded app timeout The number of seconds to wait until automatically ending the session due to user inactivity. Must be 30, 60, 90, 120, 180, 300, 600, 1800, 3600 or 7200. Default is 120 * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/build_and_upload_to_appetize/#documentation","text":"To show the documentation in your terminal, run fastlane action build_and_upload_to_appetize","title":"Documentation"},{"location":"actions/build_and_upload_to_appetize/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_and_upload_to_appetize To pass parameters, make use of the : symbol, for example fastlane run build_and_upload_to_appetize parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/build_and_upload_to_appetize/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/build_android_app/","text":"build_android_app Alias for the gradle action Run ./gradlew tasks to get a list of all available gradle tasks for your project build_android_app Supported platforms ios, android Author @KrauseFx, @lmirosevic Returns The output of running the gradle task 1 Example gradle( task: \"assemble\", flavor: \"WorldDomination\", build_type: \"Release\" ) To build an AAB use: gradle( task: \"bundle\", flavor: \"WorldDomination\", build_type: \"Release\" ) You can pass multiple gradle tasks: gradle( tasks: [\"assembleDebug\", \"bundleDebug\"] ) You can pass properties to gradle: gradle( # ... properties: { \"exampleNumber\" => 100, \"exampleString\" => \"1.0.0\", # ... } ) You can use this to change the version code and name of your app: gradle( # ... properties: { \"android.injected.version.code\" => 100, \"android.injected.version.name\" => \"1.0.0\", # ... } ) You can use this to automatically sign and zipalign your app: gradle( task: \"assemble\", build_type: \"Release\", print_command: false, properties: { \"android.injected.signing.store.file\" => \"keystore.jks\", \"android.injected.signing.store.password\" => \"store_password\", \"android.injected.signing.key.alias\" => \"key_alias\", \"android.injected.signing.key.password\" => \"key_password\", } ) If you need to pass sensitive information through the gradle action, and don't want the generated command to be printed before it is run, you can suppress that: gradle( # ... print_command: false ) You can also suppress printing the output generated by running the generated Gradle command: gradle( # ... print_command_output: false ) To pass any other CLI flags to gradle use: gradle( # ... flags: \"--exitcode --xml file.xml\" ) Delete the build directory, generated APKs and AABs gradle( task: \"clean\" ) Parameters Key Description Default task The gradle task you want to execute, e.g. assemble , bundle or test . For tasks such as assembleMyFlavorRelease you should use gradle(task: 'assemble', flavor: 'Myflavor', build_type: 'Release') flavor The flavor that you want the task for, e.g. MyFlavor . If you are running the assemble task in a multi-flavor project, and you rely on Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH] then you must specify a flavor here or else this value will be undefined build_type The build type that you want the task for, e.g. Release . Useful for some tasks such as assemble tasks The multiple gradle tasks that you want to execute, e.g. [assembleDebug, bundleDebug] flags All parameter flags you want to pass to the gradle command, e.g. --exitcode --xml file.xml project_dir The root directory of the gradle project . gradle_path The path to your gradlew . If you specify a relative path, it is assumed to be relative to the project_dir properties Gradle properties to be exposed to the gradle script system_properties Gradle system properties to be exposed to the gradle script serial Android serial, which device should be used for this command '' print_command Control whether the generated Gradle command is printed as output before running it (true/false) true print_command_output Control whether the output produced by given Gradle command is printed while running (true/false) true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The build_android_app action generates the following Lane Variables: SharedValue Description SharedValues::GRADLE_APK_OUTPUT_PATH The path to the newly generated apk file. Undefined in a multi-variant assemble scenario SharedValues::GRADLE_ALL_APK_OUTPUT_PATHS When running a multi-variant assemble , the array of signed apk's that were generated SharedValues::GRADLE_FLAVOR The flavor, e.g. MyFlavor SharedValues::GRADLE_BUILD_TYPE The build type, e.g. Release SharedValues::GRADLE_AAB_OUTPUT_PATH The path to the most recent Android app bundle SharedValues::GRADLE_ALL_AAB_OUTPUT_PATHS The paths to the most recent Android app bundles SharedValues::GRADLE_OUTPUT_JSON_OUTPUT_PATH The path to the most recent output.json file SharedValues::GRADLE_ALL_OUTPUT_JSON_OUTPUT_PATHS The path to the newly generated output.json files SharedValues::GRADLE_MAPPING_TXT_OUTPUT_PATH The path to the most recent mapping.txt file SharedValues::GRADLE_ALL_MAPPING_TXT_OUTPUT_PATHS The path to the newly generated mapping.txt files To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action build_android_app CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_android_app To pass parameters, make use of the : symbol, for example fastlane run build_android_app parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"build_android_app"},{"location":"actions/build_android_app/#build_android_app","text":"Alias for the gradle action Run ./gradlew tasks to get a list of all available gradle tasks for your project build_android_app Supported platforms ios, android Author @KrauseFx, @lmirosevic Returns The output of running the gradle task","title":"build_android_app"},{"location":"actions/build_android_app/#1-example","text":"gradle( task: \"assemble\", flavor: \"WorldDomination\", build_type: \"Release\" ) To build an AAB use: gradle( task: \"bundle\", flavor: \"WorldDomination\", build_type: \"Release\" ) You can pass multiple gradle tasks: gradle( tasks: [\"assembleDebug\", \"bundleDebug\"] ) You can pass properties to gradle: gradle( # ... properties: { \"exampleNumber\" => 100, \"exampleString\" => \"1.0.0\", # ... } ) You can use this to change the version code and name of your app: gradle( # ... properties: { \"android.injected.version.code\" => 100, \"android.injected.version.name\" => \"1.0.0\", # ... } ) You can use this to automatically sign and zipalign your app: gradle( task: \"assemble\", build_type: \"Release\", print_command: false, properties: { \"android.injected.signing.store.file\" => \"keystore.jks\", \"android.injected.signing.store.password\" => \"store_password\", \"android.injected.signing.key.alias\" => \"key_alias\", \"android.injected.signing.key.password\" => \"key_password\", } ) If you need to pass sensitive information through the gradle action, and don't want the generated command to be printed before it is run, you can suppress that: gradle( # ... print_command: false ) You can also suppress printing the output generated by running the generated Gradle command: gradle( # ... print_command_output: false ) To pass any other CLI flags to gradle use: gradle( # ... flags: \"--exitcode --xml file.xml\" ) Delete the build directory, generated APKs and AABs gradle( task: \"clean\" )","title":"1 Example"},{"location":"actions/build_android_app/#parameters","text":"Key Description Default task The gradle task you want to execute, e.g. assemble , bundle or test . For tasks such as assembleMyFlavorRelease you should use gradle(task: 'assemble', flavor: 'Myflavor', build_type: 'Release') flavor The flavor that you want the task for, e.g. MyFlavor . If you are running the assemble task in a multi-flavor project, and you rely on Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH] then you must specify a flavor here or else this value will be undefined build_type The build type that you want the task for, e.g. Release . Useful for some tasks such as assemble tasks The multiple gradle tasks that you want to execute, e.g. [assembleDebug, bundleDebug] flags All parameter flags you want to pass to the gradle command, e.g. --exitcode --xml file.xml project_dir The root directory of the gradle project . gradle_path The path to your gradlew . If you specify a relative path, it is assumed to be relative to the project_dir properties Gradle properties to be exposed to the gradle script system_properties Gradle system properties to be exposed to the gradle script serial Android serial, which device should be used for this command '' print_command Control whether the generated Gradle command is printed as output before running it (true/false) true print_command_output Control whether the output produced by given Gradle command is printed while running (true/false) true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/build_android_app/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The build_android_app action generates the following Lane Variables: SharedValue Description SharedValues::GRADLE_APK_OUTPUT_PATH The path to the newly generated apk file. Undefined in a multi-variant assemble scenario SharedValues::GRADLE_ALL_APK_OUTPUT_PATHS When running a multi-variant assemble , the array of signed apk's that were generated SharedValues::GRADLE_FLAVOR The flavor, e.g. MyFlavor SharedValues::GRADLE_BUILD_TYPE The build type, e.g. Release SharedValues::GRADLE_AAB_OUTPUT_PATH The path to the most recent Android app bundle SharedValues::GRADLE_ALL_AAB_OUTPUT_PATHS The paths to the most recent Android app bundles SharedValues::GRADLE_OUTPUT_JSON_OUTPUT_PATH The path to the most recent output.json file SharedValues::GRADLE_ALL_OUTPUT_JSON_OUTPUT_PATHS The path to the newly generated output.json files SharedValues::GRADLE_MAPPING_TXT_OUTPUT_PATH The path to the most recent mapping.txt file SharedValues::GRADLE_ALL_MAPPING_TXT_OUTPUT_PATHS The path to the newly generated mapping.txt files To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/build_android_app/#documentation","text":"To show the documentation in your terminal, run fastlane action build_android_app","title":"Documentation"},{"location":"actions/build_android_app/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_android_app To pass parameters, make use of the : symbol, for example fastlane run build_android_app parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/build_android_app/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/build_app/","text":"build_app Easily build and sign your app (via gym ) Features \u2022 Usage \u2022 Tips gym is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. What's gym? gym builds and packages iOS apps for you. It takes care of all the heavy lifting and makes it super easy to generate a signed ipa or app file \ud83d\udcaa gym is a replacement for shenzhen . Before gym xcodebuild clean archive -archivePath build/MyApp \\ -scheme MyApp xcodebuild -exportArchive \\ -exportFormat ipa \\ -archivePath \"build/MyApp.xcarchive\" \\ -exportPath \"build/MyApp.ipa\" \\ -exportProvisioningProfile \"ProvisioningProfileName\" With gym fastlane gym Why gym ? gym uses the latest APIs to build and sign your application which results in much faster build times. gym Features \ud83d\ude80 gym builds 30% faster than other build tools like shenzhen \ud83c\udfc1 Beautiful inline build output \ud83d\udcd6 Helps you resolve common build errors like code signing issues \ud83d\udea0 Sensible defaults: Automatically detect the project, its schemes and more \ud83d\udd17 Works perfectly with fastlane and other tools \ud83d\udce6 Automatically generates an ipa and a compressed dSYM file \ud83d\ude85 Don't remember any complicated build commands, just gym \ud83d\udd27 Easy and dynamic configuration using parameters and environment variables \ud83d\udcbe Store common build settings in a Gymfile \ud83d\udce4 All archives are stored and accessible in the Xcode Organizer \ud83d\udcbb Supports both iOS and Mac applications Usage fastlane gym That's all you need to build your application. If you want more control, here are some available parameters: fastlane gym --workspace \"Example.xcworkspace\" --scheme \"AppName\" --clean If you need to use a different Xcode installation, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" fastlane gym For a list of all available parameters use fastlane action gym If you run into any issues, use the verbose mode to get more information fastlane gym --verbose Set the right export method if you're not uploading to App Store or TestFlight: fastlane gym --export_method ad-hoc To pass boolean parameters make sure to use gym like this: fastlane gym --include_bitcode true --include_symbols false To access the raw xcodebuild output open ~/Library/Logs/gym Gymfile Since you might want to manually trigger a new build but don't want to specify all the parameters every time, you can store your defaults in a so called Gymfile . Run fastlane gym init to create a new configuration file. Example: scheme(\"Example\") sdk(\"iphoneos9.0\") clean(true) output_directory(\"./build\") # store the ipa in this folder output_name(\"MyApp\") # the name of the ipa file Export options Since Xcode 7, gym is using new Xcode API which allows us to specify export options using plist file. By default gym creates this file for you and you are able to modify some parameters by using export_method , export_team_id , include_symbols or include_bitcode . If you want to have more options, like creating manifest file for app thinning, you can provide your own plist file: export_options(\"./ExportOptions.plist\") or you can provide hash of values directly in the Gymfile : export_options({ method: \"ad-hoc\", manifest: { appURL: \"https://example.com/My App.ipa\", }, thinning: \"\" }) Optional: If gym can't automatically detect the provisioning profiles to use, you can pass a mapping of bundle identifiers to provisioning profiles: build_app( scheme: \"Release\", export_method: \"app-store\", export_options: { provisioningProfiles: { \"com.example.bundleid\" => \"Provisioning Profile Name\", \"com.example.bundleid2\" => \"Provisioning Profile Name 2\" } } ) Note : If you use fastlane with match you don't need to provide those values manually, unless you pass a plist file into export_options For the list of available options run xcodebuild -help . Setup code signing More information on how to get started with codesigning Docs on how to set up your Xcode project Automating the whole process gym works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :beta do scan gym(scheme: \"MyApp\") crashlytics end # error block is executed when a error occurs error do |lane, exception| slack( # message with short human friendly message message: exception.to_s, success: false, # Output containing extended log output payload: { \"Output\" => exception.error_info.to_s } ) end When gym raises an error the error_info property will contain the process output in case you want to display the error in 3rd party tools such as Slack. You can then easily switch between the beta provider (e.g. testflight , hockey , s3 and more). How does it work? gym uses the latest APIs to build and sign your application. The 2 main components are xcodebuild xcpretty When you run gym without the --silent mode it will print out every command it executes. To build the archive gym uses the following command: set -o pipefail && \\ xcodebuild -scheme 'Example' \\ -project './Example.xcodeproj' \\ -configuration 'Release' \\ -destination 'generic/platform=iOS' \\ -archivePath '/Users/felixkrause/Library/Developer/Xcode/Archives/2015-08-11/ExampleProductName 2015-08-11 18.15.30.xcarchive' \\ archive | xcpretty After building the archive it is being checked by gym . If it's valid, it gets packaged up and signed into an ipa file. gym automatically chooses a different packaging method depending on the version of Xcode you're using. Xcode 7 and above /usr/bin/xcrun path/to/xcbuild-safe.sh -exportArchive \\ -exportOptionsPlist '/tmp/gym_config_1442852529.plist' \\ -archivePath '/Users/fkrause/Library/Developer/Xcode/Archives/2015-09-21/App 2015-09-21 09.21.56.xcarchive' \\ -exportPath '/tmp/1442852529' gym makes use of the new Xcode 7 API which allows us to specify the export options using a plist file. You can find more information about the available options by running xcodebuild --help . Using this method there are no workarounds for WatchKit or Swift required, as it uses the same technique Xcode uses when exporting your binary. Note: the xcbuild-safe.sh script wraps around xcodebuild to workaround some incompatibilities. Use 'ProvisionQL' for advanced Quick Look in Finder Install ProvisionQL . It will show you ipa files like this: build_app Supported platforms ios, mac Author @KrauseFx Returns The absolute path to the generated ipa file 5 Examples build_app(scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\") build_app( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", silent: true, clean: true, output_directory: \"path/to/dir\", # Destination directory. Defaults to current directory. output_name: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) sdk: \"iOS 11.1\" # use SDK as the name or path of the base SDK when building the project. ) gym # alias for \"build_app\" build_ios_app # alias for \"build_app (only iOS options)\" build_mac_app # alias for \"build_app (only macOS options)\" Parameters Key Description Default workspace Path to the workspace file project Path to the project file scheme The project's scheme. Make sure it's marked as Shared clean Should the project be cleaned before building it? false output_directory The directory in which the ipa file should be stored in . output_name The name of the resulting ipa file configuration The configuration to use when building the app. Defaults to 'Release' * silent Hide all information that's not necessary while building false codesigning_identity The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH' skip_package_ipa Should we skip packaging the ipa? false skip_package_pkg Should we skip packaging the pkg? false include_symbols Should the ipa file include symbols? include_bitcode Should the ipa file include bitcode? export_method Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application export_options Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options export_xcargs Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" skip_build_archive Export ipa from previously built xcarchive. Uses archive_path as source skip_archive After building, don't archive, effectively not including -archivePath param skip_codesigning Build without codesigning catalyst_platform Platform to build when using a Catalyst enabled app. Valid values are: ios, macos installer_cert_name Full name of 3rd Party Mac Developer Installer or Developer ID Installer certificate. Example: 3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ) build_path The directory in which the archive should be stored in archive_path The path to the created archive derived_data_path The directory where built products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false result_bundle_path Path to the result bundle directory to create. Ignored if result_bundle if false buildlog_path The directory where to store the build log * sdk The SDK that should be used for building the application toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a) destination Use a custom destination for building the app export_team_id Optional: Sometimes you need to specify a team id when exporting the ipa file xcargs Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * build_timing_summary Create a build timing summary false disable_xcpretty DEPRECATED! Use xcodebuild_formatter: '' instead - Disable xcpretty formatting of build output xcpretty_test_format Use the test (RSpec style) format for build output xcpretty_formatter A custom xcpretty formatter to use xcpretty_report_junit Have xcpretty create a JUnit-style XML report at the provided path xcpretty_report_html Have xcpretty create a simple HTML report at the provided path xcpretty_report_json Have xcpretty create a JSON compilation database at the provided path xcpretty_utf Have xcpretty use unicode encoding when reporting builds analyze_build_time Analyze the project build time and store the output in 'culprits.txt' file skip_profile_detection Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used false xcodebuild_command Allows for override of the default xcodebuild command xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The build_app action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::PKG_OUTPUT_PATH The path to the newly generated pkg file SharedValues::DSYM_OUTPUT_PATH The path to the dSYM files SharedValues::XCODEBUILD_ARCHIVE The path to the xcodebuild archive To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action build_app CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_app To pass parameters, make use of the : symbol, for example fastlane run build_app parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"build_app"},{"location":"actions/build_app/#build_app","text":"Easily build and sign your app (via gym ) Features \u2022 Usage \u2022 Tips","title":"build_app"},{"location":"actions/build_app/#whats-gym","text":"gym builds and packages iOS apps for you. It takes care of all the heavy lifting and makes it super easy to generate a signed ipa or app file \ud83d\udcaa gym is a replacement for shenzhen .","title":"What's gym?"},{"location":"actions/build_app/#usage","text":"fastlane gym That's all you need to build your application. If you want more control, here are some available parameters: fastlane gym --workspace \"Example.xcworkspace\" --scheme \"AppName\" --clean If you need to use a different Xcode installation, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" fastlane gym For a list of all available parameters use fastlane action gym If you run into any issues, use the verbose mode to get more information fastlane gym --verbose Set the right export method if you're not uploading to App Store or TestFlight: fastlane gym --export_method ad-hoc To pass boolean parameters make sure to use gym like this: fastlane gym --include_bitcode true --include_symbols false To access the raw xcodebuild output open ~/Library/Logs/gym","title":"Usage"},{"location":"actions/build_app/#gymfile","text":"Since you might want to manually trigger a new build but don't want to specify all the parameters every time, you can store your defaults in a so called Gymfile . Run fastlane gym init to create a new configuration file. Example: scheme(\"Example\") sdk(\"iphoneos9.0\") clean(true) output_directory(\"./build\") # store the ipa in this folder output_name(\"MyApp\") # the name of the ipa file","title":"Gymfile"},{"location":"actions/build_app/#export-options","text":"Since Xcode 7, gym is using new Xcode API which allows us to specify export options using plist file. By default gym creates this file for you and you are able to modify some parameters by using export_method , export_team_id , include_symbols or include_bitcode . If you want to have more options, like creating manifest file for app thinning, you can provide your own plist file: export_options(\"./ExportOptions.plist\") or you can provide hash of values directly in the Gymfile : export_options({ method: \"ad-hoc\", manifest: { appURL: \"https://example.com/My App.ipa\", }, thinning: \"\" }) Optional: If gym can't automatically detect the provisioning profiles to use, you can pass a mapping of bundle identifiers to provisioning profiles: build_app( scheme: \"Release\", export_method: \"app-store\", export_options: { provisioningProfiles: { \"com.example.bundleid\" => \"Provisioning Profile Name\", \"com.example.bundleid2\" => \"Provisioning Profile Name 2\" } } ) Note : If you use fastlane with match you don't need to provide those values manually, unless you pass a plist file into export_options For the list of available options run xcodebuild -help .","title":"Export options"},{"location":"actions/build_app/#setup-code-signing","text":"More information on how to get started with codesigning Docs on how to set up your Xcode project","title":"Setup code signing"},{"location":"actions/build_app/#automating-the-whole-process","text":"gym works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :beta do scan gym(scheme: \"MyApp\") crashlytics end # error block is executed when a error occurs error do |lane, exception| slack( # message with short human friendly message message: exception.to_s, success: false, # Output containing extended log output payload: { \"Output\" => exception.error_info.to_s } ) end When gym raises an error the error_info property will contain the process output in case you want to display the error in 3rd party tools such as Slack. You can then easily switch between the beta provider (e.g. testflight , hockey , s3 and more).","title":"Automating the whole process"},{"location":"actions/build_app/#how-does-it-work","text":"gym uses the latest APIs to build and sign your application. The 2 main components are xcodebuild xcpretty When you run gym without the --silent mode it will print out every command it executes. To build the archive gym uses the following command: set -o pipefail && \\ xcodebuild -scheme 'Example' \\ -project './Example.xcodeproj' \\ -configuration 'Release' \\ -destination 'generic/platform=iOS' \\ -archivePath '/Users/felixkrause/Library/Developer/Xcode/Archives/2015-08-11/ExampleProductName 2015-08-11 18.15.30.xcarchive' \\ archive | xcpretty After building the archive it is being checked by gym . If it's valid, it gets packaged up and signed into an ipa file. gym automatically chooses a different packaging method depending on the version of Xcode you're using.","title":"How does it work?"},{"location":"actions/build_app/#use-provisionql-for-advanced-quick-look-in-finder","text":"Install ProvisionQL . It will show you ipa files like this: build_app Supported platforms ios, mac Author @KrauseFx Returns The absolute path to the generated ipa file","title":"Use 'ProvisionQL' for advanced Quick Look in Finder"},{"location":"actions/build_app/#5-examples","text":"build_app(scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\") build_app( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", silent: true, clean: true, output_directory: \"path/to/dir\", # Destination directory. Defaults to current directory. output_name: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) sdk: \"iOS 11.1\" # use SDK as the name or path of the base SDK when building the project. ) gym # alias for \"build_app\" build_ios_app # alias for \"build_app (only iOS options)\" build_mac_app # alias for \"build_app (only macOS options)\"","title":"5 Examples"},{"location":"actions/build_app/#parameters","text":"Key Description Default workspace Path to the workspace file project Path to the project file scheme The project's scheme. Make sure it's marked as Shared clean Should the project be cleaned before building it? false output_directory The directory in which the ipa file should be stored in . output_name The name of the resulting ipa file configuration The configuration to use when building the app. Defaults to 'Release' * silent Hide all information that's not necessary while building false codesigning_identity The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH' skip_package_ipa Should we skip packaging the ipa? false skip_package_pkg Should we skip packaging the pkg? false include_symbols Should the ipa file include symbols? include_bitcode Should the ipa file include bitcode? export_method Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application export_options Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options export_xcargs Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" skip_build_archive Export ipa from previously built xcarchive. Uses archive_path as source skip_archive After building, don't archive, effectively not including -archivePath param skip_codesigning Build without codesigning catalyst_platform Platform to build when using a Catalyst enabled app. Valid values are: ios, macos installer_cert_name Full name of 3rd Party Mac Developer Installer or Developer ID Installer certificate. Example: 3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ) build_path The directory in which the archive should be stored in archive_path The path to the created archive derived_data_path The directory where built products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false result_bundle_path Path to the result bundle directory to create. Ignored if result_bundle if false buildlog_path The directory where to store the build log * sdk The SDK that should be used for building the application toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a) destination Use a custom destination for building the app export_team_id Optional: Sometimes you need to specify a team id when exporting the ipa file xcargs Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * build_timing_summary Create a build timing summary false disable_xcpretty DEPRECATED! Use xcodebuild_formatter: '' instead - Disable xcpretty formatting of build output xcpretty_test_format Use the test (RSpec style) format for build output xcpretty_formatter A custom xcpretty formatter to use xcpretty_report_junit Have xcpretty create a JUnit-style XML report at the provided path xcpretty_report_html Have xcpretty create a simple HTML report at the provided path xcpretty_report_json Have xcpretty create a JSON compilation database at the provided path xcpretty_utf Have xcpretty use unicode encoding when reporting builds analyze_build_time Analyze the project build time and store the output in 'culprits.txt' file skip_profile_detection Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used false xcodebuild_command Allows for override of the default xcodebuild command xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/build_app/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The build_app action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::PKG_OUTPUT_PATH The path to the newly generated pkg file SharedValues::DSYM_OUTPUT_PATH The path to the dSYM files SharedValues::XCODEBUILD_ARCHIVE The path to the xcodebuild archive To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/build_app/#documentation","text":"To show the documentation in your terminal, run fastlane action build_app","title":"Documentation"},{"location":"actions/build_app/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_app To pass parameters, make use of the : symbol, for example fastlane run build_app parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/build_app/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/build_ios_app/","text":"build_ios_app Alias for the build_app action but only for iOS Features \u2022 Usage \u2022 Tips gym is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. What's gym? gym builds and packages iOS apps for you. It takes care of all the heavy lifting and makes it super easy to generate a signed ipa or app file \ud83d\udcaa gym is a replacement for shenzhen . Before gym xcodebuild clean archive -archivePath build/MyApp \\ -scheme MyApp xcodebuild -exportArchive \\ -exportFormat ipa \\ -archivePath \"build/MyApp.xcarchive\" \\ -exportPath \"build/MyApp.ipa\" \\ -exportProvisioningProfile \"ProvisioningProfileName\" With gym fastlane gym Why gym ? gym uses the latest APIs to build and sign your application which results in much faster build times. gym Features \ud83d\ude80 gym builds 30% faster than other build tools like shenzhen \ud83c\udfc1 Beautiful inline build output \ud83d\udcd6 Helps you resolve common build errors like code signing issues \ud83d\udea0 Sensible defaults: Automatically detect the project, its schemes and more \ud83d\udd17 Works perfectly with fastlane and other tools \ud83d\udce6 Automatically generates an ipa and a compressed dSYM file \ud83d\ude85 Don't remember any complicated build commands, just gym \ud83d\udd27 Easy and dynamic configuration using parameters and environment variables \ud83d\udcbe Store common build settings in a Gymfile \ud83d\udce4 All archives are stored and accessible in the Xcode Organizer \ud83d\udcbb Supports both iOS and Mac applications Usage fastlane gym That's all you need to build your application. If you want more control, here are some available parameters: fastlane gym --workspace \"Example.xcworkspace\" --scheme \"AppName\" --clean If you need to use a different Xcode installation, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" fastlane gym For a list of all available parameters use fastlane action gym If you run into any issues, use the verbose mode to get more information fastlane gym --verbose Set the right export method if you're not uploading to App Store or TestFlight: fastlane gym --export_method ad-hoc To pass boolean parameters make sure to use gym like this: fastlane gym --include_bitcode true --include_symbols false To access the raw xcodebuild output open ~/Library/Logs/gym Gymfile Since you might want to manually trigger a new build but don't want to specify all the parameters every time, you can store your defaults in a so called Gymfile . Run fastlane gym init to create a new configuration file. Example: scheme(\"Example\") sdk(\"iphoneos9.0\") clean(true) output_directory(\"./build\") # store the ipa in this folder output_name(\"MyApp\") # the name of the ipa file Export options Since Xcode 7, gym is using new Xcode API which allows us to specify export options using plist file. By default gym creates this file for you and you are able to modify some parameters by using export_method , export_team_id , include_symbols or include_bitcode . If you want to have more options, like creating manifest file for app thinning, you can provide your own plist file: export_options(\"./ExportOptions.plist\") or you can provide hash of values directly in the Gymfile : export_options({ method: \"ad-hoc\", manifest: { appURL: \"https://example.com/My App.ipa\", }, thinning: \"\" }) Optional: If gym can't automatically detect the provisioning profiles to use, you can pass a mapping of bundle identifiers to provisioning profiles: build_app( scheme: \"Release\", export_method: \"app-store\", export_options: { provisioningProfiles: { \"com.example.bundleid\" => \"Provisioning Profile Name\", \"com.example.bundleid2\" => \"Provisioning Profile Name 2\" } } ) Note : If you use fastlane with match you don't need to provide those values manually, unless you pass a plist file into export_options For the list of available options run xcodebuild -help . Setup code signing More information on how to get started with codesigning Docs on how to set up your Xcode project Automating the whole process gym works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :beta do scan gym(scheme: \"MyApp\") crashlytics end # error block is executed when a error occurs error do |lane, exception| slack( # message with short human friendly message message: exception.to_s, success: false, # Output containing extended log output payload: { \"Output\" => exception.error_info.to_s } ) end When gym raises an error the error_info property will contain the process output in case you want to display the error in 3rd party tools such as Slack. You can then easily switch between the beta provider (e.g. testflight , hockey , s3 and more). How does it work? gym uses the latest APIs to build and sign your application. The 2 main components are xcodebuild xcpretty When you run gym without the --silent mode it will print out every command it executes. To build the archive gym uses the following command: set -o pipefail && \\ xcodebuild -scheme 'Example' \\ -project './Example.xcodeproj' \\ -configuration 'Release' \\ -destination 'generic/platform=iOS' \\ -archivePath '/Users/felixkrause/Library/Developer/Xcode/Archives/2015-08-11/ExampleProductName 2015-08-11 18.15.30.xcarchive' \\ archive | xcpretty After building the archive it is being checked by gym . If it's valid, it gets packaged up and signed into an ipa file. gym automatically chooses a different packaging method depending on the version of Xcode you're using. Xcode 7 and above /usr/bin/xcrun path/to/xcbuild-safe.sh -exportArchive \\ -exportOptionsPlist '/tmp/gym_config_1442852529.plist' \\ -archivePath '/Users/fkrause/Library/Developer/Xcode/Archives/2015-09-21/App 2015-09-21 09.21.56.xcarchive' \\ -exportPath '/tmp/1442852529' gym makes use of the new Xcode 7 API which allows us to specify the export options using a plist file. You can find more information about the available options by running xcodebuild --help . Using this method there are no workarounds for WatchKit or Swift required, as it uses the same technique Xcode uses when exporting your binary. Note: the xcbuild-safe.sh script wraps around xcodebuild to workaround some incompatibilities. Use 'ProvisionQL' for advanced Quick Look in Finder Install ProvisionQL . It will show you ipa files like this: build_ios_app Supported platforms ios Author @KrauseFx Returns The absolute path to the generated ipa file 5 Examples build_app(scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\") build_app( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", silent: true, clean: true, output_directory: \"path/to/dir\", # Destination directory. Defaults to current directory. output_name: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) sdk: \"iOS 11.1\" # use SDK as the name or path of the base SDK when building the project. ) gym # alias for \"build_app\" build_ios_app # alias for \"build_app (only iOS options)\" build_mac_app # alias for \"build_app (only macOS options)\" Parameters Key Description Default workspace Path to the workspace file project Path to the project file scheme The project's scheme. Make sure it's marked as Shared clean Should the project be cleaned before building it? false output_directory The directory in which the ipa file should be stored in . output_name The name of the resulting ipa file configuration The configuration to use when building the app. Defaults to 'Release' * silent Hide all information that's not necessary while building false codesigning_identity The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH' skip_package_ipa Should we skip packaging the ipa? false include_symbols Should the ipa file include symbols? include_bitcode Should the ipa file include bitcode? export_method Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application export_options Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options export_xcargs Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" skip_build_archive Export ipa from previously built xcarchive. Uses archive_path as source skip_archive After building, don't archive, effectively not including -archivePath param skip_codesigning Build without codesigning build_path The directory in which the archive should be stored in archive_path The path to the created archive derived_data_path The directory where built products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false result_bundle_path Path to the result bundle directory to create. Ignored if result_bundle if false buildlog_path The directory where to store the build log * sdk The SDK that should be used for building the application toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a) destination Use a custom destination for building the app export_team_id Optional: Sometimes you need to specify a team id when exporting the ipa file xcargs Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * build_timing_summary Create a build timing summary false disable_xcpretty DEPRECATED! Use xcodebuild_formatter: '' instead - Disable xcpretty formatting of build output xcpretty_test_format Use the test (RSpec style) format for build output xcpretty_formatter A custom xcpretty formatter to use xcpretty_report_junit Have xcpretty create a JUnit-style XML report at the provided path xcpretty_report_html Have xcpretty create a simple HTML report at the provided path xcpretty_report_json Have xcpretty create a JSON compilation database at the provided path xcpretty_utf Have xcpretty use unicode encoding when reporting builds analyze_build_time Analyze the project build time and store the output in 'culprits.txt' file skip_profile_detection Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used false xcodebuild_command Allows for override of the default xcodebuild command xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The build_ios_app action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::PKG_OUTPUT_PATH The path to the newly generated pkg file SharedValues::DSYM_OUTPUT_PATH The path to the dSYM files SharedValues::XCODEBUILD_ARCHIVE The path to the xcodebuild archive To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action build_ios_app CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_ios_app To pass parameters, make use of the : symbol, for example fastlane run build_ios_app parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"build_ios_app"},{"location":"actions/build_ios_app/#build_ios_app","text":"Alias for the build_app action but only for iOS Features \u2022 Usage \u2022 Tips","title":"build_ios_app"},{"location":"actions/build_ios_app/#whats-gym","text":"gym builds and packages iOS apps for you. It takes care of all the heavy lifting and makes it super easy to generate a signed ipa or app file \ud83d\udcaa gym is a replacement for shenzhen .","title":"What's gym?"},{"location":"actions/build_ios_app/#usage","text":"fastlane gym That's all you need to build your application. If you want more control, here are some available parameters: fastlane gym --workspace \"Example.xcworkspace\" --scheme \"AppName\" --clean If you need to use a different Xcode installation, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" fastlane gym For a list of all available parameters use fastlane action gym If you run into any issues, use the verbose mode to get more information fastlane gym --verbose Set the right export method if you're not uploading to App Store or TestFlight: fastlane gym --export_method ad-hoc To pass boolean parameters make sure to use gym like this: fastlane gym --include_bitcode true --include_symbols false To access the raw xcodebuild output open ~/Library/Logs/gym","title":"Usage"},{"location":"actions/build_ios_app/#gymfile","text":"Since you might want to manually trigger a new build but don't want to specify all the parameters every time, you can store your defaults in a so called Gymfile . Run fastlane gym init to create a new configuration file. Example: scheme(\"Example\") sdk(\"iphoneos9.0\") clean(true) output_directory(\"./build\") # store the ipa in this folder output_name(\"MyApp\") # the name of the ipa file","title":"Gymfile"},{"location":"actions/build_ios_app/#export-options","text":"Since Xcode 7, gym is using new Xcode API which allows us to specify export options using plist file. By default gym creates this file for you and you are able to modify some parameters by using export_method , export_team_id , include_symbols or include_bitcode . If you want to have more options, like creating manifest file for app thinning, you can provide your own plist file: export_options(\"./ExportOptions.plist\") or you can provide hash of values directly in the Gymfile : export_options({ method: \"ad-hoc\", manifest: { appURL: \"https://example.com/My App.ipa\", }, thinning: \"\" }) Optional: If gym can't automatically detect the provisioning profiles to use, you can pass a mapping of bundle identifiers to provisioning profiles: build_app( scheme: \"Release\", export_method: \"app-store\", export_options: { provisioningProfiles: { \"com.example.bundleid\" => \"Provisioning Profile Name\", \"com.example.bundleid2\" => \"Provisioning Profile Name 2\" } } ) Note : If you use fastlane with match you don't need to provide those values manually, unless you pass a plist file into export_options For the list of available options run xcodebuild -help .","title":"Export options"},{"location":"actions/build_ios_app/#setup-code-signing","text":"More information on how to get started with codesigning Docs on how to set up your Xcode project","title":"Setup code signing"},{"location":"actions/build_ios_app/#automating-the-whole-process","text":"gym works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :beta do scan gym(scheme: \"MyApp\") crashlytics end # error block is executed when a error occurs error do |lane, exception| slack( # message with short human friendly message message: exception.to_s, success: false, # Output containing extended log output payload: { \"Output\" => exception.error_info.to_s } ) end When gym raises an error the error_info property will contain the process output in case you want to display the error in 3rd party tools such as Slack. You can then easily switch between the beta provider (e.g. testflight , hockey , s3 and more).","title":"Automating the whole process"},{"location":"actions/build_ios_app/#how-does-it-work","text":"gym uses the latest APIs to build and sign your application. The 2 main components are xcodebuild xcpretty When you run gym without the --silent mode it will print out every command it executes. To build the archive gym uses the following command: set -o pipefail && \\ xcodebuild -scheme 'Example' \\ -project './Example.xcodeproj' \\ -configuration 'Release' \\ -destination 'generic/platform=iOS' \\ -archivePath '/Users/felixkrause/Library/Developer/Xcode/Archives/2015-08-11/ExampleProductName 2015-08-11 18.15.30.xcarchive' \\ archive | xcpretty After building the archive it is being checked by gym . If it's valid, it gets packaged up and signed into an ipa file. gym automatically chooses a different packaging method depending on the version of Xcode you're using.","title":"How does it work?"},{"location":"actions/build_ios_app/#use-provisionql-for-advanced-quick-look-in-finder","text":"Install ProvisionQL . It will show you ipa files like this: build_ios_app Supported platforms ios Author @KrauseFx Returns The absolute path to the generated ipa file","title":"Use 'ProvisionQL' for advanced Quick Look in Finder"},{"location":"actions/build_ios_app/#5-examples","text":"build_app(scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\") build_app( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", silent: true, clean: true, output_directory: \"path/to/dir\", # Destination directory. Defaults to current directory. output_name: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) sdk: \"iOS 11.1\" # use SDK as the name or path of the base SDK when building the project. ) gym # alias for \"build_app\" build_ios_app # alias for \"build_app (only iOS options)\" build_mac_app # alias for \"build_app (only macOS options)\"","title":"5 Examples"},{"location":"actions/build_ios_app/#parameters","text":"Key Description Default workspace Path to the workspace file project Path to the project file scheme The project's scheme. Make sure it's marked as Shared clean Should the project be cleaned before building it? false output_directory The directory in which the ipa file should be stored in . output_name The name of the resulting ipa file configuration The configuration to use when building the app. Defaults to 'Release' * silent Hide all information that's not necessary while building false codesigning_identity The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH' skip_package_ipa Should we skip packaging the ipa? false include_symbols Should the ipa file include symbols? include_bitcode Should the ipa file include bitcode? export_method Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application export_options Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options export_xcargs Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" skip_build_archive Export ipa from previously built xcarchive. Uses archive_path as source skip_archive After building, don't archive, effectively not including -archivePath param skip_codesigning Build without codesigning build_path The directory in which the archive should be stored in archive_path The path to the created archive derived_data_path The directory where built products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false result_bundle_path Path to the result bundle directory to create. Ignored if result_bundle if false buildlog_path The directory where to store the build log * sdk The SDK that should be used for building the application toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a) destination Use a custom destination for building the app export_team_id Optional: Sometimes you need to specify a team id when exporting the ipa file xcargs Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * build_timing_summary Create a build timing summary false disable_xcpretty DEPRECATED! Use xcodebuild_formatter: '' instead - Disable xcpretty formatting of build output xcpretty_test_format Use the test (RSpec style) format for build output xcpretty_formatter A custom xcpretty formatter to use xcpretty_report_junit Have xcpretty create a JUnit-style XML report at the provided path xcpretty_report_html Have xcpretty create a simple HTML report at the provided path xcpretty_report_json Have xcpretty create a JSON compilation database at the provided path xcpretty_utf Have xcpretty use unicode encoding when reporting builds analyze_build_time Analyze the project build time and store the output in 'culprits.txt' file skip_profile_detection Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used false xcodebuild_command Allows for override of the default xcodebuild command xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/build_ios_app/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The build_ios_app action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::PKG_OUTPUT_PATH The path to the newly generated pkg file SharedValues::DSYM_OUTPUT_PATH The path to the dSYM files SharedValues::XCODEBUILD_ARCHIVE The path to the xcodebuild archive To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/build_ios_app/#documentation","text":"To show the documentation in your terminal, run fastlane action build_ios_app","title":"Documentation"},{"location":"actions/build_ios_app/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_ios_app To pass parameters, make use of the : symbol, for example fastlane run build_ios_app parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/build_ios_app/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/build_mac_app/","text":"build_mac_app Alias for the build_app action but only for macOS Features \u2022 Usage \u2022 Tips gym is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. What's gym? gym builds and packages iOS apps for you. It takes care of all the heavy lifting and makes it super easy to generate a signed ipa or app file \ud83d\udcaa gym is a replacement for shenzhen . Before gym xcodebuild clean archive -archivePath build/MyApp \\ -scheme MyApp xcodebuild -exportArchive \\ -exportFormat ipa \\ -archivePath \"build/MyApp.xcarchive\" \\ -exportPath \"build/MyApp.ipa\" \\ -exportProvisioningProfile \"ProvisioningProfileName\" With gym fastlane gym Why gym ? gym uses the latest APIs to build and sign your application which results in much faster build times. gym Features \ud83d\ude80 gym builds 30% faster than other build tools like shenzhen \ud83c\udfc1 Beautiful inline build output \ud83d\udcd6 Helps you resolve common build errors like code signing issues \ud83d\udea0 Sensible defaults: Automatically detect the project, its schemes and more \ud83d\udd17 Works perfectly with fastlane and other tools \ud83d\udce6 Automatically generates an ipa and a compressed dSYM file \ud83d\ude85 Don't remember any complicated build commands, just gym \ud83d\udd27 Easy and dynamic configuration using parameters and environment variables \ud83d\udcbe Store common build settings in a Gymfile \ud83d\udce4 All archives are stored and accessible in the Xcode Organizer \ud83d\udcbb Supports both iOS and Mac applications Usage fastlane gym That's all you need to build your application. If you want more control, here are some available parameters: fastlane gym --workspace \"Example.xcworkspace\" --scheme \"AppName\" --clean If you need to use a different Xcode installation, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" fastlane gym For a list of all available parameters use fastlane action gym If you run into any issues, use the verbose mode to get more information fastlane gym --verbose Set the right export method if you're not uploading to App Store or TestFlight: fastlane gym --export_method ad-hoc To pass boolean parameters make sure to use gym like this: fastlane gym --include_bitcode true --include_symbols false To access the raw xcodebuild output open ~/Library/Logs/gym Gymfile Since you might want to manually trigger a new build but don't want to specify all the parameters every time, you can store your defaults in a so called Gymfile . Run fastlane gym init to create a new configuration file. Example: scheme(\"Example\") sdk(\"iphoneos9.0\") clean(true) output_directory(\"./build\") # store the ipa in this folder output_name(\"MyApp\") # the name of the ipa file Export options Since Xcode 7, gym is using new Xcode API which allows us to specify export options using plist file. By default gym creates this file for you and you are able to modify some parameters by using export_method , export_team_id , include_symbols or include_bitcode . If you want to have more options, like creating manifest file for app thinning, you can provide your own plist file: export_options(\"./ExportOptions.plist\") or you can provide hash of values directly in the Gymfile : export_options({ method: \"ad-hoc\", manifest: { appURL: \"https://example.com/My App.ipa\", }, thinning: \"\" }) Optional: If gym can't automatically detect the provisioning profiles to use, you can pass a mapping of bundle identifiers to provisioning profiles: build_app( scheme: \"Release\", export_method: \"app-store\", export_options: { provisioningProfiles: { \"com.example.bundleid\" => \"Provisioning Profile Name\", \"com.example.bundleid2\" => \"Provisioning Profile Name 2\" } } ) Note : If you use fastlane with match you don't need to provide those values manually, unless you pass a plist file into export_options For the list of available options run xcodebuild -help . Setup code signing More information on how to get started with codesigning Docs on how to set up your Xcode project Automating the whole process gym works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :beta do scan gym(scheme: \"MyApp\") crashlytics end # error block is executed when a error occurs error do |lane, exception| slack( # message with short human friendly message message: exception.to_s, success: false, # Output containing extended log output payload: { \"Output\" => exception.error_info.to_s } ) end When gym raises an error the error_info property will contain the process output in case you want to display the error in 3rd party tools such as Slack. You can then easily switch between the beta provider (e.g. testflight , hockey , s3 and more). How does it work? gym uses the latest APIs to build and sign your application. The 2 main components are xcodebuild xcpretty When you run gym without the --silent mode it will print out every command it executes. To build the archive gym uses the following command: set -o pipefail && \\ xcodebuild -scheme 'Example' \\ -project './Example.xcodeproj' \\ -configuration 'Release' \\ -destination 'generic/platform=iOS' \\ -archivePath '/Users/felixkrause/Library/Developer/Xcode/Archives/2015-08-11/ExampleProductName 2015-08-11 18.15.30.xcarchive' \\ archive | xcpretty After building the archive it is being checked by gym . If it's valid, it gets packaged up and signed into an ipa file. gym automatically chooses a different packaging method depending on the version of Xcode you're using. Xcode 7 and above /usr/bin/xcrun path/to/xcbuild-safe.sh -exportArchive \\ -exportOptionsPlist '/tmp/gym_config_1442852529.plist' \\ -archivePath '/Users/fkrause/Library/Developer/Xcode/Archives/2015-09-21/App 2015-09-21 09.21.56.xcarchive' \\ -exportPath '/tmp/1442852529' gym makes use of the new Xcode 7 API which allows us to specify the export options using a plist file. You can find more information about the available options by running xcodebuild --help . Using this method there are no workarounds for WatchKit or Swift required, as it uses the same technique Xcode uses when exporting your binary. Note: the xcbuild-safe.sh script wraps around xcodebuild to workaround some incompatibilities. Use 'ProvisionQL' for advanced Quick Look in Finder Install ProvisionQL . It will show you ipa files like this: build_mac_app Supported platforms mac Author @KrauseFx Returns The absolute path to the generated ipa file 5 Examples build_app(scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\") build_app( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", silent: true, clean: true, output_directory: \"path/to/dir\", # Destination directory. Defaults to current directory. output_name: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) sdk: \"iOS 11.1\" # use SDK as the name or path of the base SDK when building the project. ) gym # alias for \"build_app\" build_ios_app # alias for \"build_app (only iOS options)\" build_mac_app # alias for \"build_app (only macOS options)\" Parameters Key Description Default workspace Path to the workspace file project Path to the project file scheme The project's scheme. Make sure it's marked as Shared clean Should the project be cleaned before building it? false output_directory The directory in which the ipa file should be stored in . output_name The name of the resulting ipa file configuration The configuration to use when building the app. Defaults to 'Release' * silent Hide all information that's not necessary while building false codesigning_identity The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH' skip_package_pkg Should we skip packaging the pkg? false include_symbols Should the ipa file include symbols? include_bitcode Should the ipa file include bitcode? export_method Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application export_options Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options export_xcargs Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" skip_build_archive Export ipa from previously built xcarchive. Uses archive_path as source skip_archive After building, don't archive, effectively not including -archivePath param skip_codesigning Build without codesigning installer_cert_name Full name of 3rd Party Mac Developer Installer or Developer ID Installer certificate. Example: 3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ) build_path The directory in which the archive should be stored in archive_path The path to the created archive derived_data_path The directory where built products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false result_bundle_path Path to the result bundle directory to create. Ignored if result_bundle if false buildlog_path The directory where to store the build log * sdk The SDK that should be used for building the application toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a) destination Use a custom destination for building the app export_team_id Optional: Sometimes you need to specify a team id when exporting the ipa file xcargs Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * build_timing_summary Create a build timing summary false disable_xcpretty DEPRECATED! Use xcodebuild_formatter: '' instead - Disable xcpretty formatting of build output xcpretty_test_format Use the test (RSpec style) format for build output xcpretty_formatter A custom xcpretty formatter to use xcpretty_report_junit Have xcpretty create a JUnit-style XML report at the provided path xcpretty_report_html Have xcpretty create a simple HTML report at the provided path xcpretty_report_json Have xcpretty create a JSON compilation database at the provided path xcpretty_utf Have xcpretty use unicode encoding when reporting builds analyze_build_time Analyze the project build time and store the output in 'culprits.txt' file skip_profile_detection Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used false xcodebuild_command Allows for override of the default xcodebuild command xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The build_mac_app action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::PKG_OUTPUT_PATH The path to the newly generated pkg file SharedValues::DSYM_OUTPUT_PATH The path to the dSYM files SharedValues::XCODEBUILD_ARCHIVE The path to the xcodebuild archive To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action build_mac_app CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_mac_app To pass parameters, make use of the : symbol, for example fastlane run build_mac_app parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"build_mac_app"},{"location":"actions/build_mac_app/#build_mac_app","text":"Alias for the build_app action but only for macOS Features \u2022 Usage \u2022 Tips","title":"build_mac_app"},{"location":"actions/build_mac_app/#whats-gym","text":"gym builds and packages iOS apps for you. It takes care of all the heavy lifting and makes it super easy to generate a signed ipa or app file \ud83d\udcaa gym is a replacement for shenzhen .","title":"What's gym?"},{"location":"actions/build_mac_app/#usage","text":"fastlane gym That's all you need to build your application. If you want more control, here are some available parameters: fastlane gym --workspace \"Example.xcworkspace\" --scheme \"AppName\" --clean If you need to use a different Xcode installation, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" fastlane gym For a list of all available parameters use fastlane action gym If you run into any issues, use the verbose mode to get more information fastlane gym --verbose Set the right export method if you're not uploading to App Store or TestFlight: fastlane gym --export_method ad-hoc To pass boolean parameters make sure to use gym like this: fastlane gym --include_bitcode true --include_symbols false To access the raw xcodebuild output open ~/Library/Logs/gym","title":"Usage"},{"location":"actions/build_mac_app/#gymfile","text":"Since you might want to manually trigger a new build but don't want to specify all the parameters every time, you can store your defaults in a so called Gymfile . Run fastlane gym init to create a new configuration file. Example: scheme(\"Example\") sdk(\"iphoneos9.0\") clean(true) output_directory(\"./build\") # store the ipa in this folder output_name(\"MyApp\") # the name of the ipa file","title":"Gymfile"},{"location":"actions/build_mac_app/#export-options","text":"Since Xcode 7, gym is using new Xcode API which allows us to specify export options using plist file. By default gym creates this file for you and you are able to modify some parameters by using export_method , export_team_id , include_symbols or include_bitcode . If you want to have more options, like creating manifest file for app thinning, you can provide your own plist file: export_options(\"./ExportOptions.plist\") or you can provide hash of values directly in the Gymfile : export_options({ method: \"ad-hoc\", manifest: { appURL: \"https://example.com/My App.ipa\", }, thinning: \"\" }) Optional: If gym can't automatically detect the provisioning profiles to use, you can pass a mapping of bundle identifiers to provisioning profiles: build_app( scheme: \"Release\", export_method: \"app-store\", export_options: { provisioningProfiles: { \"com.example.bundleid\" => \"Provisioning Profile Name\", \"com.example.bundleid2\" => \"Provisioning Profile Name 2\" } } ) Note : If you use fastlane with match you don't need to provide those values manually, unless you pass a plist file into export_options For the list of available options run xcodebuild -help .","title":"Export options"},{"location":"actions/build_mac_app/#setup-code-signing","text":"More information on how to get started with codesigning Docs on how to set up your Xcode project","title":"Setup code signing"},{"location":"actions/build_mac_app/#automating-the-whole-process","text":"gym works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :beta do scan gym(scheme: \"MyApp\") crashlytics end # error block is executed when a error occurs error do |lane, exception| slack( # message with short human friendly message message: exception.to_s, success: false, # Output containing extended log output payload: { \"Output\" => exception.error_info.to_s } ) end When gym raises an error the error_info property will contain the process output in case you want to display the error in 3rd party tools such as Slack. You can then easily switch between the beta provider (e.g. testflight , hockey , s3 and more).","title":"Automating the whole process"},{"location":"actions/build_mac_app/#how-does-it-work","text":"gym uses the latest APIs to build and sign your application. The 2 main components are xcodebuild xcpretty When you run gym without the --silent mode it will print out every command it executes. To build the archive gym uses the following command: set -o pipefail && \\ xcodebuild -scheme 'Example' \\ -project './Example.xcodeproj' \\ -configuration 'Release' \\ -destination 'generic/platform=iOS' \\ -archivePath '/Users/felixkrause/Library/Developer/Xcode/Archives/2015-08-11/ExampleProductName 2015-08-11 18.15.30.xcarchive' \\ archive | xcpretty After building the archive it is being checked by gym . If it's valid, it gets packaged up and signed into an ipa file. gym automatically chooses a different packaging method depending on the version of Xcode you're using.","title":"How does it work?"},{"location":"actions/build_mac_app/#use-provisionql-for-advanced-quick-look-in-finder","text":"Install ProvisionQL . It will show you ipa files like this: build_mac_app Supported platforms mac Author @KrauseFx Returns The absolute path to the generated ipa file","title":"Use 'ProvisionQL' for advanced Quick Look in Finder"},{"location":"actions/build_mac_app/#5-examples","text":"build_app(scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\") build_app( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", silent: true, clean: true, output_directory: \"path/to/dir\", # Destination directory. Defaults to current directory. output_name: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) sdk: \"iOS 11.1\" # use SDK as the name or path of the base SDK when building the project. ) gym # alias for \"build_app\" build_ios_app # alias for \"build_app (only iOS options)\" build_mac_app # alias for \"build_app (only macOS options)\"","title":"5 Examples"},{"location":"actions/build_mac_app/#parameters","text":"Key Description Default workspace Path to the workspace file project Path to the project file scheme The project's scheme. Make sure it's marked as Shared clean Should the project be cleaned before building it? false output_directory The directory in which the ipa file should be stored in . output_name The name of the resulting ipa file configuration The configuration to use when building the app. Defaults to 'Release' * silent Hide all information that's not necessary while building false codesigning_identity The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH' skip_package_pkg Should we skip packaging the pkg? false include_symbols Should the ipa file include symbols? include_bitcode Should the ipa file include bitcode? export_method Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application export_options Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options export_xcargs Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" skip_build_archive Export ipa from previously built xcarchive. Uses archive_path as source skip_archive After building, don't archive, effectively not including -archivePath param skip_codesigning Build without codesigning installer_cert_name Full name of 3rd Party Mac Developer Installer or Developer ID Installer certificate. Example: 3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ) build_path The directory in which the archive should be stored in archive_path The path to the created archive derived_data_path The directory where built products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false result_bundle_path Path to the result bundle directory to create. Ignored if result_bundle if false buildlog_path The directory where to store the build log * sdk The SDK that should be used for building the application toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a) destination Use a custom destination for building the app export_team_id Optional: Sometimes you need to specify a team id when exporting the ipa file xcargs Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * build_timing_summary Create a build timing summary false disable_xcpretty DEPRECATED! Use xcodebuild_formatter: '' instead - Disable xcpretty formatting of build output xcpretty_test_format Use the test (RSpec style) format for build output xcpretty_formatter A custom xcpretty formatter to use xcpretty_report_junit Have xcpretty create a JUnit-style XML report at the provided path xcpretty_report_html Have xcpretty create a simple HTML report at the provided path xcpretty_report_json Have xcpretty create a JSON compilation database at the provided path xcpretty_utf Have xcpretty use unicode encoding when reporting builds analyze_build_time Analyze the project build time and store the output in 'culprits.txt' file skip_profile_detection Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used false xcodebuild_command Allows for override of the default xcodebuild command xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/build_mac_app/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The build_mac_app action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::PKG_OUTPUT_PATH The path to the newly generated pkg file SharedValues::DSYM_OUTPUT_PATH The path to the dSYM files SharedValues::XCODEBUILD_ARCHIVE The path to the xcodebuild archive To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/build_mac_app/#documentation","text":"To show the documentation in your terminal, run fastlane action build_mac_app","title":"Documentation"},{"location":"actions/build_mac_app/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_mac_app To pass parameters, make use of the : symbol, for example fastlane run build_mac_app parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/build_mac_app/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/bundle_install/","text":"bundle_install This action runs bundle install (if available) bundle_install Supported platforms ios, android, mac Author @birmacher, @koglinjg Parameters Key Description Default binstubs Generate bin stubs for bundled gems to ./bin clean Run bundle clean automatically after install false full_index Use the rubygems modern index instead of the API endpoint false gemfile Use the specified gemfile instead of Gemfile jobs Install gems using parallel workers local Do not attempt to fetch gems remotely and use the gem cache instead false deployment Install using defaults tuned for deployment and CI environments false no_cache Don't update the existing gem cache false no_prune Don't remove stale gems from the cache false path Specify a different path than the system default ($BUNDLE_PATH or $GEM_HOME). Bundler will remember this value for future installs on this machine system Install to the system location ($BUNDLE_PATH or $GEM_HOME) even if the bundle was previously installed somewhere else for this application false quiet Only output warnings and errors false retry Retry network and git requests that have failed shebang Specify a different shebang executable name than the default (usually 'ruby') standalone Make a bundle that can work without the Bundler runtime trust_policy Sets level of security when dealing with signed gems. Accepts LowSecurity , MediumSecurity and HighSecurity as values without Exclude gems that are part of the specified named group with Include gems that are part of the specified named group frozen Don't allow the Gemfile.lock to be updated after install false redownload Force download every gem, even if the required versions are already available locally false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action bundle_install CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run bundle_install To pass parameters, make use of the : symbol, for example fastlane run bundle_install parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"bundle_install"},{"location":"actions/bundle_install/#bundle_install","text":"This action runs bundle install (if available) bundle_install Supported platforms ios, android, mac Author @birmacher, @koglinjg","title":"bundle_install"},{"location":"actions/bundle_install/#parameters","text":"Key Description Default binstubs Generate bin stubs for bundled gems to ./bin clean Run bundle clean automatically after install false full_index Use the rubygems modern index instead of the API endpoint false gemfile Use the specified gemfile instead of Gemfile jobs Install gems using parallel workers local Do not attempt to fetch gems remotely and use the gem cache instead false deployment Install using defaults tuned for deployment and CI environments false no_cache Don't update the existing gem cache false no_prune Don't remove stale gems from the cache false path Specify a different path than the system default ($BUNDLE_PATH or $GEM_HOME). Bundler will remember this value for future installs on this machine system Install to the system location ($BUNDLE_PATH or $GEM_HOME) even if the bundle was previously installed somewhere else for this application false quiet Only output warnings and errors false retry Retry network and git requests that have failed shebang Specify a different shebang executable name than the default (usually 'ruby') standalone Make a bundle that can work without the Bundler runtime trust_policy Sets level of security when dealing with signed gems. Accepts LowSecurity , MediumSecurity and HighSecurity as values without Exclude gems that are part of the specified named group with Include gems that are part of the specified named group frozen Don't allow the Gemfile.lock to be updated after install false redownload Force download every gem, even if the required versions are already available locally false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/bundle_install/#documentation","text":"To show the documentation in your terminal, run fastlane action bundle_install","title":"Documentation"},{"location":"actions/bundle_install/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run bundle_install To pass parameters, make use of the : symbol, for example fastlane run bundle_install parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/bundle_install/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/capture_android_screenshots/","text":"capture_android_screenshots Automated localized screenshots of your Android app (via screengrab ) Automated localized screenshots of your Android app on every device screengrab generates localized screenshots of your Android app for different device types and languages for Google Play and can be uploaded using supply . Why should I automate this process? Create hundreds of screenshots in multiple languages on emulators or real devices, saving you hours Easily verify that localizations fit into labels on all screen dimensions to find UI mistakes before you ship You only need to configure it once for anyone on your team to run it Keep your screenshots perfectly up-to-date with every app update. Your customers deserve it! Fully integrates with fastlane and supply Installation Install the gem gem install fastlane Gradle dependency androidTestImplementation 'tools.fastlane:screengrab:x.x.x' The latest version is As of screengrab version 2.0.0, all Android test dependencies are AndroidX dependencies. This means a device with API 18+, Android 4.3 or greater is required. If you wish to capture screenshots with an older Android OS, then you must use a 1.x.x version. Configuring your Manifest Permissions Ensure that the following permissions exist in your src/debug/AndroidManifest.xml Configuring your UI Tests for Screenshots Add LocaleTestRule to your tests class to handle automatic switching of locales. If you're using Java use: java @ClassRule public static final LocaleTestRule localeTestRule = new LocaleTestRule(); If you're using Kotlin use: kotlin @Rule @JvmField val localeTestRule = LocaleTestRule() The @JvmField annotation is important. It won't work like this: kotlin companion object { @get:ClassRule val localeTestRule = LocaleTestRule() } To capture screenshots, add the following to your tests Screengrab.screenshot(\"name_of_screenshot_here\"); on the appropriate screens Generating Screenshots with screengrab Then, before running fastlane screengrab you'll need a debug and test apk You can create your APKs manually with ./gradlew assembleDebug assembleAndroidTest You can also create a lane and use build_android_app : ruby desc \"Build debug and test APK for screenshots\" lane :build_and_screengrab do build_android_app( task: 'assemble', build_type: 'Debug' ) build_android_app( task: 'assemble', build_type: 'AndroidTest' ) screengrab() end - Once complete run fastlane screengrab in your app project directory to generate screenshots - You will be prompted to provide any required parameters which are not in your Screengrabfile or provided as command line arguments - Your screenshots will be saved to fastlane/metadata/android in the directory where you ran screengrab Improved screenshot capture with UI Automator As of screengrab 0.5.0, you can specify different strategies to control the way screengrab captures screenshots. The newer strategy delegates to UI Automator which fixes a number of problems compared to the original strategy: Shadows/elevation are correctly captured for Material UI Multi-window situations are correctly captured (dialogs, etc.) Works on Android N UI Automator is the default strategy. However, UI Automator requires a device with API level >= 18 . If you need to grab screenshots on an older Android version, use the latest 1.x.x version of this library and set the DecorView ScreenshotStrategy. Screengrab.setDefaultScreenshotStrategy(new DecorViewScreenshotStrategy()); Improved screenshot capture with Falcon As of screengrab 1.2.0, you can specify a new strategy to delegate to Falcon . Falcon may work better than UI Automator in some situations and also provides similar benefits as UI Automator: Multi-window situations are correctly captured (dialogs, etc.) Works on Android N Falcon requires a device with API level >= 10 . To enable it for all screenshots by default, make the following call before your tests run: Screengrab.setDefaultScreenshotStrategy(new FalconScreenshotStrategy(activityRule.getActivity())); Advanced Screengrabfile Configuration Running fastlane screengrab init generated a Screengrabfile which can store all of your configuration options. Since most values will not change often for your project, it is recommended to store them there. The Screengrabfile is written in Ruby, so you may find it helpful to use an editor that highlights Ruby syntax to modify this file. # remove the leading '#' to uncomment lines # app_package_name('your.app.package') # use_tests_in_packages(['your.screenshot.tests.package']) # app_apk_path('path/to/your/app.apk') # tests_apk_path('path/to/your/tests.apk') locales(['en-US', 'fr-FR', 'it-IT']) # clear all previously generated screenshots in your local output directory before creating new ones clear_previous_screenshots(true) For more information about all available options run fastlane action screengrab Tips UI Tests Check out Testing UI for a Single App for an introduction to using Espresso for UI testing. Example UI Test Class (Using JUnit4) Java: @RunWith(JUnit4.class) public class JUnit4StyleTests { @ClassRule public static final LocaleTestRule localeTestRule = new LocaleTestRule(); @Rule public ActivityScenarioRule activityRule = new ActivityScenarioRule<>(MainActivity.class); @Test public void testTakeScreenshot() { Screengrab.screenshot(\"before_button_click\"); onView(withId(R.id.fab)).perform(click()); Screengrab.screenshot(\"after_button_click\"); } } Kotlin: @RunWith(JUnit4.class) class JUnit4StyleTests { @get:Rule var activityRule = ActivityScenarioRule(MainActivity::class.java) @Rule @JvmField val localeTestRule = LocaleTestRule() @Test fun testTakeScreenshot() { Screengrab.screenshot(\"before_button_click\") onView(withId(R.id.fab)).perform(click()) Screengrab.screenshot(\"after_button_click\") } } There is an example project showing how to use JUnit 3 or 4 and Espresso with the screengrab Java library to capture screenshots during a UI test run. Using JUnit 4 is preferable because of its ability to perform actions before and after the entire test class is run. This means you will change the device's locale far fewer times when compared with JUnit 3 running those commands before and after each test method. When using JUnit 3 you'll need to add a bit more code: Use LocaleUtil.changeDeviceLocaleTo(LocaleUtil.getTestLocale()); in setUp() Use LocaleUtil.changeDeviceLocaleTo(LocaleUtil.getEndingLocale()); in tearDown() Use Screengrab.screenshot(\"name_of_screenshot_here\"); to capture screenshots at the appropriate points in your tests Clean Status Bar screengrab can clean your status bar to make your screenshots even more beautiful. It is simply a wrapper that allows configuring SystemUI DemoMode in your code. Note: the clean status bar feature is only supported on devices with API level >= 23 . You can enable and disable the clean status bar at any moment during your tests. In most cases you probably want to do this in the @BeforeClass and @AfterClass methods. @BeforeClass public static void beforeAll() { CleanStatusBar.enableWithDefaults(); } @AfterClass public static void afterAll() { CleanStatusBar.disable(); } Have a look at the methods of the CleanStatusBar class to customize the status bar even more. You could for example show the Bluetooth icon and the LTE text. new CleanStatusBar() .setBluetoothState(BluetoothState.DISCONNECTED) .setMobileNetworkDataType(MobileDataType.LTE) .enable(); Advanced screengrab Launch Arguments You can provide additional arguments to your test cases on launch. These strings will be available in your tests through InstrumentationRegistry.getArguments() . screengrab( launch_arguments: [ \"username hjanuschka\", \"build_number 201\" ] ) Bundle extras = InstrumentationRegistry.getArguments(); String peerID = null; if (extras != null) { if (extras.containsKey(\"username\")) { username = extras.getString(\"username\"); System.out.println(\"Username: \" + username); } else { System.out.println(\"No username in extras\"); } } else { System.out.println(\"No extras\"); } Detecting screengrab at runtime For some apps, it is helpful to know when screengrab is running so that you can display specific data for your screenshots. For iOS fastlane users, this is much like \"FASTLANE_SNAPSHOT\". In order to do this, you'll need to have at least two product flavors of your app. Add two product flavors to the app-level build.gradle file: android { ... flavorDimensions \"mode\" productFlavors { screengrab { dimension \"mode\" } regular { dimension \"mode\" } } ... } Check for the existence of that flavor (i.e screengrab) in your app code as follows in order to use mock data or customize data for screenshots: if (BuildConfig.FLAVOR == \"screengrab\") { System.out.println(\"screengrab is running!\"); } When running screengrab , do the following to build the flavor you want as well as the test apk. Note that you use \"assembleFlavor_name\" where Flavor_name is the flavor name, capitalized (i.e. Screengrab). ./gradlew assembleScreengrab assembleAndroidTest Run screengrab : fastlane screengrab screengrab will ask you to select the debug and test apps (which you can then add to your Screengrabfile to skip this step later). The debug apk should be somewhere like this: app/build/outputs/apk/screengrab/debug/app-screengrab-debug.apk The test apk should be somewhere like this: app/build/outputs/apk/androidTest/screengrab/debug/app-screengrab-debug-androidTest.apk Sit back and enjoy your new screenshots! Note: while this could also be done by creating a new build variant (i.e. debug, release and creating a new one called screengrab), Android only allows one build type to be tested which defaults to debug. That's why we use product flavors. capture_android_screenshots Supported platforms android Author @asfalcone, @i2amsam, @mfurtak 3 Examples capture_android_screenshots screengrab # alias for \"capture_android_screenshots\" capture_android_screenshots( locales: [\"en-US\", \"fr-FR\", \"ja-JP\"], clear_previous_screenshots: true, app_apk_path: \"build/outputs/apk/example-debug.apk\", tests_apk_path: \"build/outputs/apk/example-debug-androidTest-unaligned.apk\" ) Parameters Key Description Default android_home Path to the root of your Android SDK installation, e.g. ~/tools/android-sdk-macosx * build_tools_version DEPRECATED! The Android build tools version to use, e.g. '23.0.2' locales A list of locales which should be used [\"en-US\"] clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running screengrab false output_directory The directory where to store the screenshots fastlane/metadata/android skip_open_summary Don't open the summary after running screengrab * app_package_name The package name of the app under test (e.g. com.yourcompany.yourapp) * tests_package_name The package name of the tests bundle (e.g. com.yourcompany.yourapp.test) use_tests_in_packages Only run tests in these Java packages use_tests_in_classes Only run tests in these Java classes launch_arguments Additional launch arguments test_instrumentation_runner The fully qualified class name of your test instrumentation runner androidx.test.runner.AndroidJUnitRunner ending_locale DEPRECATED! Return the device to this locale after running tests en-US use_adb_root DEPRECATED! Restarts the adb daemon using adb root to allow access to screenshots directories on device. Use if getting 'Permission denied' errors false app_apk_path The path to the APK for the app under test * tests_apk_path The path to the APK for the tests bundle * specific_device Use the device or emulator with the given serial number or qualifier device_type Type of device used for screenshots. Matches Google Play Types (phone, sevenInch, tenInch, tv, wear) phone exit_on_test_failure Whether or not to exit Screengrab on test failure. Exiting on failure will not copy screenshots to local machine nor open screenshots summary true reinstall_app Enabling this option will automatically uninstall the application before running it false use_timestamp_suffix Add timestamp suffix to screenshot filename true adb_host Configure the host used by adb to connect, allows running on remote devices farm * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The capture_android_screenshots action generates the following Lane Variables: SharedValue Description SharedValues::SCREENGRAB_OUTPUT_DIRECTORY The path to the output directory To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action capture_android_screenshots CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run capture_android_screenshots To pass parameters, make use of the : symbol, for example fastlane run capture_android_screenshots parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"capture_android_screenshots"},{"location":"actions/capture_android_screenshots/#capture_android_screenshots","text":"Automated localized screenshots of your Android app (via screengrab )","title":"capture_android_screenshots"},{"location":"actions/capture_android_screenshots/#installation","text":"Install the gem gem install fastlane","title":"Installation"},{"location":"actions/capture_android_screenshots/#generating-screenshots-with-screengrab","text":"Then, before running fastlane screengrab you'll need a debug and test apk You can create your APKs manually with ./gradlew assembleDebug assembleAndroidTest You can also create a lane and use build_android_app : ruby desc \"Build debug and test APK for screenshots\" lane :build_and_screengrab do build_android_app( task: 'assemble', build_type: 'Debug' ) build_android_app( task: 'assemble', build_type: 'AndroidTest' ) screengrab() end - Once complete run fastlane screengrab in your app project directory to generate screenshots - You will be prompted to provide any required parameters which are not in your Screengrabfile or provided as command line arguments - Your screenshots will be saved to fastlane/metadata/android in the directory where you ran screengrab","title":"Generating Screenshots with screengrab"},{"location":"actions/capture_android_screenshots/#improved-screenshot-capture-with-ui-automator","text":"As of screengrab 0.5.0, you can specify different strategies to control the way screengrab captures screenshots. The newer strategy delegates to UI Automator which fixes a number of problems compared to the original strategy: Shadows/elevation are correctly captured for Material UI Multi-window situations are correctly captured (dialogs, etc.) Works on Android N UI Automator is the default strategy. However, UI Automator requires a device with API level >= 18 . If you need to grab screenshots on an older Android version, use the latest 1.x.x version of this library and set the DecorView ScreenshotStrategy. Screengrab.setDefaultScreenshotStrategy(new DecorViewScreenshotStrategy());","title":"Improved screenshot capture with UI Automator"},{"location":"actions/capture_android_screenshots/#improved-screenshot-capture-with-falcon","text":"As of screengrab 1.2.0, you can specify a new strategy to delegate to Falcon . Falcon may work better than UI Automator in some situations and also provides similar benefits as UI Automator: Multi-window situations are correctly captured (dialogs, etc.) Works on Android N Falcon requires a device with API level >= 10 . To enable it for all screenshots by default, make the following call before your tests run: Screengrab.setDefaultScreenshotStrategy(new FalconScreenshotStrategy(activityRule.getActivity()));","title":"Improved screenshot capture with Falcon"},{"location":"actions/capture_android_screenshots/#advanced-screengrabfile-configuration","text":"Running fastlane screengrab init generated a Screengrabfile which can store all of your configuration options. Since most values will not change often for your project, it is recommended to store them there. The Screengrabfile is written in Ruby, so you may find it helpful to use an editor that highlights Ruby syntax to modify this file. # remove the leading '#' to uncomment lines # app_package_name('your.app.package') # use_tests_in_packages(['your.screenshot.tests.package']) # app_apk_path('path/to/your/app.apk') # tests_apk_path('path/to/your/tests.apk') locales(['en-US', 'fr-FR', 'it-IT']) # clear all previously generated screenshots in your local output directory before creating new ones clear_previous_screenshots(true) For more information about all available options run fastlane action screengrab","title":"Advanced Screengrabfile Configuration"},{"location":"actions/capture_android_screenshots/#tips","text":"","title":"Tips"},{"location":"actions/capture_android_screenshots/#ui-tests","text":"Check out Testing UI for a Single App for an introduction to using Espresso for UI testing.","title":"UI Tests"},{"location":"actions/capture_android_screenshots/#clean-status-bar","text":"screengrab can clean your status bar to make your screenshots even more beautiful. It is simply a wrapper that allows configuring SystemUI DemoMode in your code. Note: the clean status bar feature is only supported on devices with API level >= 23 . You can enable and disable the clean status bar at any moment during your tests. In most cases you probably want to do this in the @BeforeClass and @AfterClass methods. @BeforeClass public static void beforeAll() { CleanStatusBar.enableWithDefaults(); } @AfterClass public static void afterAll() { CleanStatusBar.disable(); } Have a look at the methods of the CleanStatusBar class to customize the status bar even more. You could for example show the Bluetooth icon and the LTE text. new CleanStatusBar() .setBluetoothState(BluetoothState.DISCONNECTED) .setMobileNetworkDataType(MobileDataType.LTE) .enable();","title":"Clean Status Bar"},{"location":"actions/capture_android_screenshots/#advanced-screengrab","text":"Launch Arguments You can provide additional arguments to your test cases on launch. These strings will be available in your tests through InstrumentationRegistry.getArguments() . screengrab( launch_arguments: [ \"username hjanuschka\", \"build_number 201\" ] ) Bundle extras = InstrumentationRegistry.getArguments(); String peerID = null; if (extras != null) { if (extras.containsKey(\"username\")) { username = extras.getString(\"username\"); System.out.println(\"Username: \" + username); } else { System.out.println(\"No username in extras\"); } } else { System.out.println(\"No extras\"); } Detecting screengrab at runtime For some apps, it is helpful to know when screengrab is running so that you can display specific data for your screenshots. For iOS fastlane users, this is much like \"FASTLANE_SNAPSHOT\". In order to do this, you'll need to have at least two product flavors of your app. Add two product flavors to the app-level build.gradle file: android { ... flavorDimensions \"mode\" productFlavors { screengrab { dimension \"mode\" } regular { dimension \"mode\" } } ... } Check for the existence of that flavor (i.e screengrab) in your app code as follows in order to use mock data or customize data for screenshots: if (BuildConfig.FLAVOR == \"screengrab\") { System.out.println(\"screengrab is running!\"); } When running screengrab , do the following to build the flavor you want as well as the test apk. Note that you use \"assembleFlavor_name\" where Flavor_name is the flavor name, capitalized (i.e. Screengrab). ./gradlew assembleScreengrab assembleAndroidTest Run screengrab : fastlane screengrab screengrab will ask you to select the debug and test apps (which you can then add to your Screengrabfile to skip this step later). The debug apk should be somewhere like this: app/build/outputs/apk/screengrab/debug/app-screengrab-debug.apk The test apk should be somewhere like this: app/build/outputs/apk/androidTest/screengrab/debug/app-screengrab-debug-androidTest.apk Sit back and enjoy your new screenshots! Note: while this could also be done by creating a new build variant (i.e. debug, release and creating a new one called screengrab), Android only allows one build type to be tested which defaults to debug. That's why we use product flavors. capture_android_screenshots Supported platforms android Author @asfalcone, @i2amsam, @mfurtak","title":"Advanced screengrab"},{"location":"actions/capture_android_screenshots/#3-examples","text":"capture_android_screenshots screengrab # alias for \"capture_android_screenshots\" capture_android_screenshots( locales: [\"en-US\", \"fr-FR\", \"ja-JP\"], clear_previous_screenshots: true, app_apk_path: \"build/outputs/apk/example-debug.apk\", tests_apk_path: \"build/outputs/apk/example-debug-androidTest-unaligned.apk\" )","title":"3 Examples"},{"location":"actions/capture_android_screenshots/#parameters","text":"Key Description Default android_home Path to the root of your Android SDK installation, e.g. ~/tools/android-sdk-macosx * build_tools_version DEPRECATED! The Android build tools version to use, e.g. '23.0.2' locales A list of locales which should be used [\"en-US\"] clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running screengrab false output_directory The directory where to store the screenshots fastlane/metadata/android skip_open_summary Don't open the summary after running screengrab * app_package_name The package name of the app under test (e.g. com.yourcompany.yourapp) * tests_package_name The package name of the tests bundle (e.g. com.yourcompany.yourapp.test) use_tests_in_packages Only run tests in these Java packages use_tests_in_classes Only run tests in these Java classes launch_arguments Additional launch arguments test_instrumentation_runner The fully qualified class name of your test instrumentation runner androidx.test.runner.AndroidJUnitRunner ending_locale DEPRECATED! Return the device to this locale after running tests en-US use_adb_root DEPRECATED! Restarts the adb daemon using adb root to allow access to screenshots directories on device. Use if getting 'Permission denied' errors false app_apk_path The path to the APK for the app under test * tests_apk_path The path to the APK for the tests bundle * specific_device Use the device or emulator with the given serial number or qualifier device_type Type of device used for screenshots. Matches Google Play Types (phone, sevenInch, tenInch, tv, wear) phone exit_on_test_failure Whether or not to exit Screengrab on test failure. Exiting on failure will not copy screenshots to local machine nor open screenshots summary true reinstall_app Enabling this option will automatically uninstall the application before running it false use_timestamp_suffix Add timestamp suffix to screenshot filename true adb_host Configure the host used by adb to connect, allows running on remote devices farm * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/capture_android_screenshots/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The capture_android_screenshots action generates the following Lane Variables: SharedValue Description SharedValues::SCREENGRAB_OUTPUT_DIRECTORY The path to the output directory To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/capture_android_screenshots/#documentation","text":"To show the documentation in your terminal, run fastlane action capture_android_screenshots","title":"Documentation"},{"location":"actions/capture_android_screenshots/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run capture_android_screenshots To pass parameters, make use of the : symbol, for example fastlane run capture_android_screenshots parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/capture_android_screenshots/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/capture_ios_screenshots/","text":"capture_ios_screenshots Generate new localized screenshots on multiple devices (via snapshot ) Automate taking localized screenshots of your iOS, tvOS, and watchOS apps on every device Check out the new fastlane documentation on how to generate screenshots snapshot generates localized iOS, tvOS, and watchOS screenshots for different device types and languages for the App Store and can be uploaded using ( deliver ). You have to manually create 20 (languages) x 6 (devices) x 5 (screenshots) = 600 screenshots . It's hard to get everything right! New screenshots with every (design) update No loading indicators Same content / screens Clean Status Bar Uploading screenshots ( deliver is your friend) More information about creating perfect screenshots . snapshot runs completely in the background - you can do something else, while your computer takes the screenshots for you. Features \u2022 UI Tests \u2022 Quick Start \u2022 Usage \u2022 Tips \u2022 How? Features Create hundreds of screenshots in multiple languages on all simulators Take screenshots in multiple device simulators concurrently to cut down execution time (Xcode 9 only) Configure it once, store the configuration in git Do something else, while the computer takes the screenshots for you Integrates with fastlane and deliver Generates a beautiful web page, which shows all screenshots on all devices. This is perfect to send to QA or the marketing team snapshot automatically waits for network requests to be finished before taking a screenshot (we don't want loading images in the App Store screenshots) After snapshot successfully created new screenshots, it will generate a beautiful HTML file to get a quick overview of all screens: Why? This tool automatically switches the language and device type and runs UI Tests for every combination. Why should I automate this process? It takes hours to take screenshots You get a great overview of all your screens, running on all available simulators without the need to manually start it hundreds of times Easy verification for translators (without an iDevice) that translations do make sense in real App context Easy verification that localizations fit into labels on all screen dimensions It is an integration test: You can test for UI elements and other things inside your scripts Be so nice, and provide new screenshots with every App Store update. Your customers deserve it You realize, there is a spelling mistake in one of the screens? Well, just correct it and re-run the script UI Tests Getting started This project uses Apple's newly announced UI Tests. We will not go into detail on how to write scripts. Here a few links to get started: WWDC 2015 Introduction to UI Tests A first look into UI Tests UI Testing in Xcode 7 HSTestingBackchannel : \u2018Cheat\u2019 by communicating directly with your app Automating App Store screenshots using fastlane snapshot and frameit Quick Start Create a new UI Test target in your Xcode project ( top part of this article ) Run fastlane snapshot init in your project folder Add the ./SnapshotHelper.swift to your UI Test target (You can move the file anywhere you want) (Xcode 8 only) add the ./SnapshotHelperXcode8.swift to your UI Test target (Objective C only) add the bridging header to your test class: #import \"MYUITests-Swift.h\" (The bridging header is named after your test target with -Swift.h appended.) In your UI Test class, click the Record button on the bottom left and record your interaction To take a snapshot, call the following between interactions Swift: snapshot(\"01LoginScreen\") Objective C: [Snapshot snapshot:@\"01LoginScreen\" timeWaitingForIdle:10]; Add the following code to your setUp() method: Swift: let app = XCUIApplication() setupSnapshot(app) app.launch() Objective C: XCUIApplication *app = [[XCUIApplication alloc] init]; [Snapshot setupSnapshot:app waitForAnimations:NO]; [app launch]; Make sure you only have one launch call in your test class, as Xcode adds one automatically on new test files. You can try the snapshot example project by cloning this repo. To quick start your UI tests, you can use the UI Test recorder. You only have to interact with the simulator, and Xcode will generate the UI Test code for you. You can find the red record button on the bottom of the screen (more information in this blog post ) Usage fastlane snapshot Your screenshots will be stored in the ./screenshots/ folder by default (or ./fastlane/screenshots if you're using fastlane ) New with Xcode 9, snapshot can run multiple simulators concurrently. This is the default behavior in order to take your screenshots as quickly as possible. This can be disabled to run each device, one at a time, by setting the :concurrent_simulators option to false . Note: While running snapshot with Xcode 9, the simulators will not be visibly spawned. So, while you won't see the simulators running your tests, they will, in fact, be taking your screenshots. If any error occurs while running the snapshot script on a device, that device will not have any screenshots, and snapshot will continue with the next device or language. To stop the flow after the first error, run fastlane snapshot --stop_after_first_error Also by default, snapshot will open the HTML after all is done. This can be skipped with the following command fastlane snapshot --stop_after_first_error --skip_open_summary There are a lot of options available that define how to build your app, for example fastlane snapshot --scheme \"UITests\" --configuration \"Release\" --sdk \"iphonesimulator\" Reinstall the app before running snapshot fastlane snapshot --reinstall_app --app_identifier \"tools.fastlane.app\" By default snapshot automatically retries running UI Tests if they fail. This is due to randomly failing UI Tests (e.g. #2517 ). You can adapt this number using fastlane snapshot --number_of_retries 3 Add photos and/or videos to the simulator before running snapshot fastlane snapshot --add_photos MyTestApp/Assets/demo.jpg --add_videos MyTestApp/Assets/demo.mp4 For a list for all available options run fastlane action snapshot After running snapshot you will get a nice summary: Snapfile All of the available options can also be stored in a configuration file called the Snapfile . Since most values will not change often for your project, it is recommended to store them there: First make sure to have a Snapfile (you get it for free when running fastlane snapshot init ) The Snapfile can contain all the options that are also available on fastlane action snapshot scheme(\"UITests\") devices([ \"iPad (7th generation)\", \"iPad Air (3rd generation)\", \"iPad Pro (11-inch)\", \"iPad Pro (12.9-inch) (3rd generation)\", \"iPad Pro (9.7-inch)\", \"iPhone 11\", \"iPhone 11 Pro\", \"iPhone 11 Pro Max\", \"iPhone 8\", \"iPhone 8 Plus\" ]) languages([ \"en-US\", \"de-DE\", \"es-ES\", [\"pt\", \"pt_BR\"] # Portuguese with Brazilian locale ]) launch_arguments([\"-username Felix\"]) # The directory in which the screenshots should be stored output_directory('./screenshots') clear_previous_screenshots(true) override_status_bar(true) add_photos([\"MyTestApp/Assets/demo.jpg\"]) Completely reset all simulators You can run this command in the terminal to delete and re-create all iOS and tvOS simulators: fastlane snapshot reset_simulators Warning : This will delete all your simulators and replace by new ones! This is useful, if you run into weird problems when running snapshot . You can use the environment variable SNAPSHOT_FORCE_DELETE to stop asking for confirmation before deleting. SNAPSHOT_FORCE_DELETE=1 fastlane snapshot reset_simulators Update snapshot helpers Some updates require the helper files to be updated. snapshot will automatically warn you and tell you how to update. Basically you can run fastlane snapshot update to update your SnapshotHelper.swift files. In case you modified your SnapshotHelper.swift and want to manually update the file, check out SnapshotHelper.swift . Launch Arguments You can provide additional arguments to your app on launch. These strings will be available in your app (e.g. not in the testing target) through ProcessInfo.processInfo.arguments . Alternatively, use user-default syntax ( -key value ) and they will be available as key-value pairs in UserDefaults.standard . launch_arguments([ \"-firstName Felix -lastName Krause\" ]) name.text = UserDefaults.standard.string(forKey: \"firstName\") // name.text = \"Felix\" snapshot includes -FASTLANE_SNAPSHOT YES , which will set a temporary user default for the key FASTLANE_SNAPSHOT , you may use this to detect when the app is run by snapshot . if UserDefaults.standard.bool(forKey: \"FASTLANE_SNAPSHOT\") { // runtime check that we are in snapshot mode } Specify multiple argument strings and snapshot will generate screenshots for each combination of arguments, devices, and languages. This is useful for comparing the same screenshots with different feature flags, dynamic text sizes, and different data sets. # Snapfile for A/B Test Comparison launch_arguments([ \"-secretFeatureEnabled YES\", \"-secretFeatureEnabled NO\" ]) Xcode Environment Variables snapshot includes FASTLANE_SNAPSHOT=YES and FASTLANE_LANGUAGE= as arguments when executing xcodebuild . This means you may use these environment variables in a custom build phase run script to do any additional configuration. How does it work? The easiest solution would be to just render the UIWindow into a file. That's not possible because UI Tests don't run on a main thread. So snapshot uses a different approach: When you run unit tests in Xcode, the reporter generates a plist file, documenting all events that occurred during the tests ( More Information ). Additionally, Xcode generates screenshots before, during and after each of these events. There is no way to manually trigger a screenshot event. The screenshots and the plist files are stored in the DerivedData directory, which snapshot stores in a temporary folder. When the user calls snapshot(...) in the UI Tests (Swift or Objective C) the script actually does a rotation to .Unknown which doesn't have any effect on the actual app, but is enough to trigger a screenshot. It has no effect to the application and is not something you would do in your tests. The goal was to find some event that a user would never trigger, so that we know it's from snapshot . On tvOS, there is no orientation so we ask for a count of app views with type \"Browser\" (which should never exist on tvOS). snapshot then iterates through all test events and check where we either did this weird rotation (on iOS) or searched for browsers (on tvOS). Once snapshot has all events triggered by snapshot it collects a ordered list of all the file names of the actual screenshots of the application. In the test output, the Swift snapshot function will print out something like this snapshot: [some random text here] snapshot finds all these entries using a regex. The number of snapshot outputs in the terminal and the number of snapshot events in the plist file should be the same. Knowing that, snapshot automatically matches these 2 lists to identify the name of each of these screenshots. They are then copied over to the output directory and separated by language and device. 2 thing have to be passed on from snapshot to the xcodebuild command line tool: The device type is passed via the destination parameter of the xcodebuild parameter The language is passed via a temporary file which is written by snapshot before running the tests and read by the UI Tests when launching the application If you find a better way to do any of this, please submit an issue on GitHub or even a pull request :+1: Radar 23062925 has been resolved with Xcode 8.3, so it's now possible to actually take screenshots from the simulator. We'll keep using the old approach for now, since many of you still want to use older versions of Xcode. Tips Check out the new fastlane documentation on how to generate screenshots Frame the screenshots If you want to add frames around the screenshots and even put a title on top, check out frameit . Available language codes ALL_LANGUAGES = [\"da\", \"de-DE\", \"el\", \"en-AU\", \"en-CA\", \"en-GB\", \"en-US\", \"es-ES\", \"es-MX\", \"fi\", \"fr-CA\", \"fr-FR\", \"id\", \"it\", \"ja\", \"ko\", \"ms\", \"nl-NL\", \"no\", \"pt-BR\", \"pt-PT\", \"ru\", \"sv\", \"th\", \"tr\", \"vi\", \"zh-Hans\", \"zh-Hant\"] To get more information about language and locale codes please read Internationalization and Localization Guide . Use a clean status bar You can set override_status_bar to true to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available. Editing the Snapfile Change syntax highlighting to Ruby . Simulator doesn't launch the application When the app dies directly after the application is launched there might be 2 problems The simulator is somehow in a broken state and you need to re-create it. You can use snapshot reset_simulators to reset all simulators (this will remove all installed apps) A restart helps very often Determine language To detect the currently used localization in your tests, access the deviceLanguage variable from SnapshotHelper.swift . Speed up snapshots A lot of time in UI tests is spent waiting for animations. You can disable UIView animations in your app to make the tests faster: if ProcessInfo().arguments.contains(\"SKIP_ANIMATIONS\") { UIView.setAnimationsEnabled(false) } This requires you to pass the launch argument like so: snapshot(launch_arguments: [\"SKIP_ANIMATIONS\"]) By default, snapshot will wait for a short time for the animations to finish. If you're skipping the animations, this wait time is unnecessary and can be skipped: setupSnapshot(app, waitForAnimations: false) capture_ios_screenshots Supported platforms ios, mac Author @KrauseFx 3 Examples capture_ios_screenshots snapshot # alias for \"capture_ios_screenshots\" capture_ios_screenshots( skip_open_summary: true, clean: true ) Parameters Key Description Default workspace Path the workspace file project Path the project file xcargs Pass additional arguments to xcodebuild for the test phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app devices A list of devices you want to take the screenshots from languages A list of languages which should be used [\"en-US\"] launch_arguments A list of launch arguments which should be used [\"\"] output_directory The directory where to store the screenshots * output_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false ios_version By default, the latest version should be used automatically. If you want to change it, do it here skip_open_summary Don't open the HTML summary after running snapshot false skip_helper_version_check Do not check for most recent SnapshotHelper code false clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running snapshot false reinstall_app Enabling this option will automatically uninstall the application before running it false erase_simulator Enabling this option will automatically erase the simulator before running the application false headless Enabling this option will prevent displaying the simulator window true override_status_bar Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception (Adjust 'SNAPSHOT_SIMULATOR_WAIT_FOR_BOOT_TIMEOUT' environment variable if override status bar is not working. Might be because simulator is not fully booted. Defaults to 10 seconds) false override_status_bar_arguments Fully customize the status bar by setting each option here. Requires override_status_bar to be set to true . See xcrun simctl status_bar --help localize_simulator Enabling this option will configure the Simulator's system language false dark_mode Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark) app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * add_photos A list of photos that should be added to the simulator before running the application add_videos A list of videos that should be added to the simulator before running the application html_template A path to screenshots.html template buildlog_path The directory where to store the build log * clean Should the project be cleaned before building it? false test_without_building Test without building, requires a derived data path configuration The configuration to use when building the app. Defaults to 'Release' * sdk The SDK that should be used for building the application scheme The scheme you want to use, this must be the scheme for the UI Tests number_of_retries The number of times a test can fail before snapshot should stop retrying 1 stop_after_first_error Should snapshot stop immediately after the tests completely failed on one device? false derived_data_path The directory where build products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false test_target_name The name of the target you want to test (if you desire to override the Target Application from Xcode) namespace_log_files Separate the log files per device and per language concurrent_simulators Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9 true disable_slide_to_type Disable the simulator from showing the 'Slide to type' prompt false cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false testplan The testplan associated with the scheme that should be used for testing only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * xcpretty_args DEPRECATED! Use xcodebuild_formatter: '' instead - Additional xcpretty arguments disable_xcpretty Disable xcpretty formatting of build suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The capture_ios_screenshots action generates the following Lane Variables: SharedValue Description SharedValues::SNAPSHOT_SCREENSHOTS_PATH The path to the screenshots To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action capture_ios_screenshots CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run capture_ios_screenshots To pass parameters, make use of the : symbol, for example fastlane run capture_ios_screenshots parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"capture_ios_screenshots"},{"location":"actions/capture_ios_screenshots/#capture_ios_screenshots","text":"Generate new localized screenshots on multiple devices (via snapshot )","title":"capture_ios_screenshots"},{"location":"actions/capture_ios_screenshots/#features","text":"Create hundreds of screenshots in multiple languages on all simulators Take screenshots in multiple device simulators concurrently to cut down execution time (Xcode 9 only) Configure it once, store the configuration in git Do something else, while the computer takes the screenshots for you Integrates with fastlane and deliver Generates a beautiful web page, which shows all screenshots on all devices. This is perfect to send to QA or the marketing team snapshot automatically waits for network requests to be finished before taking a screenshot (we don't want loading images in the App Store screenshots) After snapshot successfully created new screenshots, it will generate a beautiful HTML file to get a quick overview of all screens:","title":"Features"},{"location":"actions/capture_ios_screenshots/#why","text":"This tool automatically switches the language and device type and runs UI Tests for every combination.","title":"Why?"},{"location":"actions/capture_ios_screenshots/#ui-tests","text":"","title":"UI Tests"},{"location":"actions/capture_ios_screenshots/#getting-started","text":"This project uses Apple's newly announced UI Tests. We will not go into detail on how to write scripts. Here a few links to get started: WWDC 2015 Introduction to UI Tests A first look into UI Tests UI Testing in Xcode 7 HSTestingBackchannel : \u2018Cheat\u2019 by communicating directly with your app Automating App Store screenshots using fastlane snapshot and frameit","title":"Getting started"},{"location":"actions/capture_ios_screenshots/#quick-start","text":"Create a new UI Test target in your Xcode project ( top part of this article ) Run fastlane snapshot init in your project folder Add the ./SnapshotHelper.swift to your UI Test target (You can move the file anywhere you want) (Xcode 8 only) add the ./SnapshotHelperXcode8.swift to your UI Test target (Objective C only) add the bridging header to your test class: #import \"MYUITests-Swift.h\" (The bridging header is named after your test target with -Swift.h appended.) In your UI Test class, click the Record button on the bottom left and record your interaction To take a snapshot, call the following between interactions Swift: snapshot(\"01LoginScreen\") Objective C: [Snapshot snapshot:@\"01LoginScreen\" timeWaitingForIdle:10]; Add the following code to your setUp() method: Swift: let app = XCUIApplication() setupSnapshot(app) app.launch() Objective C: XCUIApplication *app = [[XCUIApplication alloc] init]; [Snapshot setupSnapshot:app waitForAnimations:NO]; [app launch]; Make sure you only have one launch call in your test class, as Xcode adds one automatically on new test files. You can try the snapshot example project by cloning this repo. To quick start your UI tests, you can use the UI Test recorder. You only have to interact with the simulator, and Xcode will generate the UI Test code for you. You can find the red record button on the bottom of the screen (more information in this blog post )","title":"Quick Start"},{"location":"actions/capture_ios_screenshots/#usage","text":"fastlane snapshot Your screenshots will be stored in the ./screenshots/ folder by default (or ./fastlane/screenshots if you're using fastlane ) New with Xcode 9, snapshot can run multiple simulators concurrently. This is the default behavior in order to take your screenshots as quickly as possible. This can be disabled to run each device, one at a time, by setting the :concurrent_simulators option to false . Note: While running snapshot with Xcode 9, the simulators will not be visibly spawned. So, while you won't see the simulators running your tests, they will, in fact, be taking your screenshots. If any error occurs while running the snapshot script on a device, that device will not have any screenshots, and snapshot will continue with the next device or language. To stop the flow after the first error, run fastlane snapshot --stop_after_first_error Also by default, snapshot will open the HTML after all is done. This can be skipped with the following command fastlane snapshot --stop_after_first_error --skip_open_summary There are a lot of options available that define how to build your app, for example fastlane snapshot --scheme \"UITests\" --configuration \"Release\" --sdk \"iphonesimulator\" Reinstall the app before running snapshot fastlane snapshot --reinstall_app --app_identifier \"tools.fastlane.app\" By default snapshot automatically retries running UI Tests if they fail. This is due to randomly failing UI Tests (e.g. #2517 ). You can adapt this number using fastlane snapshot --number_of_retries 3 Add photos and/or videos to the simulator before running snapshot fastlane snapshot --add_photos MyTestApp/Assets/demo.jpg --add_videos MyTestApp/Assets/demo.mp4 For a list for all available options run fastlane action snapshot After running snapshot you will get a nice summary:","title":"Usage"},{"location":"actions/capture_ios_screenshots/#snapfile","text":"All of the available options can also be stored in a configuration file called the Snapfile . Since most values will not change often for your project, it is recommended to store them there: First make sure to have a Snapfile (you get it for free when running fastlane snapshot init ) The Snapfile can contain all the options that are also available on fastlane action snapshot scheme(\"UITests\") devices([ \"iPad (7th generation)\", \"iPad Air (3rd generation)\", \"iPad Pro (11-inch)\", \"iPad Pro (12.9-inch) (3rd generation)\", \"iPad Pro (9.7-inch)\", \"iPhone 11\", \"iPhone 11 Pro\", \"iPhone 11 Pro Max\", \"iPhone 8\", \"iPhone 8 Plus\" ]) languages([ \"en-US\", \"de-DE\", \"es-ES\", [\"pt\", \"pt_BR\"] # Portuguese with Brazilian locale ]) launch_arguments([\"-username Felix\"]) # The directory in which the screenshots should be stored output_directory('./screenshots') clear_previous_screenshots(true) override_status_bar(true) add_photos([\"MyTestApp/Assets/demo.jpg\"])","title":"Snapfile"},{"location":"actions/capture_ios_screenshots/#update-snapshot-helpers","text":"Some updates require the helper files to be updated. snapshot will automatically warn you and tell you how to update. Basically you can run fastlane snapshot update to update your SnapshotHelper.swift files. In case you modified your SnapshotHelper.swift and want to manually update the file, check out SnapshotHelper.swift .","title":"Update snapshot helpers"},{"location":"actions/capture_ios_screenshots/#launch-arguments","text":"You can provide additional arguments to your app on launch. These strings will be available in your app (e.g. not in the testing target) through ProcessInfo.processInfo.arguments . Alternatively, use user-default syntax ( -key value ) and they will be available as key-value pairs in UserDefaults.standard . launch_arguments([ \"-firstName Felix -lastName Krause\" ]) name.text = UserDefaults.standard.string(forKey: \"firstName\") // name.text = \"Felix\" snapshot includes -FASTLANE_SNAPSHOT YES , which will set a temporary user default for the key FASTLANE_SNAPSHOT , you may use this to detect when the app is run by snapshot . if UserDefaults.standard.bool(forKey: \"FASTLANE_SNAPSHOT\") { // runtime check that we are in snapshot mode } Specify multiple argument strings and snapshot will generate screenshots for each combination of arguments, devices, and languages. This is useful for comparing the same screenshots with different feature flags, dynamic text sizes, and different data sets. # Snapfile for A/B Test Comparison launch_arguments([ \"-secretFeatureEnabled YES\", \"-secretFeatureEnabled NO\" ])","title":"Launch Arguments"},{"location":"actions/capture_ios_screenshots/#xcode-environment-variables","text":"snapshot includes FASTLANE_SNAPSHOT=YES and FASTLANE_LANGUAGE= as arguments when executing xcodebuild . This means you may use these environment variables in a custom build phase run script to do any additional configuration.","title":"Xcode Environment Variables"},{"location":"actions/capture_ios_screenshots/#how-does-it-work","text":"The easiest solution would be to just render the UIWindow into a file. That's not possible because UI Tests don't run on a main thread. So snapshot uses a different approach: When you run unit tests in Xcode, the reporter generates a plist file, documenting all events that occurred during the tests ( More Information ). Additionally, Xcode generates screenshots before, during and after each of these events. There is no way to manually trigger a screenshot event. The screenshots and the plist files are stored in the DerivedData directory, which snapshot stores in a temporary folder. When the user calls snapshot(...) in the UI Tests (Swift or Objective C) the script actually does a rotation to .Unknown which doesn't have any effect on the actual app, but is enough to trigger a screenshot. It has no effect to the application and is not something you would do in your tests. The goal was to find some event that a user would never trigger, so that we know it's from snapshot . On tvOS, there is no orientation so we ask for a count of app views with type \"Browser\" (which should never exist on tvOS). snapshot then iterates through all test events and check where we either did this weird rotation (on iOS) or searched for browsers (on tvOS). Once snapshot has all events triggered by snapshot it collects a ordered list of all the file names of the actual screenshots of the application. In the test output, the Swift snapshot function will print out something like this snapshot: [some random text here] snapshot finds all these entries using a regex. The number of snapshot outputs in the terminal and the number of snapshot events in the plist file should be the same. Knowing that, snapshot automatically matches these 2 lists to identify the name of each of these screenshots. They are then copied over to the output directory and separated by language and device. 2 thing have to be passed on from snapshot to the xcodebuild command line tool: The device type is passed via the destination parameter of the xcodebuild parameter The language is passed via a temporary file which is written by snapshot before running the tests and read by the UI Tests when launching the application If you find a better way to do any of this, please submit an issue on GitHub or even a pull request :+1: Radar 23062925 has been resolved with Xcode 8.3, so it's now possible to actually take screenshots from the simulator. We'll keep using the old approach for now, since many of you still want to use older versions of Xcode.","title":"How does it work?"},{"location":"actions/capture_ios_screenshots/#tips","text":"","title":"Tips"},{"location":"actions/capture_ios_screenshots/#frame-the-screenshots","text":"If you want to add frames around the screenshots and even put a title on top, check out frameit .","title":"Frame the screenshots"},{"location":"actions/capture_ios_screenshots/#available-language-codes","text":"ALL_LANGUAGES = [\"da\", \"de-DE\", \"el\", \"en-AU\", \"en-CA\", \"en-GB\", \"en-US\", \"es-ES\", \"es-MX\", \"fi\", \"fr-CA\", \"fr-FR\", \"id\", \"it\", \"ja\", \"ko\", \"ms\", \"nl-NL\", \"no\", \"pt-BR\", \"pt-PT\", \"ru\", \"sv\", \"th\", \"tr\", \"vi\", \"zh-Hans\", \"zh-Hant\"] To get more information about language and locale codes please read Internationalization and Localization Guide .","title":"Available language codes"},{"location":"actions/capture_ios_screenshots/#use-a-clean-status-bar","text":"You can set override_status_bar to true to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available.","title":"Use a clean status bar"},{"location":"actions/capture_ios_screenshots/#editing-the-snapfile","text":"Change syntax highlighting to Ruby .","title":"Editing the Snapfile"},{"location":"actions/capture_ios_screenshots/#determine-language","text":"To detect the currently used localization in your tests, access the deviceLanguage variable from SnapshotHelper.swift .","title":"Determine language"},{"location":"actions/capture_ios_screenshots/#speed-up-snapshots","text":"A lot of time in UI tests is spent waiting for animations. You can disable UIView animations in your app to make the tests faster: if ProcessInfo().arguments.contains(\"SKIP_ANIMATIONS\") { UIView.setAnimationsEnabled(false) } This requires you to pass the launch argument like so: snapshot(launch_arguments: [\"SKIP_ANIMATIONS\"]) By default, snapshot will wait for a short time for the animations to finish. If you're skipping the animations, this wait time is unnecessary and can be skipped: setupSnapshot(app, waitForAnimations: false) capture_ios_screenshots Supported platforms ios, mac Author @KrauseFx","title":"Speed up snapshots"},{"location":"actions/capture_ios_screenshots/#3-examples","text":"capture_ios_screenshots snapshot # alias for \"capture_ios_screenshots\" capture_ios_screenshots( skip_open_summary: true, clean: true )","title":"3 Examples"},{"location":"actions/capture_ios_screenshots/#parameters","text":"Key Description Default workspace Path the workspace file project Path the project file xcargs Pass additional arguments to xcodebuild for the test phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app devices A list of devices you want to take the screenshots from languages A list of languages which should be used [\"en-US\"] launch_arguments A list of launch arguments which should be used [\"\"] output_directory The directory where to store the screenshots * output_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false ios_version By default, the latest version should be used automatically. If you want to change it, do it here skip_open_summary Don't open the HTML summary after running snapshot false skip_helper_version_check Do not check for most recent SnapshotHelper code false clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running snapshot false reinstall_app Enabling this option will automatically uninstall the application before running it false erase_simulator Enabling this option will automatically erase the simulator before running the application false headless Enabling this option will prevent displaying the simulator window true override_status_bar Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception (Adjust 'SNAPSHOT_SIMULATOR_WAIT_FOR_BOOT_TIMEOUT' environment variable if override status bar is not working. Might be because simulator is not fully booted. Defaults to 10 seconds) false override_status_bar_arguments Fully customize the status bar by setting each option here. Requires override_status_bar to be set to true . See xcrun simctl status_bar --help localize_simulator Enabling this option will configure the Simulator's system language false dark_mode Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark) app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * add_photos A list of photos that should be added to the simulator before running the application add_videos A list of videos that should be added to the simulator before running the application html_template A path to screenshots.html template buildlog_path The directory where to store the build log * clean Should the project be cleaned before building it? false test_without_building Test without building, requires a derived data path configuration The configuration to use when building the app. Defaults to 'Release' * sdk The SDK that should be used for building the application scheme The scheme you want to use, this must be the scheme for the UI Tests number_of_retries The number of times a test can fail before snapshot should stop retrying 1 stop_after_first_error Should snapshot stop immediately after the tests completely failed on one device? false derived_data_path The directory where build products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false test_target_name The name of the target you want to test (if you desire to override the Target Application from Xcode) namespace_log_files Separate the log files per device and per language concurrent_simulators Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9 true disable_slide_to_type Disable the simulator from showing the 'Slide to type' prompt false cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false testplan The testplan associated with the scheme that should be used for testing only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * xcpretty_args DEPRECATED! Use xcodebuild_formatter: '' instead - Additional xcpretty arguments disable_xcpretty Disable xcpretty formatting of build suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/capture_ios_screenshots/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The capture_ios_screenshots action generates the following Lane Variables: SharedValue Description SharedValues::SNAPSHOT_SCREENSHOTS_PATH The path to the screenshots To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/capture_ios_screenshots/#documentation","text":"To show the documentation in your terminal, run fastlane action capture_ios_screenshots","title":"Documentation"},{"location":"actions/capture_ios_screenshots/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run capture_ios_screenshots To pass parameters, make use of the : symbol, for example fastlane run capture_ios_screenshots parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/capture_ios_screenshots/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/capture_screenshots/","text":"capture_screenshots Alias for the capture_ios_screenshots action Automate taking localized screenshots of your iOS, tvOS, and watchOS apps on every device Check out the new fastlane documentation on how to generate screenshots snapshot generates localized iOS, tvOS, and watchOS screenshots for different device types and languages for the App Store and can be uploaded using ( deliver ). You have to manually create 20 (languages) x 6 (devices) x 5 (screenshots) = 600 screenshots . It's hard to get everything right! New screenshots with every (design) update No loading indicators Same content / screens Clean Status Bar Uploading screenshots ( deliver is your friend) More information about creating perfect screenshots . snapshot runs completely in the background - you can do something else, while your computer takes the screenshots for you. Features \u2022 UI Tests \u2022 Quick Start \u2022 Usage \u2022 Tips \u2022 How? Features Create hundreds of screenshots in multiple languages on all simulators Take screenshots in multiple device simulators concurrently to cut down execution time (Xcode 9 only) Configure it once, store the configuration in git Do something else, while the computer takes the screenshots for you Integrates with fastlane and deliver Generates a beautiful web page, which shows all screenshots on all devices. This is perfect to send to QA or the marketing team snapshot automatically waits for network requests to be finished before taking a screenshot (we don't want loading images in the App Store screenshots) After snapshot successfully created new screenshots, it will generate a beautiful HTML file to get a quick overview of all screens: Why? This tool automatically switches the language and device type and runs UI Tests for every combination. Why should I automate this process? It takes hours to take screenshots You get a great overview of all your screens, running on all available simulators without the need to manually start it hundreds of times Easy verification for translators (without an iDevice) that translations do make sense in real App context Easy verification that localizations fit into labels on all screen dimensions It is an integration test: You can test for UI elements and other things inside your scripts Be so nice, and provide new screenshots with every App Store update. Your customers deserve it You realize, there is a spelling mistake in one of the screens? Well, just correct it and re-run the script UI Tests Getting started This project uses Apple's newly announced UI Tests. We will not go into detail on how to write scripts. Here a few links to get started: WWDC 2015 Introduction to UI Tests A first look into UI Tests UI Testing in Xcode 7 HSTestingBackchannel : \u2018Cheat\u2019 by communicating directly with your app Automating App Store screenshots using fastlane snapshot and frameit Quick Start Create a new UI Test target in your Xcode project ( top part of this article ) Run fastlane snapshot init in your project folder Add the ./SnapshotHelper.swift to your UI Test target (You can move the file anywhere you want) (Xcode 8 only) add the ./SnapshotHelperXcode8.swift to your UI Test target (Objective C only) add the bridging header to your test class: #import \"MYUITests-Swift.h\" (The bridging header is named after your test target with -Swift.h appended.) In your UI Test class, click the Record button on the bottom left and record your interaction To take a snapshot, call the following between interactions Swift: snapshot(\"01LoginScreen\") Objective C: [Snapshot snapshot:@\"01LoginScreen\" timeWaitingForIdle:10]; Add the following code to your setUp() method: Swift: let app = XCUIApplication() setupSnapshot(app) app.launch() Objective C: XCUIApplication *app = [[XCUIApplication alloc] init]; [Snapshot setupSnapshot:app waitForAnimations:NO]; [app launch]; Make sure you only have one launch call in your test class, as Xcode adds one automatically on new test files. You can try the snapshot example project by cloning this repo. To quick start your UI tests, you can use the UI Test recorder. You only have to interact with the simulator, and Xcode will generate the UI Test code for you. You can find the red record button on the bottom of the screen (more information in this blog post ) Usage fastlane snapshot Your screenshots will be stored in the ./screenshots/ folder by default (or ./fastlane/screenshots if you're using fastlane ) New with Xcode 9, snapshot can run multiple simulators concurrently. This is the default behavior in order to take your screenshots as quickly as possible. This can be disabled to run each device, one at a time, by setting the :concurrent_simulators option to false . Note: While running snapshot with Xcode 9, the simulators will not be visibly spawned. So, while you won't see the simulators running your tests, they will, in fact, be taking your screenshots. If any error occurs while running the snapshot script on a device, that device will not have any screenshots, and snapshot will continue with the next device or language. To stop the flow after the first error, run fastlane snapshot --stop_after_first_error Also by default, snapshot will open the HTML after all is done. This can be skipped with the following command fastlane snapshot --stop_after_first_error --skip_open_summary There are a lot of options available that define how to build your app, for example fastlane snapshot --scheme \"UITests\" --configuration \"Release\" --sdk \"iphonesimulator\" Reinstall the app before running snapshot fastlane snapshot --reinstall_app --app_identifier \"tools.fastlane.app\" By default snapshot automatically retries running UI Tests if they fail. This is due to randomly failing UI Tests (e.g. #2517 ). You can adapt this number using fastlane snapshot --number_of_retries 3 Add photos and/or videos to the simulator before running snapshot fastlane snapshot --add_photos MyTestApp/Assets/demo.jpg --add_videos MyTestApp/Assets/demo.mp4 For a list for all available options run fastlane action snapshot After running snapshot you will get a nice summary: Snapfile All of the available options can also be stored in a configuration file called the Snapfile . Since most values will not change often for your project, it is recommended to store them there: First make sure to have a Snapfile (you get it for free when running fastlane snapshot init ) The Snapfile can contain all the options that are also available on fastlane action snapshot scheme(\"UITests\") devices([ \"iPad (7th generation)\", \"iPad Air (3rd generation)\", \"iPad Pro (11-inch)\", \"iPad Pro (12.9-inch) (3rd generation)\", \"iPad Pro (9.7-inch)\", \"iPhone 11\", \"iPhone 11 Pro\", \"iPhone 11 Pro Max\", \"iPhone 8\", \"iPhone 8 Plus\" ]) languages([ \"en-US\", \"de-DE\", \"es-ES\", [\"pt\", \"pt_BR\"] # Portuguese with Brazilian locale ]) launch_arguments([\"-username Felix\"]) # The directory in which the screenshots should be stored output_directory('./screenshots') clear_previous_screenshots(true) override_status_bar(true) add_photos([\"MyTestApp/Assets/demo.jpg\"]) Completely reset all simulators You can run this command in the terminal to delete and re-create all iOS and tvOS simulators: fastlane snapshot reset_simulators Warning : This will delete all your simulators and replace by new ones! This is useful, if you run into weird problems when running snapshot . You can use the environment variable SNAPSHOT_FORCE_DELETE to stop asking for confirmation before deleting. SNAPSHOT_FORCE_DELETE=1 fastlane snapshot reset_simulators Update snapshot helpers Some updates require the helper files to be updated. snapshot will automatically warn you and tell you how to update. Basically you can run fastlane snapshot update to update your SnapshotHelper.swift files. In case you modified your SnapshotHelper.swift and want to manually update the file, check out SnapshotHelper.swift . Launch Arguments You can provide additional arguments to your app on launch. These strings will be available in your app (e.g. not in the testing target) through ProcessInfo.processInfo.arguments . Alternatively, use user-default syntax ( -key value ) and they will be available as key-value pairs in UserDefaults.standard . launch_arguments([ \"-firstName Felix -lastName Krause\" ]) name.text = UserDefaults.standard.string(forKey: \"firstName\") // name.text = \"Felix\" snapshot includes -FASTLANE_SNAPSHOT YES , which will set a temporary user default for the key FASTLANE_SNAPSHOT , you may use this to detect when the app is run by snapshot . if UserDefaults.standard.bool(forKey: \"FASTLANE_SNAPSHOT\") { // runtime check that we are in snapshot mode } Specify multiple argument strings and snapshot will generate screenshots for each combination of arguments, devices, and languages. This is useful for comparing the same screenshots with different feature flags, dynamic text sizes, and different data sets. # Snapfile for A/B Test Comparison launch_arguments([ \"-secretFeatureEnabled YES\", \"-secretFeatureEnabled NO\" ]) Xcode Environment Variables snapshot includes FASTLANE_SNAPSHOT=YES and FASTLANE_LANGUAGE= as arguments when executing xcodebuild . This means you may use these environment variables in a custom build phase run script to do any additional configuration. How does it work? The easiest solution would be to just render the UIWindow into a file. That's not possible because UI Tests don't run on a main thread. So snapshot uses a different approach: When you run unit tests in Xcode, the reporter generates a plist file, documenting all events that occurred during the tests ( More Information ). Additionally, Xcode generates screenshots before, during and after each of these events. There is no way to manually trigger a screenshot event. The screenshots and the plist files are stored in the DerivedData directory, which snapshot stores in a temporary folder. When the user calls snapshot(...) in the UI Tests (Swift or Objective C) the script actually does a rotation to .Unknown which doesn't have any effect on the actual app, but is enough to trigger a screenshot. It has no effect to the application and is not something you would do in your tests. The goal was to find some event that a user would never trigger, so that we know it's from snapshot . On tvOS, there is no orientation so we ask for a count of app views with type \"Browser\" (which should never exist on tvOS). snapshot then iterates through all test events and check where we either did this weird rotation (on iOS) or searched for browsers (on tvOS). Once snapshot has all events triggered by snapshot it collects a ordered list of all the file names of the actual screenshots of the application. In the test output, the Swift snapshot function will print out something like this snapshot: [some random text here] snapshot finds all these entries using a regex. The number of snapshot outputs in the terminal and the number of snapshot events in the plist file should be the same. Knowing that, snapshot automatically matches these 2 lists to identify the name of each of these screenshots. They are then copied over to the output directory and separated by language and device. 2 thing have to be passed on from snapshot to the xcodebuild command line tool: The device type is passed via the destination parameter of the xcodebuild parameter The language is passed via a temporary file which is written by snapshot before running the tests and read by the UI Tests when launching the application If you find a better way to do any of this, please submit an issue on GitHub or even a pull request :+1: Radar 23062925 has been resolved with Xcode 8.3, so it's now possible to actually take screenshots from the simulator. We'll keep using the old approach for now, since many of you still want to use older versions of Xcode. Tips Check out the new fastlane documentation on how to generate screenshots Frame the screenshots If you want to add frames around the screenshots and even put a title on top, check out frameit . Available language codes ALL_LANGUAGES = [\"da\", \"de-DE\", \"el\", \"en-AU\", \"en-CA\", \"en-GB\", \"en-US\", \"es-ES\", \"es-MX\", \"fi\", \"fr-CA\", \"fr-FR\", \"id\", \"it\", \"ja\", \"ko\", \"ms\", \"nl-NL\", \"no\", \"pt-BR\", \"pt-PT\", \"ru\", \"sv\", \"th\", \"tr\", \"vi\", \"zh-Hans\", \"zh-Hant\"] To get more information about language and locale codes please read Internationalization and Localization Guide . Use a clean status bar You can set override_status_bar to true to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available. Editing the Snapfile Change syntax highlighting to Ruby . Simulator doesn't launch the application When the app dies directly after the application is launched there might be 2 problems The simulator is somehow in a broken state and you need to re-create it. You can use snapshot reset_simulators to reset all simulators (this will remove all installed apps) A restart helps very often Determine language To detect the currently used localization in your tests, access the deviceLanguage variable from SnapshotHelper.swift . Speed up snapshots A lot of time in UI tests is spent waiting for animations. You can disable UIView animations in your app to make the tests faster: if ProcessInfo().arguments.contains(\"SKIP_ANIMATIONS\") { UIView.setAnimationsEnabled(false) } This requires you to pass the launch argument like so: snapshot(launch_arguments: [\"SKIP_ANIMATIONS\"]) By default, snapshot will wait for a short time for the animations to finish. If you're skipping the animations, this wait time is unnecessary and can be skipped: setupSnapshot(app, waitForAnimations: false) capture_screenshots Supported platforms ios, mac Author @KrauseFx 3 Examples capture_ios_screenshots snapshot # alias for \"capture_ios_screenshots\" capture_ios_screenshots( skip_open_summary: true, clean: true ) Parameters Key Description Default workspace Path the workspace file project Path the project file xcargs Pass additional arguments to xcodebuild for the test phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app devices A list of devices you want to take the screenshots from languages A list of languages which should be used [\"en-US\"] launch_arguments A list of launch arguments which should be used [\"\"] output_directory The directory where to store the screenshots * output_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false ios_version By default, the latest version should be used automatically. If you want to change it, do it here skip_open_summary Don't open the HTML summary after running snapshot false skip_helper_version_check Do not check for most recent SnapshotHelper code false clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running snapshot false reinstall_app Enabling this option will automatically uninstall the application before running it false erase_simulator Enabling this option will automatically erase the simulator before running the application false headless Enabling this option will prevent displaying the simulator window true override_status_bar Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception (Adjust 'SNAPSHOT_SIMULATOR_WAIT_FOR_BOOT_TIMEOUT' environment variable if override status bar is not working. Might be because simulator is not fully booted. Defaults to 10 seconds) false override_status_bar_arguments Fully customize the status bar by setting each option here. Requires override_status_bar to be set to true . See xcrun simctl status_bar --help localize_simulator Enabling this option will configure the Simulator's system language false dark_mode Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark) app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * add_photos A list of photos that should be added to the simulator before running the application add_videos A list of videos that should be added to the simulator before running the application html_template A path to screenshots.html template buildlog_path The directory where to store the build log * clean Should the project be cleaned before building it? false test_without_building Test without building, requires a derived data path configuration The configuration to use when building the app. Defaults to 'Release' * sdk The SDK that should be used for building the application scheme The scheme you want to use, this must be the scheme for the UI Tests number_of_retries The number of times a test can fail before snapshot should stop retrying 1 stop_after_first_error Should snapshot stop immediately after the tests completely failed on one device? false derived_data_path The directory where build products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false test_target_name The name of the target you want to test (if you desire to override the Target Application from Xcode) namespace_log_files Separate the log files per device and per language concurrent_simulators Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9 true disable_slide_to_type Disable the simulator from showing the 'Slide to type' prompt false cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false testplan The testplan associated with the scheme that should be used for testing only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * xcpretty_args DEPRECATED! Use xcodebuild_formatter: '' instead - Additional xcpretty arguments disable_xcpretty Disable xcpretty formatting of build suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The capture_screenshots action generates the following Lane Variables: SharedValue Description SharedValues::SNAPSHOT_SCREENSHOTS_PATH The path to the screenshots To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action capture_screenshots CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run capture_screenshots To pass parameters, make use of the : symbol, for example fastlane run capture_screenshots parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"capture_screenshots"},{"location":"actions/capture_screenshots/#capture_screenshots","text":"Alias for the capture_ios_screenshots action","title":"capture_screenshots"},{"location":"actions/capture_screenshots/#features","text":"Create hundreds of screenshots in multiple languages on all simulators Take screenshots in multiple device simulators concurrently to cut down execution time (Xcode 9 only) Configure it once, store the configuration in git Do something else, while the computer takes the screenshots for you Integrates with fastlane and deliver Generates a beautiful web page, which shows all screenshots on all devices. This is perfect to send to QA or the marketing team snapshot automatically waits for network requests to be finished before taking a screenshot (we don't want loading images in the App Store screenshots) After snapshot successfully created new screenshots, it will generate a beautiful HTML file to get a quick overview of all screens:","title":"Features"},{"location":"actions/capture_screenshots/#why","text":"This tool automatically switches the language and device type and runs UI Tests for every combination.","title":"Why?"},{"location":"actions/capture_screenshots/#ui-tests","text":"","title":"UI Tests"},{"location":"actions/capture_screenshots/#getting-started","text":"This project uses Apple's newly announced UI Tests. We will not go into detail on how to write scripts. Here a few links to get started: WWDC 2015 Introduction to UI Tests A first look into UI Tests UI Testing in Xcode 7 HSTestingBackchannel : \u2018Cheat\u2019 by communicating directly with your app Automating App Store screenshots using fastlane snapshot and frameit","title":"Getting started"},{"location":"actions/capture_screenshots/#quick-start","text":"Create a new UI Test target in your Xcode project ( top part of this article ) Run fastlane snapshot init in your project folder Add the ./SnapshotHelper.swift to your UI Test target (You can move the file anywhere you want) (Xcode 8 only) add the ./SnapshotHelperXcode8.swift to your UI Test target (Objective C only) add the bridging header to your test class: #import \"MYUITests-Swift.h\" (The bridging header is named after your test target with -Swift.h appended.) In your UI Test class, click the Record button on the bottom left and record your interaction To take a snapshot, call the following between interactions Swift: snapshot(\"01LoginScreen\") Objective C: [Snapshot snapshot:@\"01LoginScreen\" timeWaitingForIdle:10]; Add the following code to your setUp() method: Swift: let app = XCUIApplication() setupSnapshot(app) app.launch() Objective C: XCUIApplication *app = [[XCUIApplication alloc] init]; [Snapshot setupSnapshot:app waitForAnimations:NO]; [app launch]; Make sure you only have one launch call in your test class, as Xcode adds one automatically on new test files. You can try the snapshot example project by cloning this repo. To quick start your UI tests, you can use the UI Test recorder. You only have to interact with the simulator, and Xcode will generate the UI Test code for you. You can find the red record button on the bottom of the screen (more information in this blog post )","title":"Quick Start"},{"location":"actions/capture_screenshots/#usage","text":"fastlane snapshot Your screenshots will be stored in the ./screenshots/ folder by default (or ./fastlane/screenshots if you're using fastlane ) New with Xcode 9, snapshot can run multiple simulators concurrently. This is the default behavior in order to take your screenshots as quickly as possible. This can be disabled to run each device, one at a time, by setting the :concurrent_simulators option to false . Note: While running snapshot with Xcode 9, the simulators will not be visibly spawned. So, while you won't see the simulators running your tests, they will, in fact, be taking your screenshots. If any error occurs while running the snapshot script on a device, that device will not have any screenshots, and snapshot will continue with the next device or language. To stop the flow after the first error, run fastlane snapshot --stop_after_first_error Also by default, snapshot will open the HTML after all is done. This can be skipped with the following command fastlane snapshot --stop_after_first_error --skip_open_summary There are a lot of options available that define how to build your app, for example fastlane snapshot --scheme \"UITests\" --configuration \"Release\" --sdk \"iphonesimulator\" Reinstall the app before running snapshot fastlane snapshot --reinstall_app --app_identifier \"tools.fastlane.app\" By default snapshot automatically retries running UI Tests if they fail. This is due to randomly failing UI Tests (e.g. #2517 ). You can adapt this number using fastlane snapshot --number_of_retries 3 Add photos and/or videos to the simulator before running snapshot fastlane snapshot --add_photos MyTestApp/Assets/demo.jpg --add_videos MyTestApp/Assets/demo.mp4 For a list for all available options run fastlane action snapshot After running snapshot you will get a nice summary:","title":"Usage"},{"location":"actions/capture_screenshots/#snapfile","text":"All of the available options can also be stored in a configuration file called the Snapfile . Since most values will not change often for your project, it is recommended to store them there: First make sure to have a Snapfile (you get it for free when running fastlane snapshot init ) The Snapfile can contain all the options that are also available on fastlane action snapshot scheme(\"UITests\") devices([ \"iPad (7th generation)\", \"iPad Air (3rd generation)\", \"iPad Pro (11-inch)\", \"iPad Pro (12.9-inch) (3rd generation)\", \"iPad Pro (9.7-inch)\", \"iPhone 11\", \"iPhone 11 Pro\", \"iPhone 11 Pro Max\", \"iPhone 8\", \"iPhone 8 Plus\" ]) languages([ \"en-US\", \"de-DE\", \"es-ES\", [\"pt\", \"pt_BR\"] # Portuguese with Brazilian locale ]) launch_arguments([\"-username Felix\"]) # The directory in which the screenshots should be stored output_directory('./screenshots') clear_previous_screenshots(true) override_status_bar(true) add_photos([\"MyTestApp/Assets/demo.jpg\"])","title":"Snapfile"},{"location":"actions/capture_screenshots/#update-snapshot-helpers","text":"Some updates require the helper files to be updated. snapshot will automatically warn you and tell you how to update. Basically you can run fastlane snapshot update to update your SnapshotHelper.swift files. In case you modified your SnapshotHelper.swift and want to manually update the file, check out SnapshotHelper.swift .","title":"Update snapshot helpers"},{"location":"actions/capture_screenshots/#launch-arguments","text":"You can provide additional arguments to your app on launch. These strings will be available in your app (e.g. not in the testing target) through ProcessInfo.processInfo.arguments . Alternatively, use user-default syntax ( -key value ) and they will be available as key-value pairs in UserDefaults.standard . launch_arguments([ \"-firstName Felix -lastName Krause\" ]) name.text = UserDefaults.standard.string(forKey: \"firstName\") // name.text = \"Felix\" snapshot includes -FASTLANE_SNAPSHOT YES , which will set a temporary user default for the key FASTLANE_SNAPSHOT , you may use this to detect when the app is run by snapshot . if UserDefaults.standard.bool(forKey: \"FASTLANE_SNAPSHOT\") { // runtime check that we are in snapshot mode } Specify multiple argument strings and snapshot will generate screenshots for each combination of arguments, devices, and languages. This is useful for comparing the same screenshots with different feature flags, dynamic text sizes, and different data sets. # Snapfile for A/B Test Comparison launch_arguments([ \"-secretFeatureEnabled YES\", \"-secretFeatureEnabled NO\" ])","title":"Launch Arguments"},{"location":"actions/capture_screenshots/#xcode-environment-variables","text":"snapshot includes FASTLANE_SNAPSHOT=YES and FASTLANE_LANGUAGE= as arguments when executing xcodebuild . This means you may use these environment variables in a custom build phase run script to do any additional configuration.","title":"Xcode Environment Variables"},{"location":"actions/capture_screenshots/#how-does-it-work","text":"The easiest solution would be to just render the UIWindow into a file. That's not possible because UI Tests don't run on a main thread. So snapshot uses a different approach: When you run unit tests in Xcode, the reporter generates a plist file, documenting all events that occurred during the tests ( More Information ). Additionally, Xcode generates screenshots before, during and after each of these events. There is no way to manually trigger a screenshot event. The screenshots and the plist files are stored in the DerivedData directory, which snapshot stores in a temporary folder. When the user calls snapshot(...) in the UI Tests (Swift or Objective C) the script actually does a rotation to .Unknown which doesn't have any effect on the actual app, but is enough to trigger a screenshot. It has no effect to the application and is not something you would do in your tests. The goal was to find some event that a user would never trigger, so that we know it's from snapshot . On tvOS, there is no orientation so we ask for a count of app views with type \"Browser\" (which should never exist on tvOS). snapshot then iterates through all test events and check where we either did this weird rotation (on iOS) or searched for browsers (on tvOS). Once snapshot has all events triggered by snapshot it collects a ordered list of all the file names of the actual screenshots of the application. In the test output, the Swift snapshot function will print out something like this snapshot: [some random text here] snapshot finds all these entries using a regex. The number of snapshot outputs in the terminal and the number of snapshot events in the plist file should be the same. Knowing that, snapshot automatically matches these 2 lists to identify the name of each of these screenshots. They are then copied over to the output directory and separated by language and device. 2 thing have to be passed on from snapshot to the xcodebuild command line tool: The device type is passed via the destination parameter of the xcodebuild parameter The language is passed via a temporary file which is written by snapshot before running the tests and read by the UI Tests when launching the application If you find a better way to do any of this, please submit an issue on GitHub or even a pull request :+1: Radar 23062925 has been resolved with Xcode 8.3, so it's now possible to actually take screenshots from the simulator. We'll keep using the old approach for now, since many of you still want to use older versions of Xcode.","title":"How does it work?"},{"location":"actions/capture_screenshots/#tips","text":"","title":"Tips"},{"location":"actions/capture_screenshots/#frame-the-screenshots","text":"If you want to add frames around the screenshots and even put a title on top, check out frameit .","title":"Frame the screenshots"},{"location":"actions/capture_screenshots/#available-language-codes","text":"ALL_LANGUAGES = [\"da\", \"de-DE\", \"el\", \"en-AU\", \"en-CA\", \"en-GB\", \"en-US\", \"es-ES\", \"es-MX\", \"fi\", \"fr-CA\", \"fr-FR\", \"id\", \"it\", \"ja\", \"ko\", \"ms\", \"nl-NL\", \"no\", \"pt-BR\", \"pt-PT\", \"ru\", \"sv\", \"th\", \"tr\", \"vi\", \"zh-Hans\", \"zh-Hant\"] To get more information about language and locale codes please read Internationalization and Localization Guide .","title":"Available language codes"},{"location":"actions/capture_screenshots/#use-a-clean-status-bar","text":"You can set override_status_bar to true to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available.","title":"Use a clean status bar"},{"location":"actions/capture_screenshots/#editing-the-snapfile","text":"Change syntax highlighting to Ruby .","title":"Editing the Snapfile"},{"location":"actions/capture_screenshots/#determine-language","text":"To detect the currently used localization in your tests, access the deviceLanguage variable from SnapshotHelper.swift .","title":"Determine language"},{"location":"actions/capture_screenshots/#speed-up-snapshots","text":"A lot of time in UI tests is spent waiting for animations. You can disable UIView animations in your app to make the tests faster: if ProcessInfo().arguments.contains(\"SKIP_ANIMATIONS\") { UIView.setAnimationsEnabled(false) } This requires you to pass the launch argument like so: snapshot(launch_arguments: [\"SKIP_ANIMATIONS\"]) By default, snapshot will wait for a short time for the animations to finish. If you're skipping the animations, this wait time is unnecessary and can be skipped: setupSnapshot(app, waitForAnimations: false) capture_screenshots Supported platforms ios, mac Author @KrauseFx","title":"Speed up snapshots"},{"location":"actions/capture_screenshots/#3-examples","text":"capture_ios_screenshots snapshot # alias for \"capture_ios_screenshots\" capture_ios_screenshots( skip_open_summary: true, clean: true )","title":"3 Examples"},{"location":"actions/capture_screenshots/#parameters","text":"Key Description Default workspace Path the workspace file project Path the project file xcargs Pass additional arguments to xcodebuild for the test phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app devices A list of devices you want to take the screenshots from languages A list of languages which should be used [\"en-US\"] launch_arguments A list of launch arguments which should be used [\"\"] output_directory The directory where to store the screenshots * output_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false ios_version By default, the latest version should be used automatically. If you want to change it, do it here skip_open_summary Don't open the HTML summary after running snapshot false skip_helper_version_check Do not check for most recent SnapshotHelper code false clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running snapshot false reinstall_app Enabling this option will automatically uninstall the application before running it false erase_simulator Enabling this option will automatically erase the simulator before running the application false headless Enabling this option will prevent displaying the simulator window true override_status_bar Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception (Adjust 'SNAPSHOT_SIMULATOR_WAIT_FOR_BOOT_TIMEOUT' environment variable if override status bar is not working. Might be because simulator is not fully booted. Defaults to 10 seconds) false override_status_bar_arguments Fully customize the status bar by setting each option here. Requires override_status_bar to be set to true . See xcrun simctl status_bar --help localize_simulator Enabling this option will configure the Simulator's system language false dark_mode Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark) app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * add_photos A list of photos that should be added to the simulator before running the application add_videos A list of videos that should be added to the simulator before running the application html_template A path to screenshots.html template buildlog_path The directory where to store the build log * clean Should the project be cleaned before building it? false test_without_building Test without building, requires a derived data path configuration The configuration to use when building the app. Defaults to 'Release' * sdk The SDK that should be used for building the application scheme The scheme you want to use, this must be the scheme for the UI Tests number_of_retries The number of times a test can fail before snapshot should stop retrying 1 stop_after_first_error Should snapshot stop immediately after the tests completely failed on one device? false derived_data_path The directory where build products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false test_target_name The name of the target you want to test (if you desire to override the Target Application from Xcode) namespace_log_files Separate the log files per device and per language concurrent_simulators Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9 true disable_slide_to_type Disable the simulator from showing the 'Slide to type' prompt false cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false testplan The testplan associated with the scheme that should be used for testing only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * xcpretty_args DEPRECATED! Use xcodebuild_formatter: '' instead - Additional xcpretty arguments disable_xcpretty Disable xcpretty formatting of build suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/capture_screenshots/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The capture_screenshots action generates the following Lane Variables: SharedValue Description SharedValues::SNAPSHOT_SCREENSHOTS_PATH The path to the screenshots To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/capture_screenshots/#documentation","text":"To show the documentation in your terminal, run fastlane action capture_screenshots","title":"Documentation"},{"location":"actions/capture_screenshots/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run capture_screenshots To pass parameters, make use of the : symbol, for example fastlane run capture_screenshots parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/capture_screenshots/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/carthage/","text":"carthage Runs carthage for your project carthage Supported platforms ios, mac Author @bassrock, @petester42, @jschmid, @JaviSoto, @uny, @phatblat, @bfcrampton, @antondomashnev, @gbrhaz 2 Examples carthage carthage( frameworks: [\"MyFramework1\", \"MyFramework2\"], # Specify which frameworks to archive (only for the archive command) output: \"MyFrameworkBundle.framework.zip\", # Specify the output archive name (only for the archive command) command: \"bootstrap\", # One of: build, bootstrap, update, archive. (default: bootstrap) dependencies: [\"Alamofire\", \"Notice\"],# Specify which dependencies to update or build (only for update, build and bootstrap commands) use_ssh: false, # Use SSH for downloading GitHub repositories. use_submodules: false, # Add dependencies as Git submodules. use_binaries: true, # Check out dependency repositories even when prebuilt frameworks exist no_build: false, # When bootstrapping Carthage do not build no_skip_current: false, # Don't skip building the current project (only for frameworks) verbose: false, # Print xcodebuild output inline platform: \"all\", # Define which platform to build for (one of \u2018all\u2019, \u2018Mac\u2019, \u2018iOS\u2019, \u2018watchOS\u2019, \u2018tvOS\u2018, or comma-separated values of the formers except for \u2018all\u2019) configuration: \"Release\", # Build configuration to use when building cache_builds: true, # By default Carthage will rebuild a dependency regardless of whether its the same resolved version as before. toolchain: \"com.apple.dt.toolchain.Swift_2_3\", # Specify the xcodebuild toolchain new_resolver: false, # Use the new resolver to resolve dependency graph log_path: \"carthage.log\" # Path to the xcode build output ) Parameters Key Description Default command Carthage command (one of: build, bootstrap, update, archive) bootstrap dependencies Carthage dependencies to update, build or bootstrap [] use_ssh Use SSH for downloading GitHub repositories use_submodules Add dependencies as Git submodules use_netrc Use .netrc for downloading frameworks use_binaries Check out dependency repositories even when prebuilt frameworks exist no_checkout When bootstrapping Carthage do not checkout no_build When bootstrapping Carthage do not build no_skip_current Don't skip building the Carthage project (in addition to its dependencies) derived_data Use derived data folder at path verbose Print xcodebuild output inline platform Define which platform to build for cache_builds By default Carthage will rebuild a dependency regardless of whether it's the same resolved version as before. Passing the --cache-builds will cause carthage to avoid rebuilding a dependency if it can false frameworks Framework name or names to archive, could be applied only along with the archive command [] output Output name for the archive, could be applied only along with the archive command. Use following format *.framework.zip configuration Define which build configuration to use when building toolchain Define which xcodebuild toolchain to use when building project_directory Define the directory containing the Carthage project new_resolver Use new resolver when resolving dependency graph log_path Path to the xcode build output use_xcframeworks Create xcframework bundles instead of one framework per platform (requires Xcode 12+) false archive Archive built frameworks from the current project false executable Path to the carthage executable on your machine carthage * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action carthage CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run carthage To pass parameters, make use of the : symbol, for example fastlane run carthage parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"carthage"},{"location":"actions/carthage/#carthage","text":"Runs carthage for your project carthage Supported platforms ios, mac Author @bassrock, @petester42, @jschmid, @JaviSoto, @uny, @phatblat, @bfcrampton, @antondomashnev, @gbrhaz","title":"carthage"},{"location":"actions/carthage/#2-examples","text":"carthage carthage( frameworks: [\"MyFramework1\", \"MyFramework2\"], # Specify which frameworks to archive (only for the archive command) output: \"MyFrameworkBundle.framework.zip\", # Specify the output archive name (only for the archive command) command: \"bootstrap\", # One of: build, bootstrap, update, archive. (default: bootstrap) dependencies: [\"Alamofire\", \"Notice\"],# Specify which dependencies to update or build (only for update, build and bootstrap commands) use_ssh: false, # Use SSH for downloading GitHub repositories. use_submodules: false, # Add dependencies as Git submodules. use_binaries: true, # Check out dependency repositories even when prebuilt frameworks exist no_build: false, # When bootstrapping Carthage do not build no_skip_current: false, # Don't skip building the current project (only for frameworks) verbose: false, # Print xcodebuild output inline platform: \"all\", # Define which platform to build for (one of \u2018all\u2019, \u2018Mac\u2019, \u2018iOS\u2019, \u2018watchOS\u2019, \u2018tvOS\u2018, or comma-separated values of the formers except for \u2018all\u2019) configuration: \"Release\", # Build configuration to use when building cache_builds: true, # By default Carthage will rebuild a dependency regardless of whether its the same resolved version as before. toolchain: \"com.apple.dt.toolchain.Swift_2_3\", # Specify the xcodebuild toolchain new_resolver: false, # Use the new resolver to resolve dependency graph log_path: \"carthage.log\" # Path to the xcode build output )","title":"2 Examples"},{"location":"actions/carthage/#parameters","text":"Key Description Default command Carthage command (one of: build, bootstrap, update, archive) bootstrap dependencies Carthage dependencies to update, build or bootstrap [] use_ssh Use SSH for downloading GitHub repositories use_submodules Add dependencies as Git submodules use_netrc Use .netrc for downloading frameworks use_binaries Check out dependency repositories even when prebuilt frameworks exist no_checkout When bootstrapping Carthage do not checkout no_build When bootstrapping Carthage do not build no_skip_current Don't skip building the Carthage project (in addition to its dependencies) derived_data Use derived data folder at path verbose Print xcodebuild output inline platform Define which platform to build for cache_builds By default Carthage will rebuild a dependency regardless of whether it's the same resolved version as before. Passing the --cache-builds will cause carthage to avoid rebuilding a dependency if it can false frameworks Framework name or names to archive, could be applied only along with the archive command [] output Output name for the archive, could be applied only along with the archive command. Use following format *.framework.zip configuration Define which build configuration to use when building toolchain Define which xcodebuild toolchain to use when building project_directory Define the directory containing the Carthage project new_resolver Use new resolver when resolving dependency graph log_path Path to the xcode build output use_xcframeworks Create xcframework bundles instead of one framework per platform (requires Xcode 12+) false archive Archive built frameworks from the current project false executable Path to the carthage executable on your machine carthage * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/carthage/#documentation","text":"To show the documentation in your terminal, run fastlane action carthage","title":"Documentation"},{"location":"actions/carthage/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run carthage To pass parameters, make use of the : symbol, for example fastlane run carthage parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/carthage/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/cert/","text":"cert Alias for the get_certificates action Why? \u2022 Usage \u2022 How does it work? \u2022 Tips cert is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. In the gif we used cert && sigh , which will first create an iOS code signing certificate and then a provisioning profile for your app if cert succeeded. Usage Note : It is recommended to use match according to the codesigning.guide for generating and maintaining your certificates. Use cert directly only if you want full control over what's going on and know more about codesigning. fastlane cert This will check if any of the available signing certificates is installed on your local machine. Only if a new certificate needs to be created, cert will Create a new private key Create a new signing request Generate, downloads and installs the certificate Import all the generated files into your Keychain cert will never revoke your existing certificates. If you can't create any more certificates, cert will raise an exception, which means, you have to revoke one of the existing certificates to make room for a new one. You can pass your Apple ID: fastlane cert -u cert@krausefx.com For a list of available commands run fastlane action cert Keep in mind, there is no way for cert to download existing certificates + private keys from the Apple Developer Portal, as the private key never leaves your computer. Environment Variables Run fastlane action cert to get a list of all available environment variables. Use with sigh cert becomes really interesting when used in fastlane in combination with sigh . Update your Fastfile to contain the following code: lane :beta do cert sigh(force: true) end force: true will make sure to re-generate the provisioning profile on each run. This will result in sigh always using the correct signing certificate, which is installed on the local machine. How is my password stored? cert uses the password manager from fastlane . Take a look the CredentialsManager README for more information. Tips Use 'ProvisionQL' for advanced Quick Look in Finder Install ProvisionQL . It will show you mobileprovision files like this: cert Supported platforms ios Author @KrauseFx 3 Examples get_certificates cert # alias for \"get_certificates\" get_certificates( development: true, username: \"user@email.com\" ) Parameters Key Description Default development Create a development certificate instead of a distribution one false type Create specific certificate type (takes precedence over :development) force Create a certificate even if an existing certificate exists false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * filename The filename of certificate to store output_path The path to a directory in which all certificates and private keys should be stored . keychain_path Path to a custom keychain * keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false platform Set the provisioning profile's platform (ios, macos, tvos) ios * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The cert action generates the following Lane Variables: SharedValue Description SharedValues::CERT_FILE_PATH The path to the certificate SharedValues::CERT_CERTIFICATE_ID The id of the certificate To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action cert CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run cert To pass parameters, make use of the : symbol, for example fastlane run cert parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"cert"},{"location":"actions/cert/#cert","text":"Alias for the get_certificates action Why? \u2022 Usage \u2022 How does it work? \u2022 Tips","title":"cert"},{"location":"actions/cert/#usage","text":"Note : It is recommended to use match according to the codesigning.guide for generating and maintaining your certificates. Use cert directly only if you want full control over what's going on and know more about codesigning. fastlane cert This will check if any of the available signing certificates is installed on your local machine. Only if a new certificate needs to be created, cert will Create a new private key Create a new signing request Generate, downloads and installs the certificate Import all the generated files into your Keychain cert will never revoke your existing certificates. If you can't create any more certificates, cert will raise an exception, which means, you have to revoke one of the existing certificates to make room for a new one. You can pass your Apple ID: fastlane cert -u cert@krausefx.com For a list of available commands run fastlane action cert Keep in mind, there is no way for cert to download existing certificates + private keys from the Apple Developer Portal, as the private key never leaves your computer.","title":"Usage"},{"location":"actions/cert/#environment-variables","text":"Run fastlane action cert to get a list of all available environment variables.","title":"Environment Variables"},{"location":"actions/cert/#use-with-sigh","text":"cert becomes really interesting when used in fastlane in combination with sigh . Update your Fastfile to contain the following code: lane :beta do cert sigh(force: true) end force: true will make sure to re-generate the provisioning profile on each run. This will result in sigh always using the correct signing certificate, which is installed on the local machine.","title":"Use with sigh"},{"location":"actions/cert/#how-is-my-password-stored","text":"cert uses the password manager from fastlane . Take a look the CredentialsManager README for more information.","title":"How is my password stored?"},{"location":"actions/cert/#tips","text":"","title":"Tips"},{"location":"actions/cert/#use-provisionql-for-advanced-quick-look-in-finder","text":"Install ProvisionQL . It will show you mobileprovision files like this: cert Supported platforms ios Author @KrauseFx","title":"Use 'ProvisionQL' for advanced Quick Look in Finder"},{"location":"actions/cert/#3-examples","text":"get_certificates cert # alias for \"get_certificates\" get_certificates( development: true, username: \"user@email.com\" )","title":"3 Examples"},{"location":"actions/cert/#parameters","text":"Key Description Default development Create a development certificate instead of a distribution one false type Create specific certificate type (takes precedence over :development) force Create a certificate even if an existing certificate exists false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * filename The filename of certificate to store output_path The path to a directory in which all certificates and private keys should be stored . keychain_path Path to a custom keychain * keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false platform Set the provisioning profile's platform (ios, macos, tvos) ios * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/cert/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The cert action generates the following Lane Variables: SharedValue Description SharedValues::CERT_FILE_PATH The path to the certificate SharedValues::CERT_CERTIFICATE_ID The id of the certificate To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/cert/#documentation","text":"To show the documentation in your terminal, run fastlane action cert","title":"Documentation"},{"location":"actions/cert/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run cert To pass parameters, make use of the : symbol, for example fastlane run cert parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/cert/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/changelog_from_git_commits/","text":"changelog_from_git_commits Collect git commit messages into a changelog By default, messages will be collected back to the last tag, but the range can be controlled changelog_from_git_commits Supported platforms ios, android, mac Author @mfurtak, @asfalcone, @SiarheiFedartsou, @allewun Returns Returns a String containing your formatted git commits 2 Examples changelog_from_git_commits changelog_from_git_commits( between: [\"7b092b3\", \"HEAD\"], # Optional, lets you specify a revision/tag range between which to collect commit info pretty: \"- (%ae) %s\",# Optional, lets you provide a custom format to apply to each commit when generating the changelog text date_format: \"short\",# Optional, lets you provide an additional date format to dates within the pretty-formatted string match_lightweight_tag: false, # Optional, lets you ignore lightweight (non-annotated) tags when searching for the last tag merge_commit_filtering: \"exclude_merges\" # Optional, lets you filter out merge commits ) Parameters Key Description Default between Array containing two Git revision values between which to collect messages, you mustn't use it with :commits_count key at the same time commits_count Number of commits to include in changelog, you mustn't use it with :between key at the same time path Path of the git repository ./ pretty The format applied to each commit while generating the collected value %B date_format The date format applied to each commit while generating the collected value ancestry_path Whether or not to use ancestry-path param false tag_match_pattern A glob(7) pattern to match against when finding the last git tag match_lightweight_tag Whether or not to match a lightweight tag when searching for the last one true quiet Whether or not to disable changelog output false include_merges DEPRECATED! Use :merge_commit_filtering instead - Whether or not to include any commits that are merges merge_commit_filtering Controls inclusion of merge commits when collecting the changelog. Valid values: 'include_merges', 'exclude_merges', 'only_include_merges' include_merges * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The changelog_from_git_commits action generates the following Lane Variables: SharedValue Description SharedValues::FL_CHANGELOG The changelog string generated from the collected git commit messages To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action changelog_from_git_commits CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run changelog_from_git_commits To pass parameters, make use of the : symbol, for example fastlane run changelog_from_git_commits parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"changelog_from_git_commits"},{"location":"actions/changelog_from_git_commits/#changelog_from_git_commits","text":"Collect git commit messages into a changelog By default, messages will be collected back to the last tag, but the range can be controlled changelog_from_git_commits Supported platforms ios, android, mac Author @mfurtak, @asfalcone, @SiarheiFedartsou, @allewun Returns Returns a String containing your formatted git commits","title":"changelog_from_git_commits"},{"location":"actions/changelog_from_git_commits/#2-examples","text":"changelog_from_git_commits changelog_from_git_commits( between: [\"7b092b3\", \"HEAD\"], # Optional, lets you specify a revision/tag range between which to collect commit info pretty: \"- (%ae) %s\",# Optional, lets you provide a custom format to apply to each commit when generating the changelog text date_format: \"short\",# Optional, lets you provide an additional date format to dates within the pretty-formatted string match_lightweight_tag: false, # Optional, lets you ignore lightweight (non-annotated) tags when searching for the last tag merge_commit_filtering: \"exclude_merges\" # Optional, lets you filter out merge commits )","title":"2 Examples"},{"location":"actions/changelog_from_git_commits/#parameters","text":"Key Description Default between Array containing two Git revision values between which to collect messages, you mustn't use it with :commits_count key at the same time commits_count Number of commits to include in changelog, you mustn't use it with :between key at the same time path Path of the git repository ./ pretty The format applied to each commit while generating the collected value %B date_format The date format applied to each commit while generating the collected value ancestry_path Whether or not to use ancestry-path param false tag_match_pattern A glob(7) pattern to match against when finding the last git tag match_lightweight_tag Whether or not to match a lightweight tag when searching for the last one true quiet Whether or not to disable changelog output false include_merges DEPRECATED! Use :merge_commit_filtering instead - Whether or not to include any commits that are merges merge_commit_filtering Controls inclusion of merge commits when collecting the changelog. Valid values: 'include_merges', 'exclude_merges', 'only_include_merges' include_merges * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/changelog_from_git_commits/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The changelog_from_git_commits action generates the following Lane Variables: SharedValue Description SharedValues::FL_CHANGELOG The changelog string generated from the collected git commit messages To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/changelog_from_git_commits/#documentation","text":"To show the documentation in your terminal, run fastlane action changelog_from_git_commits","title":"Documentation"},{"location":"actions/changelog_from_git_commits/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run changelog_from_git_commits To pass parameters, make use of the : symbol, for example fastlane run changelog_from_git_commits parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/changelog_from_git_commits/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/chatwork/","text":"chatwork Send a success/error message to ChatWork Information on how to obtain an API token: http://developer.chatwork.com/ja/authenticate.html chatwork Supported platforms ios, android, mac Author @astronaughts 1 Example chatwork( message: \"App successfully released!\", roomid: 12345, success: true, api_token: \"Your Token\" ) Parameters Key Description Default api_token ChatWork API Token message The message to post on ChatWork roomid The room ID success Was this build successful? (true/false) true * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action chatwork CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run chatwork To pass parameters, make use of the : symbol, for example fastlane run chatwork parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"chatwork"},{"location":"actions/chatwork/#chatwork","text":"Send a success/error message to ChatWork Information on how to obtain an API token: http://developer.chatwork.com/ja/authenticate.html chatwork Supported platforms ios, android, mac Author @astronaughts","title":"chatwork"},{"location":"actions/chatwork/#1-example","text":"chatwork( message: \"App successfully released!\", roomid: 12345, success: true, api_token: \"Your Token\" )","title":"1 Example"},{"location":"actions/chatwork/#parameters","text":"Key Description Default api_token ChatWork API Token message The message to post on ChatWork roomid The room ID success Was this build successful? (true/false) true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/chatwork/#documentation","text":"To show the documentation in your terminal, run fastlane action chatwork","title":"Documentation"},{"location":"actions/chatwork/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run chatwork To pass parameters, make use of the : symbol, for example fastlane run chatwork parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/chatwork/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/check_app_store_metadata/","text":"check_app_store_metadata Check your app's metadata before you submit your app to review (via precheck ) precheck Check your app using a community driven set of App Store review rules to avoid being rejected Apple rejects builds for many avoidable metadata issues like including swear words \ud83d\ude2e, other companies\u2019 trademarks, or even mentioning an iOS bug \ud83d\udc1b. fastlane precheck takes a lot of the guess work out by scanning your app\u2019s details in App Store Connect for avoidable problems. fastlane precheck helps you get your app through app review without rejections so you can ship faster \ud83d\ude80 Features \u2022 Usage \u2022 Example \u2022 How does it work? Features precheck Features \ud83d\udc1b \uf8ff product bug mentions \ud83d\ude45 Swear word checker \ud83e\udd16 Mentioning other platforms \ud83d\ude35 URL reachability checker \ud83d\udcdd Placeholder/test words/mentioning future features \ud83d\udcc5 Copyright date checking \ud83d\ude48 Customizable word list checking \ud83d\udce2 You can decide if you want to warn about potential problems and continue or have fastlane show an error and stop after all scans are done Usage Run fastlane precheck to check the app metadata from App Store Connect fastlane precheck To get a list of available options run fastlane action precheck Example Since you might want to manually trigger precheck but don't want to specify all the parameters every time, you can store your defaults in a so called Precheckfile . Run fastlane precheck init to create a new configuration file. Example: # indicates that your metadata will not be checked by this rule negative_apple_sentiment(level: :skip) # when triggered, this rule will warn you of a potential problem curse_words(level: :warn) # show error and prevent any further commands from running after fastlane precheck finishes unreachable_urls(level: :error) # pass in whatever words you want to check for custom_text(data: [\"chrome\", \"webos\"], level: :warn) Use with fastlane precheck is fully integrated with deliver another fastlane tool. Update your Fastfile to contain the following code: lane :production do # ... # by default deliver will call precheck and warn you of any problems # if you want precheck to halt submitting to app review, you can pass # precheck_default_rule_level: :error deliver(precheck_default_rule_level: :error) # ... end # or if you prefer, you can run precheck alone lane :check_metadata do precheck end How does it work? precheck will access App Store Connect to download your app's metadata. It uses spaceship to communicate with Apple's web services. Want to improve precheck's rules? Please submit an issue on GitHub and provide information about your App Store rejection! Make sure you scrub out any personally identifiable information since this will be public. check_app_store_metadata Supported platforms ios Author @taquitos Returns true if precheck passes, else, false 2 Examples check_app_store_metadata( negative_apple_sentiment: [level: :skip], # Set to skip to not run the `negative_apple_sentiment` rule curse_words: [level: :warn] # Set to warn to only warn on curse word check failures ) precheck # alias for \"check_app_store_metadata\" Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * platform The platform to use (optional) ios default_rule_level The default rule level unless otherwise configured :error include_in_app_purchases Should check in-app purchases? true use_live Should force check live app? false negative_apple_sentiment mentioning \uf8ff in a way that could be considered negative placeholder_text using placeholder text (e.g.:\"lorem ipsum\", \"text here\", etc...) other_platforms mentioning other platforms, like Android or Blackberry future_functionality mentioning features or content that is not currently available in your app test_words using text indicating this release is a test curse_words including words that might be considered objectionable free_stuff_in_iap using text indicating that your IAP is free custom_text mentioning any of the user-specified words passed to custom_text(data: [words]) copyright_date using a copyright date that is any different from this current year, or missing a date unreachable_urls unreachable URLs in app metadata * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action check_app_store_metadata CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run check_app_store_metadata To pass parameters, make use of the : symbol, for example fastlane run check_app_store_metadata parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"check_app_store_metadata"},{"location":"actions/check_app_store_metadata/#check_app_store_metadata","text":"Check your app's metadata before you submit your app to review (via precheck )","title":"check_app_store_metadata"},{"location":"actions/check_app_store_metadata/#precheck","text":"","title":"precheck"},{"location":"actions/check_app_store_metadata/#features","text":"precheck Features \ud83d\udc1b \uf8ff product bug mentions \ud83d\ude45 Swear word checker \ud83e\udd16 Mentioning other platforms \ud83d\ude35 URL reachability checker \ud83d\udcdd Placeholder/test words/mentioning future features \ud83d\udcc5 Copyright date checking \ud83d\ude48 Customizable word list checking \ud83d\udce2 You can decide if you want to warn about potential problems and continue or have fastlane show an error and stop after all scans are done","title":"Features"},{"location":"actions/check_app_store_metadata/#usage","text":"Run fastlane precheck to check the app metadata from App Store Connect fastlane precheck To get a list of available options run fastlane action precheck","title":"Usage"},{"location":"actions/check_app_store_metadata/#example","text":"Since you might want to manually trigger precheck but don't want to specify all the parameters every time, you can store your defaults in a so called Precheckfile . Run fastlane precheck init to create a new configuration file. Example: # indicates that your metadata will not be checked by this rule negative_apple_sentiment(level: :skip) # when triggered, this rule will warn you of a potential problem curse_words(level: :warn) # show error and prevent any further commands from running after fastlane precheck finishes unreachable_urls(level: :error) # pass in whatever words you want to check for custom_text(data: [\"chrome\", \"webos\"], level: :warn)","title":"Example"},{"location":"actions/check_app_store_metadata/#how-does-it-work","text":"precheck will access App Store Connect to download your app's metadata. It uses spaceship to communicate with Apple's web services.","title":"How does it work?"},{"location":"actions/check_app_store_metadata/#want-to-improve-prechecks-rules","text":"Please submit an issue on GitHub and provide information about your App Store rejection! Make sure you scrub out any personally identifiable information since this will be public. check_app_store_metadata Supported platforms ios Author @taquitos Returns true if precheck passes, else, false","title":"Want to improve precheck's rules?"},{"location":"actions/check_app_store_metadata/#2-examples","text":"check_app_store_metadata( negative_apple_sentiment: [level: :skip], # Set to skip to not run the `negative_apple_sentiment` rule curse_words: [level: :warn] # Set to warn to only warn on curse word check failures ) precheck # alias for \"check_app_store_metadata\"","title":"2 Examples"},{"location":"actions/check_app_store_metadata/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * platform The platform to use (optional) ios default_rule_level The default rule level unless otherwise configured :error include_in_app_purchases Should check in-app purchases? true use_live Should force check live app? false negative_apple_sentiment mentioning \uf8ff in a way that could be considered negative placeholder_text using placeholder text (e.g.:\"lorem ipsum\", \"text here\", etc...) other_platforms mentioning other platforms, like Android or Blackberry future_functionality mentioning features or content that is not currently available in your app test_words using text indicating this release is a test curse_words including words that might be considered objectionable free_stuff_in_iap using text indicating that your IAP is free custom_text mentioning any of the user-specified words passed to custom_text(data: [words]) copyright_date using a copyright date that is any different from this current year, or missing a date unreachable_urls unreachable URLs in app metadata * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/check_app_store_metadata/#documentation","text":"To show the documentation in your terminal, run fastlane action check_app_store_metadata","title":"Documentation"},{"location":"actions/check_app_store_metadata/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run check_app_store_metadata To pass parameters, make use of the : symbol, for example fastlane run check_app_store_metadata parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/check_app_store_metadata/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/clean_build_artifacts/","text":"clean_build_artifacts Deletes files created as result of running gym, cert, sigh or download_dsyms This action deletes the files that get created in your repo as a result of running the gym and sigh commands. It doesn't delete the fastlane/report.xml though, this is probably more suited for the .gitignore. Useful if you quickly want to send out a test build by dropping down to the command line and typing something like fastlane beta , without leaving your repo in a messy state afterwards. clean_build_artifacts Supported platforms ios, mac Author @lmirosevic 1 Example clean_build_artifacts Parameters Key Description Default exclude_pattern Exclude all files from clearing that match the given Regex pattern: e.g. '.*.mobileprovision' * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action clean_build_artifacts CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run clean_build_artifacts To pass parameters, make use of the : symbol, for example fastlane run clean_build_artifacts parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"clean_build_artifacts"},{"location":"actions/clean_build_artifacts/#clean_build_artifacts","text":"Deletes files created as result of running gym, cert, sigh or download_dsyms This action deletes the files that get created in your repo as a result of running the gym and sigh commands. It doesn't delete the fastlane/report.xml though, this is probably more suited for the .gitignore. Useful if you quickly want to send out a test build by dropping down to the command line and typing something like fastlane beta , without leaving your repo in a messy state afterwards. clean_build_artifacts Supported platforms ios, mac Author @lmirosevic","title":"clean_build_artifacts"},{"location":"actions/clean_build_artifacts/#1-example","text":"clean_build_artifacts","title":"1 Example"},{"location":"actions/clean_build_artifacts/#parameters","text":"Key Description Default exclude_pattern Exclude all files from clearing that match the given Regex pattern: e.g. '.*.mobileprovision' * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/clean_build_artifacts/#documentation","text":"To show the documentation in your terminal, run fastlane action clean_build_artifacts","title":"Documentation"},{"location":"actions/clean_build_artifacts/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run clean_build_artifacts To pass parameters, make use of the : symbol, for example fastlane run clean_build_artifacts parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/clean_build_artifacts/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/clean_cocoapods_cache/","text":"clean_cocoapods_cache Remove the cache for pods clean_cocoapods_cache Supported platforms ios, mac Author @alexmx 2 Examples clean_cocoapods_cache clean_cocoapods_cache(name: \"CACHED_POD\") Parameters Key Description Default name Pod name to be removed from cache no_ansi Show output without ANSI codes false verbose Show more debugging information false silent Show nothing false allow_root Allows CocoaPods to run as root false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action clean_cocoapods_cache CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run clean_cocoapods_cache To pass parameters, make use of the : symbol, for example fastlane run clean_cocoapods_cache parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"clean_cocoapods_cache"},{"location":"actions/clean_cocoapods_cache/#clean_cocoapods_cache","text":"Remove the cache for pods clean_cocoapods_cache Supported platforms ios, mac Author @alexmx","title":"clean_cocoapods_cache"},{"location":"actions/clean_cocoapods_cache/#2-examples","text":"clean_cocoapods_cache clean_cocoapods_cache(name: \"CACHED_POD\")","title":"2 Examples"},{"location":"actions/clean_cocoapods_cache/#parameters","text":"Key Description Default name Pod name to be removed from cache no_ansi Show output without ANSI codes false verbose Show more debugging information false silent Show nothing false allow_root Allows CocoaPods to run as root false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/clean_cocoapods_cache/#documentation","text":"To show the documentation in your terminal, run fastlane action clean_cocoapods_cache","title":"Documentation"},{"location":"actions/clean_cocoapods_cache/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run clean_cocoapods_cache To pass parameters, make use of the : symbol, for example fastlane run clean_cocoapods_cache parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/clean_cocoapods_cache/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/clear_derived_data/","text":"clear_derived_data Deletes the Xcode Derived Data Deletes the Derived Data from path set on Xcode or a supplied path clear_derived_data Supported platforms ios, mac Author @KrauseFx 2 Examples clear_derived_data clear_derived_data(derived_data_path: \"/custom/\") Parameters Key Description Default derived_data_path Custom path for derivedData * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action clear_derived_data CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run clear_derived_data To pass parameters, make use of the : symbol, for example fastlane run clear_derived_data parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"clear_derived_data"},{"location":"actions/clear_derived_data/#clear_derived_data","text":"Deletes the Xcode Derived Data Deletes the Derived Data from path set on Xcode or a supplied path clear_derived_data Supported platforms ios, mac Author @KrauseFx","title":"clear_derived_data"},{"location":"actions/clear_derived_data/#2-examples","text":"clear_derived_data clear_derived_data(derived_data_path: \"/custom/\")","title":"2 Examples"},{"location":"actions/clear_derived_data/#parameters","text":"Key Description Default derived_data_path Custom path for derivedData * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/clear_derived_data/#documentation","text":"To show the documentation in your terminal, run fastlane action clear_derived_data","title":"Documentation"},{"location":"actions/clear_derived_data/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run clear_derived_data To pass parameters, make use of the : symbol, for example fastlane run clear_derived_data parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/clear_derived_data/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/clipboard/","text":"clipboard Copies a given string into the clipboard. Works only on macOS clipboard Supported platforms ios, android, mac Author @KrauseFx, @joshdholtz, @rogerluan 2 Examples clipboard(value: \"https://docs.fastlane.tools/\") clipboard(value: lane_context[SharedValues::HOCKEY_DOWNLOAD_LINK] || \"\") Parameters Key Description Default value The string that should be copied into the clipboard * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action clipboard CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run clipboard To pass parameters, make use of the : symbol, for example fastlane run clipboard parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"clipboard"},{"location":"actions/clipboard/#clipboard","text":"Copies a given string into the clipboard. Works only on macOS clipboard Supported platforms ios, android, mac Author @KrauseFx, @joshdholtz, @rogerluan","title":"clipboard"},{"location":"actions/clipboard/#2-examples","text":"clipboard(value: \"https://docs.fastlane.tools/\") clipboard(value: lane_context[SharedValues::HOCKEY_DOWNLOAD_LINK] || \"\")","title":"2 Examples"},{"location":"actions/clipboard/#parameters","text":"Key Description Default value The string that should be copied into the clipboard * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/clipboard/#documentation","text":"To show the documentation in your terminal, run fastlane action clipboard","title":"Documentation"},{"location":"actions/clipboard/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run clipboard To pass parameters, make use of the : symbol, for example fastlane run clipboard parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/clipboard/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/cloc/","text":"cloc Generates a Code Count that can be read by Jenkins (xml format) This action will run cloc to generate a SLOC report that the Jenkins SLOCCount plugin can read. See https://wiki.jenkins-ci.org/display/JENKINS/SLOCCount+Plugin and https://github.com/AlDanial/cloc for more information. cloc Supported platforms ios, mac Author @intere 1 Example cloc( exclude_dir: \"ThirdParty,Resources\", output_directory: \"reports\", source_directory: \"MyCoolApp\" ) Parameters Key Description Default binary_path Where the cloc binary lives on your system (full path including 'cloc') /usr/local/bin/cloc exclude_dir Comma separated list of directories to exclude output_directory Where to put the generated report file build source_directory Where to look for the source code (relative to the project root folder) '' xml Should we generate an XML File (if false, it will generate a plain text file)? true * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action cloc CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run cloc To pass parameters, make use of the : symbol, for example fastlane run cloc parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"cloc"},{"location":"actions/cloc/#cloc","text":"Generates a Code Count that can be read by Jenkins (xml format) This action will run cloc to generate a SLOC report that the Jenkins SLOCCount plugin can read. See https://wiki.jenkins-ci.org/display/JENKINS/SLOCCount+Plugin and https://github.com/AlDanial/cloc for more information. cloc Supported platforms ios, mac Author @intere","title":"cloc"},{"location":"actions/cloc/#1-example","text":"cloc( exclude_dir: \"ThirdParty,Resources\", output_directory: \"reports\", source_directory: \"MyCoolApp\" )","title":"1 Example"},{"location":"actions/cloc/#parameters","text":"Key Description Default binary_path Where the cloc binary lives on your system (full path including 'cloc') /usr/local/bin/cloc exclude_dir Comma separated list of directories to exclude output_directory Where to put the generated report file build source_directory Where to look for the source code (relative to the project root folder) '' xml Should we generate an XML File (if false, it will generate a plain text file)? true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/cloc/#documentation","text":"To show the documentation in your terminal, run fastlane action cloc","title":"Documentation"},{"location":"actions/cloc/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run cloc To pass parameters, make use of the : symbol, for example fastlane run cloc parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/cloc/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/clubmate/","text":"clubmate Print a Club Mate in your build output clubmate | -----|---- Supported platforms | ios, android, mac Author | @KrauseFx To show the documentation in your terminal, run fastlane action clubmate View source code Back to actions","title":"Clubmate"},{"location":"actions/clubmate/#clubmate","text":"Print a Club Mate in your build output clubmate | -----|---- Supported platforms | ios, android, mac Author | @KrauseFx To show the documentation in your terminal, run fastlane action clubmate View source code Back to actions","title":"clubmate"},{"location":"actions/cocoapods/","text":"cocoapods Runs pod install for the project If you use CocoaPods you can use the cocoapods integration to run pod install before building your app. cocoapods Supported platforms ios, mac Author @KrauseFx, @tadpol, @birmacher, @Liquidsoul 2 Examples cocoapods cocoapods( clean_install: true, podfile: \"./CustomPodfile\" ) Parameters Key Description Default repo_update Add --repo-update flag to pod install command false clean_install Execute a full pod installation ignoring the content of the project cache false silent Execute command without logging output false verbose Show more debugging information false ansi Show output with ANSI codes true use_bundle_exec Use bundle exec when there is a Gemfile presented true podfile Explicitly specify the path to the Cocoapods' Podfile. You can either set it to the Podfile's path or to the folder containing the Podfile file error_callback A callback invoked with the command output if there is a non-zero exit status try_repo_update_on_error Retry with --repo-update if action was finished with error false deployment Disallow any changes to the Podfile or the Podfile.lock during installation false allow_root Allows CocoaPods to run as root false clean DEPRECATED! (Option renamed as clean_install) Remove SCM directories true integrate DEPRECATED! (Option removed from cocoapods) Integrate the Pods libraries into the Xcode project(s) true * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action cocoapods CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run cocoapods To pass parameters, make use of the : symbol, for example fastlane run cocoapods parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"cocoapods"},{"location":"actions/cocoapods/#cocoapods","text":"Runs pod install for the project If you use CocoaPods you can use the cocoapods integration to run pod install before building your app. cocoapods Supported platforms ios, mac Author @KrauseFx, @tadpol, @birmacher, @Liquidsoul","title":"cocoapods"},{"location":"actions/cocoapods/#2-examples","text":"cocoapods cocoapods( clean_install: true, podfile: \"./CustomPodfile\" )","title":"2 Examples"},{"location":"actions/cocoapods/#parameters","text":"Key Description Default repo_update Add --repo-update flag to pod install command false clean_install Execute a full pod installation ignoring the content of the project cache false silent Execute command without logging output false verbose Show more debugging information false ansi Show output with ANSI codes true use_bundle_exec Use bundle exec when there is a Gemfile presented true podfile Explicitly specify the path to the Cocoapods' Podfile. You can either set it to the Podfile's path or to the folder containing the Podfile file error_callback A callback invoked with the command output if there is a non-zero exit status try_repo_update_on_error Retry with --repo-update if action was finished with error false deployment Disallow any changes to the Podfile or the Podfile.lock during installation false allow_root Allows CocoaPods to run as root false clean DEPRECATED! (Option renamed as clean_install) Remove SCM directories true integrate DEPRECATED! (Option removed from cocoapods) Integrate the Pods libraries into the Xcode project(s) true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/cocoapods/#documentation","text":"To show the documentation in your terminal, run fastlane action cocoapods","title":"Documentation"},{"location":"actions/cocoapods/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run cocoapods To pass parameters, make use of the : symbol, for example fastlane run cocoapods parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/cocoapods/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/commit_github_file/","text":"commit_github_file This will commit a file directly on GitHub via the API Commits a file directly to GitHub. You must provide your GitHub Personal token (get one from https://github.com/settings/tokens/new ), the repository name and the relative file path from the root git project. Out parameters provide the commit sha created, which can be used for later usage for examples such as releases, the direct download link and the full response JSON. Documentation: https://developer.github.com/v3/repos/contents/#create-a-file . commit_github_file Supported platforms ios, android, mac Author @tommeier Returns A hash containing all relevant information for this commit Access things like 'html_url', 'sha', 'message' 1 Example response = commit_github_file( repository_name: \"fastlane/fastlane\", server_url: \"https://api.github.com\", api_token: ENV[\"GITHUB_TOKEN\"], message: \"Add my new file\", branch: \"master\", path: \"assets/my_new_file.xcarchive\" ) Parameters Key Description Default repository_name The path to your repo, e.g. 'fastlane/fastlane' server_url The server url. e.g. 'https://your.internal.github.host/api/v3' (Default: 'https://api.github.com') https://api.github.com api_token Personal API Token for GitHub - generate one at https://github.com/settings/tokens * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable branch The branch that the file should be committed on (default: master) master path The relative path to your file from project root e.g. assets/my_app.xcarchive message The commit message. Defaults to the file name * secure Optionally disable secure requests (ssl_verify_peer) true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The commit_github_file action generates the following Lane Variables: SharedValue Description SharedValues::COMMIT_GITHUB_FILE_HTML_LINK Link to your committed file SharedValues::COMMIT_GITHUB_FILE_SHA Commit SHA generated SharedValues::COMMIT_GITHUB_FILE_JSON The whole commit JSON object response To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action commit_github_file CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run commit_github_file To pass parameters, make use of the : symbol, for example fastlane run commit_github_file parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"commit_github_file"},{"location":"actions/commit_github_file/#commit_github_file","text":"This will commit a file directly on GitHub via the API Commits a file directly to GitHub. You must provide your GitHub Personal token (get one from https://github.com/settings/tokens/new ), the repository name and the relative file path from the root git project. Out parameters provide the commit sha created, which can be used for later usage for examples such as releases, the direct download link and the full response JSON. Documentation: https://developer.github.com/v3/repos/contents/#create-a-file . commit_github_file Supported platforms ios, android, mac Author @tommeier Returns A hash containing all relevant information for this commit Access things like 'html_url', 'sha', 'message'","title":"commit_github_file"},{"location":"actions/commit_github_file/#1-example","text":"response = commit_github_file( repository_name: \"fastlane/fastlane\", server_url: \"https://api.github.com\", api_token: ENV[\"GITHUB_TOKEN\"], message: \"Add my new file\", branch: \"master\", path: \"assets/my_new_file.xcarchive\" )","title":"1 Example"},{"location":"actions/commit_github_file/#parameters","text":"Key Description Default repository_name The path to your repo, e.g. 'fastlane/fastlane' server_url The server url. e.g. 'https://your.internal.github.host/api/v3' (Default: 'https://api.github.com') https://api.github.com api_token Personal API Token for GitHub - generate one at https://github.com/settings/tokens * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable branch The branch that the file should be committed on (default: master) master path The relative path to your file from project root e.g. assets/my_app.xcarchive message The commit message. Defaults to the file name * secure Optionally disable secure requests (ssl_verify_peer) true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/commit_github_file/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The commit_github_file action generates the following Lane Variables: SharedValue Description SharedValues::COMMIT_GITHUB_FILE_HTML_LINK Link to your committed file SharedValues::COMMIT_GITHUB_FILE_SHA Commit SHA generated SharedValues::COMMIT_GITHUB_FILE_JSON The whole commit JSON object response To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/commit_github_file/#documentation","text":"To show the documentation in your terminal, run fastlane action commit_github_file","title":"Documentation"},{"location":"actions/commit_github_file/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run commit_github_file To pass parameters, make use of the : symbol, for example fastlane run commit_github_file parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/commit_github_file/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/commit_version_bump/","text":"commit_version_bump Creates a 'Version Bump' commit. Run after increment_build_number This action will create a 'Version Bump' commit in your repo. Useful in conjunction with increment_build_number . It checks the repo to make sure that only the relevant files have changed. These are the files that increment_build_number ( agvtool ) touches: All .plist files The .xcodeproj/project.pbxproj file Then commits those files to the repo. Customize the message with the :message option. It defaults to 'Version Bump'. If you have other uncommitted changes in your repo, this action will fail. If you started off in a clean repo, and used the ipa and or sigh actions, then you can use the clean_build_artifacts action to clean those temporary files up before running this action. commit_version_bump Supported platforms ios, mac Author @lmirosevic 8 Examples commit_version_bump commit_version_bump( message: \"Version Bump\",# create a commit with a custom message xcodeproj: \"./path/to/MyProject.xcodeproj\" # optional, if you have multiple Xcode project files, you must specify your main project here ) commit_version_bump( settings: true # Include Settings.bundle/Root.plist ) commit_version_bump( settings: \"About.plist\" # Include Settings.bundle/About.plist ) commit_version_bump( settings: %w[About.plist Root.plist] # Include more than one plist from Settings.bundle ) commit_version_bump( include: %w[package.json custom.cfg] # include other updated files as part of the version bump ) commit_version_bump( ignore: /OtherProject/ # ignore files matching a regular expression ) commit_version_bump( no_verify: true # optional, default: false ) Parameters Key Description Default message The commit message when committing the version bump xcodeproj The path to your project file (Not the workspace). If you have only one, this is optional force Forces the commit, even if other files than the ones containing the version number have been modified false settings Include Settings.bundle/Root.plist with version bump false ignore A regular expression used to filter matched plist files to be modified include A list of extra files to be included in the version bump (string array or comma-separated string) [] no_verify Whether or not to use --no-verify false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The commit_version_bump action generates the following Lane Variables: SharedValue Description SharedValues::MODIFIED_FILES The list of paths of modified files To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action commit_version_bump CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run commit_version_bump To pass parameters, make use of the : symbol, for example fastlane run commit_version_bump parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"commit_version_bump"},{"location":"actions/commit_version_bump/#commit_version_bump","text":"Creates a 'Version Bump' commit. Run after increment_build_number This action will create a 'Version Bump' commit in your repo. Useful in conjunction with increment_build_number . It checks the repo to make sure that only the relevant files have changed. These are the files that increment_build_number ( agvtool ) touches: All .plist files The .xcodeproj/project.pbxproj file Then commits those files to the repo. Customize the message with the :message option. It defaults to 'Version Bump'. If you have other uncommitted changes in your repo, this action will fail. If you started off in a clean repo, and used the ipa and or sigh actions, then you can use the clean_build_artifacts action to clean those temporary files up before running this action. commit_version_bump Supported platforms ios, mac Author @lmirosevic","title":"commit_version_bump"},{"location":"actions/commit_version_bump/#8-examples","text":"commit_version_bump commit_version_bump( message: \"Version Bump\",# create a commit with a custom message xcodeproj: \"./path/to/MyProject.xcodeproj\" # optional, if you have multiple Xcode project files, you must specify your main project here ) commit_version_bump( settings: true # Include Settings.bundle/Root.plist ) commit_version_bump( settings: \"About.plist\" # Include Settings.bundle/About.plist ) commit_version_bump( settings: %w[About.plist Root.plist] # Include more than one plist from Settings.bundle ) commit_version_bump( include: %w[package.json custom.cfg] # include other updated files as part of the version bump ) commit_version_bump( ignore: /OtherProject/ # ignore files matching a regular expression ) commit_version_bump( no_verify: true # optional, default: false )","title":"8 Examples"},{"location":"actions/commit_version_bump/#parameters","text":"Key Description Default message The commit message when committing the version bump xcodeproj The path to your project file (Not the workspace). If you have only one, this is optional force Forces the commit, even if other files than the ones containing the version number have been modified false settings Include Settings.bundle/Root.plist with version bump false ignore A regular expression used to filter matched plist files to be modified include A list of extra files to be included in the version bump (string array or comma-separated string) [] no_verify Whether or not to use --no-verify false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/commit_version_bump/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The commit_version_bump action generates the following Lane Variables: SharedValue Description SharedValues::MODIFIED_FILES The list of paths of modified files To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/commit_version_bump/#documentation","text":"To show the documentation in your terminal, run fastlane action commit_version_bump","title":"Documentation"},{"location":"actions/commit_version_bump/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run commit_version_bump To pass parameters, make use of the : symbol, for example fastlane run commit_version_bump parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/commit_version_bump/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/copy_artifacts/","text":"copy_artifacts Copy and save your build artifacts (useful when you use reset_git_repo) This action copies artifacts to a target directory. It's useful if you have a CI that will pick up these artifacts and attach them to the build. Useful e.g. for storing your .ipa s, .dSYM.zip s, .mobileprovision s, .cert s. Make sure your :target_path is ignored from git, and if you use reset_git_repo , make sure the artifacts are added to the exclude list. copy_artifacts Supported platforms ios, android, mac Author @lmirosevic 2 Examples copy_artifacts( target_path: \"artifacts\", artifacts: [\"*.cer\", \"*.mobileprovision\", \"*.ipa\", \"*.dSYM.zip\", \"path/to/file.txt\", \"another/path/*.extension\"] ) # Reset the git repo to a clean state, but leave our artifacts in place reset_git_repo( exclude: \"artifacts\" ) # Copy the .ipa created by _gym_ if it was successfully created artifacts = [] artifacts << lane_context[SharedValues::IPA_OUTPUT_PATH] if lane_context[SharedValues::IPA_OUTPUT_PATH] copy_artifacts( artifacts: artifacts ) Parameters Key Description Default keep_original Set this to false if you want move, rather than copy, the found artifacts true target_path The directory in which you want your artifacts placed artifacts artifacts An array of file patterns of the files/folders you want to preserve [] fail_on_missing Fail when a source file isn't found false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action copy_artifacts CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run copy_artifacts To pass parameters, make use of the : symbol, for example fastlane run copy_artifacts parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"copy_artifacts"},{"location":"actions/copy_artifacts/#copy_artifacts","text":"Copy and save your build artifacts (useful when you use reset_git_repo) This action copies artifacts to a target directory. It's useful if you have a CI that will pick up these artifacts and attach them to the build. Useful e.g. for storing your .ipa s, .dSYM.zip s, .mobileprovision s, .cert s. Make sure your :target_path is ignored from git, and if you use reset_git_repo , make sure the artifacts are added to the exclude list. copy_artifacts Supported platforms ios, android, mac Author @lmirosevic","title":"copy_artifacts"},{"location":"actions/copy_artifacts/#2-examples","text":"copy_artifacts( target_path: \"artifacts\", artifacts: [\"*.cer\", \"*.mobileprovision\", \"*.ipa\", \"*.dSYM.zip\", \"path/to/file.txt\", \"another/path/*.extension\"] ) # Reset the git repo to a clean state, but leave our artifacts in place reset_git_repo( exclude: \"artifacts\" ) # Copy the .ipa created by _gym_ if it was successfully created artifacts = [] artifacts << lane_context[SharedValues::IPA_OUTPUT_PATH] if lane_context[SharedValues::IPA_OUTPUT_PATH] copy_artifacts( artifacts: artifacts )","title":"2 Examples"},{"location":"actions/copy_artifacts/#parameters","text":"Key Description Default keep_original Set this to false if you want move, rather than copy, the found artifacts true target_path The directory in which you want your artifacts placed artifacts artifacts An array of file patterns of the files/folders you want to preserve [] fail_on_missing Fail when a source file isn't found false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/copy_artifacts/#documentation","text":"To show the documentation in your terminal, run fastlane action copy_artifacts","title":"Documentation"},{"location":"actions/copy_artifacts/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run copy_artifacts To pass parameters, make use of the : symbol, for example fastlane run copy_artifacts parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/copy_artifacts/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/create_app_on_managed_play_store/","text":"create_app_on_managed_play_store Create Managed Google Play Apps Create new apps on Managed Google Play. create_app_on_managed_play_store Supported platforms android Author @janpio 1 Example create_app_on_managed_play_store( json_key: 'path/to/you/json/key/file', developer_account_id: 'developer_account_id', # obtained using the `get_managed_play_store_publishing_rights` action (or looking at the Play Console url) app_title: 'Your app title', language: 'en_US', # primary app language in BCP 47 format apk: '/files/app-release.apk' ) Parameters Key Description Default json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * developer_account_id The ID of your Google Play Console account. Can be obtained from the URL when you log in ( https://play.google.com/apps/publish/?account=... or when you 'Obtain private app publishing rights' (https://developers.google.com/android/work/play/custom-app-api/get-started#retrieve_the_developer_account_id) * apk Path to the APK file to upload * app_title App Title language Default app language (e.g. 'en_US') en_US root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action create_app_on_managed_play_store CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_app_on_managed_play_store To pass parameters, make use of the : symbol, for example fastlane run create_app_on_managed_play_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"create_app_on_managed_play_store"},{"location":"actions/create_app_on_managed_play_store/#create_app_on_managed_play_store","text":"Create Managed Google Play Apps Create new apps on Managed Google Play. create_app_on_managed_play_store Supported platforms android Author @janpio","title":"create_app_on_managed_play_store"},{"location":"actions/create_app_on_managed_play_store/#1-example","text":"create_app_on_managed_play_store( json_key: 'path/to/you/json/key/file', developer_account_id: 'developer_account_id', # obtained using the `get_managed_play_store_publishing_rights` action (or looking at the Play Console url) app_title: 'Your app title', language: 'en_US', # primary app language in BCP 47 format apk: '/files/app-release.apk' )","title":"1 Example"},{"location":"actions/create_app_on_managed_play_store/#parameters","text":"Key Description Default json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * developer_account_id The ID of your Google Play Console account. Can be obtained from the URL when you log in ( https://play.google.com/apps/publish/?account=... or when you 'Obtain private app publishing rights' (https://developers.google.com/android/work/play/custom-app-api/get-started#retrieve_the_developer_account_id) * apk Path to the APK file to upload * app_title App Title language Default app language (e.g. 'en_US') en_US root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/create_app_on_managed_play_store/#documentation","text":"To show the documentation in your terminal, run fastlane action create_app_on_managed_play_store","title":"Documentation"},{"location":"actions/create_app_on_managed_play_store/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_app_on_managed_play_store To pass parameters, make use of the : symbol, for example fastlane run create_app_on_managed_play_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/create_app_on_managed_play_store/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/create_app_online/","text":"create_app_online Creates the given application on iTC and the Dev Portal (via produce ) Create new iOS apps on App Store Connect and Apple Developer Portal using your command line produce creates new iOS apps on both the Apple Developer Portal and App Store Connect with the minimum required information. Features \u2022 Usage \u2022 How does it work? Features Create new apps on both App Store Connect and the Apple Developer Portal Modify Application Services on the Apple Developer Portal Create App Groups on the Apple Developer Portal Associate apps with App Groups on the Apple Developer Portal Create iCloud Containers on the Apple Developer Portal Associate apps with iCloud Containers on the Apple Developer Portal Create Merchant Identifiers on the Apple Developer Portal Associate apps with Merchant Identifiers on the Apple Developer Portal Support for multiple Apple accounts , storing your credentials securely in the Keychain Usage Creating a new application fastlane produce To get a list of all available parameters: fastlane produce --help Commands: (* default) associate_group Associate with a group, which is created if needed or simply located otherwise associate_merchant Associate with a merchant for use with Apple Pay. Apple Pay will be enabled for this app create * Creates a new app on App Store Connect and the Apple Developer Portal disable_services Disable specific Application Services for a specific app on the Apple Developer Portal enable_services Enable specific Application Services for a specific app on the Apple Developer Portal group Ensure that a specific App Group exists cloud_container Ensure that a specific iCloud Container exists help Display global or [command] help documentation merchant Ensure that a specific Merchant exists Global Options: --verbose -h, --help Display help documentation -v, --version Display version information Options for create: -u, --username STRING Your Apple ID Username (PRODUCE_USERNAME) -a, --app_identifier STRING App Identifier (Bundle ID, e.g. com.krausefx.app) (PRODUCE_APP_IDENTIFIER) -e, --bundle_identifier_suffix STRING App Identifier Suffix (Ignored if App Identifier does not ends with .*) (PRODUCE_APP_IDENTIFIER_SUFFIX) -q, --app_name STRING App Name (PRODUCE_APP_NAME) -z, --app_version STRING Initial version number (e.g. '1.0') (PRODUCE_VERSION) -y, --sku STRING SKU Number (e.g. '1234') (PRODUCE_SKU) -j, --platform STRING The platform to use (optional) (PRODUCE_PLATFORM) -m, --language STRING Primary Language (e.g. 'English', 'German') (PRODUCE_LANGUAGE) -c, --company_name STRING The name of your company. It's used to set company name on App Store Connect team's app pages. Only required if it's the first app you create (PRODUCE_COMPANY_NAME) -i, --skip_itc [VALUE] Skip the creation of the app on App Store Connect (PRODUCE_SKIP_ITC) -d, --skip_devcenter [VALUE] Skip the creation of the app on the Apple Developer Portal (PRODUCE_SKIP_DEVCENTER) -s, --itc_users ARRAY Array of App Store Connect users. If provided, you can limit access to this newly created app for users with the App Manager, Developer, Marketer or Sales roles (ITC_USERS) -b, --team_id STRING The ID of your Developer Portal team if you're in multiple teams (PRODUCE_TEAM_ID) -l, --team_name STRING The name of your Developer Portal team if you're in multiple teams (PRODUCE_TEAM_NAME) -k, --itc_team_id [VALUE] The ID of your App Store Connect team if you're in multiple teams (PRODUCE_ITC_TEAM_ID) -p, --itc_team_name STRING The name of your App Store Connect team if you're in multiple teams (PRODUCE_ITC_TEAM_NAME) Enabling / Disabling Application Services If you want to enable Application Services for an App ID (HomeKit and HealthKit in this example): fastlane produce enable_services --homekit --healthkit If you want to disable Application Services for an App ID (iCloud in this case): fastlane produce disable_services --icloud If you want to create a new App Group: fastlane produce group -g group.krausefx -n \"Example App Group\" If you want to associate an app with an App Group: fastlane produce associate_group -a com.krausefx.app group.krausefx If you want to create a new iCloud Container: fastlane produce cloud_container -g iCloud.com.krausefx.app -n \"Example iCloud Container\" If you want to associate an app with an iCloud Container: fastlane produce associate_cloud_container -a com.krausefx.app iCloud.com.krausefx.app If you want to associate an app with multiple iCloud Containers: fastlane produce associate_cloud_container -a com.krausefx.app iCloud.com.krausefx.app1 iCloud.com.krausefx.app2 Parameters Get a list of all available options using fastlane produce enable_services --help --access-wifi Enable Access Wifi --app-attest Enable App Attest --app-group Enable App Group --apple-pay Enable Apple Pay --associated-domains Enable Associated Domains --auto-fill-credential Enable Auto Fill Credential --class-kit Enable Class Kit --icloud STRING Enable iCloud, suitable values are \"xcode5_compatible\" and \"xcode6_compatible\" --custom-network-protocol Enable Custom Network Protocol --data-protection STRING Enable Data Protection, suitable values are \"complete\", \"unlessopen\" and \"untilfirstauth\" --extended-virtual-address-space Enable Extended Virtual Address Space --game-center STRING Enable Game Center, suitable values are \"ios\" and \"macos --health-kit Enable Health Kit --hls-interstitial-preview Enable Hls Interstitial Preview --home-kit Enable Home Kit --hotspot Enable Hotspot --in-app-purchase Enable In App Purchase --inter-app-audio Enable Inter App Audio --low-latency-hls Enable Low Latency Hls --managed-associated-domains Enable Managed Associated Domains --maps Enable Maps --multipath Enable Multipath --network-extension Enable Network Extension --nfc-tag-reading Enable NFC Tag Reading --personal-vpn Enable Personal VPN --passbook Enable Passbook (deprecated) --push-notification Enable Push Notification --sign-in-with-apple Enable Sign In With Apple --siri-kit Enable Siri Kit --system-extension Enable System Extension --user-management Enable User Management --vpn-configuration Enable Vpn Configuration (deprecated) --wallet Enable Wallet --wireless-accessory Enable Wireless Accessory --car-play-audio-app Enable Car Play Audio App --car-play-messaging-app Enable Car Play Messaging App --car-play-navigation-app Enable Car Play Navigation App --car-play-voip-calling-app Enable Car Play Voip Calling App --critical-alerts Enable Critical Alerts --hotspot-helper Enable Hotspot Helper --driver-kit Enable DriverKit --driver-kit-endpoint-security Enable DriverKit Endpoint Security --driver-kit-family-hid-device Enable DriverKit Family HID Device --driver-kit-family-networking Enable DriverKit Family Networking --driver-kit-family-serial Enable DriverKit Family Serial --driver-kit-hid-event-service Enable DriverKit HID EventService --driver-kit-transport-hid Enable DriverKit Transport HID --multitasking-camera-access Enable Multitasking Camera Access --sf-universal-link-api Enable SFUniversalLink API --vp9-decoder Enable VP9 Decoder --music-kit Enable MusicKit --shazam-kit Enable ShazamKit --communication-notifications Enable Communication Notifications --group-activities Enable Group Activities --health-kit-estimate-recalibration Enable HealthKit Estimate Recalibration --time-sensitive-notifications Enable Time Sensitive Notifications fastlane produce disable_services --help --access-wifi Disable Access Wifi --app-attest Disable App Attest --app-group Disable App Group --apple-pay Disable Apple Pay --associated-domains Disable Associated Domains --auto-fill-credential Disable Auto Fill Credential --class-kit Disable Class Kit --icloud STRING Disable iCloud --custom-network-protocol Disable Custom Network Protocol --data-protection STRING Disable Data Protection --extended-virtual-address-space Disable Extended Virtual Address Space --game-center STRING Disable Game Center --health-kit Disable Health Kit --hls-interstitial-preview Disable Hls Interstitial Preview --home-kit Disable Home Kit --hotspot Disable Hotspot --in-app-purchase Disable In App Purchase --inter-app-audio Disable Inter App Audio --low-latency-hls Disable Low Latency Hls --managed-associated-domains Disable Managed Associated Domains --maps Disable Maps --multipath Disable Multipath --network-extension Disable Network Extension --nfc-tag-reading Disable NFC Tag Reading --personal-vpn Disable Personal VPN --passbook Disable Passbook (deprecated) --push-notification Disable Push Notification --sign-in-with-apple Disable Sign In With Apple --siri-kit Disable Siri Kit --system-extension Disable System Extension --user-management Disable User Management --vpn-configuration Disable Vpn Configuration (deprecated) --wallet Disable Wallet --wireless-accessory Disable Wireless Accessory --car-play-audio-app Disable Car Play Audio App --car-play-messaging-app Disable Car Play Messaging App --car-play-navigation-app Disable Car Play Navigation App --car-play-voip-calling-app Disable Car Play Voip Calling App --critical-alerts Disable Critical Alerts --hotspot-helper Disable Hotspot Helper --driver-kit Disable DriverKit --driver-kit-endpoint-security Disable DriverKit Endpoint Security --driver-kit-family-hid-device Disable DriverKit Family HID Device --driver-kit-family-networking Disable DriverKit Family Networking --driver-kit-family-serial Disable DriverKit Family Serial --driver-kit-hid-event-service Disable DriverKit HID EventService --driver-kit-transport-hid Disable DriverKit Transport HID --multitasking-camera-access Disable Multitasking Camera Access --sf-universal-link-api Disable SFUniversalLink API --vp9-decoder Disable VP9 Decoder --music-kit Disable MusicKit --shazam-kit Disable ShazamKit --communication-notifications Disable Communication Notifications --group-activities Disable Group Activities --health-kit-estimate-recalibration Disable HealthKit Estimate Recalibration --time-sensitive-notifications Disable Time Sensitive Notifications Creating Apple Pay merchants and associating them with an App ID If you want to create a new Apple Pay Merchant Identifier: fastlane produce merchant -o merchant.com.example.production -r \"Example Merchant Production\" Use --help for more information about all available parameters fastlane produce merchant --help If you want to associate an app with a Merchant Identifier: fastlane produce associate_merchant -a com.krausefx.app merchant.com.example.production If you want to associate an app with multiple Merchant Identifiers: fastlane produce associate_merchant -a com.krausefx.app merchant.com.example.production merchant.com.example.sandbox Use --help for more information about all available parameters fastlane produce associate_merchant --help Environment Variables All available values can also be passed using environment variables, run fastlane produce --help to get a list of all available parameters. fastlane Integration Your Fastfile should look like this lane :release do produce( username: 'felix@krausefx.com', app_identifier: 'com.krausefx.app', app_name: 'MyApp', language: 'English', app_version: '1.0', sku: '123', team_name: 'SunApps GmbH', # only necessary when in multiple teams # Optional # App services can be enabled during app creation enable_services: { access_wifi: \"on\", # Valid values: \"on\", \"off\" app_attest: \"on\", # Valid values: \"on\", \"off\" app_group: \"on\", # Valid values: \"on\", \"off\" apple_pay: \"on\", # Valid values: \"on\", \"off\" associated_domains: \"on\", # Valid values: \"on\", \"off\" auto_fill_credential: \"on\", # Valid values: \"on\", \"off\" car_play_audio_app: \"on\", # Valid values: \"on\", \"off\" car_play_messaging_app: \"on\", # Valid values: \"on\", \"off\" car_play_navigation_app: \"on\", # Valid values: \"on\", \"off\" car_play_voip_calling_app: \"on\", # Valid values: \"on\", \"off\" class_kit: \"on\", # Valid values: \"on\", \"off\" icloud: \"xcode5_compatible\", # Valid values: \"xcode5_compatible\", \"xcode6_compatible\", \"off\" critical_alerts: \"on\", # Valid values: \"on\", \"off\" custom_network_protocol: \"on\", # Valid values: \"on\", \"off\" data_protection: \"complete\", # Valid values: \"complete\", \"unlessopen\", \"untilfirstauth\", \"off\" extended_virtual_address_space: \"on\", # Valid values: \"on\", \"off\" file_provider_testing_mode: \"on\", # Valid values: \"on\", \"off\" fonts: \"on\", # Valid values: \"on\", \"off\" game_center: \"ios\", # Valid values: \"ios\", \"macos\", off\" health_kit: \"on\", # Valid values: \"on\", \"off\" hls_interstitial_preview: \"on\", # Valid values: \"on\", \"off\" home_kit: \"on\", # Valid values: \"on\", \"off\" hotspot: \"on\", # Valid values: \"on\", \"off\" hotspot_helper: \"on\", # Valid values: \"on\", \"off\" in_app_purchase: \"on\", # Valid values: \"on\", \"off\" inter_app_audio: \"on\", # Valid values: \"on\", \"off\" low_latency_hls: \"on\", # Valid values: \"on\", \"off\" managed_associated_domains: \"on\", # Valid values: \"on\", \"off\" maps: \"on\", # Valid values: \"on\", \"off\" multipath: \"on\", # Valid values: \"on\", \"off\" network_extension: \"on\", # Valid values: \"on\", \"off\" nfc_tag_reading: \"on\", # Valid values: \"on\", \"off\" passbook: \"on\", # Valid values: \"on\", \"off\" (deprecated) personal_vpn: \"on\", # Valid values: \"on\", \"off\" push_notification: \"on\", # Valid values: \"on\", \"off\" sign_in_with_apple: \"on\", # Valid values: \"on\", \"off\" siri_kit: \"on\", # Valid values: \"on\", \"off\" system_extension: \"on\", # Valid values: \"on\", \"off\" user_management: \"on\", # Valid values: \"on\", \"off\" vpn_configuration: \"on\", # Valid values: \"on\", \"off\" (deprecated) wallet: \"on\", # Valid values: \"on\", \"off\" wireless_accessory: \"on\", # Valid values: \"on\", \"off\" driver_kit: \"on\", # Valid values: \"on\", \"off\" driver_kit_endpoint_security: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_hid_device: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_networking: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_serial: \"on\", # Valid values: \"on\", \"off\" driver_kit_hid_event_service: \"on\", # Valid values: \"on\", \"off\" driver_kit_transport_hid: \"on\", # Valid values: \"on\", \"off\" multitasking_camera_access: \"on\", # Valid values: \"on\", \"off\" sf_universal_link_api: \"on\", # Valid values: \"on\", \"off\" vp9_decoder: \"on\", # Valid values: \"on\", \"off\" music_kit: \"on\", # Valid values: \"on\", \"off\" shazam_kit: \"on\", # Valid values: \"on\", \"off\" communication_notifications: \"on\", # Valid values: \"on\", \"off\" group_activities: \"on\", # Valid values: \"on\", \"off\" health_kit_estimate_recalibration: \"on\", # Valid values: \"on\", \"off\" time_sensitive_notifications: \"on\", # Valid values: \"on\", \"off\" } ) deliver end To use the newly generated app in deliver , you need to add this line to your Deliverfile : apple_id(ENV['PRODUCE_APPLE_ID']) This will tell deliver , which App ID to use, since the app is not yet available in the App Store. You'll still have to fill out the remaining information (like screenshots, app description and pricing). You can use deliver to upload your app metadata using a CLI How is my password stored? produce uses the password manager from fastlane . Take a look the CredentialsManager README for more information. create_app_online Supported platforms ios Author @KrauseFx 2 Examples create_app_online( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", app_name: \"MyApp\", language: \"English\", app_version: \"1.0\", sku: \"123\", team_name: \"SunApps GmbH\" # Only necessary when in multiple teams. ) produce # alias for \"create_app_online\" Parameters Key Description Default username Your Apple ID Username * app_identifier App Identifier (Bundle ID, e.g. com.krausefx.app) * bundle_identifier_suffix App Identifier Suffix (Ignored if App Identifier does not end with .*) app_name App Name app_version Initial version number (e.g. '1.0') sku SKU Number (e.g. '1234') * platform The platform to use (optional) ios platforms The platforms to use (optional) language Primary Language (e.g. 'en-US', 'fr-FR') English company_name The name of your company. It's used to set company name on App Store Connect team's app pages. Only required if it's the first app you create skip_itc Skip the creation of the app on App Store Connect false itc_users Array of App Store Connect users. If provided, you can limit access to this newly created app for users with the App Manager, Developer, Marketer or Sales roles enabled_features DEPRECATED! Please use enable_services instead - Array with Spaceship App Services {} enable_services Array with Spaceship App Services (e.g. access_wifi: (on|off), app_attest: (on|off), app_group: (on|off), apple_pay: (on|off), associated_domains: (on|off), auto_fill_credential: (on|off), class_kit: (on|off), icloud: (legacy|cloudkit), custom_network_protocol: (on|off), data_protection: (complete|unlessopen|untilfirstauth), extended_virtual_address_space: (on|off), family_controls: (on|off), file_provider_testing_mode: (on|off), fonts: (on|off), game_center: (ios|mac), health_kit: (on|off), hls_interstitial_preview: (on|off), home_kit: (on|off), hotspot: (on|off), in_app_purchase: (on|off), inter_app_audio: (on|off), low_latency_hls: (on|off), managed_associated_domains: (on|off), maps: (on|off), multipath: (on|off), network_extension: (on|off), nfc_tag_reading: (on|off), personal_vpn: (on|off), passbook: (on|off), push_notification: (on|off), sign_in_with_apple: (on), siri_kit: (on|off), system_extension: (on|off), user_management: (on|off), vpn_configuration: (on|off), wallet: (on|off), wireless_accessory: (on|off), car_play_audio_app: (on|off), car_play_messaging_app: (on|off), car_play_navigation_app: (on|off), car_play_voip_calling_app: (on|off), critical_alerts: (on|off), hotspot_helper: (on|off), driver_kit: (on|off), driver_kit_endpoint_security: (on|off), driver_kit_family_hid_device: (on|off), driver_kit_family_networking: (on|off), driver_kit_family_serial: (on|off), driver_kit_hid_event_service: (on|off), driver_kit_transport_hid: (on|off), multitasking_camera_access: (on|off), sf_universal_link_api: (on|off), vp9_decoder: (on|off), music_kit: (on|off), shazam_kit: (on|off), communication_notifications: (on|off), group_activities: (on|off), health_kit_estimate_recalibration: (on|off), time_sensitive_notifications: (on|off)) {} skip_devcenter Skip the creation of the app on the Apple Developer Portal false team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * itc_team_id The ID of your App Store Connect team if you're in multiple teams * itc_team_name The name of your App Store Connect team if you're in multiple teams * * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The create_app_online action generates the following Lane Variables: SharedValue Description SharedValues::PRODUCE_APPLE_ID The Apple ID of the newly created app. You probably need it for deliver To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action create_app_online CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_app_online To pass parameters, make use of the : symbol, for example fastlane run create_app_online parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"create_app_online"},{"location":"actions/create_app_online/#create_app_online","text":"Creates the given application on iTC and the Dev Portal (via produce )","title":"create_app_online"},{"location":"actions/create_app_online/#features","text":"Create new apps on both App Store Connect and the Apple Developer Portal Modify Application Services on the Apple Developer Portal Create App Groups on the Apple Developer Portal Associate apps with App Groups on the Apple Developer Portal Create iCloud Containers on the Apple Developer Portal Associate apps with iCloud Containers on the Apple Developer Portal Create Merchant Identifiers on the Apple Developer Portal Associate apps with Merchant Identifiers on the Apple Developer Portal Support for multiple Apple accounts , storing your credentials securely in the Keychain","title":"Features"},{"location":"actions/create_app_online/#usage","text":"","title":"Usage"},{"location":"actions/create_app_online/#creating-a-new-application","text":"fastlane produce To get a list of all available parameters: fastlane produce --help Commands: (* default) associate_group Associate with a group, which is created if needed or simply located otherwise associate_merchant Associate with a merchant for use with Apple Pay. Apple Pay will be enabled for this app create * Creates a new app on App Store Connect and the Apple Developer Portal disable_services Disable specific Application Services for a specific app on the Apple Developer Portal enable_services Enable specific Application Services for a specific app on the Apple Developer Portal group Ensure that a specific App Group exists cloud_container Ensure that a specific iCloud Container exists help Display global or [command] help documentation merchant Ensure that a specific Merchant exists Global Options: --verbose -h, --help Display help documentation -v, --version Display version information Options for create: -u, --username STRING Your Apple ID Username (PRODUCE_USERNAME) -a, --app_identifier STRING App Identifier (Bundle ID, e.g. com.krausefx.app) (PRODUCE_APP_IDENTIFIER) -e, --bundle_identifier_suffix STRING App Identifier Suffix (Ignored if App Identifier does not ends with .*) (PRODUCE_APP_IDENTIFIER_SUFFIX) -q, --app_name STRING App Name (PRODUCE_APP_NAME) -z, --app_version STRING Initial version number (e.g. '1.0') (PRODUCE_VERSION) -y, --sku STRING SKU Number (e.g. '1234') (PRODUCE_SKU) -j, --platform STRING The platform to use (optional) (PRODUCE_PLATFORM) -m, --language STRING Primary Language (e.g. 'English', 'German') (PRODUCE_LANGUAGE) -c, --company_name STRING The name of your company. It's used to set company name on App Store Connect team's app pages. Only required if it's the first app you create (PRODUCE_COMPANY_NAME) -i, --skip_itc [VALUE] Skip the creation of the app on App Store Connect (PRODUCE_SKIP_ITC) -d, --skip_devcenter [VALUE] Skip the creation of the app on the Apple Developer Portal (PRODUCE_SKIP_DEVCENTER) -s, --itc_users ARRAY Array of App Store Connect users. If provided, you can limit access to this newly created app for users with the App Manager, Developer, Marketer or Sales roles (ITC_USERS) -b, --team_id STRING The ID of your Developer Portal team if you're in multiple teams (PRODUCE_TEAM_ID) -l, --team_name STRING The name of your Developer Portal team if you're in multiple teams (PRODUCE_TEAM_NAME) -k, --itc_team_id [VALUE] The ID of your App Store Connect team if you're in multiple teams (PRODUCE_ITC_TEAM_ID) -p, --itc_team_name STRING The name of your App Store Connect team if you're in multiple teams (PRODUCE_ITC_TEAM_NAME)","title":"Creating a new application"},{"location":"actions/create_app_online/#enabling-disabling-application-services","text":"If you want to enable Application Services for an App ID (HomeKit and HealthKit in this example): fastlane produce enable_services --homekit --healthkit If you want to disable Application Services for an App ID (iCloud in this case): fastlane produce disable_services --icloud If you want to create a new App Group: fastlane produce group -g group.krausefx -n \"Example App Group\" If you want to associate an app with an App Group: fastlane produce associate_group -a com.krausefx.app group.krausefx If you want to create a new iCloud Container: fastlane produce cloud_container -g iCloud.com.krausefx.app -n \"Example iCloud Container\" If you want to associate an app with an iCloud Container: fastlane produce associate_cloud_container -a com.krausefx.app iCloud.com.krausefx.app If you want to associate an app with multiple iCloud Containers: fastlane produce associate_cloud_container -a com.krausefx.app iCloud.com.krausefx.app1 iCloud.com.krausefx.app2","title":"Enabling / Disabling Application Services"},{"location":"actions/create_app_online/#parameters","text":"Get a list of all available options using fastlane produce enable_services --help --access-wifi Enable Access Wifi --app-attest Enable App Attest --app-group Enable App Group --apple-pay Enable Apple Pay --associated-domains Enable Associated Domains --auto-fill-credential Enable Auto Fill Credential --class-kit Enable Class Kit --icloud STRING Enable iCloud, suitable values are \"xcode5_compatible\" and \"xcode6_compatible\" --custom-network-protocol Enable Custom Network Protocol --data-protection STRING Enable Data Protection, suitable values are \"complete\", \"unlessopen\" and \"untilfirstauth\" --extended-virtual-address-space Enable Extended Virtual Address Space --game-center STRING Enable Game Center, suitable values are \"ios\" and \"macos --health-kit Enable Health Kit --hls-interstitial-preview Enable Hls Interstitial Preview --home-kit Enable Home Kit --hotspot Enable Hotspot --in-app-purchase Enable In App Purchase --inter-app-audio Enable Inter App Audio --low-latency-hls Enable Low Latency Hls --managed-associated-domains Enable Managed Associated Domains --maps Enable Maps --multipath Enable Multipath --network-extension Enable Network Extension --nfc-tag-reading Enable NFC Tag Reading --personal-vpn Enable Personal VPN --passbook Enable Passbook (deprecated) --push-notification Enable Push Notification --sign-in-with-apple Enable Sign In With Apple --siri-kit Enable Siri Kit --system-extension Enable System Extension --user-management Enable User Management --vpn-configuration Enable Vpn Configuration (deprecated) --wallet Enable Wallet --wireless-accessory Enable Wireless Accessory --car-play-audio-app Enable Car Play Audio App --car-play-messaging-app Enable Car Play Messaging App --car-play-navigation-app Enable Car Play Navigation App --car-play-voip-calling-app Enable Car Play Voip Calling App --critical-alerts Enable Critical Alerts --hotspot-helper Enable Hotspot Helper --driver-kit Enable DriverKit --driver-kit-endpoint-security Enable DriverKit Endpoint Security --driver-kit-family-hid-device Enable DriverKit Family HID Device --driver-kit-family-networking Enable DriverKit Family Networking --driver-kit-family-serial Enable DriverKit Family Serial --driver-kit-hid-event-service Enable DriverKit HID EventService --driver-kit-transport-hid Enable DriverKit Transport HID --multitasking-camera-access Enable Multitasking Camera Access --sf-universal-link-api Enable SFUniversalLink API --vp9-decoder Enable VP9 Decoder --music-kit Enable MusicKit --shazam-kit Enable ShazamKit --communication-notifications Enable Communication Notifications --group-activities Enable Group Activities --health-kit-estimate-recalibration Enable HealthKit Estimate Recalibration --time-sensitive-notifications Enable Time Sensitive Notifications fastlane produce disable_services --help --access-wifi Disable Access Wifi --app-attest Disable App Attest --app-group Disable App Group --apple-pay Disable Apple Pay --associated-domains Disable Associated Domains --auto-fill-credential Disable Auto Fill Credential --class-kit Disable Class Kit --icloud STRING Disable iCloud --custom-network-protocol Disable Custom Network Protocol --data-protection STRING Disable Data Protection --extended-virtual-address-space Disable Extended Virtual Address Space --game-center STRING Disable Game Center --health-kit Disable Health Kit --hls-interstitial-preview Disable Hls Interstitial Preview --home-kit Disable Home Kit --hotspot Disable Hotspot --in-app-purchase Disable In App Purchase --inter-app-audio Disable Inter App Audio --low-latency-hls Disable Low Latency Hls --managed-associated-domains Disable Managed Associated Domains --maps Disable Maps --multipath Disable Multipath --network-extension Disable Network Extension --nfc-tag-reading Disable NFC Tag Reading --personal-vpn Disable Personal VPN --passbook Disable Passbook (deprecated) --push-notification Disable Push Notification --sign-in-with-apple Disable Sign In With Apple --siri-kit Disable Siri Kit --system-extension Disable System Extension --user-management Disable User Management --vpn-configuration Disable Vpn Configuration (deprecated) --wallet Disable Wallet --wireless-accessory Disable Wireless Accessory --car-play-audio-app Disable Car Play Audio App --car-play-messaging-app Disable Car Play Messaging App --car-play-navigation-app Disable Car Play Navigation App --car-play-voip-calling-app Disable Car Play Voip Calling App --critical-alerts Disable Critical Alerts --hotspot-helper Disable Hotspot Helper --driver-kit Disable DriverKit --driver-kit-endpoint-security Disable DriverKit Endpoint Security --driver-kit-family-hid-device Disable DriverKit Family HID Device --driver-kit-family-networking Disable DriverKit Family Networking --driver-kit-family-serial Disable DriverKit Family Serial --driver-kit-hid-event-service Disable DriverKit HID EventService --driver-kit-transport-hid Disable DriverKit Transport HID --multitasking-camera-access Disable Multitasking Camera Access --sf-universal-link-api Disable SFUniversalLink API --vp9-decoder Disable VP9 Decoder --music-kit Disable MusicKit --shazam-kit Disable ShazamKit --communication-notifications Disable Communication Notifications --group-activities Disable Group Activities --health-kit-estimate-recalibration Disable HealthKit Estimate Recalibration --time-sensitive-notifications Disable Time Sensitive Notifications","title":"Parameters"},{"location":"actions/create_app_online/#creating-apple-pay-merchants-and-associating-them-with-an-app-id","text":"If you want to create a new Apple Pay Merchant Identifier: fastlane produce merchant -o merchant.com.example.production -r \"Example Merchant Production\" Use --help for more information about all available parameters fastlane produce merchant --help If you want to associate an app with a Merchant Identifier: fastlane produce associate_merchant -a com.krausefx.app merchant.com.example.production If you want to associate an app with multiple Merchant Identifiers: fastlane produce associate_merchant -a com.krausefx.app merchant.com.example.production merchant.com.example.sandbox Use --help for more information about all available parameters fastlane produce associate_merchant --help","title":"Creating Apple Pay merchants and associating them with an App ID"},{"location":"actions/create_app_online/#environment-variables","text":"All available values can also be passed using environment variables, run fastlane produce --help to get a list of all available parameters.","title":"Environment Variables"},{"location":"actions/create_app_online/#fastlane-integration","text":"Your Fastfile should look like this lane :release do produce( username: 'felix@krausefx.com', app_identifier: 'com.krausefx.app', app_name: 'MyApp', language: 'English', app_version: '1.0', sku: '123', team_name: 'SunApps GmbH', # only necessary when in multiple teams # Optional # App services can be enabled during app creation enable_services: { access_wifi: \"on\", # Valid values: \"on\", \"off\" app_attest: \"on\", # Valid values: \"on\", \"off\" app_group: \"on\", # Valid values: \"on\", \"off\" apple_pay: \"on\", # Valid values: \"on\", \"off\" associated_domains: \"on\", # Valid values: \"on\", \"off\" auto_fill_credential: \"on\", # Valid values: \"on\", \"off\" car_play_audio_app: \"on\", # Valid values: \"on\", \"off\" car_play_messaging_app: \"on\", # Valid values: \"on\", \"off\" car_play_navigation_app: \"on\", # Valid values: \"on\", \"off\" car_play_voip_calling_app: \"on\", # Valid values: \"on\", \"off\" class_kit: \"on\", # Valid values: \"on\", \"off\" icloud: \"xcode5_compatible\", # Valid values: \"xcode5_compatible\", \"xcode6_compatible\", \"off\" critical_alerts: \"on\", # Valid values: \"on\", \"off\" custom_network_protocol: \"on\", # Valid values: \"on\", \"off\" data_protection: \"complete\", # Valid values: \"complete\", \"unlessopen\", \"untilfirstauth\", \"off\" extended_virtual_address_space: \"on\", # Valid values: \"on\", \"off\" file_provider_testing_mode: \"on\", # Valid values: \"on\", \"off\" fonts: \"on\", # Valid values: \"on\", \"off\" game_center: \"ios\", # Valid values: \"ios\", \"macos\", off\" health_kit: \"on\", # Valid values: \"on\", \"off\" hls_interstitial_preview: \"on\", # Valid values: \"on\", \"off\" home_kit: \"on\", # Valid values: \"on\", \"off\" hotspot: \"on\", # Valid values: \"on\", \"off\" hotspot_helper: \"on\", # Valid values: \"on\", \"off\" in_app_purchase: \"on\", # Valid values: \"on\", \"off\" inter_app_audio: \"on\", # Valid values: \"on\", \"off\" low_latency_hls: \"on\", # Valid values: \"on\", \"off\" managed_associated_domains: \"on\", # Valid values: \"on\", \"off\" maps: \"on\", # Valid values: \"on\", \"off\" multipath: \"on\", # Valid values: \"on\", \"off\" network_extension: \"on\", # Valid values: \"on\", \"off\" nfc_tag_reading: \"on\", # Valid values: \"on\", \"off\" passbook: \"on\", # Valid values: \"on\", \"off\" (deprecated) personal_vpn: \"on\", # Valid values: \"on\", \"off\" push_notification: \"on\", # Valid values: \"on\", \"off\" sign_in_with_apple: \"on\", # Valid values: \"on\", \"off\" siri_kit: \"on\", # Valid values: \"on\", \"off\" system_extension: \"on\", # Valid values: \"on\", \"off\" user_management: \"on\", # Valid values: \"on\", \"off\" vpn_configuration: \"on\", # Valid values: \"on\", \"off\" (deprecated) wallet: \"on\", # Valid values: \"on\", \"off\" wireless_accessory: \"on\", # Valid values: \"on\", \"off\" driver_kit: \"on\", # Valid values: \"on\", \"off\" driver_kit_endpoint_security: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_hid_device: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_networking: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_serial: \"on\", # Valid values: \"on\", \"off\" driver_kit_hid_event_service: \"on\", # Valid values: \"on\", \"off\" driver_kit_transport_hid: \"on\", # Valid values: \"on\", \"off\" multitasking_camera_access: \"on\", # Valid values: \"on\", \"off\" sf_universal_link_api: \"on\", # Valid values: \"on\", \"off\" vp9_decoder: \"on\", # Valid values: \"on\", \"off\" music_kit: \"on\", # Valid values: \"on\", \"off\" shazam_kit: \"on\", # Valid values: \"on\", \"off\" communication_notifications: \"on\", # Valid values: \"on\", \"off\" group_activities: \"on\", # Valid values: \"on\", \"off\" health_kit_estimate_recalibration: \"on\", # Valid values: \"on\", \"off\" time_sensitive_notifications: \"on\", # Valid values: \"on\", \"off\" } ) deliver end To use the newly generated app in deliver , you need to add this line to your Deliverfile : apple_id(ENV['PRODUCE_APPLE_ID']) This will tell deliver , which App ID to use, since the app is not yet available in the App Store. You'll still have to fill out the remaining information (like screenshots, app description and pricing). You can use deliver to upload your app metadata using a CLI","title":"fastlane Integration"},{"location":"actions/create_app_online/#how-is-my-password-stored","text":"produce uses the password manager from fastlane . Take a look the CredentialsManager README for more information. create_app_online Supported platforms ios Author @KrauseFx","title":"How is my password stored?"},{"location":"actions/create_app_online/#2-examples","text":"create_app_online( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", app_name: \"MyApp\", language: \"English\", app_version: \"1.0\", sku: \"123\", team_name: \"SunApps GmbH\" # Only necessary when in multiple teams. ) produce # alias for \"create_app_online\"","title":"2 Examples"},{"location":"actions/create_app_online/#parameters_1","text":"Key Description Default username Your Apple ID Username * app_identifier App Identifier (Bundle ID, e.g. com.krausefx.app) * bundle_identifier_suffix App Identifier Suffix (Ignored if App Identifier does not end with .*) app_name App Name app_version Initial version number (e.g. '1.0') sku SKU Number (e.g. '1234') * platform The platform to use (optional) ios platforms The platforms to use (optional) language Primary Language (e.g. 'en-US', 'fr-FR') English company_name The name of your company. It's used to set company name on App Store Connect team's app pages. Only required if it's the first app you create skip_itc Skip the creation of the app on App Store Connect false itc_users Array of App Store Connect users. If provided, you can limit access to this newly created app for users with the App Manager, Developer, Marketer or Sales roles enabled_features DEPRECATED! Please use enable_services instead - Array with Spaceship App Services {} enable_services Array with Spaceship App Services (e.g. access_wifi: (on|off), app_attest: (on|off), app_group: (on|off), apple_pay: (on|off), associated_domains: (on|off), auto_fill_credential: (on|off), class_kit: (on|off), icloud: (legacy|cloudkit), custom_network_protocol: (on|off), data_protection: (complete|unlessopen|untilfirstauth), extended_virtual_address_space: (on|off), family_controls: (on|off), file_provider_testing_mode: (on|off), fonts: (on|off), game_center: (ios|mac), health_kit: (on|off), hls_interstitial_preview: (on|off), home_kit: (on|off), hotspot: (on|off), in_app_purchase: (on|off), inter_app_audio: (on|off), low_latency_hls: (on|off), managed_associated_domains: (on|off), maps: (on|off), multipath: (on|off), network_extension: (on|off), nfc_tag_reading: (on|off), personal_vpn: (on|off), passbook: (on|off), push_notification: (on|off), sign_in_with_apple: (on), siri_kit: (on|off), system_extension: (on|off), user_management: (on|off), vpn_configuration: (on|off), wallet: (on|off), wireless_accessory: (on|off), car_play_audio_app: (on|off), car_play_messaging_app: (on|off), car_play_navigation_app: (on|off), car_play_voip_calling_app: (on|off), critical_alerts: (on|off), hotspot_helper: (on|off), driver_kit: (on|off), driver_kit_endpoint_security: (on|off), driver_kit_family_hid_device: (on|off), driver_kit_family_networking: (on|off), driver_kit_family_serial: (on|off), driver_kit_hid_event_service: (on|off), driver_kit_transport_hid: (on|off), multitasking_camera_access: (on|off), sf_universal_link_api: (on|off), vp9_decoder: (on|off), music_kit: (on|off), shazam_kit: (on|off), communication_notifications: (on|off), group_activities: (on|off), health_kit_estimate_recalibration: (on|off), time_sensitive_notifications: (on|off)) {} skip_devcenter Skip the creation of the app on the Apple Developer Portal false team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * itc_team_id The ID of your App Store Connect team if you're in multiple teams * itc_team_name The name of your App Store Connect team if you're in multiple teams * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/create_app_online/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The create_app_online action generates the following Lane Variables: SharedValue Description SharedValues::PRODUCE_APPLE_ID The Apple ID of the newly created app. You probably need it for deliver To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/create_app_online/#documentation","text":"To show the documentation in your terminal, run fastlane action create_app_online","title":"Documentation"},{"location":"actions/create_app_online/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_app_online To pass parameters, make use of the : symbol, for example fastlane run create_app_online parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/create_app_online/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/create_keychain/","text":"create_keychain Create a new Keychain create_keychain Supported platforms ios, android, mac Author @gin0606 1 Example create_keychain( name: \"KeychainName\", default_keychain: true, unlock: true, timeout: 3600, lock_when_sleeps: true ) Parameters Key Description Default name Keychain name path Path to keychain password Password for the keychain default_keychain Should the newly created Keychain be the new system default keychain false unlock Unlock keychain after create false timeout timeout interval in seconds. Set 0 if you want to specify \"no time-out\" 300 lock_when_sleeps Lock keychain when the system sleeps false lock_after_timeout Lock keychain after timeout interval false add_to_search_list Add keychain to search list true require_create Fail the action if the Keychain already exists false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The create_keychain action generates the following Lane Variables: SharedValue Description SharedValues::ORIGINAL_DEFAULT_KEYCHAIN The path to the default keychain SharedValues::KEYCHAIN_PATH The path of the keychain To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action create_keychain CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_keychain To pass parameters, make use of the : symbol, for example fastlane run create_keychain parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"create_keychain"},{"location":"actions/create_keychain/#create_keychain","text":"Create a new Keychain create_keychain Supported platforms ios, android, mac Author @gin0606","title":"create_keychain"},{"location":"actions/create_keychain/#1-example","text":"create_keychain( name: \"KeychainName\", default_keychain: true, unlock: true, timeout: 3600, lock_when_sleeps: true )","title":"1 Example"},{"location":"actions/create_keychain/#parameters","text":"Key Description Default name Keychain name path Path to keychain password Password for the keychain default_keychain Should the newly created Keychain be the new system default keychain false unlock Unlock keychain after create false timeout timeout interval in seconds. Set 0 if you want to specify \"no time-out\" 300 lock_when_sleeps Lock keychain when the system sleeps false lock_after_timeout Lock keychain after timeout interval false add_to_search_list Add keychain to search list true require_create Fail the action if the Keychain already exists false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/create_keychain/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The create_keychain action generates the following Lane Variables: SharedValue Description SharedValues::ORIGINAL_DEFAULT_KEYCHAIN The path to the default keychain SharedValues::KEYCHAIN_PATH The path of the keychain To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/create_keychain/#documentation","text":"To show the documentation in your terminal, run fastlane action create_keychain","title":"Documentation"},{"location":"actions/create_keychain/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_keychain To pass parameters, make use of the : symbol, for example fastlane run create_keychain parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/create_keychain/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/create_pull_request/","text":"create_pull_request This will create a new pull request on GitHub create_pull_request Supported platforms ios, android, mac Author @seei, @tommeier, @marumemomo, @elneruda, @kagemiku Returns The pull request URL when successful 1 Example create_pull_request( api_token: \"secret\", # optional, defaults to ENV[\"GITHUB_API_TOKEN\"] repo: \"fastlane/fastlane\", title: \"Amazing new feature\", head: \"my-feature\", # optional, defaults to current branch name base: \"master\", # optional, defaults to \"master\" body: \"Please pull this in!\", # optional api_url: \"http://yourdomain/api/v3\" # optional, for GitHub Enterprise, defaults to \"https://api.github.com\" ) Parameters Key Description Default api_token Personal API Token for GitHub - generate one at https://github.com/settings/tokens * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable repo The name of the repository you want to submit the pull request to title The title of the pull request body The contents of the pull request draft Indicates whether the pull request is a draft labels The labels for the pull request milestone The milestone ID (Integer) for the pull request head The name of the branch where your changes are implemented (defaults to the current branch name) * base The name of the branch you want your changes pulled into (defaults to master ) master api_url The URL of GitHub API - used when the Enterprise (default to https://api.github.com ) https://api.github.com assignees The assignees for the pull request reviewers The reviewers (slug) for the pull request team_reviewers The team reviewers (slug) for the pull request * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The create_pull_request action generates the following Lane Variables: SharedValue Description SharedValues::CREATE_PULL_REQUEST_HTML_URL The HTML URL to the created pull request SharedValues::CREATE_PULL_REQUEST_NUMBER The identifier number of the created pull request To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action create_pull_request CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_pull_request To pass parameters, make use of the : symbol, for example fastlane run create_pull_request parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"create_pull_request"},{"location":"actions/create_pull_request/#create_pull_request","text":"This will create a new pull request on GitHub create_pull_request Supported platforms ios, android, mac Author @seei, @tommeier, @marumemomo, @elneruda, @kagemiku Returns The pull request URL when successful","title":"create_pull_request"},{"location":"actions/create_pull_request/#1-example","text":"create_pull_request( api_token: \"secret\", # optional, defaults to ENV[\"GITHUB_API_TOKEN\"] repo: \"fastlane/fastlane\", title: \"Amazing new feature\", head: \"my-feature\", # optional, defaults to current branch name base: \"master\", # optional, defaults to \"master\" body: \"Please pull this in!\", # optional api_url: \"http://yourdomain/api/v3\" # optional, for GitHub Enterprise, defaults to \"https://api.github.com\" )","title":"1 Example"},{"location":"actions/create_pull_request/#parameters","text":"Key Description Default api_token Personal API Token for GitHub - generate one at https://github.com/settings/tokens * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable repo The name of the repository you want to submit the pull request to title The title of the pull request body The contents of the pull request draft Indicates whether the pull request is a draft labels The labels for the pull request milestone The milestone ID (Integer) for the pull request head The name of the branch where your changes are implemented (defaults to the current branch name) * base The name of the branch you want your changes pulled into (defaults to master ) master api_url The URL of GitHub API - used when the Enterprise (default to https://api.github.com ) https://api.github.com assignees The assignees for the pull request reviewers The reviewers (slug) for the pull request team_reviewers The team reviewers (slug) for the pull request * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/create_pull_request/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The create_pull_request action generates the following Lane Variables: SharedValue Description SharedValues::CREATE_PULL_REQUEST_HTML_URL The HTML URL to the created pull request SharedValues::CREATE_PULL_REQUEST_NUMBER The identifier number of the created pull request To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/create_pull_request/#documentation","text":"To show the documentation in your terminal, run fastlane action create_pull_request","title":"Documentation"},{"location":"actions/create_pull_request/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_pull_request To pass parameters, make use of the : symbol, for example fastlane run create_pull_request parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/create_pull_request/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/create_xcframework/","text":"create_xcframework Package multiple build configs of a library/framework into a single xcframework Utility for packaging multiple build configurations of a given library or framework into a single xcframework. If you want to package several frameworks just provide one of: * An array containing the list of frameworks using the :frameworks parameter (if they have no associated dSYMs): ['FrameworkA.framework', 'FrameworkB.framework'] * A hash containing the list of frameworks with their dSYMs using the :frameworks_with_dsyms parameter: { 'FrameworkA.framework' => {}, 'FrameworkB.framework' => { dsyms: 'FrameworkB.framework.dSYM' } } If you want to package several libraries just provide one of: * An array containing the list of libraries using the :libraries parameter (if they have no associated headers or dSYMs): ['LibraryA.so', 'LibraryB.so'] * A hash containing the list of libraries with their headers and dSYMs using the :libraries_with_headers_or_dsyms parameter: { 'LibraryA.so' => { dsyms: 'libraryA.so.dSYM' }, 'LibraryB.so' => { headers: 'headers' } } Finally specify the location of the xcframework to be generated using the :output parameter. create_xcframework Supported platforms ios, mac Author @jgongo 4 Examples create_xcframework(frameworks: ['FrameworkA.framework', 'FrameworkB.framework'], output: 'UniversalFramework.xcframework') create_xcframework(frameworks_with_dsyms: {'FrameworkA.framework' => {}, 'FrameworkB.framework' => { dsyms: 'FrameworkB.framework.dSYM' } }, output: 'UniversalFramework.xcframework') create_xcframework(libraries: ['LibraryA.so', 'LibraryB.so'], output: 'UniversalFramework.xcframework') create_xcframework(libraries_with_headers_or_dsyms: { 'LibraryA.so' => { dsyms: 'libraryA.so.dSYM' }, 'LibraryB.so' => { headers: 'LibraryBHeaders' } }, output: 'UniversalFramework.xcframework') Parameters Key Description Default frameworks Frameworks (without dSYMs) to add to the target xcframework frameworks_with_dsyms Frameworks (with dSYMs) to add to the target xcframework libraries Libraries (without headers or dSYMs) to add to the target xcframework libraries_with_headers_or_dsyms Libraries (with headers or dSYMs) to add to the target xcframework output The path to write the xcframework to allow_internal_distribution Specifies that the created xcframework contains information not suitable for public distribution false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The create_xcframework action generates the following Lane Variables: SharedValue Description SharedValues::XCFRAMEWORK_PATH Location of the generated xcframework To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action create_xcframework CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_xcframework To pass parameters, make use of the : symbol, for example fastlane run create_xcframework parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"create_xcframework"},{"location":"actions/create_xcframework/#create_xcframework","text":"Package multiple build configs of a library/framework into a single xcframework Utility for packaging multiple build configurations of a given library or framework into a single xcframework. If you want to package several frameworks just provide one of: * An array containing the list of frameworks using the :frameworks parameter (if they have no associated dSYMs): ['FrameworkA.framework', 'FrameworkB.framework'] * A hash containing the list of frameworks with their dSYMs using the :frameworks_with_dsyms parameter: { 'FrameworkA.framework' => {}, 'FrameworkB.framework' => { dsyms: 'FrameworkB.framework.dSYM' } } If you want to package several libraries just provide one of: * An array containing the list of libraries using the :libraries parameter (if they have no associated headers or dSYMs): ['LibraryA.so', 'LibraryB.so'] * A hash containing the list of libraries with their headers and dSYMs using the :libraries_with_headers_or_dsyms parameter: { 'LibraryA.so' => { dsyms: 'libraryA.so.dSYM' }, 'LibraryB.so' => { headers: 'headers' } } Finally specify the location of the xcframework to be generated using the :output parameter. create_xcframework Supported platforms ios, mac Author @jgongo","title":"create_xcframework"},{"location":"actions/create_xcframework/#4-examples","text":"create_xcframework(frameworks: ['FrameworkA.framework', 'FrameworkB.framework'], output: 'UniversalFramework.xcframework') create_xcframework(frameworks_with_dsyms: {'FrameworkA.framework' => {}, 'FrameworkB.framework' => { dsyms: 'FrameworkB.framework.dSYM' } }, output: 'UniversalFramework.xcframework') create_xcframework(libraries: ['LibraryA.so', 'LibraryB.so'], output: 'UniversalFramework.xcframework') create_xcframework(libraries_with_headers_or_dsyms: { 'LibraryA.so' => { dsyms: 'libraryA.so.dSYM' }, 'LibraryB.so' => { headers: 'LibraryBHeaders' } }, output: 'UniversalFramework.xcframework')","title":"4 Examples"},{"location":"actions/create_xcframework/#parameters","text":"Key Description Default frameworks Frameworks (without dSYMs) to add to the target xcframework frameworks_with_dsyms Frameworks (with dSYMs) to add to the target xcframework libraries Libraries (without headers or dSYMs) to add to the target xcframework libraries_with_headers_or_dsyms Libraries (with headers or dSYMs) to add to the target xcframework output The path to write the xcframework to allow_internal_distribution Specifies that the created xcframework contains information not suitable for public distribution false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/create_xcframework/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The create_xcframework action generates the following Lane Variables: SharedValue Description SharedValues::XCFRAMEWORK_PATH Location of the generated xcframework To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/create_xcframework/#documentation","text":"To show the documentation in your terminal, run fastlane action create_xcframework","title":"Documentation"},{"location":"actions/create_xcframework/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_xcframework To pass parameters, make use of the : symbol, for example fastlane run create_xcframework parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/create_xcframework/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/danger/","text":"danger Runs danger for the project Formalize your Pull Request etiquette. More information: https://github.com/danger/danger . danger Supported platforms ios, android, mac Author @KrauseFx 2 Examples danger danger( danger_id: \"unit-tests\", dangerfile: \"tests/MyOtherDangerFile\", github_api_token: ENV[\"GITHUB_API_TOKEN\"], verbose: true ) Parameters Key Description Default use_bundle_exec Use bundle exec when there is a Gemfile presented true verbose Show more debugging information false danger_id The identifier of this Danger instance dangerfile The location of your Dangerfile github_api_token GitHub API token for danger github_enterprise_host GitHub host URL for GitHub Enterprise github_enterprise_api_base_url GitHub API base URL for GitHub Enterprise fail_on_errors Should always fail the build process, defaults to false false new_comment Makes Danger post a new comment instead of editing its previous one false remove_previous_comments Makes Danger remove all previous comment and create a new one in the end of the list false base A branch/tag/commit to use as the base of the diff. [master|dev|stable] head A branch/tag/commit to use as the head. [master|dev|stable] pr Run danger on a specific pull request. e.g. \"https://github.com/danger/danger/pull/518\" fail_if_no_pr Fail Danger execution if no PR is found false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action danger CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run danger To pass parameters, make use of the : symbol, for example fastlane run danger parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"danger"},{"location":"actions/danger/#danger","text":"Runs danger for the project Formalize your Pull Request etiquette. More information: https://github.com/danger/danger . danger Supported platforms ios, android, mac Author @KrauseFx","title":"danger"},{"location":"actions/danger/#2-examples","text":"danger danger( danger_id: \"unit-tests\", dangerfile: \"tests/MyOtherDangerFile\", github_api_token: ENV[\"GITHUB_API_TOKEN\"], verbose: true )","title":"2 Examples"},{"location":"actions/danger/#parameters","text":"Key Description Default use_bundle_exec Use bundle exec when there is a Gemfile presented true verbose Show more debugging information false danger_id The identifier of this Danger instance dangerfile The location of your Dangerfile github_api_token GitHub API token for danger github_enterprise_host GitHub host URL for GitHub Enterprise github_enterprise_api_base_url GitHub API base URL for GitHub Enterprise fail_on_errors Should always fail the build process, defaults to false false new_comment Makes Danger post a new comment instead of editing its previous one false remove_previous_comments Makes Danger remove all previous comment and create a new one in the end of the list false base A branch/tag/commit to use as the base of the diff. [master|dev|stable] head A branch/tag/commit to use as the head. [master|dev|stable] pr Run danger on a specific pull request. e.g. \"https://github.com/danger/danger/pull/518\" fail_if_no_pr Fail Danger execution if no PR is found false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/danger/#documentation","text":"To show the documentation in your terminal, run fastlane action danger","title":"Documentation"},{"location":"actions/danger/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run danger To pass parameters, make use of the : symbol, for example fastlane run danger parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/danger/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/debug/","text":"debug Print out an overview of the lane context values debug Supported platforms ios, android, mac Author @KrauseFx 1 Example debug Documentation To show the documentation in your terminal, run fastlane action debug CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run debug To pass parameters, make use of the : symbol, for example fastlane run debug parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"debug"},{"location":"actions/debug/#debug","text":"Print out an overview of the lane context values debug Supported platforms ios, android, mac Author @KrauseFx","title":"debug"},{"location":"actions/debug/#1-example","text":"debug","title":"1 Example"},{"location":"actions/debug/#documentation","text":"To show the documentation in your terminal, run fastlane action debug","title":"Documentation"},{"location":"actions/debug/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run debug To pass parameters, make use of the : symbol, for example fastlane run debug parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/debug/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/default_platform/","text":"default_platform Defines a default platform to not have to specify the platform default_platform Supported platforms ios, android, mac Author @KrauseFx 1 Example default_platform(:android) Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The default_platform action generates the following Lane Variables: SharedValue Description SharedValues::DEFAULT_PLATFORM The default platform To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action default_platform CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run default_platform To pass parameters, make use of the : symbol, for example fastlane run default_platform parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"default_platform"},{"location":"actions/default_platform/#default_platform","text":"Defines a default platform to not have to specify the platform default_platform Supported platforms ios, android, mac Author @KrauseFx","title":"default_platform"},{"location":"actions/default_platform/#1-example","text":"default_platform(:android)","title":"1 Example"},{"location":"actions/default_platform/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The default_platform action generates the following Lane Variables: SharedValue Description SharedValues::DEFAULT_PLATFORM The default platform To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/default_platform/#documentation","text":"To show the documentation in your terminal, run fastlane action default_platform","title":"Documentation"},{"location":"actions/default_platform/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run default_platform To pass parameters, make use of the : symbol, for example fastlane run default_platform parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/default_platform/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/delete_keychain/","text":"delete_keychain Delete keychains and remove them from the search list Keychains can be deleted after being created with create_keychain delete_keychain Supported platforms ios, android, mac Author @gin0606, @koenpunt 2 Examples delete_keychain(name: \"KeychainName\") delete_keychain(keychain_path: \"/keychains/project.keychain\") Parameters Key Description Default name Keychain name keychain_path Keychain path * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action delete_keychain CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run delete_keychain To pass parameters, make use of the : symbol, for example fastlane run delete_keychain parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"delete_keychain"},{"location":"actions/delete_keychain/#delete_keychain","text":"Delete keychains and remove them from the search list Keychains can be deleted after being created with create_keychain delete_keychain Supported platforms ios, android, mac Author @gin0606, @koenpunt","title":"delete_keychain"},{"location":"actions/delete_keychain/#2-examples","text":"delete_keychain(name: \"KeychainName\") delete_keychain(keychain_path: \"/keychains/project.keychain\")","title":"2 Examples"},{"location":"actions/delete_keychain/#parameters","text":"Key Description Default name Keychain name keychain_path Keychain path * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/delete_keychain/#documentation","text":"To show the documentation in your terminal, run fastlane action delete_keychain","title":"Documentation"},{"location":"actions/delete_keychain/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run delete_keychain To pass parameters, make use of the : symbol, for example fastlane run delete_keychain parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/delete_keychain/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/deliver/","text":"deliver Alias for the upload_to_app_store action deliver uploads screenshots, metadata and binaries to App Store Connect. Use deliver to submit your app for App Store review. Features \u2022 Quick Start \u2022 Usage \u2022 Tips deliver is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Features Upload hundreds of localized screenshots completely automatically Upload a new ipa/pkg file to App Store Connect without Xcode from any Mac Maintain your app metadata locally and push changes back to App Store Connect Easily implement a real Continuous Deployment process using fastlane Store the configuration in git to easily deploy from any Mac, including your Continuous Integration server Get a HTML preview of the fetched metadata before uploading the app metadata and screenshots to iTC Automatically uses precheck to ensure your app has the highest chances of passing app review the first time To upload builds to TestFlight check out pilot . Quick Start The guide will create all the necessary files for you, using the existing app metadata from App Store Connect. cd [your_project_folder] fastlane deliver init Enter your App Store Connect credentials Enter your app identifier Enjoy a good drink, while the computer does all the work for you From now on, you can run fastlane deliver to deploy a new update, or just upload new app metadata and screenshots. Usage Check out your local ./fastlane/metadata and ./fastlane/screenshots folders (if you don't use fastlane it's ./metadata instead) You'll see your metadata from App Store Connect. Feel free to store the metadata in git (not the screenshots). You can now modify it locally and push the changes back to App Store Connect. Run fastlane deliver to upload the app metadata from your local machine fastlane deliver Provide the path to an ipa file to upload and submit your app for review: fastlane deliver --ipa \"App.ipa\" --submit_for_review or you can specify path to pkg file for macOS apps: fastlane deliver --pkg \"MacApp.pkg\" If you use fastlane you don't have to manually specify the path to your ipa / pkg file. This is just a small sub-set of what you can do with deliver , check out the full documentation in #more-options Download existing screenshots from App Store Connect fastlane deliver download_screenshots Download existing metadata from App Store Connect fastlane deliver download_metadata To get a list of available options run fastlane action deliver Use in a Fastfile deliver deliver( submit_for_review: true, force: true, metadata_path: \"./metadata\" ) More options View all available options and their valid values Available options All the options below can easily be added to your Deliverfile . The great thing: if you use fastlane you can use all these options from your Fastfile too, for example: deliver( submit_for_review: true, metadata_path: \"../folder\" ) app_identifier The bundle identifier (e.g. \"com.krausefx.app\") username Your Apple ID email address ipa A path to a signed ipa file, which will be uploaded. If you don't provide this value, only app metadata will be uploaded. If you want to submit the app for review make sure to either use fastlane deliver --submit_for_review or add submit_for_review true to your Deliverfile ipa(\"App.ipa\") if you use fastlane the ipa file will automatically be detected. pkg A path to a signed pkg file, which will be uploaded. Submission logic of ipa applies to pkg files. pkg(\"MacApp.pkg\") app_version Optional, as it is usually automatically detected. Specify the version that should be created / edited on App Store Connect: app_version(\"2.0\") skip_app_version_update In the case if deliver uploads your application to App Store Connect it will automatically update \"Prepare for submission\" app version (which could be found on App Store Connect->My Apps->App Store page) The option allows uploading your app without updating \"Prepare for submission\" version. This could be useful in the case if you are generating a lot of uploads while not submitting the latest build for Apple review. The default value is false. skip_app_version_update(true) submit_for_review Add this to your Deliverfile to automatically submit the app for review after uploading metadata/binary. This will select the latest build. submit_for_review(true) screenshots_path A path to a folder containing subfolders for each language. This will automatically detect the device type based on the image resolution. Also includes \uf8ff Watch Support. metadata_path Path to the metadata you want to use. The folder has to be structured like this If you run deliver init this will automatically be created for you. force force(true) If set to true , no HTML report will be generated before the actual upload. You can also pass --force when calling deliver . price_tier Pass the price tier as number. This will be active from the current day. price_tier 0 trade_representative_contact_information Trade Representative Contact information for Korean App Store. Available options: first_name , last_name , address_line1 , address_line2 , address_line3 , city_name , state , country , postal_code , phone_number , email_address , is_displayed_on_app_store . trade_representative_contact_information( first_name: \"Felix\", last_name: \"Krause\", address_line1: \"1 Infinite Loop\", address_line2: \"\", address_line3: null, city_name: \"Cupertino\", state: \"California\", country: \"United States\", postal_code: \"95014\", phone_number: \"+43 123123123\", email_address: \"github@krausefx.com\", ) You can also provide these values by creating files in a metadata/trade_representative_contact_information/ directory. The file names must match the pattern .txt (e.g. first_name.txt , address_line1.txt etc.). The contents of each file will be used as the value for the matching key. Values provided in the Deliverfile or Fastfile will be take priority over values from these files. is_displayed_on_app_store is the option on App Store Connect described as: Display Trade Representative Contact Information on the Korean App Store app_review_information Contact information for the app review team. Available options: first_name , last_name , phone_number , email_address , demo_user , demo_password , notes . app_review_information( first_name: \"Felix\", last_name: \"Krause\", phone_number: \"+43 123123123\", email_address: \"github@krausefx.com\", demo_user: \"demoUser\", demo_password: \"demoPass\", notes: \"such notes, very text\" ) You can also provide these values by creating files in a metadata/review_information/ directory. The file names must match the pattern .txt (e.g. first_name.txt , notes.txt etc.). The contents of each file will be used as the value for the matching key. Values provided in the Deliverfile or Fastfile will be take priority over values from these files. app_review_attachment_file You can provide additional information to the app review team as a file attachment. As of this writing, Apple supports following file attachment formats: .pdf, .doc, .docx, .rtf, .pages, .xls, .xlsx, .numbers, .zip, .rar, .plist, .crash, .jpg, .png, .mp4, or .avi. Provide an empty string (i.e. \"\", not null) to remove the existing attachment file (if any) from the review information being edited. app_review_attachment_file: \"./readme.txt\" submission_information Must be a hash. This is used as the last step for the deployment process, where you define if you use third party content or use encryption. A list of available options . submission_information({ add_id_info_serves_ads: true, ... }) automatic_release Should the app be released to all users once Apple approves it? If set to false , you'll have to manually release the update once it got approved. automatic_release(true) # or automatic_release(false) phased_release Enable or disable the phased releases feature of App Store Connect. If set to true , the update will be released over a 7 day period. Default behavior is to leave whatever you defined on App Store Connect. phased_release(true) # or phased_release(false) reset_ratings Reset your app's summary rating for all territories. If set to true , it will reset rating when this version is released. Default behavior is to keep existing rating. reset_ratings(true) # or reset_ratings(false) app_rating_config_path You can set the app age ratings using deliver . You'll have to create and store a JSON configuration file. Copy the template to your project folder and pass the path to the JSON file using the app_rating_config_path option. The keys/values on the top allow one of 3 strings: \"NONE\", \"INFREQUENT_OR_MILD\" or \"FREQUENT_OR_INTENSE\", and the items on the bottom allow false or true. More information in #reference . Metadata All options below are useful if you want to specify certain app metadata in your Deliverfile or Fastfile Localized Localized values should be set like this description({ 'en-US' => \"English Description here\", 'de-DE' => \"Deutsche Beschreibung hier\" }) name The title/name of the app subtitle Localized subtitle of the app subtitle( \"en-US\" => \"Awesome English subtitle here\", \"de-DE\" => \"Jetzt mit deutschen Untertiteln!\" ) description The description of the app release_notes The release_notes (What's new / Changelog) of the latest version support_url, marketing_url, privacy_url These URLs are shown in the AppStore keywords Keywords separated using a comma. keywords( \"en-US\" => \"Keyword1, Keyword2\" ) promotional_text Localized promotional text promotional_text( \"en-US\" => \"Hey, you should totally buy our app, it's the best\", \"de-DE\" => \"App kaufen bitte\" ) app_icon A path to a new app icon, which must be exactly 1024x1024px app_icon('./AppIcon.png') apple_watch_app_icon A path to a new app icon for the \uf8ff Watch, which must be exactly 1024x1024px apple_watch_app_icon('./AppleWatchAppIcon.png') platform The platform of your application (a.e. ios, osx). This option is optional. The default value is \"ios\" and deliver should be able to figure out the platform from your binary. However, in the case if multiple binaries present, you can specify a platform which you want to deliver explicitly. The available options: 'ios' 'appletvos' 'osx' Non-Localized copyright The up to date copyright information. copyright(\"#{Time.now.year} Felix Krause\") primary_category The english name of the category you want to set (e.g. Business , Books ) See #reference for a list of available categories secondary_category The english name of the secondary category you want to set primary_first_sub_category The english name of the primary first sub category you want to set primary_second_sub_category The english name of the primary second sub category you want to set secondary_first_sub_category The english name of the secondary first sub category you want to set secondary_second_sub_category The english name of the secondary second sub category you want to set Submit Build deliver allows you to promote an existing build to production. Below are examples to select a previously uploaded build and submit it for review. fastlane deliver submit_build --build_number 830 Submit build in a Fastfile lane :submit_review do deliver( build_number: '830', submit_for_review: true, automatic_release: true, force: true, # Skip HTMl report verification skip_metadata: true, skip_screenshots: true, skip_binary_upload: true ) end Omit build_number to let fastlane automatically select the latest build number for the current version being edited for release from App Store Connect. Compliance and IDFA settings Use the submission_information parameter for additional submission specifiers, including compliance and IDFA settings. Look at the Spaceship's app_submission.rb file for options. See this example . fastlane deliver submit_build --build_number 830 --submission_information \"{\\\"export_compliance_uses_encryption\\\": false, \\\"add_id_info_uses_idfa\\\": false }\" App Privacy Details Starting on December 8, 2020, Apple announced that developers are required to provide app privacy details that will help users understand an app's privacy practies. deliver does not allow for updating of this information but this can be done with the upload_app_privacy_details_to_app_store action. More information on Uploading App Privacy Details Credentials A detailed description about how your credentials are handled is available in a credentials_manager . How does this thing even work? Is magic involved? \ud83c\udfa9 Your password will be stored in the macOS keychain, but can also be passed using environment variables. (More information available on CredentialsManager ) Before actually uploading anything to iTunes, deliver will generate a HTML summary of the collected data. deliver uses the following techniques under the hood: The iTMSTransporter tool is used to upload the binary to App Store Connect. iTMSTransporter is a command line tool provided by Apple. For all metadata related actions deliver uses spaceship Tips Available language codes ar-SA, ca, cs, da, de-DE, el, en-AU, en-CA, en-GB, en-US, es-ES, es-MX, fi, fr-CA, fr-FR, he, hi, hr, hu, id, it, ja, ko, ms, nl-NL, no, pl, pt-BR, pt-PT, ro, ru, sk, sv, th, tr, uk, vi, zh-Hans, zh-Hant Available Metadata Folder Options deliver allows for metadata to be set through .txt files in the metadata folder. This metadata folder location is defaulted to ./fastlane/metadata but can be overridden through the metadata_path parameter. Below are all allowed metadata options. Non-Localized Metadata Key Editable While Live Directory Filename copyright Yes copyright.txt primary_category No primary_category.txt secondary_category No secondary_category.txt primary_first_sub_category No primary_first_sub_category.txt primary_second_sub_category No primary_second_sub_category.txt secondary_first_sub_category No secondary_first_sub_category.txt secondary_second_sub_category No secondary_second_sub_category.txt Localized Metadata Key Editable While Live Directory Filename name No // name.txt subtitle No // subtitle.txt privacy_url Yes // privacy_url.txt apple_tv_privacy_policy No // apple_tv_privacy_policy.txt description Yes // description.txt keywords No // keywords.txt release_notes Yes // release_notes.txt support_url Yes // support_url.txt marketing_url Yes // marketing_url.txt promotional_text Yes // promotional_text.txt Review Information Metadata Key Editable While Live Directory Filename Deprecated Filename first_name Yes /review_information first_name.txt review_first_name.txt last_name Yes /review_information last_name.txt review_last_name.txt phone_number Yes /review_information phone_number.txt review_phone_number.txt email_address Yes /review_information email_address.txt review_email.txt demo_user Yes /review_information demo_user.txt review_demo_user.txt demo_password Yes /review_information demo_password.txt review_demo_password.txt notes Yes /review_information notes.txt review_notes.txt Reference View all available categories, etc. Available Categories FOOD_AND_DRINK BUSINESS EDUCATION SOCIAL_NETWORKING BOOKS SPORTS FINANCE REFERENCE GRAPHICS_AND_DESIGN DEVELOPER_TOOLS HEALTH_AND_FITNESS MUSIC WEATHER TRAVEL ENTERTAINMENT STICKERS GAMES LIFESTYLE MEDICAL MAGAZINES_AND_NEWSPAPERS UTILITIES SHOPPING PRODUCTIVITY NEWS PHOTO_AND_VIDEO NAVIGATION Available Game Subcategories MZGenre.Action MZGenre.Adventure MZGenre.Arcade MZGenre.Board MZGenre.Card MZGenre.Casino MZGenre.Dice MZGenre.Educational MZGenre.Family MZGenre.Music MZGenre.Puzzle MZGenre.Racing MZGenre.RolePlaying MZGenre.Simulation MZGenre.Sports MZGenre.Strategy MZGenre.Trivia MZGenre.Word GAMES_SPORTS GAMES_WORD GAMES_MUSIC GAMES_ADVENTURE GAMES_ACTION GAMES_ROLE_PLAYING GAMES_CASUAL GAMES_BOARD GAMES_TRIVIA GAMES_CARD GAMES_PUZZLE GAMES_CASINO GAMES_STRATEGY GAMES_SIMULATION GAMES_RACING GAMES_FAMILY Available Stickers Subcategories STICKERS_PLACES_AND_OBJECTS STICKERS_EMOJI_AND_EXPRESSIONS STICKERS_CELEBRATIONS STICKERS_CELEBRITIES STICKERS_MOVIES_AND_TV STICKERS_SPORTS_AND_ACTIVITIES STICKERS_EATING_AND_DRINKING STICKERS_CHARACTERS STICKERS_ANIMALS STICKERS_FASHION STICKERS_ART STICKERS_GAMING STICKERS_KIDS_AND_FAMILY STICKERS_PEOPLE STICKERS_MUSIC Available age rating groups Non Boolean Values 0: None (Legacy value, use NONE instead) 1: Infrequent/Mild (Legacy value, use INFREQUENT_OR_MILD instead) 2: Frequent/Intense (Legacy value, use FREQUENT_OR_INTENSE instead) NONE INFREQUENT_OR_MILD FREQUENT_OR_INTENSE Keys 'alcoholTobaccoOrDrugUseOrReferences' 'contests' 'gamblingSimulated' 'medicalOrTreatmentInformation' 'profanityOrCrudeHumor' 'sexualContentGraphicAndNudity' 'sexualContentOrNudity' 'horrorOrFearThemes' 'matureOrSuggestiveThemes' 'unrestrictedWebAccess' 'violenceCartoonOrFantasy' 'violenceRealisticProlongedGraphicOrSadistic' 'violenceRealistic' 'kidsAgeBand' Boolean Keys gambling 'seventeenPlus' unrestrictedWebAccess Kids Age Values FIVE_AND_UNDER SIX_TO_EIGHT NINE_TO_ELEVEN null Keys kidsAgeBand Default values Deliver has a special default language code which allows you to provide values that are not localized, and which will be used as defaults when you don\u2019t provide a specific localized value. In order to use default , you will need to tell deliver which languages your app uses. You can do this in either of two ways: Create the folders named with the language in the metadata folder (i.e. fastlane/metadata/en-US or fastlane/metadata/de-DE) Add the following to your Deliverfile languages(['en-US','de-DE']) You can use this either in json within your Deliverfile and/or as folders in your metadata folder. deliver will take the union of both language sets from the Deliverfile and from the metadata folder and create on single set of languages which will be enabled. Imagine that you have localized data for the following language codes: en-US, de-DE, el, it You can set the following in your Deliverfile release_notes({ 'default' => \"Shiny and new\", 'de-DE' => \"glaenzend und neu\" }) Deliver will use \"Shiny and new\" for en-US, el and it. It will use \"glaenzend und neu\" for de-DE. You can do the same with folders default keywords.txt marketing_url.txt name.txt privacy_url.txt support_url.txt release_notes.txt en-US description.txt de-DE description.txt el description.txt it description.txt In this case, default values for keywords, urls, name and release notes are used in all localizations, but each language has a fully localized description Uploading screenshots for \"iPad Pro (12.9-inch) (3rd generation)\" Starting March 20, 2019 Apple's App Store requires 12.9-inch iPad Pro (3rd generation) screenshots additionally to the iPad Pro 2nd generation screenshots . As fastlane historically uses the screenshot dimensions to determine the \"display family\" of a screenshot, this poses a problem as both use the same dimensions and are recognized as the same device family. To solve this a screenshot of a 12.9-inch iPad Pro (3rd generation) must contain either the string iPad Pro (12.9-inch) (3rd generation) , IPAD_PRO_3GEN_129 , or ipadPro129 (Apple's internal naming of the display family for the 3rd generation iPad Pro) in its filename to be assigned the correct display family and to be uploaded to the correct screenshot slot in your app's metadata. Automatically create screenshots If you want to integrate deliver with snapshot , check out fastlane ! Jenkins integration Detailed instructions about how to set up deliver and fastlane in Jenkins can be found in the fastlane README . Firewall Issues deliver uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" fastlane deliver HTTP Proxy iTunes Transporter is a Java application bundled with Xcode. In addition to utilizing the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" , you need to configure the transporter application to use the proxy independently from the system proxy or any environment proxy settings. You can find the configuration file within Xcode: for Xcode11 and later TOOLS_PATH=$( xcode-select -p ) REL_PATH='../SharedFrameworks/ContentDeliveryServices.framework/Versions/A/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" for Xcode10 or earlier TOOLS_PATH=$( xcode-select -p ) REL_PATH='../Applications/Application Loader.app/Contents/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" Add necessary proxy configuration values to the net.properties according to Java Proxy Configuration . As an alternative to editing the properties files, proxy configuration can be specified on the command line directly: DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV -Dhttp.proxyHost=myproxy.com -Dhttp.proxyPort=8080\" Limit App Store Connect has a limit of 150 binary uploads per day. Editing the Deliverfile Change syntax highlighting to Ruby . Provider Short Name If you are on multiple App Store Connect teams, deliver needs a provider short name to know where to upload your binary. deliver will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option. deliver Supported platforms ios, mac Author @KrauseFx 3 Examples upload_to_app_store( force: true, # Set to true to skip verification of HTML preview itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) deliver # alias for \"upload_to_app_store\" appstore # alias for \"upload_to_app_store\" Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of your app * app_version The version that should be edited or created ipa Path to your ipa file * pkg Path to your pkg file * build_number If set the given build number (already uploaded to iTC) will be used instead of the current built one platform The platform to use (optional) ios edit_live Modify live metadata, this option disables ipa upload and screenshot upload false use_live_version Force usage of live version rather than edit version false metadata_path Path to the folder containing the metadata files screenshots_path Path to the folder containing the screenshots skip_binary_upload Skip uploading an ipa or pkg to App Store Connect false skip_screenshots Don't upload the screenshots false skip_metadata Don't upload the metadata (e.g. title, description). This will still upload screenshots false skip_app_version_update Don\u2019t create or update the app version that is being prepared for submission false force Skip verification of HTML preview file false overwrite_screenshots Clear all previously uploaded screenshots before uploading the new ones false sync_screenshots Sync screenshots with local ones. This is currently beta option so set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well false submit_for_review Submit the new version for Review after uploading everything false verify_only Verifies archive with App Store Connect without uploading false reject_if_possible Rejects the previously submitted build if it's in a state where it's possible false automatic_release Should the app be automatically released once it's approved? (Can not be used together with auto_release_date ) auto_release_date Date in milliseconds for automatically releasing on pending approval (Can not be used together with automatic_release ) phased_release Enable the phased release feature of iTC false reset_ratings Reset the summary rating when you release a new version of the application false price_tier The price tier of this application app_rating_config_path Path to the app rating's config submission_information Extra information for the submission (e.g. compliance specifications, IDFA settings) team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your Developer Portal team, if you're in multiple teams. Different from your iTC team ID! * dev_portal_team_name The name of your Developer Portal team if you're in multiple teams * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column * run_precheck_before_submit Run precheck before submitting to app review true precheck_default_rule_level The default precheck rule level unless otherwise configured :warn individual_metadata_items DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - An array of localized metadata items to upload individually by language so that errors can be identified. E.g. ['name', 'keywords', 'description']. Note: slow app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the app icon apple_watch_app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the Apple Watch app icon copyright Metadata: The copyright notice primary_category Metadata: The english name of the primary category (e.g. Business , Books ) secondary_category Metadata: The english name of the secondary category (e.g. Business , Books ) primary_first_sub_category Metadata: The english name of the primary first sub category (e.g. Educational , Puzzle ) primary_second_sub_category Metadata: The english name of the primary second sub category (e.g. Educational , Puzzle ) secondary_first_sub_category Metadata: The english name of the secondary first sub category (e.g. Educational , Puzzle ) secondary_second_sub_category Metadata: The english name of the secondary second sub category (e.g. Educational , Puzzle ) trade_representative_contact_information DEPRECATED! This is no longer used by App Store Connect - Metadata: A hash containing the trade representative contact information app_review_information Metadata: A hash containing the review information app_review_attachment_file Metadata: Path to the app review attachment file description Metadata: The localised app description name Metadata: The localised app name subtitle Metadata: The localised app subtitle keywords Metadata: An array of localised keywords promotional_text Metadata: An array of localised promotional texts release_notes Metadata: Localised release notes for this version privacy_url Metadata: Localised privacy url apple_tv_privacy_policy Metadata: Localised Apple TV privacy policy text support_url Metadata: Localised support url marketing_url Metadata: Localised marketing url languages Metadata: List of languages to activate ignore_language_directory_validation Ignore errors when invalid languages are found in metadata and screenshot directories false precheck_include_in_app_purchases Should precheck check in-app purchases? true app The (spaceship) app ID of the app you want to use/modify * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action deliver CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run deliver To pass parameters, make use of the : symbol, for example fastlane run deliver parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"deliver"},{"location":"actions/deliver/#deliver","text":"Alias for the upload_to_app_store action deliver uploads screenshots, metadata and binaries to App Store Connect. Use deliver to submit your app for App Store review. Features \u2022 Quick Start \u2022 Usage \u2022 Tips","title":"deliver"},{"location":"actions/deliver/#features","text":"Upload hundreds of localized screenshots completely automatically Upload a new ipa/pkg file to App Store Connect without Xcode from any Mac Maintain your app metadata locally and push changes back to App Store Connect Easily implement a real Continuous Deployment process using fastlane Store the configuration in git to easily deploy from any Mac, including your Continuous Integration server Get a HTML preview of the fetched metadata before uploading the app metadata and screenshots to iTC Automatically uses precheck to ensure your app has the highest chances of passing app review the first time To upload builds to TestFlight check out pilot .","title":"Features"},{"location":"actions/deliver/#quick-start","text":"The guide will create all the necessary files for you, using the existing app metadata from App Store Connect. cd [your_project_folder] fastlane deliver init Enter your App Store Connect credentials Enter your app identifier Enjoy a good drink, while the computer does all the work for you From now on, you can run fastlane deliver to deploy a new update, or just upload new app metadata and screenshots.","title":"Quick Start"},{"location":"actions/deliver/#usage","text":"Check out your local ./fastlane/metadata and ./fastlane/screenshots folders (if you don't use fastlane it's ./metadata instead) You'll see your metadata from App Store Connect. Feel free to store the metadata in git (not the screenshots). You can now modify it locally and push the changes back to App Store Connect. Run fastlane deliver to upload the app metadata from your local machine fastlane deliver Provide the path to an ipa file to upload and submit your app for review: fastlane deliver --ipa \"App.ipa\" --submit_for_review or you can specify path to pkg file for macOS apps: fastlane deliver --pkg \"MacApp.pkg\" If you use fastlane you don't have to manually specify the path to your ipa / pkg file. This is just a small sub-set of what you can do with deliver , check out the full documentation in #more-options Download existing screenshots from App Store Connect fastlane deliver download_screenshots Download existing metadata from App Store Connect fastlane deliver download_metadata To get a list of available options run fastlane action deliver","title":"Usage"},{"location":"actions/deliver/#more-options","text":"View all available options and their valid values","title":"More options"},{"location":"actions/deliver/#available-options","text":"All the options below can easily be added to your Deliverfile . The great thing: if you use fastlane you can use all these options from your Fastfile too, for example: deliver( submit_for_review: true, metadata_path: \"../folder\" )","title":"Available options"},{"location":"actions/deliver/#metadata","text":"All options below are useful if you want to specify certain app metadata in your Deliverfile or Fastfile","title":"Metadata"},{"location":"actions/deliver/#submit-build","text":"deliver allows you to promote an existing build to production. Below are examples to select a previously uploaded build and submit it for review. fastlane deliver submit_build --build_number 830","title":"Submit Build"},{"location":"actions/deliver/#credentials","text":"A detailed description about how your credentials are handled is available in a credentials_manager .","title":"Credentials"},{"location":"actions/deliver/#tips","text":"","title":"Tips"},{"location":"actions/deliver/#available-language-codes","text":"ar-SA, ca, cs, da, de-DE, el, en-AU, en-CA, en-GB, en-US, es-ES, es-MX, fi, fr-CA, fr-FR, he, hi, hr, hu, id, it, ja, ko, ms, nl-NL, no, pl, pt-BR, pt-PT, ro, ru, sk, sv, th, tr, uk, vi, zh-Hans, zh-Hant","title":"Available language codes"},{"location":"actions/deliver/#available-metadata-folder-options","text":"deliver allows for metadata to be set through .txt files in the metadata folder. This metadata folder location is defaulted to ./fastlane/metadata but can be overridden through the metadata_path parameter. Below are all allowed metadata options.","title":"Available Metadata Folder Options"},{"location":"actions/deliver/#reference","text":"View all available categories, etc.","title":"Reference"},{"location":"actions/deliver/#default-values","text":"Deliver has a special default language code which allows you to provide values that are not localized, and which will be used as defaults when you don\u2019t provide a specific localized value. In order to use default , you will need to tell deliver which languages your app uses. You can do this in either of two ways: Create the folders named with the language in the metadata folder (i.e. fastlane/metadata/en-US or fastlane/metadata/de-DE) Add the following to your Deliverfile languages(['en-US','de-DE']) You can use this either in json within your Deliverfile and/or as folders in your metadata folder. deliver will take the union of both language sets from the Deliverfile and from the metadata folder and create on single set of languages which will be enabled. Imagine that you have localized data for the following language codes: en-US, de-DE, el, it You can set the following in your Deliverfile release_notes({ 'default' => \"Shiny and new\", 'de-DE' => \"glaenzend und neu\" }) Deliver will use \"Shiny and new\" for en-US, el and it. It will use \"glaenzend und neu\" for de-DE. You can do the same with folders default keywords.txt marketing_url.txt name.txt privacy_url.txt support_url.txt release_notes.txt en-US description.txt de-DE description.txt el description.txt it description.txt In this case, default values for keywords, urls, name and release notes are used in all localizations, but each language has a fully localized description","title":"Default values"},{"location":"actions/deliver/#uploading-screenshots-for-ipad-pro-129-inch-3rd-generation","text":"Starting March 20, 2019 Apple's App Store requires 12.9-inch iPad Pro (3rd generation) screenshots additionally to the iPad Pro 2nd generation screenshots . As fastlane historically uses the screenshot dimensions to determine the \"display family\" of a screenshot, this poses a problem as both use the same dimensions and are recognized as the same device family. To solve this a screenshot of a 12.9-inch iPad Pro (3rd generation) must contain either the string iPad Pro (12.9-inch) (3rd generation) , IPAD_PRO_3GEN_129 , or ipadPro129 (Apple's internal naming of the display family for the 3rd generation iPad Pro) in its filename to be assigned the correct display family and to be uploaded to the correct screenshot slot in your app's metadata.","title":"Uploading screenshots for \"iPad Pro (12.9-inch) (3rd generation)\""},{"location":"actions/deliver/#automatically-create-screenshots","text":"If you want to integrate deliver with snapshot , check out fastlane !","title":"Automatically create screenshots"},{"location":"actions/deliver/#jenkins-integration","text":"Detailed instructions about how to set up deliver and fastlane in Jenkins can be found in the fastlane README .","title":"Jenkins integration"},{"location":"actions/deliver/#firewall-issues","text":"deliver uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" fastlane deliver","title":"Firewall Issues"},{"location":"actions/deliver/#http-proxy","text":"iTunes Transporter is a Java application bundled with Xcode. In addition to utilizing the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" , you need to configure the transporter application to use the proxy independently from the system proxy or any environment proxy settings. You can find the configuration file within Xcode: for Xcode11 and later TOOLS_PATH=$( xcode-select -p ) REL_PATH='../SharedFrameworks/ContentDeliveryServices.framework/Versions/A/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" for Xcode10 or earlier TOOLS_PATH=$( xcode-select -p ) REL_PATH='../Applications/Application Loader.app/Contents/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" Add necessary proxy configuration values to the net.properties according to Java Proxy Configuration . As an alternative to editing the properties files, proxy configuration can be specified on the command line directly: DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV -Dhttp.proxyHost=myproxy.com -Dhttp.proxyPort=8080\"","title":"HTTP Proxy"},{"location":"actions/deliver/#limit","text":"App Store Connect has a limit of 150 binary uploads per day.","title":"Limit"},{"location":"actions/deliver/#editing-the-deliverfile","text":"Change syntax highlighting to Ruby .","title":"Editing the Deliverfile"},{"location":"actions/deliver/#provider-short-name","text":"If you are on multiple App Store Connect teams, deliver needs a provider short name to know where to upload your binary. deliver will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option. deliver Supported platforms ios, mac Author @KrauseFx","title":"Provider Short Name"},{"location":"actions/deliver/#3-examples","text":"upload_to_app_store( force: true, # Set to true to skip verification of HTML preview itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) deliver # alias for \"upload_to_app_store\" appstore # alias for \"upload_to_app_store\"","title":"3 Examples"},{"location":"actions/deliver/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of your app * app_version The version that should be edited or created ipa Path to your ipa file * pkg Path to your pkg file * build_number If set the given build number (already uploaded to iTC) will be used instead of the current built one platform The platform to use (optional) ios edit_live Modify live metadata, this option disables ipa upload and screenshot upload false use_live_version Force usage of live version rather than edit version false metadata_path Path to the folder containing the metadata files screenshots_path Path to the folder containing the screenshots skip_binary_upload Skip uploading an ipa or pkg to App Store Connect false skip_screenshots Don't upload the screenshots false skip_metadata Don't upload the metadata (e.g. title, description). This will still upload screenshots false skip_app_version_update Don\u2019t create or update the app version that is being prepared for submission false force Skip verification of HTML preview file false overwrite_screenshots Clear all previously uploaded screenshots before uploading the new ones false sync_screenshots Sync screenshots with local ones. This is currently beta option so set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well false submit_for_review Submit the new version for Review after uploading everything false verify_only Verifies archive with App Store Connect without uploading false reject_if_possible Rejects the previously submitted build if it's in a state where it's possible false automatic_release Should the app be automatically released once it's approved? (Can not be used together with auto_release_date ) auto_release_date Date in milliseconds for automatically releasing on pending approval (Can not be used together with automatic_release ) phased_release Enable the phased release feature of iTC false reset_ratings Reset the summary rating when you release a new version of the application false price_tier The price tier of this application app_rating_config_path Path to the app rating's config submission_information Extra information for the submission (e.g. compliance specifications, IDFA settings) team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your Developer Portal team, if you're in multiple teams. Different from your iTC team ID! * dev_portal_team_name The name of your Developer Portal team if you're in multiple teams * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column * run_precheck_before_submit Run precheck before submitting to app review true precheck_default_rule_level The default precheck rule level unless otherwise configured :warn individual_metadata_items DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - An array of localized metadata items to upload individually by language so that errors can be identified. E.g. ['name', 'keywords', 'description']. Note: slow app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the app icon apple_watch_app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the Apple Watch app icon copyright Metadata: The copyright notice primary_category Metadata: The english name of the primary category (e.g. Business , Books ) secondary_category Metadata: The english name of the secondary category (e.g. Business , Books ) primary_first_sub_category Metadata: The english name of the primary first sub category (e.g. Educational , Puzzle ) primary_second_sub_category Metadata: The english name of the primary second sub category (e.g. Educational , Puzzle ) secondary_first_sub_category Metadata: The english name of the secondary first sub category (e.g. Educational , Puzzle ) secondary_second_sub_category Metadata: The english name of the secondary second sub category (e.g. Educational , Puzzle ) trade_representative_contact_information DEPRECATED! This is no longer used by App Store Connect - Metadata: A hash containing the trade representative contact information app_review_information Metadata: A hash containing the review information app_review_attachment_file Metadata: Path to the app review attachment file description Metadata: The localised app description name Metadata: The localised app name subtitle Metadata: The localised app subtitle keywords Metadata: An array of localised keywords promotional_text Metadata: An array of localised promotional texts release_notes Metadata: Localised release notes for this version privacy_url Metadata: Localised privacy url apple_tv_privacy_policy Metadata: Localised Apple TV privacy policy text support_url Metadata: Localised support url marketing_url Metadata: Localised marketing url languages Metadata: List of languages to activate ignore_language_directory_validation Ignore errors when invalid languages are found in metadata and screenshot directories false precheck_include_in_app_purchases Should precheck check in-app purchases? true app The (spaceship) app ID of the app you want to use/modify * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/deliver/#documentation","text":"To show the documentation in your terminal, run fastlane action deliver","title":"Documentation"},{"location":"actions/deliver/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run deliver To pass parameters, make use of the : symbol, for example fastlane run deliver parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/deliver/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/deploygate/","text":"deploygate Upload a new build to DeployGate You can retrieve your username and API token on your settings page . More information about the available options can be found in the DeployGate Push API document . deploygate Supported platforms ios, android Author @tnj, @tomorrowkey 2 Examples deploygate( api_token: \"...\", user: \"target username or organization name\", ipa: \"./ipa_file.ipa\", message: \"Build #{lane_context[SharedValues::BUILD_NUMBER]}\", distribution_key: \"(Optional) Target Distribution Key\", distribution_name: \"(Optional) Target Distribution Name\" ) deploygate( api_token: \"...\", user: \"target username or organization name\", apk: \"./apk_file.apk\", message: \"Build #{lane_context[SharedValues::BUILD_NUMBER]}\", distribution_key: \"(Optional) Target Distribution Key\", distribution_name: \"(Optional) Target Distribution Name\" ) Parameters Key Description Default api_token Deploygate API Token user Target username or organization name ipa Path to your IPA file. Optional if you use the gym or xcodebuild action * apk Path to your APK file * message Release Notes No changelog provided distribution_key Target Distribution Key release_note Release note for distribution page disable_notify Disables Push notification emails false distribution_name Target Distribution Name * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The deploygate action generates the following Lane Variables: SharedValue Description SharedValues::DEPLOYGATE_URL URL of the newly uploaded build SharedValues::DEPLOYGATE_REVISION auto incremented revision number SharedValues::DEPLOYGATE_APP_INFO Contains app revision, bundle identifier, etc. To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action deploygate CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run deploygate To pass parameters, make use of the : symbol, for example fastlane run deploygate parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"deploygate"},{"location":"actions/deploygate/#deploygate","text":"Upload a new build to DeployGate You can retrieve your username and API token on your settings page . More information about the available options can be found in the DeployGate Push API document . deploygate Supported platforms ios, android Author @tnj, @tomorrowkey","title":"deploygate"},{"location":"actions/deploygate/#2-examples","text":"deploygate( api_token: \"...\", user: \"target username or organization name\", ipa: \"./ipa_file.ipa\", message: \"Build #{lane_context[SharedValues::BUILD_NUMBER]}\", distribution_key: \"(Optional) Target Distribution Key\", distribution_name: \"(Optional) Target Distribution Name\" ) deploygate( api_token: \"...\", user: \"target username or organization name\", apk: \"./apk_file.apk\", message: \"Build #{lane_context[SharedValues::BUILD_NUMBER]}\", distribution_key: \"(Optional) Target Distribution Key\", distribution_name: \"(Optional) Target Distribution Name\" )","title":"2 Examples"},{"location":"actions/deploygate/#parameters","text":"Key Description Default api_token Deploygate API Token user Target username or organization name ipa Path to your IPA file. Optional if you use the gym or xcodebuild action * apk Path to your APK file * message Release Notes No changelog provided distribution_key Target Distribution Key release_note Release note for distribution page disable_notify Disables Push notification emails false distribution_name Target Distribution Name * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/deploygate/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The deploygate action generates the following Lane Variables: SharedValue Description SharedValues::DEPLOYGATE_URL URL of the newly uploaded build SharedValues::DEPLOYGATE_REVISION auto incremented revision number SharedValues::DEPLOYGATE_APP_INFO Contains app revision, bundle identifier, etc. To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/deploygate/#documentation","text":"To show the documentation in your terminal, run fastlane action deploygate","title":"Documentation"},{"location":"actions/deploygate/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run deploygate To pass parameters, make use of the : symbol, for example fastlane run deploygate parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/deploygate/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/dotgpg_environment/","text":"dotgpg_environment Reads in production secrets set in a dotgpg file and puts them in ENV More information about dotgpg can be found at https://github.com/ConradIrwin/dotgpg . dotgpg_environment Supported platforms ios, android, mac Author @simonlevy5 1 Example dotgpg_environment(dotgpg_file: './path/to/gpgfile') Parameters Key Description Default dotgpg_file Path to your gpg file * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action dotgpg_environment CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run dotgpg_environment To pass parameters, make use of the : symbol, for example fastlane run dotgpg_environment parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"dotgpg_environment"},{"location":"actions/dotgpg_environment/#dotgpg_environment","text":"Reads in production secrets set in a dotgpg file and puts them in ENV More information about dotgpg can be found at https://github.com/ConradIrwin/dotgpg . dotgpg_environment Supported platforms ios, android, mac Author @simonlevy5","title":"dotgpg_environment"},{"location":"actions/dotgpg_environment/#1-example","text":"dotgpg_environment(dotgpg_file: './path/to/gpgfile')","title":"1 Example"},{"location":"actions/dotgpg_environment/#parameters","text":"Key Description Default dotgpg_file Path to your gpg file * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/dotgpg_environment/#documentation","text":"To show the documentation in your terminal, run fastlane action dotgpg_environment","title":"Documentation"},{"location":"actions/dotgpg_environment/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run dotgpg_environment To pass parameters, make use of the : symbol, for example fastlane run dotgpg_environment parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/dotgpg_environment/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/download/","text":"download Download a file from a remote server (e.g. JSON file) Specify the URL to download and get the content as a return value. Automatically parses JSON into a Ruby data structure. For more advanced networking code, use the Ruby functions instead: http://docs.ruby-lang.org/en/2.0.0/Net/HTTP.html . download Supported platforms ios, android, mac Author @KrauseFx 1 Example data = download(url: \"https://host.com/api.json\") Parameters Key Description Default url The URL that should be downloaded * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The download action generates the following Lane Variables: SharedValue Description SharedValues::DOWNLOAD_CONTENT The content of the file we just downloaded To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action download CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download To pass parameters, make use of the : symbol, for example fastlane run download parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"download"},{"location":"actions/download/#download","text":"Download a file from a remote server (e.g. JSON file) Specify the URL to download and get the content as a return value. Automatically parses JSON into a Ruby data structure. For more advanced networking code, use the Ruby functions instead: http://docs.ruby-lang.org/en/2.0.0/Net/HTTP.html . download Supported platforms ios, android, mac Author @KrauseFx","title":"download"},{"location":"actions/download/#1-example","text":"data = download(url: \"https://host.com/api.json\")","title":"1 Example"},{"location":"actions/download/#parameters","text":"Key Description Default url The URL that should be downloaded * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/download/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The download action generates the following Lane Variables: SharedValue Description SharedValues::DOWNLOAD_CONTENT The content of the file we just downloaded To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/download/#documentation","text":"To show the documentation in your terminal, run fastlane action download","title":"Documentation"},{"location":"actions/download/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download To pass parameters, make use of the : symbol, for example fastlane run download parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/download/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/download_app_privacy_details_from_app_store/","text":"download_app_privacy_details_from_app_store Download App Privacy Details from an app in App Store Connect Download App Privacy Details from an app in App Store Connect. For more detail information, view https://docs.fastlane.tools/uploading-app-privacy-details download_app_privacy_details_from_app_store Supported platforms ios, mac Author @igor-makarov 2 Examples download_app_privacy_details_from_app_store( username: \"your@email.com\", team_name: \"Your Team\", app_identifier: \"com.your.bundle\" ) download_app_privacy_details_from_app_store( username: \"your@email.com\", team_name: \"Your Team\", app_identifier: \"com.your.bundle\", output_json_path: \"fastlane/app_data_usages.json\" ) Parameters Key Description Default username Your Apple ID Username for App Store Connect * app_identifier The bundle identifier of your app * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * output_json_path Path to the app usage data JSON file generated by interactive questions ./fastlane/app_privacy_details.json * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action download_app_privacy_details_from_app_store CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download_app_privacy_details_from_app_store To pass parameters, make use of the : symbol, for example fastlane run download_app_privacy_details_from_app_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"download_app_privacy_details_from_app_store"},{"location":"actions/download_app_privacy_details_from_app_store/#download_app_privacy_details_from_app_store","text":"Download App Privacy Details from an app in App Store Connect Download App Privacy Details from an app in App Store Connect. For more detail information, view https://docs.fastlane.tools/uploading-app-privacy-details download_app_privacy_details_from_app_store Supported platforms ios, mac Author @igor-makarov","title":"download_app_privacy_details_from_app_store"},{"location":"actions/download_app_privacy_details_from_app_store/#2-examples","text":"download_app_privacy_details_from_app_store( username: \"your@email.com\", team_name: \"Your Team\", app_identifier: \"com.your.bundle\" ) download_app_privacy_details_from_app_store( username: \"your@email.com\", team_name: \"Your Team\", app_identifier: \"com.your.bundle\", output_json_path: \"fastlane/app_data_usages.json\" )","title":"2 Examples"},{"location":"actions/download_app_privacy_details_from_app_store/#parameters","text":"Key Description Default username Your Apple ID Username for App Store Connect * app_identifier The bundle identifier of your app * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * output_json_path Path to the app usage data JSON file generated by interactive questions ./fastlane/app_privacy_details.json * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/download_app_privacy_details_from_app_store/#documentation","text":"To show the documentation in your terminal, run fastlane action download_app_privacy_details_from_app_store","title":"Documentation"},{"location":"actions/download_app_privacy_details_from_app_store/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download_app_privacy_details_from_app_store To pass parameters, make use of the : symbol, for example fastlane run download_app_privacy_details_from_app_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/download_app_privacy_details_from_app_store/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/download_dsyms/","text":"download_dsyms Download dSYM files from App Store Connect for Bitcode apps This action downloads dSYM files from App Store Connect after the ipa gets re-compiled by Apple. Useful if you have Bitcode enabled. lane :refresh_dsyms do download_dsyms # Download dSYM files from iTC upload_symbols_to_crashlytics # Upload them to Crashlytics clean_build_artifacts # Delete the local dSYM files end download_dsyms Supported platforms ios Author @KrauseFx 6 Examples download_dsyms download_dsyms(version: \"1.0.0\", build_number: \"345\") download_dsyms(version: \"1.0.1\", build_number: 42) download_dsyms(version: \"live\") download_dsyms(min_version: \"1.2.3\") download_dsyms(after_uploaded_date: \"2020-09-11T19:00:00+01:00\") Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option) * username Your Apple ID Username for App Store Connect * app_identifier The bundle identifier of your app * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * platform The app platform for dSYMs you wish to download (ios, appletvos) :ios version The app version for dSYMs you wish to download, pass in 'latest' to download only the latest build's dSYMs or 'live' to download only the live version dSYMs build_number The app build_number for dSYMs you wish to download min_version The minimum app version for dSYMs you wish to download after_uploaded_date The uploaded date after which you wish to download dSYMs output_directory Where to save the download dSYMs, defaults to the current path wait_for_dsym_processing Wait for dSYMs to process false wait_timeout Number of seconds to wait for dSYMs to process 300 * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The download_dsyms action generates the following Lane Variables: SharedValue Description SharedValues::DSYM_PATHS An array to all the zipped dSYM files SharedValues::DSYM_LATEST_UPLOADED_DATE Date of the most recent uploaded time of successfully downloaded dSYM files To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action download_dsyms CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download_dsyms To pass parameters, make use of the : symbol, for example fastlane run download_dsyms parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"download_dsyms"},{"location":"actions/download_dsyms/#download_dsyms","text":"Download dSYM files from App Store Connect for Bitcode apps This action downloads dSYM files from App Store Connect after the ipa gets re-compiled by Apple. Useful if you have Bitcode enabled. lane :refresh_dsyms do download_dsyms # Download dSYM files from iTC upload_symbols_to_crashlytics # Upload them to Crashlytics clean_build_artifacts # Delete the local dSYM files end download_dsyms Supported platforms ios Author @KrauseFx","title":"download_dsyms"},{"location":"actions/download_dsyms/#6-examples","text":"download_dsyms download_dsyms(version: \"1.0.0\", build_number: \"345\") download_dsyms(version: \"1.0.1\", build_number: 42) download_dsyms(version: \"live\") download_dsyms(min_version: \"1.2.3\") download_dsyms(after_uploaded_date: \"2020-09-11T19:00:00+01:00\")","title":"6 Examples"},{"location":"actions/download_dsyms/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option) * username Your Apple ID Username for App Store Connect * app_identifier The bundle identifier of your app * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * platform The app platform for dSYMs you wish to download (ios, appletvos) :ios version The app version for dSYMs you wish to download, pass in 'latest' to download only the latest build's dSYMs or 'live' to download only the live version dSYMs build_number The app build_number for dSYMs you wish to download min_version The minimum app version for dSYMs you wish to download after_uploaded_date The uploaded date after which you wish to download dSYMs output_directory Where to save the download dSYMs, defaults to the current path wait_for_dsym_processing Wait for dSYMs to process false wait_timeout Number of seconds to wait for dSYMs to process 300 * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/download_dsyms/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The download_dsyms action generates the following Lane Variables: SharedValue Description SharedValues::DSYM_PATHS An array to all the zipped dSYM files SharedValues::DSYM_LATEST_UPLOADED_DATE Date of the most recent uploaded time of successfully downloaded dSYM files To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/download_dsyms/#documentation","text":"To show the documentation in your terminal, run fastlane action download_dsyms","title":"Documentation"},{"location":"actions/download_dsyms/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download_dsyms To pass parameters, make use of the : symbol, for example fastlane run download_dsyms parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/download_dsyms/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/download_from_play_store/","text":"download_from_play_store Download metadata and binaries from Google Play (via supply ) More information: https://docs.fastlane.tools/actions/download_from_play_store/ download_from_play_store Supported platforms android Author @janpio 1 Example download_from_play_store Parameters Key Description Default package_name The package name of the application to use * version_name Version name (used when uploading new apks/aabs) - defaults to 'versionName' in build.gradle or AndroidManifest.xml * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production metadata_path Path to the directory containing the metadata files * key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action download_from_play_store CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download_from_play_store To pass parameters, make use of the : symbol, for example fastlane run download_from_play_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"download_from_play_store"},{"location":"actions/download_from_play_store/#download_from_play_store","text":"Download metadata and binaries from Google Play (via supply ) More information: https://docs.fastlane.tools/actions/download_from_play_store/ download_from_play_store Supported platforms android Author @janpio","title":"download_from_play_store"},{"location":"actions/download_from_play_store/#1-example","text":"download_from_play_store","title":"1 Example"},{"location":"actions/download_from_play_store/#parameters","text":"Key Description Default package_name The package name of the application to use * version_name Version name (used when uploading new apks/aabs) - defaults to 'versionName' in build.gradle or AndroidManifest.xml * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production metadata_path Path to the directory containing the metadata files * key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/download_from_play_store/#documentation","text":"To show the documentation in your terminal, run fastlane action download_from_play_store","title":"Documentation"},{"location":"actions/download_from_play_store/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download_from_play_store To pass parameters, make use of the : symbol, for example fastlane run download_from_play_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/download_from_play_store/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/download_universal_apk_from_google_play/","text":"download_universal_apk_from_google_play Download the Universal APK of a given version code from the Google Play Console Download the universal APK of a given version code from the Google Play Console. This uses fastlane supply (and the AndroidPublisher Google API) to download the Universal APK generated by Google after you uploaded an .aab bundle to the Play Console. See https://developers.google.com/android-publisher/api-ref/rest/v3/generatedapks/list download_universal_apk_from_google_play Supported platforms android Author @Automattic Returns The path to the downloaded Universal APK. The action will raise an exception if it failed to find or download the APK in Google Play Parameters Key Description Default package_name The package name of the application to use * version_code The versionCode for which to download the generated APK * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 destination The path on disk where to download the Generated Universal APK certificate_sha256_hash The SHA256 hash of the signing key for which to download the Universal, Code-Signed APK for. Use 'xx:xx:xx:\u2026' format (32 hex bytes separated by colons), as printed by keytool -list -keystore . Only useful to provide if you have multiple signing keys configured on GPC, to specify which generated APK to download * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action download_universal_apk_from_google_play CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download_universal_apk_from_google_play To pass parameters, make use of the : symbol, for example fastlane run download_universal_apk_from_google_play parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"download_universal_apk_from_google_play"},{"location":"actions/download_universal_apk_from_google_play/#download_universal_apk_from_google_play","text":"Download the Universal APK of a given version code from the Google Play Console Download the universal APK of a given version code from the Google Play Console. This uses fastlane supply (and the AndroidPublisher Google API) to download the Universal APK generated by Google after you uploaded an .aab bundle to the Play Console. See https://developers.google.com/android-publisher/api-ref/rest/v3/generatedapks/list download_universal_apk_from_google_play Supported platforms android Author @Automattic Returns The path to the downloaded Universal APK. The action will raise an exception if it failed to find or download the APK in Google Play","title":"download_universal_apk_from_google_play"},{"location":"actions/download_universal_apk_from_google_play/#parameters","text":"Key Description Default package_name The package name of the application to use * version_code The versionCode for which to download the generated APK * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 destination The path on disk where to download the Generated Universal APK certificate_sha256_hash The SHA256 hash of the signing key for which to download the Universal, Code-Signed APK for. Use 'xx:xx:xx:\u2026' format (32 hex bytes separated by colons), as printed by keytool -list -keystore . Only useful to provide if you have multiple signing keys configured on GPC, to specify which generated APK to download * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/download_universal_apk_from_google_play/#documentation","text":"To show the documentation in your terminal, run fastlane action download_universal_apk_from_google_play","title":"Documentation"},{"location":"actions/download_universal_apk_from_google_play/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download_universal_apk_from_google_play To pass parameters, make use of the : symbol, for example fastlane run download_universal_apk_from_google_play parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/download_universal_apk_from_google_play/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/dsym_zip/","text":"dsym_zip Creates a zipped dSYM in the project root from the .xcarchive You can manually specify the path to the xcarchive (not needed if you use xcodebuild / xcarchive to build your archive) dsym_zip Supported platforms ios, mac Author @lmirosevic 2 Examples dsym_zip dsym_zip( archive_path: \"MyApp.xcarchive\" ) Parameters Key Description Default archive_path Path to your xcarchive file. Optional if you use the xcodebuild action * dsym_path Path for generated dsym. Optional, default is your apps root directory all Whether or not all dSYM files are to be included. Optional, default is false in which only your app dSYM is included false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The dsym_zip action generates the following Lane Variables: SharedValue Description SharedValues::DSYM_ZIP_PATH The named of the zipped dSYM To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action dsym_zip CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run dsym_zip To pass parameters, make use of the : symbol, for example fastlane run dsym_zip parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"dsym_zip"},{"location":"actions/dsym_zip/#dsym_zip","text":"Creates a zipped dSYM in the project root from the .xcarchive You can manually specify the path to the xcarchive (not needed if you use xcodebuild / xcarchive to build your archive) dsym_zip Supported platforms ios, mac Author @lmirosevic","title":"dsym_zip"},{"location":"actions/dsym_zip/#2-examples","text":"dsym_zip dsym_zip( archive_path: \"MyApp.xcarchive\" )","title":"2 Examples"},{"location":"actions/dsym_zip/#parameters","text":"Key Description Default archive_path Path to your xcarchive file. Optional if you use the xcodebuild action * dsym_path Path for generated dsym. Optional, default is your apps root directory all Whether or not all dSYM files are to be included. Optional, default is false in which only your app dSYM is included false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/dsym_zip/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The dsym_zip action generates the following Lane Variables: SharedValue Description SharedValues::DSYM_ZIP_PATH The named of the zipped dSYM To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/dsym_zip/#documentation","text":"To show the documentation in your terminal, run fastlane action dsym_zip","title":"Documentation"},{"location":"actions/dsym_zip/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run dsym_zip To pass parameters, make use of the : symbol, for example fastlane run dsym_zip parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/dsym_zip/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/echo/","text":"echo Alias for the puts action echo Supported platforms ios, android, mac Author @KrauseFx 1 Example puts \"Hi there\" Parameters Key Description Default message Message to be printed out * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action echo CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run echo To pass parameters, make use of the : symbol, for example fastlane run echo parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"echo"},{"location":"actions/echo/#echo","text":"Alias for the puts action echo Supported platforms ios, android, mac Author @KrauseFx","title":"echo"},{"location":"actions/echo/#1-example","text":"puts \"Hi there\"","title":"1 Example"},{"location":"actions/echo/#parameters","text":"Key Description Default message Message to be printed out * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/echo/#documentation","text":"To show the documentation in your terminal, run fastlane action echo","title":"Documentation"},{"location":"actions/echo/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run echo To pass parameters, make use of the : symbol, for example fastlane run echo parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/echo/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/ensure_bundle_exec/","text":"ensure_bundle_exec Raises an exception if not using bundle exec to run fastlane This action will check if you are using bundle exec to run fastlane. You can put it into before_all to make sure that fastlane is ran using the bundle exec fastlane command. ensure_bundle_exec Supported platforms ios, android, mac Author @rishabhtayal 1 Example ensure_bundle_exec Documentation To show the documentation in your terminal, run fastlane action ensure_bundle_exec CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_bundle_exec To pass parameters, make use of the : symbol, for example fastlane run ensure_bundle_exec parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"ensure_bundle_exec"},{"location":"actions/ensure_bundle_exec/#ensure_bundle_exec","text":"Raises an exception if not using bundle exec to run fastlane This action will check if you are using bundle exec to run fastlane. You can put it into before_all to make sure that fastlane is ran using the bundle exec fastlane command. ensure_bundle_exec Supported platforms ios, android, mac Author @rishabhtayal","title":"ensure_bundle_exec"},{"location":"actions/ensure_bundle_exec/#1-example","text":"ensure_bundle_exec","title":"1 Example"},{"location":"actions/ensure_bundle_exec/#documentation","text":"To show the documentation in your terminal, run fastlane action ensure_bundle_exec","title":"Documentation"},{"location":"actions/ensure_bundle_exec/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_bundle_exec To pass parameters, make use of the : symbol, for example fastlane run ensure_bundle_exec parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/ensure_bundle_exec/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/ensure_env_vars/","text":"ensure_env_vars Raises an exception if the specified env vars are not set This action will check if some environment variables are set. ensure_env_vars Supported platforms ios, android, mac Author @revolter 1 Example ensure_env_vars( env_vars: ['GITHUB_USER_NAME', 'GITHUB_API_TOKEN'] ) Parameters Key Description Default env_vars The environment variables names that should be checked * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action ensure_env_vars CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_env_vars To pass parameters, make use of the : symbol, for example fastlane run ensure_env_vars parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"ensure_env_vars"},{"location":"actions/ensure_env_vars/#ensure_env_vars","text":"Raises an exception if the specified env vars are not set This action will check if some environment variables are set. ensure_env_vars Supported platforms ios, android, mac Author @revolter","title":"ensure_env_vars"},{"location":"actions/ensure_env_vars/#1-example","text":"ensure_env_vars( env_vars: ['GITHUB_USER_NAME', 'GITHUB_API_TOKEN'] )","title":"1 Example"},{"location":"actions/ensure_env_vars/#parameters","text":"Key Description Default env_vars The environment variables names that should be checked * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/ensure_env_vars/#documentation","text":"To show the documentation in your terminal, run fastlane action ensure_env_vars","title":"Documentation"},{"location":"actions/ensure_env_vars/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_env_vars To pass parameters, make use of the : symbol, for example fastlane run ensure_env_vars parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/ensure_env_vars/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/ensure_git_branch/","text":"ensure_git_branch Raises an exception if not on a specific git branch This action will check if your git repo is checked out to a specific branch. You may only want to make releases from a specific branch, so ensure_git_branch will stop a lane if it was accidentally executed on an incorrect branch. ensure_git_branch Supported platforms ios, android, mac Author @dbachrach, @Liquidsoul 2 Examples ensure_git_branch # defaults to `master` branch ensure_git_branch( branch: 'develop' ) Parameters Key Description Default branch The branch that should be checked for. String that can be either the full name of the branch or a regex e.g. ^feature/.*$ to match master * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action ensure_git_branch CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_git_branch To pass parameters, make use of the : symbol, for example fastlane run ensure_git_branch parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"ensure_git_branch"},{"location":"actions/ensure_git_branch/#ensure_git_branch","text":"Raises an exception if not on a specific git branch This action will check if your git repo is checked out to a specific branch. You may only want to make releases from a specific branch, so ensure_git_branch will stop a lane if it was accidentally executed on an incorrect branch. ensure_git_branch Supported platforms ios, android, mac Author @dbachrach, @Liquidsoul","title":"ensure_git_branch"},{"location":"actions/ensure_git_branch/#2-examples","text":"ensure_git_branch # defaults to `master` branch ensure_git_branch( branch: 'develop' )","title":"2 Examples"},{"location":"actions/ensure_git_branch/#parameters","text":"Key Description Default branch The branch that should be checked for. String that can be either the full name of the branch or a regex e.g. ^feature/.*$ to match master * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/ensure_git_branch/#documentation","text":"To show the documentation in your terminal, run fastlane action ensure_git_branch","title":"Documentation"},{"location":"actions/ensure_git_branch/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_git_branch To pass parameters, make use of the : symbol, for example fastlane run ensure_git_branch parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/ensure_git_branch/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/ensure_git_status_clean/","text":"ensure_git_status_clean Raises an exception if there are uncommitted git changes A sanity check to make sure you are working in a repo that is clean. Especially useful to put at the beginning of your Fastfile in the before_all block, if some of your other actions will touch your filesystem, do things to your git repo, or just as a general reminder to save your work. Also needed as a prerequisite for some other actions like reset_git_repo . ensure_git_status_clean Supported platforms ios, android, mac Author @lmirosevic, @antondomashnev 1 Example ensure_git_status_clean Parameters Key Description Default show_uncommitted_changes The flag whether to show uncommitted changes if the repo is dirty false show_diff The flag whether to show the git diff if the repo is dirty false ignored The handling mode of the ignored files. The available options are: 'traditional' , 'none' (default) and 'matching' . Specifying 'none' to this parameter is the same as not specifying the parameter at all, which means that no ignored file will be used to check if the repo is dirty or not. Specifying 'traditional' or 'matching' causes some ignored files to be used to check if the repo is dirty or not (more info in the official docs: https://git-scm.com/docs/git-status#Documentation/git-status.txt---ignoredltmodegt) ignore_files Array of files to ignore * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The ensure_git_status_clean action generates the following Lane Variables: SharedValue Description SharedValues::GIT_REPO_WAS_CLEAN_ON_START Stores the fact that the git repo was clean at some point To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action ensure_git_status_clean CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_git_status_clean To pass parameters, make use of the : symbol, for example fastlane run ensure_git_status_clean parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"ensure_git_status_clean"},{"location":"actions/ensure_git_status_clean/#ensure_git_status_clean","text":"Raises an exception if there are uncommitted git changes A sanity check to make sure you are working in a repo that is clean. Especially useful to put at the beginning of your Fastfile in the before_all block, if some of your other actions will touch your filesystem, do things to your git repo, or just as a general reminder to save your work. Also needed as a prerequisite for some other actions like reset_git_repo . ensure_git_status_clean Supported platforms ios, android, mac Author @lmirosevic, @antondomashnev","title":"ensure_git_status_clean"},{"location":"actions/ensure_git_status_clean/#1-example","text":"ensure_git_status_clean","title":"1 Example"},{"location":"actions/ensure_git_status_clean/#parameters","text":"Key Description Default show_uncommitted_changes The flag whether to show uncommitted changes if the repo is dirty false show_diff The flag whether to show the git diff if the repo is dirty false ignored The handling mode of the ignored files. The available options are: 'traditional' , 'none' (default) and 'matching' . Specifying 'none' to this parameter is the same as not specifying the parameter at all, which means that no ignored file will be used to check if the repo is dirty or not. Specifying 'traditional' or 'matching' causes some ignored files to be used to check if the repo is dirty or not (more info in the official docs: https://git-scm.com/docs/git-status#Documentation/git-status.txt---ignoredltmodegt) ignore_files Array of files to ignore * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/ensure_git_status_clean/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The ensure_git_status_clean action generates the following Lane Variables: SharedValue Description SharedValues::GIT_REPO_WAS_CLEAN_ON_START Stores the fact that the git repo was clean at some point To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/ensure_git_status_clean/#documentation","text":"To show the documentation in your terminal, run fastlane action ensure_git_status_clean","title":"Documentation"},{"location":"actions/ensure_git_status_clean/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_git_status_clean To pass parameters, make use of the : symbol, for example fastlane run ensure_git_status_clean parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/ensure_git_status_clean/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/ensure_no_debug_code/","text":"ensure_no_debug_code Ensures the given text is nowhere in the code base You don't want any debug code to slip into production. This can be used to check if there is any debug code still in your codebase or if you have things like // TO DO or similar. ensure_no_debug_code Supported platforms ios, android, mac Author @KrauseFx 5 Examples ensure_no_debug_code(text: \"// TODO\") ensure_no_debug_code(text: \"Log.v\", extension: \"java\") ensure_no_debug_code(text: \"NSLog\", path: \"./lib\", extension: \"m\") ensure_no_debug_code(text: \"(^#define DEBUG|NSLog)\", path: \"./lib\", extension: \"m\") ensure_no_debug_code(text: \"<<<<<<\", extensions: [\"m\", \"swift\", \"java\"]) Parameters Key Description Default text The text that must not be in the code base path The directory containing all the source files . extension The extension that should be searched for extensions An array of file extensions that should be searched for exclude Exclude a certain pattern from the search exclude_dirs An array of dirs that should not be included in the search * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action ensure_no_debug_code CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_no_debug_code To pass parameters, make use of the : symbol, for example fastlane run ensure_no_debug_code parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"ensure_no_debug_code"},{"location":"actions/ensure_no_debug_code/#ensure_no_debug_code","text":"Ensures the given text is nowhere in the code base You don't want any debug code to slip into production. This can be used to check if there is any debug code still in your codebase or if you have things like // TO DO or similar. ensure_no_debug_code Supported platforms ios, android, mac Author @KrauseFx","title":"ensure_no_debug_code"},{"location":"actions/ensure_no_debug_code/#5-examples","text":"ensure_no_debug_code(text: \"// TODO\") ensure_no_debug_code(text: \"Log.v\", extension: \"java\") ensure_no_debug_code(text: \"NSLog\", path: \"./lib\", extension: \"m\") ensure_no_debug_code(text: \"(^#define DEBUG|NSLog)\", path: \"./lib\", extension: \"m\") ensure_no_debug_code(text: \"<<<<<<\", extensions: [\"m\", \"swift\", \"java\"])","title":"5 Examples"},{"location":"actions/ensure_no_debug_code/#parameters","text":"Key Description Default text The text that must not be in the code base path The directory containing all the source files . extension The extension that should be searched for extensions An array of file extensions that should be searched for exclude Exclude a certain pattern from the search exclude_dirs An array of dirs that should not be included in the search * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/ensure_no_debug_code/#documentation","text":"To show the documentation in your terminal, run fastlane action ensure_no_debug_code","title":"Documentation"},{"location":"actions/ensure_no_debug_code/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_no_debug_code To pass parameters, make use of the : symbol, for example fastlane run ensure_no_debug_code parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/ensure_no_debug_code/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/ensure_xcode_version/","text":"ensure_xcode_version Ensure the right version of Xcode is used The xcode-install gem, which this action depends on, has been sunset. Please migrate to xcodes . You can find a migration guide here: xcpretty/xcode-install/MIGRATION.md If building your app requires a specific version of Xcode, you can invoke this command before using gym. For example, to ensure that a beta version of Xcode is not accidentally selected to build, which would make uploading to TestFlight fail. You can either manually provide a specific version using version: or you make use of the .xcode-version file. Using the strict parameter, you can either verify the full set of version numbers strictly (i.e. 11.3.1 ) or only a subset of them (i.e. 11.3 or 11 ). ensure_xcode_version Supported platforms ios, mac Author @JaviSoto, @KrauseFx 1 Example ensure_xcode_version(version: \"12.5\") Parameters Key Description Default version Xcode version to verify that is selected strict Should the version be verified strictly (all 3 version numbers), or matching only the given version numbers (i.e. 11.3 == 11.3.x ) true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The ensure_xcode_version action generates the following Lane Variables: SharedValue Description SharedValues::FL_ENSURE_XCODE_VERSION Xcode version to verify that is selected To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action ensure_xcode_version CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_xcode_version To pass parameters, make use of the : symbol, for example fastlane run ensure_xcode_version parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"ensure_xcode_version"},{"location":"actions/ensure_xcode_version/#ensure_xcode_version","text":"Ensure the right version of Xcode is used The xcode-install gem, which this action depends on, has been sunset. Please migrate to xcodes . You can find a migration guide here: xcpretty/xcode-install/MIGRATION.md If building your app requires a specific version of Xcode, you can invoke this command before using gym. For example, to ensure that a beta version of Xcode is not accidentally selected to build, which would make uploading to TestFlight fail. You can either manually provide a specific version using version: or you make use of the .xcode-version file. Using the strict parameter, you can either verify the full set of version numbers strictly (i.e. 11.3.1 ) or only a subset of them (i.e. 11.3 or 11 ). ensure_xcode_version Supported platforms ios, mac Author @JaviSoto, @KrauseFx","title":"ensure_xcode_version"},{"location":"actions/ensure_xcode_version/#1-example","text":"ensure_xcode_version(version: \"12.5\")","title":"1 Example"},{"location":"actions/ensure_xcode_version/#parameters","text":"Key Description Default version Xcode version to verify that is selected strict Should the version be verified strictly (all 3 version numbers), or matching only the given version numbers (i.e. 11.3 == 11.3.x ) true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/ensure_xcode_version/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The ensure_xcode_version action generates the following Lane Variables: SharedValue Description SharedValues::FL_ENSURE_XCODE_VERSION Xcode version to verify that is selected To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/ensure_xcode_version/#documentation","text":"To show the documentation in your terminal, run fastlane action ensure_xcode_version","title":"Documentation"},{"location":"actions/ensure_xcode_version/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_xcode_version To pass parameters, make use of the : symbol, for example fastlane run ensure_xcode_version parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/ensure_xcode_version/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/environment_variable/","text":"environment_variable Sets/gets env vars for Fastlane.swift. Don't use in ruby, use ENV[key] = val environment_variable Supported platforms ios, android, mac Author @taquitos Parameters Key Description Default set Set the environment variables named get Get the environment variable named remove Remove the environment variable named * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action environment_variable CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run environment_variable To pass parameters, make use of the : symbol, for example fastlane run environment_variable parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"environment_variable"},{"location":"actions/environment_variable/#environment_variable","text":"Sets/gets env vars for Fastlane.swift. Don't use in ruby, use ENV[key] = val environment_variable Supported platforms ios, android, mac Author @taquitos","title":"environment_variable"},{"location":"actions/environment_variable/#parameters","text":"Key Description Default set Set the environment variables named get Get the environment variable named remove Remove the environment variable named * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/environment_variable/#documentation","text":"To show the documentation in your terminal, run fastlane action environment_variable","title":"Documentation"},{"location":"actions/environment_variable/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run environment_variable To pass parameters, make use of the : symbol, for example fastlane run environment_variable parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/environment_variable/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/erb/","text":"erb Allows to Generate output files based on ERB templates Renders an ERB template with :placeholders given as a hash via parameter. If no :destination is set, it returns the rendered template as string. erb Supported platforms ios, android, mac Author @hjanuschka 1 Example # Example `erb` template: # Variable1 <%= var1 %> # Variable2 <%= var2 %> # <% for item in var3 %> # <%= item %> # <% end %> erb( template: \"1.erb\", destination: \"/tmp/rendered.out\", placeholders: { :var1 => 123, :var2 => \"string\", :var3 => [\"element1\", \"element2\"] } ) Parameters Key Description Default template ERB Template File destination Destination file placeholders Placeholders given as a hash {} trim_mode Trim mode applied to the ERB * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action erb CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run erb To pass parameters, make use of the : symbol, for example fastlane run erb parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"erb"},{"location":"actions/erb/#erb","text":"Allows to Generate output files based on ERB templates Renders an ERB template with :placeholders given as a hash via parameter. If no :destination is set, it returns the rendered template as string. erb Supported platforms ios, android, mac Author @hjanuschka","title":"erb"},{"location":"actions/erb/#1-example","text":"# Example `erb` template: # Variable1 <%= var1 %> # Variable2 <%= var2 %> # <% for item in var3 %> # <%= item %> # <% end %> erb( template: \"1.erb\", destination: \"/tmp/rendered.out\", placeholders: { :var1 => 123, :var2 => \"string\", :var3 => [\"element1\", \"element2\"] } )","title":"1 Example"},{"location":"actions/erb/#parameters","text":"Key Description Default template ERB Template File destination Destination file placeholders Placeholders given as a hash {} trim_mode Trim mode applied to the ERB * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/erb/#documentation","text":"To show the documentation in your terminal, run fastlane action erb","title":"Documentation"},{"location":"actions/erb/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run erb To pass parameters, make use of the : symbol, for example fastlane run erb parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/erb/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/fastlane_version/","text":"fastlane_version Alias for the min_fastlane_version action Add this to your Fastfile to require a certain version of fastlane . Use it if you use an action that just recently came out and you need it. fastlane_version Supported platforms ios, android, mac Author @KrauseFx 1 Example min_fastlane_version(\"1.50.0\") Documentation To show the documentation in your terminal, run fastlane action fastlane_version CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run fastlane_version To pass parameters, make use of the : symbol, for example fastlane run fastlane_version parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"fastlane_version"},{"location":"actions/fastlane_version/#fastlane_version","text":"Alias for the min_fastlane_version action Add this to your Fastfile to require a certain version of fastlane . Use it if you use an action that just recently came out and you need it. fastlane_version Supported platforms ios, android, mac Author @KrauseFx","title":"fastlane_version"},{"location":"actions/fastlane_version/#1-example","text":"min_fastlane_version(\"1.50.0\")","title":"1 Example"},{"location":"actions/fastlane_version/#documentation","text":"To show the documentation in your terminal, run fastlane action fastlane_version","title":"Documentation"},{"location":"actions/fastlane_version/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run fastlane_version To pass parameters, make use of the : symbol, for example fastlane run fastlane_version parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/fastlane_version/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/flock/","text":"flock Send a message to a Flock group To obtain the token, create a new incoming message webhook in your Flock admin panel. flock Supported platforms ios, android, mac Author @Manav 1 Example flock( message: \"Hello\", token: \"xxx\" ) Parameters Key Description Default message Message text token Token for the Flock incoming webhook base_url Base URL of the Flock incoming message webhook https://api.flock.co/hooks/sendMessage * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action flock CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run flock To pass parameters, make use of the : symbol, for example fastlane run flock parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"flock"},{"location":"actions/flock/#flock","text":"Send a message to a Flock group To obtain the token, create a new incoming message webhook in your Flock admin panel. flock Supported platforms ios, android, mac Author @Manav","title":"flock"},{"location":"actions/flock/#1-example","text":"flock( message: \"Hello\", token: \"xxx\" )","title":"1 Example"},{"location":"actions/flock/#parameters","text":"Key Description Default message Message text token Token for the Flock incoming webhook base_url Base URL of the Flock incoming message webhook https://api.flock.co/hooks/sendMessage * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/flock/#documentation","text":"To show the documentation in your terminal, run fastlane action flock","title":"Documentation"},{"location":"actions/flock/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run flock To pass parameters, make use of the : symbol, for example fastlane run flock parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/flock/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/frame_screenshots/","text":"frame_screenshots Adds device frames around all screenshots (via frameit ) Easily put your screenshots into the right device frames frameit allows you to put a gorgeous device frame around your iOS, macOS and Android screenshots just by running one simple command. Use frameit to prepare perfect screenshots for the App Store, your website, QA or emails. Features \u2022 Usage \u2022 Tips frameit is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Features Frame screenshot Put a gorgeous device frame around your iOS, macOS and Android screenshots just by running one simple command. Support for: iPhone, iPad and Mac Set of Android devices Portrait and Landscape modes Several device frame colors The complete and updated list of supported devices and colors can be found here Here is a nice gif, that shows frameit in action: Advanced Features Put framed screenshot on colored background, define padding add text above or under framed screenshot keyword + text choose text font and color multi line text \"intelligent\" positioning of text that always looks good(ish) Results The frameit 2.0 update was kindly sponsored by MindNode , seen in the screenshots above. The first time that frameit is executed the frames will be downloaded automatically. Originally the frames are coming from Facebook frameset and they are kept on this repo . More information about this process and how to update the frames can be found here Usage Basic Usage Why should you have to use Photoshop, just to add a frame around your screenshots? Just navigate to your folder of screenshots and use the following command (iOS and Mac OS are default platforms for backward compatibility): fastlane frameit To frame Android screenshots: fastlane frameit android To use the silver version of the frames: fastlane frameit silver To download the latest frames fastlane frameit download_frames Note: When using frameit without titles on top, the screenshots will have the full resolution, which means they can't be uploaded to the App Store directly. They are supposed to be used for websites, print media and emails. Check out the section below to use the screenshots for the App Store. Advanced Usage (optional) Text and Background With frameit it's possible to add a custom background and text below or above the framed screenshots in fonts and colors you define. A working example can be found in the fastlane examples project. Framefile.json The Framefile allows to define general and screenshot specific information. It has the following general JSON structure: { \"device_frame_version\": \"latest\", \"default\": { ... }, \"data\": [ ... ] } General parameters The general parameters are defined in the default key and can be: Key Description Default value background The background that should be used for the framed screenshot. Specify the (relative) path to the image file (e.g. *.jpg ). This parameter is mandatory. NA keyword An object that contains up to 3 keys to describe the optional keyword. See table below. NA title An object that contains up to 3 keys to describe the mandatory title. See table below. NA stack_title Specifies whether frameit should display the keyword above the title when both keyword and title are defined. If it is false, the title and keyword will be displayed side by side when both keyword and title are defined. false title_below_image Specifies whether frameit should place the title and optional keyword below the device frame. If it is false, it will be placed above the device frame. false show_complete_frame Specifies whether frameit should shrink the device frame so that it is completely shown in the framed screenshot. If it is false, clipping of the device frame might occur at the bottom (when title_below_image is false ) or top (when title_below_image is true ) of the framed screenshot. false padding The content of the framed screenshot will be resized to match the specified padding around all edges. The vertical padding is also applied between the text and the top or bottom (depending on title_below_image ) of the device frame. There are 3 different options of specifying the padding: 1. Default: An integer value that defines both horizontal and vertical padding in pixels. 2. A string that defines (different) padding values in pixels for horizontal and vertical padding. The syntax is \"x\" , e.g. \"30x60\" . 3. A string that defines (different) padding values in percentage for horizontal and vertical padding. The syntax is \"%x%\" , e.g. \"5%x10%\" . Note: The percentage is calculated from the smallest image dimension (height or width). A combination of option 2 and 3 is possible, e.g. \"5%x40\" . 50 interline_spacing Specifies whether frameit should add or subtract this many pixels between the individual lines of text. This only applies to a multi-line title and/or keyword to expand or squash together the individual lines of text. 0 font_scale_factor Specifies whether frameit should increase or decrease the font size of the text. Is ignored for keyword or title , if font_size is specified. 0.1 frame Overrides the color of the frame to be used. (Valid values are BLACK , WHITE , GOLD and ROSE_GOLD ) NA title_min_height Specifies a height always reserved for the title. Value can be a percentage of the height or an absolute value. The device will be placed below (or above) this area. Convenient to ensure the device top (or bottom) will be consistently placed at the same height on the different screenshots. NA use_platform Overrides the platform used for the screenshot. Valid values are IOS , ANDROID and ANY . IOS force_device_type Forces a specific device. Valid values are: Huawei P8, Motorola Moto E, Motorola Moto G, Nexus 4, Nexus 5X, Nexus 6P, Nexus 9, Samsung Galaxy Grand Prime, Samsung Galaxy Note 5, Samsung Galaxy S Duos, Samsung Galaxy S3, Samsung Galaxy S5, Samsung Galaxy S7, Samsung Galaxy S8, Samsung Galaxy S9, iPhone 5s, iPhone 5c, iPhone SE, iPhone 6s, iPhone 6s Plus, iPhone 7, iPhone 7 Plus, iPhone 8, iPhone 8 Plus, iPhone X, iPhone XS, iPhone XR, iPhone XS Max, iPad Air 2, iPad Mini 4, iPad Pro, MacBook, Google Pixel 3, Google Pixel 3 XL, HTC One A9, HTC One M8 NA Specific parameters The screenshot specific parameters are related to the keyword and title texts. These are defined in the data key. This is an array with the following keys for each screenshot: Key Description filter This is mandatory to link the individual configuration to the screenshot, based on part of the file name. Example: If a screenshot is named iPhone 8-Brainstorming.png you can use value Brainstorming for filter . If there are more than one filter matching an entry, they will all be applied in order (which means that the last one has the highest precedence). All other keys from that array element will only be applied on this specific screenshot. keyword Similar use as in default , except that parameter text can be used here because it is screenshot specific. title Similar use as in default , except that parameter text can be used here because it is screenshot specific. frame Overrides the color of the frame to be used. (Valid values are BLACK , WHITE , GOLD and ROSE_GOLD ) use_platform Overrides the platform used for the screenshot. Valid values are IOS , ANDROID and ANY . force_device_type Forces a specific device. Valid values are the same as for the general parameter. Framefile keyword and title parameters The keyword and title parameters are both used in default and data . They both consist of the following optional keys: Key Description Default value color The font color for the text. Specify a HEX/HTML color code. #000000 (black) font The font family for the text. Specify the (relative) path to the font file (e.g. an OpenType Font). The default imagemagick font, which is system dependent. font_size The font size for the text specified in points. If not specified or 0 , font will be scaled automatically to fit the available space. frameit still shrinks the text, if it would not fit. NA font_weight The font weight for the text . Specify an integer value (e.g. 900). NA text The text that should be used for the keyword or title . Note: If you want to use localised text, use .strings files . NA Example { \"device_frame_version\": \"latest\", \"default\": { \"keyword\": { \"font\": \"./fonts/MyFont-Rg.otf\" }, \"title\": { \"font\": \"./fonts/MyFont-Th.otf\", \"font_size\": 128, \"color\": \"#545454\" }, \"background\": \"./background.jpg\", \"padding\": 50, \"show_complete_frame\": false, \"stack_title\" : false, \"title_below_image\": true, \"frame\": \"WHITE\", \"use_platform\": \"IOS\" }, \"data\": [ { \"filter\": \"Brainstorming\", \"keyword\": { \"color\": \"#d21559\" } }, { \"filter\": \"Organizing\", \"keyword\": { \"color\": \"#feb909\" }, \"frame\": \"ROSE_GOLD\" }, { \"filter\": \"Sharing\", \"keyword\": { \"color\": \"#aa4dbc\" } }, { \"filter\": \"Styling\", \"keyword\": { \"color\": \"#31bb48\" } }, { \"filter\": \"Android\", \"use_platform\": \"ANDROID\" } ] } You can find a more complex configuration to also support Chinese, Japanese and Korean languages. The Framefile.json should be in the screenshots folder, as seen in the example . .strings files To define the title and optionally the keyword, put two .strings files into the language folder (e.g. en-US in the example project ) The keyword.strings and title.strings are standard .strings file you already use for your iOS apps, making it easy to use your existing translation service to get localized titles. Notes These .strings files MUST be utf-8 (UTF-8) or utf-16 encoded (UTF-16 BE with BOM). They also must begin with an empty line. If you are having trouble see issue #1740 You MUST provide a background if you want titles. frameit will not add the titles if a background is not specified. Screenshot orientation By default frameit adds a frame to your screenshot based on an orientation you took it. For a portrait (vertical orientation) it is going to add portrait frame and for a landscape (horizontal orientation) - landscape left (= Home button on the left side ). One way to override the default behavior is editing the file name by adding force_landscaperight to the end. force_orientation_block If the default behavior doesn't fit your needs and you don't want or can't rename your screenshots, you can customize frameit 's orientation behavior by setting a force_orientation_block parameter. The valid values are: :landscape_left (home button on the left side), :landscape_right (home button on the right side), :portrait (home button on the bottom), nil (home button on the right side). Examples # It matches the filename to the framed device orientation frameit( path: \"./fastlane/screenshots\", force_orientation_block: proc do |filename| case filename when \"iPad Pro (12.9-inch)-01LoginScreen\" :landscape_right when \"iPhone 6 Plus-01LoginScreen\" :portrait # and so on end end ) # It frames the screenshots in landscape right whenever the filename contains `landscape` word frameit( silver: true, path: \"./fastlane/screenshots\", force_orientation_block: proc do |filename| f = filename.downcase if f.include?(\"landscape\") :landscape_right end end ) Mac With frameit it's possible to also frame macOS Application screenshots. You have to provide the following: A (relative) path to a background image file, which should contain both the background and the Mac. The offset information so frameit knows where to position your screenshot on the background : offset : A string that specifies the horizontal and vertical offset in pixels, with respect to the top left corner of the background image. The syntax is \"++\" , e.g. \"+200+150\" . titleHeight : The height in pixels that should be used for the title. Example { \"default\": { \"title\": { \"color\": \"#545454\" }, \"background\": \"Mac.jpg\", \"offset\": { \"offset\": \"+676+479\", \"titleHeight\": 320 } }, \"data\": [ { \"filter\": \"Brainstorming\", \"keyword\": { \"color\": \"#d21559\" } } ] } Check out the MindNode example project . Tips Generate localized screenshots Check out snapshot to automatically generate screenshots using UI Automation . Resume framing Framing screenshots is a slow operation. In case you need to resume framing, or just frame a couple updated screenshots again, you can rely on the --resume flag. Only screenshots which have not been framed yet \u2013 or for which there isn't an up-to-date framed image \u2013 will be framed. This feature uses the file modification dates and will reframe screenshots if the screenshot is newer than the framed file. Upload screenshots Use deliver to upload iOS screenshots to App Store Connect, or supply to upload Android screenshots to Play Store completely automatically \ud83d\ude80 Use a clean status bar You can set override_status_bar to true in snapshot to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available. Examples # Sets the time to 9:41AM with full battery and reception, with the default carrier name: Carrier capture_ios_screenshots( override_status_bar: true ) # Set the time to 9:41AM, battery at 75% and charging, on the TELUS LTE network capture_ios_screenshots( override_status_bar: true, override_status_bar_arguments: \"--time 9:41 --dataNetwork lte --cellularMode active --cellularBars 4 --batteryState charging --batteryLevel 75 --operatorName TELUS\" ) Gray artifacts around text If you run into any quality issues, like having a border around the font, it usually helps to just re-install imagemagick . You can do so by running brew uninstall imagemagick brew install imagemagick Uninstall gem uninstall fastlane rm -rf ~/.frameit frame_screenshots Supported platforms ios, android, mac Author @KrauseFx 6 Examples frame_screenshots frameit # alias for \"frame_screenshots\" frame_screenshots(use_platform: \"ANDROID\") frame_screenshots(silver: true) frame_screenshots(path: \"/screenshots\") frame_screenshots(rose_gold: true) Parameters Key Description Default white Use white device frames silver Use white device frames. Alias for :white rose_gold Use rose gold device frames. Alias for :rose_gold gold Use gold device frames. Alias for :gold force_device_type Forces a given device type, useful for Mac screenshots, as their sizes vary use_legacy_iphone5s Use iPhone 5s instead of iPhone SE frames false use_legacy_iphone6s Use iPhone 6s frames instead of iPhone 7 frames false use_legacy_iphone7 Use iPhone 7 frames instead of iPhone 8 frames false use_legacy_iphonex Use iPhone X instead of iPhone XS frames false use_legacy_iphonexr Use iPhone XR instead of iPhone 11 frames false use_legacy_iphonexs Use iPhone XS instead of iPhone 11 Pro frames false use_legacy_iphonexsmax Use iPhone XS Max instead of iPhone 11 Pro Max frames false force_orientation_block [Advanced] A block to customize your screenshots' device orientation * debug_mode Output debug information in framed screenshots false resume Resume frameit instead of reprocessing all screenshots false use_platform Choose a platform, the valid options are IOS, ANDROID and ANY (default is either general platform defined in the fastfile or IOS to ensure backward compatibility) * path The path to the directory containing the screenshots * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action frame_screenshots CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run frame_screenshots To pass parameters, make use of the : symbol, for example fastlane run frame_screenshots parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"frame_screenshots"},{"location":"actions/frame_screenshots/#frame_screenshots","text":"Adds device frames around all screenshots (via frameit )","title":"frame_screenshots"},{"location":"actions/frame_screenshots/#features","text":"","title":"Features"},{"location":"actions/frame_screenshots/#frame-screenshot","text":"Put a gorgeous device frame around your iOS, macOS and Android screenshots just by running one simple command. Support for: iPhone, iPad and Mac Set of Android devices Portrait and Landscape modes Several device frame colors The complete and updated list of supported devices and colors can be found here Here is a nice gif, that shows frameit in action:","title":"Frame screenshot"},{"location":"actions/frame_screenshots/#advanced-features","text":"Put framed screenshot on colored background, define padding add text above or under framed screenshot keyword + text choose text font and color multi line text \"intelligent\" positioning of text that always looks good(ish)","title":"Advanced Features"},{"location":"actions/frame_screenshots/#results","text":"","title":"Results"},{"location":"actions/frame_screenshots/#usage","text":"","title":"Usage"},{"location":"actions/frame_screenshots/#basic-usage","text":"Why should you have to use Photoshop, just to add a frame around your screenshots? Just navigate to your folder of screenshots and use the following command (iOS and Mac OS are default platforms for backward compatibility): fastlane frameit To frame Android screenshots: fastlane frameit android To use the silver version of the frames: fastlane frameit silver To download the latest frames fastlane frameit download_frames Note: When using frameit without titles on top, the screenshots will have the full resolution, which means they can't be uploaded to the App Store directly. They are supposed to be used for websites, print media and emails. Check out the section below to use the screenshots for the App Store.","title":"Basic Usage"},{"location":"actions/frame_screenshots/#advanced-usage-optional","text":"","title":"Advanced Usage (optional)"},{"location":"actions/frame_screenshots/#mac","text":"With frameit it's possible to also frame macOS Application screenshots. You have to provide the following: A (relative) path to a background image file, which should contain both the background and the Mac. The offset information so frameit knows where to position your screenshot on the background : offset : A string that specifies the horizontal and vertical offset in pixels, with respect to the top left corner of the background image. The syntax is \"++\" , e.g. \"+200+150\" . titleHeight : The height in pixels that should be used for the title.","title":"Mac"},{"location":"actions/frame_screenshots/#example_1","text":"{ \"default\": { \"title\": { \"color\": \"#545454\" }, \"background\": \"Mac.jpg\", \"offset\": { \"offset\": \"+676+479\", \"titleHeight\": 320 } }, \"data\": [ { \"filter\": \"Brainstorming\", \"keyword\": { \"color\": \"#d21559\" } } ] } Check out the MindNode example project .","title":"Example"},{"location":"actions/frame_screenshots/#tips","text":"","title":"Tips"},{"location":"actions/frame_screenshots/#generate-localized-screenshots","text":"Check out snapshot to automatically generate screenshots using UI Automation .","title":"Generate localized screenshots"},{"location":"actions/frame_screenshots/#resume-framing","text":"Framing screenshots is a slow operation. In case you need to resume framing, or just frame a couple updated screenshots again, you can rely on the --resume flag. Only screenshots which have not been framed yet \u2013 or for which there isn't an up-to-date framed image \u2013 will be framed. This feature uses the file modification dates and will reframe screenshots if the screenshot is newer than the framed file.","title":"Resume framing"},{"location":"actions/frame_screenshots/#upload-screenshots","text":"Use deliver to upload iOS screenshots to App Store Connect, or supply to upload Android screenshots to Play Store completely automatically \ud83d\ude80","title":"Upload screenshots"},{"location":"actions/frame_screenshots/#use-a-clean-status-bar","text":"You can set override_status_bar to true in snapshot to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available.","title":"Use a clean status bar"},{"location":"actions/frame_screenshots/#gray-artifacts-around-text","text":"If you run into any quality issues, like having a border around the font, it usually helps to just re-install imagemagick . You can do so by running brew uninstall imagemagick brew install imagemagick","title":"Gray artifacts around text"},{"location":"actions/frame_screenshots/#uninstall","text":"gem uninstall fastlane rm -rf ~/.frameit frame_screenshots Supported platforms ios, android, mac Author @KrauseFx","title":"Uninstall"},{"location":"actions/frame_screenshots/#6-examples","text":"frame_screenshots frameit # alias for \"frame_screenshots\" frame_screenshots(use_platform: \"ANDROID\") frame_screenshots(silver: true) frame_screenshots(path: \"/screenshots\") frame_screenshots(rose_gold: true)","title":"6 Examples"},{"location":"actions/frame_screenshots/#parameters","text":"Key Description Default white Use white device frames silver Use white device frames. Alias for :white rose_gold Use rose gold device frames. Alias for :rose_gold gold Use gold device frames. Alias for :gold force_device_type Forces a given device type, useful for Mac screenshots, as their sizes vary use_legacy_iphone5s Use iPhone 5s instead of iPhone SE frames false use_legacy_iphone6s Use iPhone 6s frames instead of iPhone 7 frames false use_legacy_iphone7 Use iPhone 7 frames instead of iPhone 8 frames false use_legacy_iphonex Use iPhone X instead of iPhone XS frames false use_legacy_iphonexr Use iPhone XR instead of iPhone 11 frames false use_legacy_iphonexs Use iPhone XS instead of iPhone 11 Pro frames false use_legacy_iphonexsmax Use iPhone XS Max instead of iPhone 11 Pro Max frames false force_orientation_block [Advanced] A block to customize your screenshots' device orientation * debug_mode Output debug information in framed screenshots false resume Resume frameit instead of reprocessing all screenshots false use_platform Choose a platform, the valid options are IOS, ANDROID and ANY (default is either general platform defined in the fastfile or IOS to ensure backward compatibility) * path The path to the directory containing the screenshots * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/frame_screenshots/#documentation","text":"To show the documentation in your terminal, run fastlane action frame_screenshots","title":"Documentation"},{"location":"actions/frame_screenshots/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run frame_screenshots To pass parameters, make use of the : symbol, for example fastlane run frame_screenshots parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/frame_screenshots/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/frameit/","text":"frameit Alias for the frame_screenshots action Easily put your screenshots into the right device frames frameit allows you to put a gorgeous device frame around your iOS, macOS and Android screenshots just by running one simple command. Use frameit to prepare perfect screenshots for the App Store, your website, QA or emails. Features \u2022 Usage \u2022 Tips frameit is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Features Frame screenshot Put a gorgeous device frame around your iOS, macOS and Android screenshots just by running one simple command. Support for: iPhone, iPad and Mac Set of Android devices Portrait and Landscape modes Several device frame colors The complete and updated list of supported devices and colors can be found here Here is a nice gif, that shows frameit in action: Advanced Features Put framed screenshot on colored background, define padding add text above or under framed screenshot keyword + text choose text font and color multi line text \"intelligent\" positioning of text that always looks good(ish) Results The frameit 2.0 update was kindly sponsored by MindNode , seen in the screenshots above. The first time that frameit is executed the frames will be downloaded automatically. Originally the frames are coming from Facebook frameset and they are kept on this repo . More information about this process and how to update the frames can be found here Usage Basic Usage Why should you have to use Photoshop, just to add a frame around your screenshots? Just navigate to your folder of screenshots and use the following command (iOS and Mac OS are default platforms for backward compatibility): fastlane frameit To frame Android screenshots: fastlane frameit android To use the silver version of the frames: fastlane frameit silver To download the latest frames fastlane frameit download_frames Note: When using frameit without titles on top, the screenshots will have the full resolution, which means they can't be uploaded to the App Store directly. They are supposed to be used for websites, print media and emails. Check out the section below to use the screenshots for the App Store. Advanced Usage (optional) Text and Background With frameit it's possible to add a custom background and text below or above the framed screenshots in fonts and colors you define. A working example can be found in the fastlane examples project. Framefile.json The Framefile allows to define general and screenshot specific information. It has the following general JSON structure: { \"device_frame_version\": \"latest\", \"default\": { ... }, \"data\": [ ... ] } General parameters The general parameters are defined in the default key and can be: Key Description Default value background The background that should be used for the framed screenshot. Specify the (relative) path to the image file (e.g. *.jpg ). This parameter is mandatory. NA keyword An object that contains up to 3 keys to describe the optional keyword. See table below. NA title An object that contains up to 3 keys to describe the mandatory title. See table below. NA stack_title Specifies whether frameit should display the keyword above the title when both keyword and title are defined. If it is false, the title and keyword will be displayed side by side when both keyword and title are defined. false title_below_image Specifies whether frameit should place the title and optional keyword below the device frame. If it is false, it will be placed above the device frame. false show_complete_frame Specifies whether frameit should shrink the device frame so that it is completely shown in the framed screenshot. If it is false, clipping of the device frame might occur at the bottom (when title_below_image is false ) or top (when title_below_image is true ) of the framed screenshot. false padding The content of the framed screenshot will be resized to match the specified padding around all edges. The vertical padding is also applied between the text and the top or bottom (depending on title_below_image ) of the device frame. There are 3 different options of specifying the padding: 1. Default: An integer value that defines both horizontal and vertical padding in pixels. 2. A string that defines (different) padding values in pixels for horizontal and vertical padding. The syntax is \"x\" , e.g. \"30x60\" . 3. A string that defines (different) padding values in percentage for horizontal and vertical padding. The syntax is \"%x%\" , e.g. \"5%x10%\" . Note: The percentage is calculated from the smallest image dimension (height or width). A combination of option 2 and 3 is possible, e.g. \"5%x40\" . 50 interline_spacing Specifies whether frameit should add or subtract this many pixels between the individual lines of text. This only applies to a multi-line title and/or keyword to expand or squash together the individual lines of text. 0 font_scale_factor Specifies whether frameit should increase or decrease the font size of the text. Is ignored for keyword or title , if font_size is specified. 0.1 frame Overrides the color of the frame to be used. (Valid values are BLACK , WHITE , GOLD and ROSE_GOLD ) NA title_min_height Specifies a height always reserved for the title. Value can be a percentage of the height or an absolute value. The device will be placed below (or above) this area. Convenient to ensure the device top (or bottom) will be consistently placed at the same height on the different screenshots. NA use_platform Overrides the platform used for the screenshot. Valid values are IOS , ANDROID and ANY . IOS force_device_type Forces a specific device. Valid values are: Huawei P8, Motorola Moto E, Motorola Moto G, Nexus 4, Nexus 5X, Nexus 6P, Nexus 9, Samsung Galaxy Grand Prime, Samsung Galaxy Note 5, Samsung Galaxy S Duos, Samsung Galaxy S3, Samsung Galaxy S5, Samsung Galaxy S7, Samsung Galaxy S8, Samsung Galaxy S9, iPhone 5s, iPhone 5c, iPhone SE, iPhone 6s, iPhone 6s Plus, iPhone 7, iPhone 7 Plus, iPhone 8, iPhone 8 Plus, iPhone X, iPhone XS, iPhone XR, iPhone XS Max, iPad Air 2, iPad Mini 4, iPad Pro, MacBook, Google Pixel 3, Google Pixel 3 XL, HTC One A9, HTC One M8 NA Specific parameters The screenshot specific parameters are related to the keyword and title texts. These are defined in the data key. This is an array with the following keys for each screenshot: Key Description filter This is mandatory to link the individual configuration to the screenshot, based on part of the file name. Example: If a screenshot is named iPhone 8-Brainstorming.png you can use value Brainstorming for filter . If there are more than one filter matching an entry, they will all be applied in order (which means that the last one has the highest precedence). All other keys from that array element will only be applied on this specific screenshot. keyword Similar use as in default , except that parameter text can be used here because it is screenshot specific. title Similar use as in default , except that parameter text can be used here because it is screenshot specific. frame Overrides the color of the frame to be used. (Valid values are BLACK , WHITE , GOLD and ROSE_GOLD ) use_platform Overrides the platform used for the screenshot. Valid values are IOS , ANDROID and ANY . force_device_type Forces a specific device. Valid values are the same as for the general parameter. Framefile keyword and title parameters The keyword and title parameters are both used in default and data . They both consist of the following optional keys: Key Description Default value color The font color for the text. Specify a HEX/HTML color code. #000000 (black) font The font family for the text. Specify the (relative) path to the font file (e.g. an OpenType Font). The default imagemagick font, which is system dependent. font_size The font size for the text specified in points. If not specified or 0 , font will be scaled automatically to fit the available space. frameit still shrinks the text, if it would not fit. NA font_weight The font weight for the text . Specify an integer value (e.g. 900). NA text The text that should be used for the keyword or title . Note: If you want to use localised text, use .strings files . NA Example { \"device_frame_version\": \"latest\", \"default\": { \"keyword\": { \"font\": \"./fonts/MyFont-Rg.otf\" }, \"title\": { \"font\": \"./fonts/MyFont-Th.otf\", \"font_size\": 128, \"color\": \"#545454\" }, \"background\": \"./background.jpg\", \"padding\": 50, \"show_complete_frame\": false, \"stack_title\" : false, \"title_below_image\": true, \"frame\": \"WHITE\", \"use_platform\": \"IOS\" }, \"data\": [ { \"filter\": \"Brainstorming\", \"keyword\": { \"color\": \"#d21559\" } }, { \"filter\": \"Organizing\", \"keyword\": { \"color\": \"#feb909\" }, \"frame\": \"ROSE_GOLD\" }, { \"filter\": \"Sharing\", \"keyword\": { \"color\": \"#aa4dbc\" } }, { \"filter\": \"Styling\", \"keyword\": { \"color\": \"#31bb48\" } }, { \"filter\": \"Android\", \"use_platform\": \"ANDROID\" } ] } You can find a more complex configuration to also support Chinese, Japanese and Korean languages. The Framefile.json should be in the screenshots folder, as seen in the example . .strings files To define the title and optionally the keyword, put two .strings files into the language folder (e.g. en-US in the example project ) The keyword.strings and title.strings are standard .strings file you already use for your iOS apps, making it easy to use your existing translation service to get localized titles. Notes These .strings files MUST be utf-8 (UTF-8) or utf-16 encoded (UTF-16 BE with BOM). They also must begin with an empty line. If you are having trouble see issue #1740 You MUST provide a background if you want titles. frameit will not add the titles if a background is not specified. Screenshot orientation By default frameit adds a frame to your screenshot based on an orientation you took it. For a portrait (vertical orientation) it is going to add portrait frame and for a landscape (horizontal orientation) - landscape left (= Home button on the left side ). One way to override the default behavior is editing the file name by adding force_landscaperight to the end. force_orientation_block If the default behavior doesn't fit your needs and you don't want or can't rename your screenshots, you can customize frameit 's orientation behavior by setting a force_orientation_block parameter. The valid values are: :landscape_left (home button on the left side), :landscape_right (home button on the right side), :portrait (home button on the bottom), nil (home button on the right side). Examples # It matches the filename to the framed device orientation frameit( path: \"./fastlane/screenshots\", force_orientation_block: proc do |filename| case filename when \"iPad Pro (12.9-inch)-01LoginScreen\" :landscape_right when \"iPhone 6 Plus-01LoginScreen\" :portrait # and so on end end ) # It frames the screenshots in landscape right whenever the filename contains `landscape` word frameit( silver: true, path: \"./fastlane/screenshots\", force_orientation_block: proc do |filename| f = filename.downcase if f.include?(\"landscape\") :landscape_right end end ) Mac With frameit it's possible to also frame macOS Application screenshots. You have to provide the following: A (relative) path to a background image file, which should contain both the background and the Mac. The offset information so frameit knows where to position your screenshot on the background : offset : A string that specifies the horizontal and vertical offset in pixels, with respect to the top left corner of the background image. The syntax is \"++\" , e.g. \"+200+150\" . titleHeight : The height in pixels that should be used for the title. Example { \"default\": { \"title\": { \"color\": \"#545454\" }, \"background\": \"Mac.jpg\", \"offset\": { \"offset\": \"+676+479\", \"titleHeight\": 320 } }, \"data\": [ { \"filter\": \"Brainstorming\", \"keyword\": { \"color\": \"#d21559\" } } ] } Check out the MindNode example project . Tips Generate localized screenshots Check out snapshot to automatically generate screenshots using UI Automation . Resume framing Framing screenshots is a slow operation. In case you need to resume framing, or just frame a couple updated screenshots again, you can rely on the --resume flag. Only screenshots which have not been framed yet \u2013 or for which there isn't an up-to-date framed image \u2013 will be framed. This feature uses the file modification dates and will reframe screenshots if the screenshot is newer than the framed file. Upload screenshots Use deliver to upload iOS screenshots to App Store Connect, or supply to upload Android screenshots to Play Store completely automatically \ud83d\ude80 Use a clean status bar You can set override_status_bar to true in snapshot to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available. Examples # Sets the time to 9:41AM with full battery and reception, with the default carrier name: Carrier capture_ios_screenshots( override_status_bar: true ) # Set the time to 9:41AM, battery at 75% and charging, on the TELUS LTE network capture_ios_screenshots( override_status_bar: true, override_status_bar_arguments: \"--time 9:41 --dataNetwork lte --cellularMode active --cellularBars 4 --batteryState charging --batteryLevel 75 --operatorName TELUS\" ) Gray artifacts around text If you run into any quality issues, like having a border around the font, it usually helps to just re-install imagemagick . You can do so by running brew uninstall imagemagick brew install imagemagick Uninstall gem uninstall fastlane rm -rf ~/.frameit frameit Supported platforms ios, android, mac Author @KrauseFx 6 Examples frame_screenshots frameit # alias for \"frame_screenshots\" frame_screenshots(use_platform: \"ANDROID\") frame_screenshots(silver: true) frame_screenshots(path: \"/screenshots\") frame_screenshots(rose_gold: true) Parameters Key Description Default white Use white device frames silver Use white device frames. Alias for :white rose_gold Use rose gold device frames. Alias for :rose_gold gold Use gold device frames. Alias for :gold force_device_type Forces a given device type, useful for Mac screenshots, as their sizes vary use_legacy_iphone5s Use iPhone 5s instead of iPhone SE frames false use_legacy_iphone6s Use iPhone 6s frames instead of iPhone 7 frames false use_legacy_iphone7 Use iPhone 7 frames instead of iPhone 8 frames false use_legacy_iphonex Use iPhone X instead of iPhone XS frames false use_legacy_iphonexr Use iPhone XR instead of iPhone 11 frames false use_legacy_iphonexs Use iPhone XS instead of iPhone 11 Pro frames false use_legacy_iphonexsmax Use iPhone XS Max instead of iPhone 11 Pro Max frames false force_orientation_block [Advanced] A block to customize your screenshots' device orientation * debug_mode Output debug information in framed screenshots false resume Resume frameit instead of reprocessing all screenshots false use_platform Choose a platform, the valid options are IOS, ANDROID and ANY (default is either general platform defined in the fastfile or IOS to ensure backward compatibility) * path The path to the directory containing the screenshots * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action frameit CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run frameit To pass parameters, make use of the : symbol, for example fastlane run frameit parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"frameit"},{"location":"actions/frameit/#frameit","text":"Alias for the frame_screenshots action","title":"frameit"},{"location":"actions/frameit/#features","text":"","title":"Features"},{"location":"actions/frameit/#frame-screenshot","text":"Put a gorgeous device frame around your iOS, macOS and Android screenshots just by running one simple command. Support for: iPhone, iPad and Mac Set of Android devices Portrait and Landscape modes Several device frame colors The complete and updated list of supported devices and colors can be found here Here is a nice gif, that shows frameit in action:","title":"Frame screenshot"},{"location":"actions/frameit/#advanced-features","text":"Put framed screenshot on colored background, define padding add text above or under framed screenshot keyword + text choose text font and color multi line text \"intelligent\" positioning of text that always looks good(ish)","title":"Advanced Features"},{"location":"actions/frameit/#results","text":"","title":"Results"},{"location":"actions/frameit/#usage","text":"","title":"Usage"},{"location":"actions/frameit/#basic-usage","text":"Why should you have to use Photoshop, just to add a frame around your screenshots? Just navigate to your folder of screenshots and use the following command (iOS and Mac OS are default platforms for backward compatibility): fastlane frameit To frame Android screenshots: fastlane frameit android To use the silver version of the frames: fastlane frameit silver To download the latest frames fastlane frameit download_frames Note: When using frameit without titles on top, the screenshots will have the full resolution, which means they can't be uploaded to the App Store directly. They are supposed to be used for websites, print media and emails. Check out the section below to use the screenshots for the App Store.","title":"Basic Usage"},{"location":"actions/frameit/#advanced-usage-optional","text":"","title":"Advanced Usage (optional)"},{"location":"actions/frameit/#mac","text":"With frameit it's possible to also frame macOS Application screenshots. You have to provide the following: A (relative) path to a background image file, which should contain both the background and the Mac. The offset information so frameit knows where to position your screenshot on the background : offset : A string that specifies the horizontal and vertical offset in pixels, with respect to the top left corner of the background image. The syntax is \"++\" , e.g. \"+200+150\" . titleHeight : The height in pixels that should be used for the title.","title":"Mac"},{"location":"actions/frameit/#example_1","text":"{ \"default\": { \"title\": { \"color\": \"#545454\" }, \"background\": \"Mac.jpg\", \"offset\": { \"offset\": \"+676+479\", \"titleHeight\": 320 } }, \"data\": [ { \"filter\": \"Brainstorming\", \"keyword\": { \"color\": \"#d21559\" } } ] } Check out the MindNode example project .","title":"Example"},{"location":"actions/frameit/#tips","text":"","title":"Tips"},{"location":"actions/frameit/#generate-localized-screenshots","text":"Check out snapshot to automatically generate screenshots using UI Automation .","title":"Generate localized screenshots"},{"location":"actions/frameit/#resume-framing","text":"Framing screenshots is a slow operation. In case you need to resume framing, or just frame a couple updated screenshots again, you can rely on the --resume flag. Only screenshots which have not been framed yet \u2013 or for which there isn't an up-to-date framed image \u2013 will be framed. This feature uses the file modification dates and will reframe screenshots if the screenshot is newer than the framed file.","title":"Resume framing"},{"location":"actions/frameit/#upload-screenshots","text":"Use deliver to upload iOS screenshots to App Store Connect, or supply to upload Android screenshots to Play Store completely automatically \ud83d\ude80","title":"Upload screenshots"},{"location":"actions/frameit/#use-a-clean-status-bar","text":"You can set override_status_bar to true in snapshot to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available.","title":"Use a clean status bar"},{"location":"actions/frameit/#gray-artifacts-around-text","text":"If you run into any quality issues, like having a border around the font, it usually helps to just re-install imagemagick . You can do so by running brew uninstall imagemagick brew install imagemagick","title":"Gray artifacts around text"},{"location":"actions/frameit/#uninstall","text":"gem uninstall fastlane rm -rf ~/.frameit frameit Supported platforms ios, android, mac Author @KrauseFx","title":"Uninstall"},{"location":"actions/frameit/#6-examples","text":"frame_screenshots frameit # alias for \"frame_screenshots\" frame_screenshots(use_platform: \"ANDROID\") frame_screenshots(silver: true) frame_screenshots(path: \"/screenshots\") frame_screenshots(rose_gold: true)","title":"6 Examples"},{"location":"actions/frameit/#parameters","text":"Key Description Default white Use white device frames silver Use white device frames. Alias for :white rose_gold Use rose gold device frames. Alias for :rose_gold gold Use gold device frames. Alias for :gold force_device_type Forces a given device type, useful for Mac screenshots, as their sizes vary use_legacy_iphone5s Use iPhone 5s instead of iPhone SE frames false use_legacy_iphone6s Use iPhone 6s frames instead of iPhone 7 frames false use_legacy_iphone7 Use iPhone 7 frames instead of iPhone 8 frames false use_legacy_iphonex Use iPhone X instead of iPhone XS frames false use_legacy_iphonexr Use iPhone XR instead of iPhone 11 frames false use_legacy_iphonexs Use iPhone XS instead of iPhone 11 Pro frames false use_legacy_iphonexsmax Use iPhone XS Max instead of iPhone 11 Pro Max frames false force_orientation_block [Advanced] A block to customize your screenshots' device orientation * debug_mode Output debug information in framed screenshots false resume Resume frameit instead of reprocessing all screenshots false use_platform Choose a platform, the valid options are IOS, ANDROID and ANY (default is either general platform defined in the fastfile or IOS to ensure backward compatibility) * path The path to the directory containing the screenshots * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/frameit/#documentation","text":"To show the documentation in your terminal, run fastlane action frameit","title":"Documentation"},{"location":"actions/frameit/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run frameit To pass parameters, make use of the : symbol, for example fastlane run frameit parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/frameit/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/gcovr/","text":"gcovr Runs test coverage reports for your Xcode project Generate summarized code coverage reports using gcovr gcovr Supported platforms ios Author @dtrenz 1 Example gcovr( html: true, html_details: true, output: \"./code-coverage/report.html\" ) Documentation To show the documentation in your terminal, run fastlane action gcovr CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run gcovr To pass parameters, make use of the : symbol, for example fastlane run gcovr parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"gcovr"},{"location":"actions/gcovr/#gcovr","text":"Runs test coverage reports for your Xcode project Generate summarized code coverage reports using gcovr gcovr Supported platforms ios Author @dtrenz","title":"gcovr"},{"location":"actions/gcovr/#1-example","text":"gcovr( html: true, html_details: true, output: \"./code-coverage/report.html\" )","title":"1 Example"},{"location":"actions/gcovr/#documentation","text":"To show the documentation in your terminal, run fastlane action gcovr","title":"Documentation"},{"location":"actions/gcovr/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run gcovr To pass parameters, make use of the : symbol, for example fastlane run gcovr parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/gcovr/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/get_build_number/","text":"get_build_number Get the build number of your project This action will return the current build number set on your project. You first have to set up your Xcode project, if you haven't done it already: https://developer.apple.com/library/ios/qa/qa1827/_index.html . get_build_number Supported platforms ios, mac Author @Liquidsoul 1 Example build_number = get_build_number(xcodeproj: \"Project.xcodeproj\") Parameters Key Description Default xcodeproj optional, you must specify the path to your main Xcode project if it is not in the project root directory hide_error_when_versioning_disabled Used during fastlane init to hide the error message false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_build_number action generates the following Lane Variables: SharedValue Description SharedValues::BUILD_NUMBER The build number To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action get_build_number CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_build_number To pass parameters, make use of the : symbol, for example fastlane run get_build_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"get_build_number"},{"location":"actions/get_build_number/#get_build_number","text":"Get the build number of your project This action will return the current build number set on your project. You first have to set up your Xcode project, if you haven't done it already: https://developer.apple.com/library/ios/qa/qa1827/_index.html . get_build_number Supported platforms ios, mac Author @Liquidsoul","title":"get_build_number"},{"location":"actions/get_build_number/#1-example","text":"build_number = get_build_number(xcodeproj: \"Project.xcodeproj\")","title":"1 Example"},{"location":"actions/get_build_number/#parameters","text":"Key Description Default xcodeproj optional, you must specify the path to your main Xcode project if it is not in the project root directory hide_error_when_versioning_disabled Used during fastlane init to hide the error message false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/get_build_number/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_build_number action generates the following Lane Variables: SharedValue Description SharedValues::BUILD_NUMBER The build number To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/get_build_number/#documentation","text":"To show the documentation in your terminal, run fastlane action get_build_number","title":"Documentation"},{"location":"actions/get_build_number/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_build_number To pass parameters, make use of the : symbol, for example fastlane run get_build_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/get_build_number/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/get_build_number_repository/","text":"get_build_number_repository Get the build number from the current repository This action will get the build number according to what the SCM HEAD reports. Currently supported SCMs are svn (uses root revision), git-svn (uses svn revision), git (uses short hash) and mercurial (uses short hash or revision number). There is an option, :use_hg_revision_number , which allows to use mercurial revision number instead of hash. get_build_number_repository Supported platforms ios, mac Author @bartoszj, @pbrooks, @armadsen Returns The build number from the current repository 1 Example get_build_number_repository Parameters Key Description Default use_hg_revision_number Use hg revision number instead of hash (ignored for non-hg repos) false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_build_number_repository action generates the following Lane Variables: SharedValue Description SharedValues::BUILD_NUMBER_REPOSITORY The build number from the current repository To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action get_build_number_repository CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_build_number_repository To pass parameters, make use of the : symbol, for example fastlane run get_build_number_repository parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"get_build_number_repository"},{"location":"actions/get_build_number_repository/#get_build_number_repository","text":"Get the build number from the current repository This action will get the build number according to what the SCM HEAD reports. Currently supported SCMs are svn (uses root revision), git-svn (uses svn revision), git (uses short hash) and mercurial (uses short hash or revision number). There is an option, :use_hg_revision_number , which allows to use mercurial revision number instead of hash. get_build_number_repository Supported platforms ios, mac Author @bartoszj, @pbrooks, @armadsen Returns The build number from the current repository","title":"get_build_number_repository"},{"location":"actions/get_build_number_repository/#1-example","text":"get_build_number_repository","title":"1 Example"},{"location":"actions/get_build_number_repository/#parameters","text":"Key Description Default use_hg_revision_number Use hg revision number instead of hash (ignored for non-hg repos) false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/get_build_number_repository/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_build_number_repository action generates the following Lane Variables: SharedValue Description SharedValues::BUILD_NUMBER_REPOSITORY The build number from the current repository To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/get_build_number_repository/#documentation","text":"To show the documentation in your terminal, run fastlane action get_build_number_repository","title":"Documentation"},{"location":"actions/get_build_number_repository/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_build_number_repository To pass parameters, make use of the : symbol, for example fastlane run get_build_number_repository parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/get_build_number_repository/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/get_certificates/","text":"get_certificates Create new iOS code signing certificates (via cert ) Why? \u2022 Usage \u2022 How does it work? \u2022 Tips cert is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. In the gif we used cert && sigh , which will first create an iOS code signing certificate and then a provisioning profile for your app if cert succeeded. Usage Note : It is recommended to use match according to the codesigning.guide for generating and maintaining your certificates. Use cert directly only if you want full control over what's going on and know more about codesigning. fastlane cert This will check if any of the available signing certificates is installed on your local machine. Only if a new certificate needs to be created, cert will Create a new private key Create a new signing request Generate, downloads and installs the certificate Import all the generated files into your Keychain cert will never revoke your existing certificates. If you can't create any more certificates, cert will raise an exception, which means, you have to revoke one of the existing certificates to make room for a new one. You can pass your Apple ID: fastlane cert -u cert@krausefx.com For a list of available commands run fastlane action cert Keep in mind, there is no way for cert to download existing certificates + private keys from the Apple Developer Portal, as the private key never leaves your computer. Environment Variables Run fastlane action cert to get a list of all available environment variables. Use with sigh cert becomes really interesting when used in fastlane in combination with sigh . Update your Fastfile to contain the following code: lane :beta do cert sigh(force: true) end force: true will make sure to re-generate the provisioning profile on each run. This will result in sigh always using the correct signing certificate, which is installed on the local machine. How is my password stored? cert uses the password manager from fastlane . Take a look the CredentialsManager README for more information. Tips Use 'ProvisionQL' for advanced Quick Look in Finder Install ProvisionQL . It will show you mobileprovision files like this: get_certificates Supported platforms ios Author @KrauseFx 3 Examples get_certificates cert # alias for \"get_certificates\" get_certificates( development: true, username: \"user@email.com\" ) Parameters Key Description Default development Create a development certificate instead of a distribution one false type Create specific certificate type (takes precedence over :development) force Create a certificate even if an existing certificate exists false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * filename The filename of certificate to store output_path The path to a directory in which all certificates and private keys should be stored . keychain_path Path to a custom keychain * keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false platform Set the provisioning profile's platform (ios, macos, tvos) ios * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_certificates action generates the following Lane Variables: SharedValue Description SharedValues::CERT_FILE_PATH The path to the certificate SharedValues::CERT_CERTIFICATE_ID The id of the certificate To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action get_certificates CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_certificates To pass parameters, make use of the : symbol, for example fastlane run get_certificates parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"get_certificates"},{"location":"actions/get_certificates/#get_certificates","text":"Create new iOS code signing certificates (via cert ) Why? \u2022 Usage \u2022 How does it work? \u2022 Tips","title":"get_certificates"},{"location":"actions/get_certificates/#usage","text":"Note : It is recommended to use match according to the codesigning.guide for generating and maintaining your certificates. Use cert directly only if you want full control over what's going on and know more about codesigning. fastlane cert This will check if any of the available signing certificates is installed on your local machine. Only if a new certificate needs to be created, cert will Create a new private key Create a new signing request Generate, downloads and installs the certificate Import all the generated files into your Keychain cert will never revoke your existing certificates. If you can't create any more certificates, cert will raise an exception, which means, you have to revoke one of the existing certificates to make room for a new one. You can pass your Apple ID: fastlane cert -u cert@krausefx.com For a list of available commands run fastlane action cert Keep in mind, there is no way for cert to download existing certificates + private keys from the Apple Developer Portal, as the private key never leaves your computer.","title":"Usage"},{"location":"actions/get_certificates/#environment-variables","text":"Run fastlane action cert to get a list of all available environment variables.","title":"Environment Variables"},{"location":"actions/get_certificates/#use-with-sigh","text":"cert becomes really interesting when used in fastlane in combination with sigh . Update your Fastfile to contain the following code: lane :beta do cert sigh(force: true) end force: true will make sure to re-generate the provisioning profile on each run. This will result in sigh always using the correct signing certificate, which is installed on the local machine.","title":"Use with sigh"},{"location":"actions/get_certificates/#how-is-my-password-stored","text":"cert uses the password manager from fastlane . Take a look the CredentialsManager README for more information.","title":"How is my password stored?"},{"location":"actions/get_certificates/#tips","text":"","title":"Tips"},{"location":"actions/get_certificates/#use-provisionql-for-advanced-quick-look-in-finder","text":"Install ProvisionQL . It will show you mobileprovision files like this: get_certificates Supported platforms ios Author @KrauseFx","title":"Use 'ProvisionQL' for advanced Quick Look in Finder"},{"location":"actions/get_certificates/#3-examples","text":"get_certificates cert # alias for \"get_certificates\" get_certificates( development: true, username: \"user@email.com\" )","title":"3 Examples"},{"location":"actions/get_certificates/#parameters","text":"Key Description Default development Create a development certificate instead of a distribution one false type Create specific certificate type (takes precedence over :development) force Create a certificate even if an existing certificate exists false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * filename The filename of certificate to store output_path The path to a directory in which all certificates and private keys should be stored . keychain_path Path to a custom keychain * keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false platform Set the provisioning profile's platform (ios, macos, tvos) ios * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/get_certificates/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_certificates action generates the following Lane Variables: SharedValue Description SharedValues::CERT_FILE_PATH The path to the certificate SharedValues::CERT_CERTIFICATE_ID The id of the certificate To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/get_certificates/#documentation","text":"To show the documentation in your terminal, run fastlane action get_certificates","title":"Documentation"},{"location":"actions/get_certificates/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_certificates To pass parameters, make use of the : symbol, for example fastlane run get_certificates parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/get_certificates/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/get_github_release/","text":"get_github_release This will verify if a given release version is available on GitHub This will return all information about a release. For example: { \"url\"=>\"https://api.github.com/repos/KrauseFx/fastlane/releases/1537713\", \"assets_url\"=>\"https://api.github.com/repos/KrauseFx/fastlane/releases/1537713/assets\", \"upload_url\"=>\"https://uploads.github.com/repos/KrauseFx/fastlane/releases/1537713/assets{?name}\", \"html_url\"=>\"https://github.com/fastlane/fastlane/releases/tag/1.8.0\", \"id\"=>1537713, \"tag_name\"=>\"1.8.0\", \"target_commitish\"=>\"master\", \"name\"=>\"1.8.0 Switch Lanes & Pass Parameters\", \"draft\"=>false, \"author\"=> {\"login\"=>\"KrauseFx\", \"id\"=>869950, \"avatar_url\"=>\"https://avatars.githubusercontent.com/u/869950?v=3\", \"gravatar_id\"=>\"\", \"url\"=>\"https://api.github.com/users/KrauseFx\", \"html_url\"=>\"https://github.com/fastlane\", \"followers_url\"=>\"https://api.github.com/users/KrauseFx/followers\", \"following_url\"=>\"https://api.github.com/users/KrauseFx/following{/other_user}\", \"gists_url\"=>\"https://api.github.com/users/KrauseFx/gists{/gist_id}\", \"starred_url\"=>\"https://api.github.com/users/KrauseFx/starred{/owner}{/repo}\", \"subscriptions_url\"=>\"https://api.github.com/users/KrauseFx/subscriptions\", \"organizations_url\"=>\"https://api.github.com/users/KrauseFx/orgs\", \"repos_url\"=>\"https://api.github.com/users/KrauseFx/repos\", \"events_url\"=>\"https://api.github.com/users/KrauseFx/events{/privacy}\", \"received_events_url\"=>\"https://api.github.com/users/KrauseFx/received_events\", \"type\"=>\"User\", \"site_admin\"=>false}, \"prerelease\"=>false, \"created_at\"=>\"2015-07-14T23:33:01Z\", \"published_at\"=>\"2015-07-14T23:44:10Z\", \"assets\"=>[], \"tarball_url\"=>\"https://api.github.com/repos/KrauseFx/fastlane/tarball/1.8.0\", \"zipball_url\"=>\"https://api.github.com/repos/KrauseFx/fastlane/zipball/1.8.0\", \"body\"=> ...Markdown... \"This is one of the biggest updates of _fastlane_ yet\" } get_github_release Supported platforms ios, android, mac Author @KrauseFx, @czechboy0, @jaleksynas, @tommeier 1 Example release = get_github_release(url: \"fastlane/fastlane\", version: \"1.0.0\") puts release[\"name\"] Parameters Key Description Default url The path to your repo, e.g. 'KrauseFx/fastlane' server_url The server url. e.g. 'https://your.github.server/api/v3' (Default: 'https://api.github.com') https://api.github.com version The version tag of the release to check api_token GitHub Personal Token (required for private repositories) * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_github_release action generates the following Lane Variables: SharedValue Description SharedValues::GET_GITHUB_RELEASE_INFO Contains all the information about this release To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action get_github_release CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_github_release To pass parameters, make use of the : symbol, for example fastlane run get_github_release parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"get_github_release"},{"location":"actions/get_github_release/#get_github_release","text":"This will verify if a given release version is available on GitHub This will return all information about a release. For example: { \"url\"=>\"https://api.github.com/repos/KrauseFx/fastlane/releases/1537713\", \"assets_url\"=>\"https://api.github.com/repos/KrauseFx/fastlane/releases/1537713/assets\", \"upload_url\"=>\"https://uploads.github.com/repos/KrauseFx/fastlane/releases/1537713/assets{?name}\", \"html_url\"=>\"https://github.com/fastlane/fastlane/releases/tag/1.8.0\", \"id\"=>1537713, \"tag_name\"=>\"1.8.0\", \"target_commitish\"=>\"master\", \"name\"=>\"1.8.0 Switch Lanes & Pass Parameters\", \"draft\"=>false, \"author\"=> {\"login\"=>\"KrauseFx\", \"id\"=>869950, \"avatar_url\"=>\"https://avatars.githubusercontent.com/u/869950?v=3\", \"gravatar_id\"=>\"\", \"url\"=>\"https://api.github.com/users/KrauseFx\", \"html_url\"=>\"https://github.com/fastlane\", \"followers_url\"=>\"https://api.github.com/users/KrauseFx/followers\", \"following_url\"=>\"https://api.github.com/users/KrauseFx/following{/other_user}\", \"gists_url\"=>\"https://api.github.com/users/KrauseFx/gists{/gist_id}\", \"starred_url\"=>\"https://api.github.com/users/KrauseFx/starred{/owner}{/repo}\", \"subscriptions_url\"=>\"https://api.github.com/users/KrauseFx/subscriptions\", \"organizations_url\"=>\"https://api.github.com/users/KrauseFx/orgs\", \"repos_url\"=>\"https://api.github.com/users/KrauseFx/repos\", \"events_url\"=>\"https://api.github.com/users/KrauseFx/events{/privacy}\", \"received_events_url\"=>\"https://api.github.com/users/KrauseFx/received_events\", \"type\"=>\"User\", \"site_admin\"=>false}, \"prerelease\"=>false, \"created_at\"=>\"2015-07-14T23:33:01Z\", \"published_at\"=>\"2015-07-14T23:44:10Z\", \"assets\"=>[], \"tarball_url\"=>\"https://api.github.com/repos/KrauseFx/fastlane/tarball/1.8.0\", \"zipball_url\"=>\"https://api.github.com/repos/KrauseFx/fastlane/zipball/1.8.0\", \"body\"=> ...Markdown... \"This is one of the biggest updates of _fastlane_ yet\" } get_github_release Supported platforms ios, android, mac Author @KrauseFx, @czechboy0, @jaleksynas, @tommeier","title":"get_github_release"},{"location":"actions/get_github_release/#1-example","text":"release = get_github_release(url: \"fastlane/fastlane\", version: \"1.0.0\") puts release[\"name\"]","title":"1 Example"},{"location":"actions/get_github_release/#parameters","text":"Key Description Default url The path to your repo, e.g. 'KrauseFx/fastlane' server_url The server url. e.g. 'https://your.github.server/api/v3' (Default: 'https://api.github.com') https://api.github.com version The version tag of the release to check api_token GitHub Personal Token (required for private repositories) * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/get_github_release/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_github_release action generates the following Lane Variables: SharedValue Description SharedValues::GET_GITHUB_RELEASE_INFO Contains all the information about this release To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/get_github_release/#documentation","text":"To show the documentation in your terminal, run fastlane action get_github_release","title":"Documentation"},{"location":"actions/get_github_release/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_github_release To pass parameters, make use of the : symbol, for example fastlane run get_github_release parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/get_github_release/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/get_info_plist_value/","text":"get_info_plist_value Returns value from Info.plist of your project as native Ruby data structures Get a value from a plist file, which can be used to fetch the app identifier and more information about your app get_info_plist_value Supported platforms ios, mac Author @kohtenko 1 Example identifier = get_info_plist_value(path: \"./Info.plist\", key: \"CFBundleIdentifier\") Parameters Key Description Default key Name of parameter path Path to plist file you want to read * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_info_plist_value action generates the following Lane Variables: SharedValue Description SharedValues::GET_INFO_PLIST_VALUE_CUSTOM_VALUE The value of the last plist file that was parsed To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action get_info_plist_value CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_info_plist_value To pass parameters, make use of the : symbol, for example fastlane run get_info_plist_value parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"get_info_plist_value"},{"location":"actions/get_info_plist_value/#get_info_plist_value","text":"Returns value from Info.plist of your project as native Ruby data structures Get a value from a plist file, which can be used to fetch the app identifier and more information about your app get_info_plist_value Supported platforms ios, mac Author @kohtenko","title":"get_info_plist_value"},{"location":"actions/get_info_plist_value/#1-example","text":"identifier = get_info_plist_value(path: \"./Info.plist\", key: \"CFBundleIdentifier\")","title":"1 Example"},{"location":"actions/get_info_plist_value/#parameters","text":"Key Description Default key Name of parameter path Path to plist file you want to read * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/get_info_plist_value/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_info_plist_value action generates the following Lane Variables: SharedValue Description SharedValues::GET_INFO_PLIST_VALUE_CUSTOM_VALUE The value of the last plist file that was parsed To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/get_info_plist_value/#documentation","text":"To show the documentation in your terminal, run fastlane action get_info_plist_value","title":"Documentation"},{"location":"actions/get_info_plist_value/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_info_plist_value To pass parameters, make use of the : symbol, for example fastlane run get_info_plist_value parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/get_info_plist_value/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/get_ipa_info_plist_value/","text":"get_ipa_info_plist_value Returns a value from Info.plist inside a .ipa file This is useful for introspecting Info.plist files for .ipa files that have already been built. get_ipa_info_plist_value Supported platforms ios, mac Author @johnboiles Returns Returns the value in the .ipa's Info.plist corresponding to the passed in Key 1 Example get_ipa_info_plist_value(ipa: \"path.ipa\", key: \"KEY_YOU_READ\") Parameters Key Description Default key Name of parameter ipa Path to IPA * * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_ipa_info_plist_value action generates the following Lane Variables: SharedValue Description SharedValues::GET_IPA_INFO_PLIST_VALUE_CUSTOM_VALUE The value of the last plist file that was parsed To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action get_ipa_info_plist_value CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_ipa_info_plist_value To pass parameters, make use of the : symbol, for example fastlane run get_ipa_info_plist_value parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"get_ipa_info_plist_value"},{"location":"actions/get_ipa_info_plist_value/#get_ipa_info_plist_value","text":"Returns a value from Info.plist inside a .ipa file This is useful for introspecting Info.plist files for .ipa files that have already been built. get_ipa_info_plist_value Supported platforms ios, mac Author @johnboiles Returns Returns the value in the .ipa's Info.plist corresponding to the passed in Key","title":"get_ipa_info_plist_value"},{"location":"actions/get_ipa_info_plist_value/#1-example","text":"get_ipa_info_plist_value(ipa: \"path.ipa\", key: \"KEY_YOU_READ\")","title":"1 Example"},{"location":"actions/get_ipa_info_plist_value/#parameters","text":"Key Description Default key Name of parameter ipa Path to IPA * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/get_ipa_info_plist_value/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_ipa_info_plist_value action generates the following Lane Variables: SharedValue Description SharedValues::GET_IPA_INFO_PLIST_VALUE_CUSTOM_VALUE The value of the last plist file that was parsed To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/get_ipa_info_plist_value/#documentation","text":"To show the documentation in your terminal, run fastlane action get_ipa_info_plist_value","title":"Documentation"},{"location":"actions/get_ipa_info_plist_value/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_ipa_info_plist_value To pass parameters, make use of the : symbol, for example fastlane run get_ipa_info_plist_value parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/get_ipa_info_plist_value/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/get_managed_play_store_publishing_rights/","text":"get_managed_play_store_publishing_rights Obtain publishing rights for custom apps on Managed Google Play Store If you haven't done so before, start by following the first two steps of Googles \"Get started with custom app publishing\" -> \"Preliminary setup\" instructions: \" Enable the Google Play Custom App Publishing API \" and \" Create a service account \". You need the \"service account's private key file\" to continue. Run the action and supply the \"private key file\" to it as the json_key parameter. The command will output a URL to visit. After logging in you are redirected to a page that outputs your \"Developer Account ID\" - take note of that, you will need it to be able to use create_app_on_managed_play_store . get_managed_play_store_publishing_rights Supported platforms android Author @janpio Returns An URI to obtain publishing rights for custom apps on Managed Play Store 1 Example get_managed_play_store_publishing_rights( json_key: \"path/to/your/json/key/file\" ) # it is probably easier to execute this action directly in the command line: # $ fastlane run get_managed_play_store_publishing_rights Parameters Key Description Default json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action get_managed_play_store_publishing_rights CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_managed_play_store_publishing_rights To pass parameters, make use of the : symbol, for example fastlane run get_managed_play_store_publishing_rights parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"get_managed_play_store_publishing_rights"},{"location":"actions/get_managed_play_store_publishing_rights/#get_managed_play_store_publishing_rights","text":"Obtain publishing rights for custom apps on Managed Google Play Store If you haven't done so before, start by following the first two steps of Googles \"Get started with custom app publishing\" -> \"Preliminary setup\" instructions: \" Enable the Google Play Custom App Publishing API \" and \" Create a service account \". You need the \"service account's private key file\" to continue. Run the action and supply the \"private key file\" to it as the json_key parameter. The command will output a URL to visit. After logging in you are redirected to a page that outputs your \"Developer Account ID\" - take note of that, you will need it to be able to use create_app_on_managed_play_store . get_managed_play_store_publishing_rights Supported platforms android Author @janpio Returns An URI to obtain publishing rights for custom apps on Managed Play Store","title":"get_managed_play_store_publishing_rights"},{"location":"actions/get_managed_play_store_publishing_rights/#1-example","text":"get_managed_play_store_publishing_rights( json_key: \"path/to/your/json/key/file\" ) # it is probably easier to execute this action directly in the command line: # $ fastlane run get_managed_play_store_publishing_rights","title":"1 Example"},{"location":"actions/get_managed_play_store_publishing_rights/#parameters","text":"Key Description Default json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/get_managed_play_store_publishing_rights/#documentation","text":"To show the documentation in your terminal, run fastlane action get_managed_play_store_publishing_rights","title":"Documentation"},{"location":"actions/get_managed_play_store_publishing_rights/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_managed_play_store_publishing_rights To pass parameters, make use of the : symbol, for example fastlane run get_managed_play_store_publishing_rights parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/get_managed_play_store_publishing_rights/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/get_provisioning_profile/","text":"get_provisioning_profile Generates a provisioning profile, saving it in the current folder (via sigh ) Because you would rather spend your time building stuff than fighting provisioning sigh can create, renew, download and repair provisioning profiles (with one command). It supports App Store, Ad Hoc, Development and Enterprise profiles and supports nice features, like auto-adding all test devices. Features \u2022 Usage \u2022 Resign \u2022 How does it work? Features Download the latest provisioning profile for your app Renew a provisioning profile, when it has expired Repair a provisioning profile, when it is broken Create a new provisioning profile, if it doesn't exist already Supports App Store , Ad Hoc and Development profiles Support for multiple Apple accounts , storing your credentials securely in the Keychain Support for multiple Teams Support for Enterprise Profiles To automate iOS Push profiles you can use pem . Why not let Xcode do the work? sigh can easily be integrated into your CI-server (e.g. Jenkins) Xcode sometimes invalidates all existing profiles You have control over what happens You still get to have the signing files, which you can then use for your build scripts or store in git See sigh in action: Usage Note : It is recommended to use match according to the codesigning.guide for generating and maintaining your provisioning profiles. Use sigh directly only if you want full control over what's going on and know more about codesigning. fastlane sigh Yes, that's the whole command! sigh will create, repair and download profiles for the App Store by default. You can pass your bundle identifier and username like this: fastlane sigh -a com.krausefx.app -u username If you want to generate an Ad Hoc profile instead of an App Store profile: fastlane sigh --adhoc If you want to generate a Development profile: fastlane sigh --development To generate the profile in a specific directory: fastlane sigh -o \"~/Certificates/\" To download all your provisioning profiles use fastlane sigh download_all Optionally, use fastlane sigh download_all --download_xcode_profiles to also include the Xcode managed provisioning profiles For a list of available parameters and commands run fastlane action sigh Advanced By default, sigh will install the downloaded profile on your machine. If you just want to generate the profile and skip the installation, use the following flag: fastlane sigh --skip_install To save the provisioning profile under a specific name, use the -q option: fastlane sigh -a com.krausefx.app -u username -q \"myProfile.mobileprovision\" If for some reason you don't want sigh to verify that the code signing identity is installed on your local machine: fastlane sigh --skip_certificate_verification If you need the provisioning profile to be renewed regardless of its state use the --force option. This gives you a profile with the maximum lifetime. --force will also add all available devices to this profile. fastlane sigh --force By default, sigh will include all certificates on development profiles, and first certificate on other types. If you need to specify which certificate to use you can either use the environment variable SIGH_CERTIFICATE , or pass the name or expiry date of the certificate as argument: fastlane sigh -c \"SunApps GmbH\" For a list of available parameters and commands run fastlane action sigh Use with fastlane sigh becomes really interesting when used in fastlane in combination with cert . Update your Fastfile to contain the following code: lane :beta do cert sigh(force: true) end force: true will make sure to re-generate the provisioning profile on each run. This will result in sigh always using the correct signing certificate, which is installed on the local machine. Repair sigh can automatically repair all your existing provisioning profiles which are expired or just invalid. fastlane sigh repair Resign If you generated your ipa file but want to apply a different code signing onto the ipa file, you can use sigh resign : fastlane sigh resign sigh will find the ipa file and the provisioning profile for you if they are located in the current folder. You can pass more information using the command line: fastlane sigh resign ./path/app.ipa --signing_identity \"iPhone Distribution: Felix Krause\" -p \"my.mobileprovision\" Manage With sigh manage you can list all provisioning profiles installed locally. fastlane sigh manage Delete all expired provisioning profiles fastlane sigh manage -e Or delete all iOS Team Provisioning Profile by using a regular expression fastlane sigh manage -p \"iOS\\ ?Team Provisioning Profile:\" Environment Variables Run fastlane action sigh to get a list of all available environment variables. If you're using cert in combination with fastlane the signing certificate will automatically be selected for you. (make sure to run cert before sigh ) How does it work? sigh will access the iOS Dev Center to download, renew or generate the .mobileprovision file. It uses spaceship to communicate with Apple's web services. How is my password stored? sigh uses the CredentialsManager from fastlane . Tips Use 'ProvisionQL' for advanced Quick Look in Finder Install ProvisionQL . It will show you mobileprovision files like this: App Identifier couldn't be found If you also want to create a new App Identifier on the Apple Developer Portal, check out produce , which does exactly that. What happens to my Xcode managed profiles? sigh will never touch or use the profiles which are created and managed by Xcode. Instead sigh will manage its own set of provisioning profiles. get_provisioning_profile Supported platforms ios, mac Author @KrauseFx Returns The UUID of the profile sigh just fetched/generated 3 Examples get_provisioning_profile sigh # alias for \"get_provisioning_profile\" get_provisioning_profile( adhoc: true, force: true, filename: \"myFile.mobileprovision\" ) Parameters Key Description Default adhoc Setting this flag will generate AdHoc profiles instead of App Store Profiles false developer_id Setting this flag will generate Developer ID profiles instead of App Store Profiles false development Renew the development certificate instead of the production one false skip_install By default, the certificate will be added to your local machine. Setting this flag will skip this action false force Renew provisioning profiles regardless of its state - to automatically add all devices for ad hoc profiles false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false app_identifier The bundle identifier of your app * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * provisioning_name The name of the profile that is used on the Apple Developer Portal ignore_profiles_with_different_name Use in combination with :provisioning_name - when true only profiles matching this exact name will be downloaded false output_path Directory in which the profile should be stored . cert_id The ID of the code signing certificate to use (e.g. 78ADL6LVAA) cert_owner_name The certificate name to use for new profiles, or to renew with. (e.g. \"Felix Krause\") filename Filename to use for the generated provisioning profile (must include .mobileprovision) skip_fetch_profiles Skips the verification of existing profiles which is useful if you have thousands of profiles false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false skip_certificate_verification Skips the verification of the certificates for every existing profiles. This will make sure the provisioning profile can be used on the local machine * platform Set the provisioning profile's platform (i.e. ios, tvos, macos, catalyst) ios readonly Only fetch existing profile, don't generate new ones false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_provisioning_profile action generates the following Lane Variables: SharedValue Description SharedValues::SIGH_PROFILE_PATH A path in which certificates, key and profile are exported SharedValues::SIGH_PROFILE_PATHS Paths in which certificates, key and profile are exported SharedValues::SIGH_UUID UUID (Universally Unique IDentifier) of a provisioning profile SharedValues::SIGH_NAME The name of the profile SharedValues::SIGH_PROFILE_TYPE The profile type, can be app-store, ad-hoc, development, enterprise, developer-id, can be used in build_app as a default value for export_method To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action get_provisioning_profile CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_provisioning_profile To pass parameters, make use of the : symbol, for example fastlane run get_provisioning_profile parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"get_provisioning_profile"},{"location":"actions/get_provisioning_profile/#get_provisioning_profile","text":"Generates a provisioning profile, saving it in the current folder (via sigh )","title":"get_provisioning_profile"},{"location":"actions/get_provisioning_profile/#features","text":"Download the latest provisioning profile for your app Renew a provisioning profile, when it has expired Repair a provisioning profile, when it is broken Create a new provisioning profile, if it doesn't exist already Supports App Store , Ad Hoc and Development profiles Support for multiple Apple accounts , storing your credentials securely in the Keychain Support for multiple Teams Support for Enterprise Profiles To automate iOS Push profiles you can use pem .","title":"Features"},{"location":"actions/get_provisioning_profile/#usage","text":"Note : It is recommended to use match according to the codesigning.guide for generating and maintaining your provisioning profiles. Use sigh directly only if you want full control over what's going on and know more about codesigning. fastlane sigh Yes, that's the whole command! sigh will create, repair and download profiles for the App Store by default. You can pass your bundle identifier and username like this: fastlane sigh -a com.krausefx.app -u username If you want to generate an Ad Hoc profile instead of an App Store profile: fastlane sigh --adhoc If you want to generate a Development profile: fastlane sigh --development To generate the profile in a specific directory: fastlane sigh -o \"~/Certificates/\" To download all your provisioning profiles use fastlane sigh download_all Optionally, use fastlane sigh download_all --download_xcode_profiles to also include the Xcode managed provisioning profiles For a list of available parameters and commands run fastlane action sigh","title":"Usage"},{"location":"actions/get_provisioning_profile/#repair","text":"sigh can automatically repair all your existing provisioning profiles which are expired or just invalid. fastlane sigh repair","title":"Repair"},{"location":"actions/get_provisioning_profile/#resign","text":"If you generated your ipa file but want to apply a different code signing onto the ipa file, you can use sigh resign : fastlane sigh resign sigh will find the ipa file and the provisioning profile for you if they are located in the current folder. You can pass more information using the command line: fastlane sigh resign ./path/app.ipa --signing_identity \"iPhone Distribution: Felix Krause\" -p \"my.mobileprovision\"","title":"Resign"},{"location":"actions/get_provisioning_profile/#manage","text":"With sigh manage you can list all provisioning profiles installed locally. fastlane sigh manage Delete all expired provisioning profiles fastlane sigh manage -e Or delete all iOS Team Provisioning Profile by using a regular expression fastlane sigh manage -p \"iOS\\ ?Team Provisioning Profile:\"","title":"Manage"},{"location":"actions/get_provisioning_profile/#environment-variables","text":"Run fastlane action sigh to get a list of all available environment variables. If you're using cert in combination with fastlane the signing certificate will automatically be selected for you. (make sure to run cert before sigh )","title":"Environment Variables"},{"location":"actions/get_provisioning_profile/#how-does-it-work","text":"sigh will access the iOS Dev Center to download, renew or generate the .mobileprovision file. It uses spaceship to communicate with Apple's web services.","title":"How does it work?"},{"location":"actions/get_provisioning_profile/#how-is-my-password-stored","text":"sigh uses the CredentialsManager from fastlane .","title":"How is my password stored?"},{"location":"actions/get_provisioning_profile/#tips","text":"","title":"Tips"},{"location":"actions/get_provisioning_profile/#use-provisionql-for-advanced-quick-look-in-finder","text":"Install ProvisionQL . It will show you mobileprovision files like this:","title":"Use 'ProvisionQL' for advanced Quick Look in Finder"},{"location":"actions/get_provisioning_profile/#app-identifier-couldnt-be-found","text":"If you also want to create a new App Identifier on the Apple Developer Portal, check out produce , which does exactly that.","title":"App Identifier couldn't be found"},{"location":"actions/get_provisioning_profile/#what-happens-to-my-xcode-managed-profiles","text":"sigh will never touch or use the profiles which are created and managed by Xcode. Instead sigh will manage its own set of provisioning profiles. get_provisioning_profile Supported platforms ios, mac Author @KrauseFx Returns The UUID of the profile sigh just fetched/generated","title":"What happens to my Xcode managed profiles?"},{"location":"actions/get_provisioning_profile/#3-examples","text":"get_provisioning_profile sigh # alias for \"get_provisioning_profile\" get_provisioning_profile( adhoc: true, force: true, filename: \"myFile.mobileprovision\" )","title":"3 Examples"},{"location":"actions/get_provisioning_profile/#parameters","text":"Key Description Default adhoc Setting this flag will generate AdHoc profiles instead of App Store Profiles false developer_id Setting this flag will generate Developer ID profiles instead of App Store Profiles false development Renew the development certificate instead of the production one false skip_install By default, the certificate will be added to your local machine. Setting this flag will skip this action false force Renew provisioning profiles regardless of its state - to automatically add all devices for ad hoc profiles false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false app_identifier The bundle identifier of your app * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * provisioning_name The name of the profile that is used on the Apple Developer Portal ignore_profiles_with_different_name Use in combination with :provisioning_name - when true only profiles matching this exact name will be downloaded false output_path Directory in which the profile should be stored . cert_id The ID of the code signing certificate to use (e.g. 78ADL6LVAA) cert_owner_name The certificate name to use for new profiles, or to renew with. (e.g. \"Felix Krause\") filename Filename to use for the generated provisioning profile (must include .mobileprovision) skip_fetch_profiles Skips the verification of existing profiles which is useful if you have thousands of profiles false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false skip_certificate_verification Skips the verification of the certificates for every existing profiles. This will make sure the provisioning profile can be used on the local machine * platform Set the provisioning profile's platform (i.e. ios, tvos, macos, catalyst) ios readonly Only fetch existing profile, don't generate new ones false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/get_provisioning_profile/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_provisioning_profile action generates the following Lane Variables: SharedValue Description SharedValues::SIGH_PROFILE_PATH A path in which certificates, key and profile are exported SharedValues::SIGH_PROFILE_PATHS Paths in which certificates, key and profile are exported SharedValues::SIGH_UUID UUID (Universally Unique IDentifier) of a provisioning profile SharedValues::SIGH_NAME The name of the profile SharedValues::SIGH_PROFILE_TYPE The profile type, can be app-store, ad-hoc, development, enterprise, developer-id, can be used in build_app as a default value for export_method To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/get_provisioning_profile/#documentation","text":"To show the documentation in your terminal, run fastlane action get_provisioning_profile","title":"Documentation"},{"location":"actions/get_provisioning_profile/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_provisioning_profile To pass parameters, make use of the : symbol, for example fastlane run get_provisioning_profile parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/get_provisioning_profile/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/get_push_certificate/","text":"get_push_certificate Ensure a valid push profile is active, creating a new one if needed (via pem ) Automatically generate and renew your push notification profiles Tired of manually creating and maintaining your push notification profiles for your iOS apps? Tired of generating a pem file for your server? pem does all that for you, just by simply running pem . pem creates new .pem, .cer, and .p12 files to be uploaded to your push server if a valid push notification profile is needed. pem does not cover uploading the file to your server. To automate iOS Provisioning profiles you can use match . Features \u2022 Usage \u2022 How does it work? \u2022 Tips \u2022 Need help? pem is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Features Well, it's actually just one: Generate the pem file for your server. Check out this gif: Usage fastlane pem Yes, that's the whole command! This does the following: Create a new signing request Create a new push certification Downloads the certificate Generates a new .pem file in the current working directory, which you can upload to your server Note that pem will never revoke your existing certificates. pem can't download any of your existing push certificates, as the private key is only available on the machine it was created on. If you already have a push certificate enabled, which is active for at least 30 more days, pem will not create a new certificate. If you still want to create one, use the force : fastlane pem --force You can pass parameters like this: fastlane pem -a com.krausefx.app -u username If you want to generate a development certificate instead: fastlane pem --development If you want to generate a Website Push certificate: fastlane pem --website_push Set a password for your p12 file: fastlane pem -p \"MyPass\" You can specify a name for the output file: fastlane pem -o my.pem To get a list of available options run: fastlane action pem Note about empty p12 passwords and Keychain Access.app pem will produce a valid p12 without specifying a password, or using the empty-string as the password. While the file is valid, the Mac's Keychain Access will not allow you to open the file without specifying a passphrase. Instead, you may verify the file is valid using OpenSSL: openssl pkcs12 -info -in my.p12 If you need the p12 in your keychain, perhaps to test push with an app like Knuff or Pusher , you can use openssl to export the p12 to pem and back to p12 : % openssl pkcs12 -in my.p12 -out my.pem Enter Import Password: MAC verified OK Enter your pem passphrase: % openssl pkcs12 -export -in my.pem -out my-with-passphrase.p12 Enter pass phrase for temp.pem: Enter Export Password: Environment Variables Run fastlane action pem to get a list of available environment variables. How does it work? pem uses spaceship to communicate with the Apple Developer Portal to request a new push certificate for you. How is my password stored? pem uses the password manager from fastlane . Take a look the CredentialsManager README for more information. get_push_certificate Supported platforms ios, mac Author @KrauseFx 3 Examples get_push_certificate pem # alias for \"get_push_certificate\" get_push_certificate( force: true, # create a new profile, even if the old one is still valid app_identifier: \"net.sunapps.9\", # optional app identifier, save_private_key: true, new_profile: proc do |profile_path| # this block gets called when a new profile was generated puts profile_path # the absolute path to the new PEM file # insert the code to upload the PEM file to the server end ) Parameters Key Description Default platform Set certificate's platform. Used for creation of production & development certificates. Supported platforms: ios, macos ios development Renew the development push certificate instead of the production one false website_push Create a Website Push certificate false generate_p12 Generate a p12 file additionally to a PEM file true active_days_limit If the current certificate is active for less than this number of days, generate a new one 30 force Create a new push certificate, even if the current one is active for 30 (or PEM_ACTIVE_DAYS_LIMIT) more days false save_private_key Set to save the private RSA key true app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * p12_password The password that is used for your p12 file pem_name The file name of the generated .pem file output_path The path to a directory in which all certificates and private keys should be stored . new_profile Block that is called if there is a new profile * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action get_push_certificate CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_push_certificate To pass parameters, make use of the : symbol, for example fastlane run get_push_certificate parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"get_push_certificate"},{"location":"actions/get_push_certificate/#get_push_certificate","text":"Ensure a valid push profile is active, creating a new one if needed (via pem )","title":"get_push_certificate"},{"location":"actions/get_push_certificate/#features","text":"Well, it's actually just one: Generate the pem file for your server. Check out this gif:","title":"Features"},{"location":"actions/get_push_certificate/#usage","text":"fastlane pem Yes, that's the whole command! This does the following: Create a new signing request Create a new push certification Downloads the certificate Generates a new .pem file in the current working directory, which you can upload to your server Note that pem will never revoke your existing certificates. pem can't download any of your existing push certificates, as the private key is only available on the machine it was created on. If you already have a push certificate enabled, which is active for at least 30 more days, pem will not create a new certificate. If you still want to create one, use the force : fastlane pem --force You can pass parameters like this: fastlane pem -a com.krausefx.app -u username If you want to generate a development certificate instead: fastlane pem --development If you want to generate a Website Push certificate: fastlane pem --website_push Set a password for your p12 file: fastlane pem -p \"MyPass\" You can specify a name for the output file: fastlane pem -o my.pem To get a list of available options run: fastlane action pem","title":"Usage"},{"location":"actions/get_push_certificate/#environment-variables","text":"Run fastlane action pem to get a list of available environment variables.","title":"Environment Variables"},{"location":"actions/get_push_certificate/#how-does-it-work","text":"pem uses spaceship to communicate with the Apple Developer Portal to request a new push certificate for you.","title":"How does it work?"},{"location":"actions/get_push_certificate/#how-is-my-password-stored","text":"pem uses the password manager from fastlane . Take a look the CredentialsManager README for more information. get_push_certificate Supported platforms ios, mac Author @KrauseFx","title":"How is my password stored?"},{"location":"actions/get_push_certificate/#3-examples","text":"get_push_certificate pem # alias for \"get_push_certificate\" get_push_certificate( force: true, # create a new profile, even if the old one is still valid app_identifier: \"net.sunapps.9\", # optional app identifier, save_private_key: true, new_profile: proc do |profile_path| # this block gets called when a new profile was generated puts profile_path # the absolute path to the new PEM file # insert the code to upload the PEM file to the server end )","title":"3 Examples"},{"location":"actions/get_push_certificate/#parameters","text":"Key Description Default platform Set certificate's platform. Used for creation of production & development certificates. Supported platforms: ios, macos ios development Renew the development push certificate instead of the production one false website_push Create a Website Push certificate false generate_p12 Generate a p12 file additionally to a PEM file true active_days_limit If the current certificate is active for less than this number of days, generate a new one 30 force Create a new push certificate, even if the current one is active for 30 (or PEM_ACTIVE_DAYS_LIMIT) more days false save_private_key Set to save the private RSA key true app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * p12_password The password that is used for your p12 file pem_name The file name of the generated .pem file output_path The path to a directory in which all certificates and private keys should be stored . new_profile Block that is called if there is a new profile * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/get_push_certificate/#documentation","text":"To show the documentation in your terminal, run fastlane action get_push_certificate","title":"Documentation"},{"location":"actions/get_push_certificate/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_push_certificate To pass parameters, make use of the : symbol, for example fastlane run get_push_certificate parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/get_push_certificate/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/get_version_number/","text":"get_version_number Get the version number of your project This action will return the current version number set on your project. It first looks in the plist and then for '$(MARKETING_VERSION)' in the build settings. get_version_number Supported platforms ios, mac Author @Liquidsoul, @joshdholtz 2 Examples version = get_version_number(xcodeproj: \"Project.xcodeproj\") version = get_version_number( xcodeproj: \"Project.xcodeproj\", target: \"App\" ) Parameters Key Description Default xcodeproj Path to the Xcode project to read version number from, or its containing directory, optional. If omitted, or if a directory is passed instead, it will use the first Xcode project found within the given directory, or the project root directory if none is passed target Target name, optional. Will be needed if you have more than one non-test target to avoid being prompted to select one configuration Configuration name, optional. Will be needed if you have altered the configurations from the default or your version number depends on the configuration selected * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_version_number action generates the following Lane Variables: SharedValue Description SharedValues::VERSION_NUMBER The version number To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action get_version_number CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_version_number To pass parameters, make use of the : symbol, for example fastlane run get_version_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"get_version_number"},{"location":"actions/get_version_number/#get_version_number","text":"Get the version number of your project This action will return the current version number set on your project. It first looks in the plist and then for '$(MARKETING_VERSION)' in the build settings. get_version_number Supported platforms ios, mac Author @Liquidsoul, @joshdholtz","title":"get_version_number"},{"location":"actions/get_version_number/#2-examples","text":"version = get_version_number(xcodeproj: \"Project.xcodeproj\") version = get_version_number( xcodeproj: \"Project.xcodeproj\", target: \"App\" )","title":"2 Examples"},{"location":"actions/get_version_number/#parameters","text":"Key Description Default xcodeproj Path to the Xcode project to read version number from, or its containing directory, optional. If omitted, or if a directory is passed instead, it will use the first Xcode project found within the given directory, or the project root directory if none is passed target Target name, optional. Will be needed if you have more than one non-test target to avoid being prompted to select one configuration Configuration name, optional. Will be needed if you have altered the configurations from the default or your version number depends on the configuration selected * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/get_version_number/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_version_number action generates the following Lane Variables: SharedValue Description SharedValues::VERSION_NUMBER The version number To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/get_version_number/#documentation","text":"To show the documentation in your terminal, run fastlane action get_version_number","title":"Documentation"},{"location":"actions/get_version_number/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_version_number To pass parameters, make use of the : symbol, for example fastlane run get_version_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/get_version_number/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/git_add/","text":"git_add Directly add the given file or all files git_add Supported platforms ios, android, mac Author @4brunu, @antondomashnev 7 Examples git_add git_add(path: \"./version.txt\") git_add(path: [\"./version.txt\", \"./changelog.txt\"]) git_add(path: \"./Frameworks/*\", shell_escape: false) git_add(path: [\"*.h\", \"*.m\"], shell_escape: false) git_add(path: \"./Frameworks/*\", shell_escape: false) git_add(path: \"*.txt\", shell_escape: false) Parameters Key Description Default path The file(s) and path(s) you want to add shell_escape Shell escapes paths (set to false if using wildcards or manually escaping spaces in :path) true pathspec DEPRECATED! Use --path instead - The pathspec you want to add files from * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action git_add CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_add To pass parameters, make use of the : symbol, for example fastlane run git_add parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"git_add"},{"location":"actions/git_add/#git_add","text":"Directly add the given file or all files git_add Supported platforms ios, android, mac Author @4brunu, @antondomashnev","title":"git_add"},{"location":"actions/git_add/#7-examples","text":"git_add git_add(path: \"./version.txt\") git_add(path: [\"./version.txt\", \"./changelog.txt\"]) git_add(path: \"./Frameworks/*\", shell_escape: false) git_add(path: [\"*.h\", \"*.m\"], shell_escape: false) git_add(path: \"./Frameworks/*\", shell_escape: false) git_add(path: \"*.txt\", shell_escape: false)","title":"7 Examples"},{"location":"actions/git_add/#parameters","text":"Key Description Default path The file(s) and path(s) you want to add shell_escape Shell escapes paths (set to false if using wildcards or manually escaping spaces in :path) true pathspec DEPRECATED! Use --path instead - The pathspec you want to add files from * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/git_add/#documentation","text":"To show the documentation in your terminal, run fastlane action git_add","title":"Documentation"},{"location":"actions/git_add/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_add To pass parameters, make use of the : symbol, for example fastlane run git_add parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/git_add/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/git_branch/","text":"git_branch Returns the name of the current git branch, possibly as managed by CI ENV vars If no branch could be found, this action will return an empty string. This is a wrapper for the internal action Actions.git_branch git_branch Supported platforms ios, android, mac Author @KrauseFx 1 Example git_branch Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The git_branch action generates the following Lane Variables: SharedValue Description SharedValues::GIT_BRANCH_ENV_VARS The git branch environment variables To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action git_branch CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_branch To pass parameters, make use of the : symbol, for example fastlane run git_branch parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"git_branch"},{"location":"actions/git_branch/#git_branch","text":"Returns the name of the current git branch, possibly as managed by CI ENV vars If no branch could be found, this action will return an empty string. This is a wrapper for the internal action Actions.git_branch git_branch Supported platforms ios, android, mac Author @KrauseFx","title":"git_branch"},{"location":"actions/git_branch/#1-example","text":"git_branch","title":"1 Example"},{"location":"actions/git_branch/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The git_branch action generates the following Lane Variables: SharedValue Description SharedValues::GIT_BRANCH_ENV_VARS The git branch environment variables To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/git_branch/#documentation","text":"To show the documentation in your terminal, run fastlane action git_branch","title":"Documentation"},{"location":"actions/git_branch/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_branch To pass parameters, make use of the : symbol, for example fastlane run git_branch parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/git_branch/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/git_commit/","text":"git_commit Directly commit the given file with the given message git_commit Supported platforms ios, android, mac Author @KrauseFx 4 Examples git_commit(path: \"./version.txt\", message: \"Version Bump\") git_commit(path: [\"./version.txt\", \"./changelog.txt\"], message: \"Version Bump\") git_commit(path: [\"./*.txt\", \"./*.md\"], message: \"Update documentation\") git_commit(path: [\"./*.txt\", \"./*.md\"], message: \"Update documentation\", skip_git_hooks: true) Parameters Key Description Default path The file(s) or directory(ies) you want to commit. You can pass an array of multiple file-paths or fileglobs \"*.txt\" to commit all matching files. The files already staged but not specified and untracked files won't be committed message The commit message that should be used skip_git_hooks Set to true to pass --no-verify to git false allow_nothing_to_commit Set to true to allow commit without any git changes in the files you want to commit false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action git_commit CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_commit To pass parameters, make use of the : symbol, for example fastlane run git_commit parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"git_commit"},{"location":"actions/git_commit/#git_commit","text":"Directly commit the given file with the given message git_commit Supported platforms ios, android, mac Author @KrauseFx","title":"git_commit"},{"location":"actions/git_commit/#4-examples","text":"git_commit(path: \"./version.txt\", message: \"Version Bump\") git_commit(path: [\"./version.txt\", \"./changelog.txt\"], message: \"Version Bump\") git_commit(path: [\"./*.txt\", \"./*.md\"], message: \"Update documentation\") git_commit(path: [\"./*.txt\", \"./*.md\"], message: \"Update documentation\", skip_git_hooks: true)","title":"4 Examples"},{"location":"actions/git_commit/#parameters","text":"Key Description Default path The file(s) or directory(ies) you want to commit. You can pass an array of multiple file-paths or fileglobs \"*.txt\" to commit all matching files. The files already staged but not specified and untracked files won't be committed message The commit message that should be used skip_git_hooks Set to true to pass --no-verify to git false allow_nothing_to_commit Set to true to allow commit without any git changes in the files you want to commit false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/git_commit/#documentation","text":"To show the documentation in your terminal, run fastlane action git_commit","title":"Documentation"},{"location":"actions/git_commit/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_commit To pass parameters, make use of the : symbol, for example fastlane run git_commit parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/git_commit/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/git_pull/","text":"git_pull Executes a simple git pull command git_pull Supported platforms ios, android, mac Author @KrauseFx, @JaviSoto 3 Examples git_pull git_pull(only_tags: true) # only the tags, no commits git_pull(rebase: true) # use --rebase with pull Parameters Key Description Default only_tags Simply pull the tags, and not bring new commits to the current branch from the remote false rebase Rebase on top of the remote branch instead of merge false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action git_pull CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_pull To pass parameters, make use of the : symbol, for example fastlane run git_pull parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"git_pull"},{"location":"actions/git_pull/#git_pull","text":"Executes a simple git pull command git_pull Supported platforms ios, android, mac Author @KrauseFx, @JaviSoto","title":"git_pull"},{"location":"actions/git_pull/#3-examples","text":"git_pull git_pull(only_tags: true) # only the tags, no commits git_pull(rebase: true) # use --rebase with pull","title":"3 Examples"},{"location":"actions/git_pull/#parameters","text":"Key Description Default only_tags Simply pull the tags, and not bring new commits to the current branch from the remote false rebase Rebase on top of the remote branch instead of merge false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/git_pull/#documentation","text":"To show the documentation in your terminal, run fastlane action git_pull","title":"Documentation"},{"location":"actions/git_pull/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_pull To pass parameters, make use of the : symbol, for example fastlane run git_pull parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/git_pull/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/git_remote_branch/","text":"git_remote_branch Returns the name of the current git remote default branch If no default remote branch could be found, this action will return nil. This is a wrapper for the internal action Actions.git_default_remote_branch_name git_remote_branch Supported platforms ios, android, mac Author @SeanMcNeil 2 Examples git_remote_branch # Query git for first available remote name git_remote_branch(remote_name:\"upstream\") # Provide a remote name Parameters Key Description Default remote_name The remote repository to check * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action git_remote_branch CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_remote_branch To pass parameters, make use of the : symbol, for example fastlane run git_remote_branch parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"git_remote_branch"},{"location":"actions/git_remote_branch/#git_remote_branch","text":"Returns the name of the current git remote default branch If no default remote branch could be found, this action will return nil. This is a wrapper for the internal action Actions.git_default_remote_branch_name git_remote_branch Supported platforms ios, android, mac Author @SeanMcNeil","title":"git_remote_branch"},{"location":"actions/git_remote_branch/#2-examples","text":"git_remote_branch # Query git for first available remote name git_remote_branch(remote_name:\"upstream\") # Provide a remote name","title":"2 Examples"},{"location":"actions/git_remote_branch/#parameters","text":"Key Description Default remote_name The remote repository to check * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/git_remote_branch/#documentation","text":"To show the documentation in your terminal, run fastlane action git_remote_branch","title":"Documentation"},{"location":"actions/git_remote_branch/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_remote_branch To pass parameters, make use of the : symbol, for example fastlane run git_remote_branch parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/git_remote_branch/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/git_submodule_update/","text":"git_submodule_update Executes a git submodule update command git_submodule_update Supported platforms ios, android, mac Author @braunico 4 Examples git_submodule_update git_submodule_update(recursive: true) git_submodule_update(init: true) git_submodule_update(recursive: true, init: true) Parameters Key Description Default recursive Should the submodules be updated recursively? false init Should the submodules be initiated before update? false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action git_submodule_update CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_submodule_update To pass parameters, make use of the : symbol, for example fastlane run git_submodule_update parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"git_submodule_update"},{"location":"actions/git_submodule_update/#git_submodule_update","text":"Executes a git submodule update command git_submodule_update Supported platforms ios, android, mac Author @braunico","title":"git_submodule_update"},{"location":"actions/git_submodule_update/#4-examples","text":"git_submodule_update git_submodule_update(recursive: true) git_submodule_update(init: true) git_submodule_update(recursive: true, init: true)","title":"4 Examples"},{"location":"actions/git_submodule_update/#parameters","text":"Key Description Default recursive Should the submodules be updated recursively? false init Should the submodules be initiated before update? false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/git_submodule_update/#documentation","text":"To show the documentation in your terminal, run fastlane action git_submodule_update","title":"Documentation"},{"location":"actions/git_submodule_update/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_submodule_update To pass parameters, make use of the : symbol, for example fastlane run git_submodule_update parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/git_submodule_update/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/git_tag_exists/","text":"git_tag_exists Checks if the git tag with the given name exists in the current repo git_tag_exists Supported platforms ios, android, mac Author @antondomashnev Returns Boolean value whether the tag exists or not 1 Example if git_tag_exists(tag: \"1.1.0\") UI.message(\"Found it \ud83d\ude80\") end Parameters Key Description Default tag The tag name that should be checked remote Whether to check remote. Defaults to false false remote_name The remote to check. Defaults to origin origin * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action git_tag_exists CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_tag_exists To pass parameters, make use of the : symbol, for example fastlane run git_tag_exists parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"git_tag_exists"},{"location":"actions/git_tag_exists/#git_tag_exists","text":"Checks if the git tag with the given name exists in the current repo git_tag_exists Supported platforms ios, android, mac Author @antondomashnev Returns Boolean value whether the tag exists or not","title":"git_tag_exists"},{"location":"actions/git_tag_exists/#1-example","text":"if git_tag_exists(tag: \"1.1.0\") UI.message(\"Found it \ud83d\ude80\") end","title":"1 Example"},{"location":"actions/git_tag_exists/#parameters","text":"Key Description Default tag The tag name that should be checked remote Whether to check remote. Defaults to false false remote_name The remote to check. Defaults to origin origin * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/git_tag_exists/#documentation","text":"To show the documentation in your terminal, run fastlane action git_tag_exists","title":"Documentation"},{"location":"actions/git_tag_exists/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_tag_exists To pass parameters, make use of the : symbol, for example fastlane run git_tag_exists parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/git_tag_exists/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/github_api/","text":"github_api Call a GitHub API endpoint and get the resulting JSON response Calls any GitHub API endpoint. You must provide your GitHub Personal token (get one from https://github.com/settings/tokens/new ). Out parameters provide the status code and the full response JSON if valid, otherwise the raw response body. Documentation: https://developer.github.com/v3 . github_api Supported platforms ios, android, mac Author @tommeier Returns A hash including the HTTP status code (:status), the response body (:body), and if valid JSON has been returned the parsed JSON (:json). 2 Examples result = github_api( server_url: \"https://api.github.com\", api_token: ENV[\"GITHUB_TOKEN\"], http_method: \"GET\", path: \"/repos/:owner/:repo/readme\", body: { ref: \"master\" } ) # Alternatively call directly with optional error handling or block usage GithubApiAction.run( server_url: \"https://api.github.com\", api_token: ENV[\"GITHUB_TOKEN\"], http_method: \"GET\", path: \"/repos/:owner/:repo/readme\", error_handlers: { 404 => proc do |result| UI.message(\"Something went wrong - I couldn't find it...\") end, '*' => proc do |result| UI.message(\"Handle all error codes other than 404\") end } ) do |result| UI.message(\"JSON returned: #{result[:json]}\") end Parameters Key Description Default server_url The server url. e.g. 'https://your.internal.github.host/api/v3' (Default: 'https://api.github.com') https://api.github.com api_token Personal API Token for GitHub - generate one at https://github.com/settings/tokens * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable http_method The HTTP method. e.g. GET / POST GET body The request body in JSON or hash format {} raw_body The request body taken verbatim instead of as JSON, useful for file uploads path The endpoint path. e.g. '/repos/:owner/:repo/readme' url The complete full url - used instead of path. e.g. 'https://uploads.github.com/repos/fastlane...' error_handlers Optional error handling hash based on status code, or pass '*' to handle all errors {} headers Optional headers to apply {} secure Optionally disable secure requests (ssl_verify_peer) true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The github_api action generates the following Lane Variables: SharedValue Description SharedValues::GITHUB_API_STATUS_CODE The status code returned from the request SharedValues::GITHUB_API_RESPONSE The full response body SharedValues::GITHUB_API_JSON The parsed json returned from GitHub To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action github_api CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run github_api To pass parameters, make use of the : symbol, for example fastlane run github_api parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"github_api"},{"location":"actions/github_api/#github_api","text":"Call a GitHub API endpoint and get the resulting JSON response Calls any GitHub API endpoint. You must provide your GitHub Personal token (get one from https://github.com/settings/tokens/new ). Out parameters provide the status code and the full response JSON if valid, otherwise the raw response body. Documentation: https://developer.github.com/v3 . github_api Supported platforms ios, android, mac Author @tommeier Returns A hash including the HTTP status code (:status), the response body (:body), and if valid JSON has been returned the parsed JSON (:json).","title":"github_api"},{"location":"actions/github_api/#2-examples","text":"result = github_api( server_url: \"https://api.github.com\", api_token: ENV[\"GITHUB_TOKEN\"], http_method: \"GET\", path: \"/repos/:owner/:repo/readme\", body: { ref: \"master\" } ) # Alternatively call directly with optional error handling or block usage GithubApiAction.run( server_url: \"https://api.github.com\", api_token: ENV[\"GITHUB_TOKEN\"], http_method: \"GET\", path: \"/repos/:owner/:repo/readme\", error_handlers: { 404 => proc do |result| UI.message(\"Something went wrong - I couldn't find it...\") end, '*' => proc do |result| UI.message(\"Handle all error codes other than 404\") end } ) do |result| UI.message(\"JSON returned: #{result[:json]}\") end","title":"2 Examples"},{"location":"actions/github_api/#parameters","text":"Key Description Default server_url The server url. e.g. 'https://your.internal.github.host/api/v3' (Default: 'https://api.github.com') https://api.github.com api_token Personal API Token for GitHub - generate one at https://github.com/settings/tokens * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable http_method The HTTP method. e.g. GET / POST GET body The request body in JSON or hash format {} raw_body The request body taken verbatim instead of as JSON, useful for file uploads path The endpoint path. e.g. '/repos/:owner/:repo/readme' url The complete full url - used instead of path. e.g. 'https://uploads.github.com/repos/fastlane...' error_handlers Optional error handling hash based on status code, or pass '*' to handle all errors {} headers Optional headers to apply {} secure Optionally disable secure requests (ssl_verify_peer) true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/github_api/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The github_api action generates the following Lane Variables: SharedValue Description SharedValues::GITHUB_API_STATUS_CODE The status code returned from the request SharedValues::GITHUB_API_RESPONSE The full response body SharedValues::GITHUB_API_JSON The parsed json returned from GitHub To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/github_api/#documentation","text":"To show the documentation in your terminal, run fastlane action github_api","title":"Documentation"},{"location":"actions/github_api/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run github_api To pass parameters, make use of the : symbol, for example fastlane run github_api parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/github_api/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/google_play_track_release_names/","text":"google_play_track_release_names Retrieves release names for a Google Play track More information: https://docs.fastlane.tools/actions/supply/ google_play_track_release_names Supported platforms android Author @raldred Returns Array of strings representing the release names for the given Google Play track 1 Example google_play_track_release_names Parameters Key Description Default package_name The package name of the application to use * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action google_play_track_release_names CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run google_play_track_release_names To pass parameters, make use of the : symbol, for example fastlane run google_play_track_release_names parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"google_play_track_release_names"},{"location":"actions/google_play_track_release_names/#google_play_track_release_names","text":"Retrieves release names for a Google Play track More information: https://docs.fastlane.tools/actions/supply/ google_play_track_release_names Supported platforms android Author @raldred Returns Array of strings representing the release names for the given Google Play track","title":"google_play_track_release_names"},{"location":"actions/google_play_track_release_names/#1-example","text":"google_play_track_release_names","title":"1 Example"},{"location":"actions/google_play_track_release_names/#parameters","text":"Key Description Default package_name The package name of the application to use * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/google_play_track_release_names/#documentation","text":"To show the documentation in your terminal, run fastlane action google_play_track_release_names","title":"Documentation"},{"location":"actions/google_play_track_release_names/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run google_play_track_release_names To pass parameters, make use of the : symbol, for example fastlane run google_play_track_release_names parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/google_play_track_release_names/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/google_play_track_version_codes/","text":"google_play_track_version_codes Retrieves version codes for a Google Play track More information: https://docs.fastlane.tools/actions/supply/ google_play_track_version_codes Supported platforms android Author @panthomakos Returns Array of integers representing the version codes for the given Google Play track 1 Example google_play_track_version_codes Parameters Key Description Default package_name The package name of the application to use * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action google_play_track_version_codes CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run google_play_track_version_codes To pass parameters, make use of the : symbol, for example fastlane run google_play_track_version_codes parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"google_play_track_version_codes"},{"location":"actions/google_play_track_version_codes/#google_play_track_version_codes","text":"Retrieves version codes for a Google Play track More information: https://docs.fastlane.tools/actions/supply/ google_play_track_version_codes Supported platforms android Author @panthomakos Returns Array of integers representing the version codes for the given Google Play track","title":"google_play_track_version_codes"},{"location":"actions/google_play_track_version_codes/#1-example","text":"google_play_track_version_codes","title":"1 Example"},{"location":"actions/google_play_track_version_codes/#parameters","text":"Key Description Default package_name The package name of the application to use * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/google_play_track_version_codes/#documentation","text":"To show the documentation in your terminal, run fastlane action google_play_track_version_codes","title":"Documentation"},{"location":"actions/google_play_track_version_codes/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run google_play_track_version_codes To pass parameters, make use of the : symbol, for example fastlane run google_play_track_version_codes parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/google_play_track_version_codes/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/gradle/","text":"gradle All gradle related actions, including building and testing your Android app Run ./gradlew tasks to get a list of all available gradle tasks for your project gradle Supported platforms ios, android Author @KrauseFx, @lmirosevic Returns The output of running the gradle task 1 Example gradle( task: \"assemble\", flavor: \"WorldDomination\", build_type: \"Release\" ) To build an AAB use: gradle( task: \"bundle\", flavor: \"WorldDomination\", build_type: \"Release\" ) You can pass multiple gradle tasks: gradle( tasks: [\"assembleDebug\", \"bundleDebug\"] ) You can pass properties to gradle: gradle( # ... properties: { \"exampleNumber\" => 100, \"exampleString\" => \"1.0.0\", # ... } ) You can use this to change the version code and name of your app: gradle( # ... properties: { \"android.injected.version.code\" => 100, \"android.injected.version.name\" => \"1.0.0\", # ... } ) You can use this to automatically sign and zipalign your app: gradle( task: \"assemble\", build_type: \"Release\", print_command: false, properties: { \"android.injected.signing.store.file\" => \"keystore.jks\", \"android.injected.signing.store.password\" => \"store_password\", \"android.injected.signing.key.alias\" => \"key_alias\", \"android.injected.signing.key.password\" => \"key_password\", } ) If you need to pass sensitive information through the gradle action, and don't want the generated command to be printed before it is run, you can suppress that: gradle( # ... print_command: false ) You can also suppress printing the output generated by running the generated Gradle command: gradle( # ... print_command_output: false ) To pass any other CLI flags to gradle use: gradle( # ... flags: \"--exitcode --xml file.xml\" ) Delete the build directory, generated APKs and AABs gradle( task: \"clean\" ) Parameters Key Description Default task The gradle task you want to execute, e.g. assemble , bundle or test . For tasks such as assembleMyFlavorRelease you should use gradle(task: 'assemble', flavor: 'Myflavor', build_type: 'Release') flavor The flavor that you want the task for, e.g. MyFlavor . If you are running the assemble task in a multi-flavor project, and you rely on Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH] then you must specify a flavor here or else this value will be undefined build_type The build type that you want the task for, e.g. Release . Useful for some tasks such as assemble tasks The multiple gradle tasks that you want to execute, e.g. [assembleDebug, bundleDebug] flags All parameter flags you want to pass to the gradle command, e.g. --exitcode --xml file.xml project_dir The root directory of the gradle project . gradle_path The path to your gradlew . If you specify a relative path, it is assumed to be relative to the project_dir properties Gradle properties to be exposed to the gradle script system_properties Gradle system properties to be exposed to the gradle script serial Android serial, which device should be used for this command '' print_command Control whether the generated Gradle command is printed as output before running it (true/false) true print_command_output Control whether the output produced by given Gradle command is printed while running (true/false) true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The gradle action generates the following Lane Variables: SharedValue Description SharedValues::GRADLE_APK_OUTPUT_PATH The path to the newly generated apk file. Undefined in a multi-variant assemble scenario SharedValues::GRADLE_ALL_APK_OUTPUT_PATHS When running a multi-variant assemble , the array of signed apk's that were generated SharedValues::GRADLE_FLAVOR The flavor, e.g. MyFlavor SharedValues::GRADLE_BUILD_TYPE The build type, e.g. Release SharedValues::GRADLE_AAB_OUTPUT_PATH The path to the most recent Android app bundle SharedValues::GRADLE_ALL_AAB_OUTPUT_PATHS The paths to the most recent Android app bundles SharedValues::GRADLE_OUTPUT_JSON_OUTPUT_PATH The path to the most recent output.json file SharedValues::GRADLE_ALL_OUTPUT_JSON_OUTPUT_PATHS The path to the newly generated output.json files SharedValues::GRADLE_MAPPING_TXT_OUTPUT_PATH The path to the most recent mapping.txt file SharedValues::GRADLE_ALL_MAPPING_TXT_OUTPUT_PATHS The path to the newly generated mapping.txt files To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action gradle CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run gradle To pass parameters, make use of the : symbol, for example fastlane run gradle parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"gradle"},{"location":"actions/gradle/#gradle","text":"All gradle related actions, including building and testing your Android app Run ./gradlew tasks to get a list of all available gradle tasks for your project gradle Supported platforms ios, android Author @KrauseFx, @lmirosevic Returns The output of running the gradle task","title":"gradle"},{"location":"actions/gradle/#1-example","text":"gradle( task: \"assemble\", flavor: \"WorldDomination\", build_type: \"Release\" ) To build an AAB use: gradle( task: \"bundle\", flavor: \"WorldDomination\", build_type: \"Release\" ) You can pass multiple gradle tasks: gradle( tasks: [\"assembleDebug\", \"bundleDebug\"] ) You can pass properties to gradle: gradle( # ... properties: { \"exampleNumber\" => 100, \"exampleString\" => \"1.0.0\", # ... } ) You can use this to change the version code and name of your app: gradle( # ... properties: { \"android.injected.version.code\" => 100, \"android.injected.version.name\" => \"1.0.0\", # ... } ) You can use this to automatically sign and zipalign your app: gradle( task: \"assemble\", build_type: \"Release\", print_command: false, properties: { \"android.injected.signing.store.file\" => \"keystore.jks\", \"android.injected.signing.store.password\" => \"store_password\", \"android.injected.signing.key.alias\" => \"key_alias\", \"android.injected.signing.key.password\" => \"key_password\", } ) If you need to pass sensitive information through the gradle action, and don't want the generated command to be printed before it is run, you can suppress that: gradle( # ... print_command: false ) You can also suppress printing the output generated by running the generated Gradle command: gradle( # ... print_command_output: false ) To pass any other CLI flags to gradle use: gradle( # ... flags: \"--exitcode --xml file.xml\" ) Delete the build directory, generated APKs and AABs gradle( task: \"clean\" )","title":"1 Example"},{"location":"actions/gradle/#parameters","text":"Key Description Default task The gradle task you want to execute, e.g. assemble , bundle or test . For tasks such as assembleMyFlavorRelease you should use gradle(task: 'assemble', flavor: 'Myflavor', build_type: 'Release') flavor The flavor that you want the task for, e.g. MyFlavor . If you are running the assemble task in a multi-flavor project, and you rely on Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH] then you must specify a flavor here or else this value will be undefined build_type The build type that you want the task for, e.g. Release . Useful for some tasks such as assemble tasks The multiple gradle tasks that you want to execute, e.g. [assembleDebug, bundleDebug] flags All parameter flags you want to pass to the gradle command, e.g. --exitcode --xml file.xml project_dir The root directory of the gradle project . gradle_path The path to your gradlew . If you specify a relative path, it is assumed to be relative to the project_dir properties Gradle properties to be exposed to the gradle script system_properties Gradle system properties to be exposed to the gradle script serial Android serial, which device should be used for this command '' print_command Control whether the generated Gradle command is printed as output before running it (true/false) true print_command_output Control whether the output produced by given Gradle command is printed while running (true/false) true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/gradle/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The gradle action generates the following Lane Variables: SharedValue Description SharedValues::GRADLE_APK_OUTPUT_PATH The path to the newly generated apk file. Undefined in a multi-variant assemble scenario SharedValues::GRADLE_ALL_APK_OUTPUT_PATHS When running a multi-variant assemble , the array of signed apk's that were generated SharedValues::GRADLE_FLAVOR The flavor, e.g. MyFlavor SharedValues::GRADLE_BUILD_TYPE The build type, e.g. Release SharedValues::GRADLE_AAB_OUTPUT_PATH The path to the most recent Android app bundle SharedValues::GRADLE_ALL_AAB_OUTPUT_PATHS The paths to the most recent Android app bundles SharedValues::GRADLE_OUTPUT_JSON_OUTPUT_PATH The path to the most recent output.json file SharedValues::GRADLE_ALL_OUTPUT_JSON_OUTPUT_PATHS The path to the newly generated output.json files SharedValues::GRADLE_MAPPING_TXT_OUTPUT_PATH The path to the most recent mapping.txt file SharedValues::GRADLE_ALL_MAPPING_TXT_OUTPUT_PATHS The path to the newly generated mapping.txt files To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/gradle/#documentation","text":"To show the documentation in your terminal, run fastlane action gradle","title":"Documentation"},{"location":"actions/gradle/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run gradle To pass parameters, make use of the : symbol, for example fastlane run gradle parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/gradle/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/gym/","text":"gym Alias for the build_app action Features \u2022 Usage \u2022 Tips gym is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. What's gym? gym builds and packages iOS apps for you. It takes care of all the heavy lifting and makes it super easy to generate a signed ipa or app file \ud83d\udcaa gym is a replacement for shenzhen . Before gym xcodebuild clean archive -archivePath build/MyApp \\ -scheme MyApp xcodebuild -exportArchive \\ -exportFormat ipa \\ -archivePath \"build/MyApp.xcarchive\" \\ -exportPath \"build/MyApp.ipa\" \\ -exportProvisioningProfile \"ProvisioningProfileName\" With gym fastlane gym Why gym ? gym uses the latest APIs to build and sign your application which results in much faster build times. gym Features \ud83d\ude80 gym builds 30% faster than other build tools like shenzhen \ud83c\udfc1 Beautiful inline build output \ud83d\udcd6 Helps you resolve common build errors like code signing issues \ud83d\udea0 Sensible defaults: Automatically detect the project, its schemes and more \ud83d\udd17 Works perfectly with fastlane and other tools \ud83d\udce6 Automatically generates an ipa and a compressed dSYM file \ud83d\ude85 Don't remember any complicated build commands, just gym \ud83d\udd27 Easy and dynamic configuration using parameters and environment variables \ud83d\udcbe Store common build settings in a Gymfile \ud83d\udce4 All archives are stored and accessible in the Xcode Organizer \ud83d\udcbb Supports both iOS and Mac applications Usage fastlane gym That's all you need to build your application. If you want more control, here are some available parameters: fastlane gym --workspace \"Example.xcworkspace\" --scheme \"AppName\" --clean If you need to use a different Xcode installation, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" fastlane gym For a list of all available parameters use fastlane action gym If you run into any issues, use the verbose mode to get more information fastlane gym --verbose Set the right export method if you're not uploading to App Store or TestFlight: fastlane gym --export_method ad-hoc To pass boolean parameters make sure to use gym like this: fastlane gym --include_bitcode true --include_symbols false To access the raw xcodebuild output open ~/Library/Logs/gym Gymfile Since you might want to manually trigger a new build but don't want to specify all the parameters every time, you can store your defaults in a so called Gymfile . Run fastlane gym init to create a new configuration file. Example: scheme(\"Example\") sdk(\"iphoneos9.0\") clean(true) output_directory(\"./build\") # store the ipa in this folder output_name(\"MyApp\") # the name of the ipa file Export options Since Xcode 7, gym is using new Xcode API which allows us to specify export options using plist file. By default gym creates this file for you and you are able to modify some parameters by using export_method , export_team_id , include_symbols or include_bitcode . If you want to have more options, like creating manifest file for app thinning, you can provide your own plist file: export_options(\"./ExportOptions.plist\") or you can provide hash of values directly in the Gymfile : export_options({ method: \"ad-hoc\", manifest: { appURL: \"https://example.com/My App.ipa\", }, thinning: \"\" }) Optional: If gym can't automatically detect the provisioning profiles to use, you can pass a mapping of bundle identifiers to provisioning profiles: build_app( scheme: \"Release\", export_method: \"app-store\", export_options: { provisioningProfiles: { \"com.example.bundleid\" => \"Provisioning Profile Name\", \"com.example.bundleid2\" => \"Provisioning Profile Name 2\" } } ) Note : If you use fastlane with match you don't need to provide those values manually, unless you pass a plist file into export_options For the list of available options run xcodebuild -help . Setup code signing More information on how to get started with codesigning Docs on how to set up your Xcode project Automating the whole process gym works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :beta do scan gym(scheme: \"MyApp\") crashlytics end # error block is executed when a error occurs error do |lane, exception| slack( # message with short human friendly message message: exception.to_s, success: false, # Output containing extended log output payload: { \"Output\" => exception.error_info.to_s } ) end When gym raises an error the error_info property will contain the process output in case you want to display the error in 3rd party tools such as Slack. You can then easily switch between the beta provider (e.g. testflight , hockey , s3 and more). How does it work? gym uses the latest APIs to build and sign your application. The 2 main components are xcodebuild xcpretty When you run gym without the --silent mode it will print out every command it executes. To build the archive gym uses the following command: set -o pipefail && \\ xcodebuild -scheme 'Example' \\ -project './Example.xcodeproj' \\ -configuration 'Release' \\ -destination 'generic/platform=iOS' \\ -archivePath '/Users/felixkrause/Library/Developer/Xcode/Archives/2015-08-11/ExampleProductName 2015-08-11 18.15.30.xcarchive' \\ archive | xcpretty After building the archive it is being checked by gym . If it's valid, it gets packaged up and signed into an ipa file. gym automatically chooses a different packaging method depending on the version of Xcode you're using. Xcode 7 and above /usr/bin/xcrun path/to/xcbuild-safe.sh -exportArchive \\ -exportOptionsPlist '/tmp/gym_config_1442852529.plist' \\ -archivePath '/Users/fkrause/Library/Developer/Xcode/Archives/2015-09-21/App 2015-09-21 09.21.56.xcarchive' \\ -exportPath '/tmp/1442852529' gym makes use of the new Xcode 7 API which allows us to specify the export options using a plist file. You can find more information about the available options by running xcodebuild --help . Using this method there are no workarounds for WatchKit or Swift required, as it uses the same technique Xcode uses when exporting your binary. Note: the xcbuild-safe.sh script wraps around xcodebuild to workaround some incompatibilities. Use 'ProvisionQL' for advanced Quick Look in Finder Install ProvisionQL . It will show you ipa files like this: gym Supported platforms ios, mac Author @KrauseFx Returns The absolute path to the generated ipa file 5 Examples build_app(scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\") build_app( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", silent: true, clean: true, output_directory: \"path/to/dir\", # Destination directory. Defaults to current directory. output_name: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) sdk: \"iOS 11.1\" # use SDK as the name or path of the base SDK when building the project. ) gym # alias for \"build_app\" build_ios_app # alias for \"build_app (only iOS options)\" build_mac_app # alias for \"build_app (only macOS options)\" Parameters Key Description Default workspace Path to the workspace file project Path to the project file scheme The project's scheme. Make sure it's marked as Shared clean Should the project be cleaned before building it? false output_directory The directory in which the ipa file should be stored in . output_name The name of the resulting ipa file configuration The configuration to use when building the app. Defaults to 'Release' * silent Hide all information that's not necessary while building false codesigning_identity The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH' skip_package_ipa Should we skip packaging the ipa? false skip_package_pkg Should we skip packaging the pkg? false include_symbols Should the ipa file include symbols? include_bitcode Should the ipa file include bitcode? export_method Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application export_options Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options export_xcargs Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" skip_build_archive Export ipa from previously built xcarchive. Uses archive_path as source skip_archive After building, don't archive, effectively not including -archivePath param skip_codesigning Build without codesigning catalyst_platform Platform to build when using a Catalyst enabled app. Valid values are: ios, macos installer_cert_name Full name of 3rd Party Mac Developer Installer or Developer ID Installer certificate. Example: 3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ) build_path The directory in which the archive should be stored in archive_path The path to the created archive derived_data_path The directory where built products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false result_bundle_path Path to the result bundle directory to create. Ignored if result_bundle if false buildlog_path The directory where to store the build log * sdk The SDK that should be used for building the application toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a) destination Use a custom destination for building the app export_team_id Optional: Sometimes you need to specify a team id when exporting the ipa file xcargs Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * build_timing_summary Create a build timing summary false disable_xcpretty DEPRECATED! Use xcodebuild_formatter: '' instead - Disable xcpretty formatting of build output xcpretty_test_format Use the test (RSpec style) format for build output xcpretty_formatter A custom xcpretty formatter to use xcpretty_report_junit Have xcpretty create a JUnit-style XML report at the provided path xcpretty_report_html Have xcpretty create a simple HTML report at the provided path xcpretty_report_json Have xcpretty create a JSON compilation database at the provided path xcpretty_utf Have xcpretty use unicode encoding when reporting builds analyze_build_time Analyze the project build time and store the output in 'culprits.txt' file skip_profile_detection Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used false xcodebuild_command Allows for override of the default xcodebuild command xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The gym action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::PKG_OUTPUT_PATH The path to the newly generated pkg file SharedValues::DSYM_OUTPUT_PATH The path to the dSYM files SharedValues::XCODEBUILD_ARCHIVE The path to the xcodebuild archive To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action gym CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run gym To pass parameters, make use of the : symbol, for example fastlane run gym parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"gym"},{"location":"actions/gym/#gym","text":"Alias for the build_app action Features \u2022 Usage \u2022 Tips","title":"gym"},{"location":"actions/gym/#whats-gym","text":"gym builds and packages iOS apps for you. It takes care of all the heavy lifting and makes it super easy to generate a signed ipa or app file \ud83d\udcaa gym is a replacement for shenzhen .","title":"What's gym?"},{"location":"actions/gym/#usage","text":"fastlane gym That's all you need to build your application. If you want more control, here are some available parameters: fastlane gym --workspace \"Example.xcworkspace\" --scheme \"AppName\" --clean If you need to use a different Xcode installation, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" fastlane gym For a list of all available parameters use fastlane action gym If you run into any issues, use the verbose mode to get more information fastlane gym --verbose Set the right export method if you're not uploading to App Store or TestFlight: fastlane gym --export_method ad-hoc To pass boolean parameters make sure to use gym like this: fastlane gym --include_bitcode true --include_symbols false To access the raw xcodebuild output open ~/Library/Logs/gym","title":"Usage"},{"location":"actions/gym/#gymfile","text":"Since you might want to manually trigger a new build but don't want to specify all the parameters every time, you can store your defaults in a so called Gymfile . Run fastlane gym init to create a new configuration file. Example: scheme(\"Example\") sdk(\"iphoneos9.0\") clean(true) output_directory(\"./build\") # store the ipa in this folder output_name(\"MyApp\") # the name of the ipa file","title":"Gymfile"},{"location":"actions/gym/#export-options","text":"Since Xcode 7, gym is using new Xcode API which allows us to specify export options using plist file. By default gym creates this file for you and you are able to modify some parameters by using export_method , export_team_id , include_symbols or include_bitcode . If you want to have more options, like creating manifest file for app thinning, you can provide your own plist file: export_options(\"./ExportOptions.plist\") or you can provide hash of values directly in the Gymfile : export_options({ method: \"ad-hoc\", manifest: { appURL: \"https://example.com/My App.ipa\", }, thinning: \"\" }) Optional: If gym can't automatically detect the provisioning profiles to use, you can pass a mapping of bundle identifiers to provisioning profiles: build_app( scheme: \"Release\", export_method: \"app-store\", export_options: { provisioningProfiles: { \"com.example.bundleid\" => \"Provisioning Profile Name\", \"com.example.bundleid2\" => \"Provisioning Profile Name 2\" } } ) Note : If you use fastlane with match you don't need to provide those values manually, unless you pass a plist file into export_options For the list of available options run xcodebuild -help .","title":"Export options"},{"location":"actions/gym/#setup-code-signing","text":"More information on how to get started with codesigning Docs on how to set up your Xcode project","title":"Setup code signing"},{"location":"actions/gym/#automating-the-whole-process","text":"gym works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :beta do scan gym(scheme: \"MyApp\") crashlytics end # error block is executed when a error occurs error do |lane, exception| slack( # message with short human friendly message message: exception.to_s, success: false, # Output containing extended log output payload: { \"Output\" => exception.error_info.to_s } ) end When gym raises an error the error_info property will contain the process output in case you want to display the error in 3rd party tools such as Slack. You can then easily switch between the beta provider (e.g. testflight , hockey , s3 and more).","title":"Automating the whole process"},{"location":"actions/gym/#how-does-it-work","text":"gym uses the latest APIs to build and sign your application. The 2 main components are xcodebuild xcpretty When you run gym without the --silent mode it will print out every command it executes. To build the archive gym uses the following command: set -o pipefail && \\ xcodebuild -scheme 'Example' \\ -project './Example.xcodeproj' \\ -configuration 'Release' \\ -destination 'generic/platform=iOS' \\ -archivePath '/Users/felixkrause/Library/Developer/Xcode/Archives/2015-08-11/ExampleProductName 2015-08-11 18.15.30.xcarchive' \\ archive | xcpretty After building the archive it is being checked by gym . If it's valid, it gets packaged up and signed into an ipa file. gym automatically chooses a different packaging method depending on the version of Xcode you're using.","title":"How does it work?"},{"location":"actions/gym/#use-provisionql-for-advanced-quick-look-in-finder","text":"Install ProvisionQL . It will show you ipa files like this: gym Supported platforms ios, mac Author @KrauseFx Returns The absolute path to the generated ipa file","title":"Use 'ProvisionQL' for advanced Quick Look in Finder"},{"location":"actions/gym/#5-examples","text":"build_app(scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\") build_app( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", silent: true, clean: true, output_directory: \"path/to/dir\", # Destination directory. Defaults to current directory. output_name: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) sdk: \"iOS 11.1\" # use SDK as the name or path of the base SDK when building the project. ) gym # alias for \"build_app\" build_ios_app # alias for \"build_app (only iOS options)\" build_mac_app # alias for \"build_app (only macOS options)\"","title":"5 Examples"},{"location":"actions/gym/#parameters","text":"Key Description Default workspace Path to the workspace file project Path to the project file scheme The project's scheme. Make sure it's marked as Shared clean Should the project be cleaned before building it? false output_directory The directory in which the ipa file should be stored in . output_name The name of the resulting ipa file configuration The configuration to use when building the app. Defaults to 'Release' * silent Hide all information that's not necessary while building false codesigning_identity The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH' skip_package_ipa Should we skip packaging the ipa? false skip_package_pkg Should we skip packaging the pkg? false include_symbols Should the ipa file include symbols? include_bitcode Should the ipa file include bitcode? export_method Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application export_options Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options export_xcargs Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" skip_build_archive Export ipa from previously built xcarchive. Uses archive_path as source skip_archive After building, don't archive, effectively not including -archivePath param skip_codesigning Build without codesigning catalyst_platform Platform to build when using a Catalyst enabled app. Valid values are: ios, macos installer_cert_name Full name of 3rd Party Mac Developer Installer or Developer ID Installer certificate. Example: 3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ) build_path The directory in which the archive should be stored in archive_path The path to the created archive derived_data_path The directory where built products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false result_bundle_path Path to the result bundle directory to create. Ignored if result_bundle if false buildlog_path The directory where to store the build log * sdk The SDK that should be used for building the application toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a) destination Use a custom destination for building the app export_team_id Optional: Sometimes you need to specify a team id when exporting the ipa file xcargs Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * build_timing_summary Create a build timing summary false disable_xcpretty DEPRECATED! Use xcodebuild_formatter: '' instead - Disable xcpretty formatting of build output xcpretty_test_format Use the test (RSpec style) format for build output xcpretty_formatter A custom xcpretty formatter to use xcpretty_report_junit Have xcpretty create a JUnit-style XML report at the provided path xcpretty_report_html Have xcpretty create a simple HTML report at the provided path xcpretty_report_json Have xcpretty create a JSON compilation database at the provided path xcpretty_utf Have xcpretty use unicode encoding when reporting builds analyze_build_time Analyze the project build time and store the output in 'culprits.txt' file skip_profile_detection Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used false xcodebuild_command Allows for override of the default xcodebuild command xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/gym/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The gym action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::PKG_OUTPUT_PATH The path to the newly generated pkg file SharedValues::DSYM_OUTPUT_PATH The path to the dSYM files SharedValues::XCODEBUILD_ARCHIVE The path to the xcodebuild archive To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/gym/#documentation","text":"To show the documentation in your terminal, run fastlane action gym","title":"Documentation"},{"location":"actions/gym/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run gym To pass parameters, make use of the : symbol, for example fastlane run gym parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/gym/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/hg_add_tag/","text":"hg_add_tag This will add a hg tag to the current branch hg_add_tag Supported platforms ios, android, mac Author @sjrmanning 1 Example hg_add_tag(tag: \"1.3\") Parameters Key Description Default tag Tag to create * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action hg_add_tag CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hg_add_tag To pass parameters, make use of the : symbol, for example fastlane run hg_add_tag parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"hg_add_tag"},{"location":"actions/hg_add_tag/#hg_add_tag","text":"This will add a hg tag to the current branch hg_add_tag Supported platforms ios, android, mac Author @sjrmanning","title":"hg_add_tag"},{"location":"actions/hg_add_tag/#1-example","text":"hg_add_tag(tag: \"1.3\")","title":"1 Example"},{"location":"actions/hg_add_tag/#parameters","text":"Key Description Default tag Tag to create * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/hg_add_tag/#documentation","text":"To show the documentation in your terminal, run fastlane action hg_add_tag","title":"Documentation"},{"location":"actions/hg_add_tag/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hg_add_tag To pass parameters, make use of the : symbol, for example fastlane run hg_add_tag parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/hg_add_tag/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/hg_commit_version_bump/","text":"hg_commit_version_bump This will commit a version bump to the hg repo The mercurial equivalent of the commit_version_bump git action. Like the git version, it is useful in conjunction with increment_build_number . It checks the repo to make sure that only the relevant files have changed, these are the files that increment_build_number ( agvtool ) touches: All .plist files The .xcodeproj/project.pbxproj file Then commits those files to the repo. Customize the message with the :message option, defaults to 'Version Bump' If you have other uncommitted changes in your repo, this action will fail. If you started off in a clean repo, and used the ipa and or sigh actions, then you can use the clean_build_artifacts action to clean those temporary files up before running this action. hg_commit_version_bump Supported platforms ios, android, mac Author @sjrmanning 2 Examples hg_commit_version_bump hg_commit_version_bump( message: \"Version Bump\", # create a commit with a custom message xcodeproj: \"./path/MyProject.xcodeproj\", # optional, if you have multiple Xcode project files, you must specify your main project here ) Parameters Key Description Default message The commit message when committing the version bump Version Bump xcodeproj The path to your project file (Not the workspace). If you have only one, this is optional force Forces the commit, even if other files than the ones containing the version number have been modified false test_dirty_files A list of dirty files passed in for testing file1, file2 test_expected_files A list of expected changed files passed in for testing file1, file2 * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action hg_commit_version_bump CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hg_commit_version_bump To pass parameters, make use of the : symbol, for example fastlane run hg_commit_version_bump parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"hg_commit_version_bump"},{"location":"actions/hg_commit_version_bump/#hg_commit_version_bump","text":"This will commit a version bump to the hg repo The mercurial equivalent of the commit_version_bump git action. Like the git version, it is useful in conjunction with increment_build_number . It checks the repo to make sure that only the relevant files have changed, these are the files that increment_build_number ( agvtool ) touches: All .plist files The .xcodeproj/project.pbxproj file Then commits those files to the repo. Customize the message with the :message option, defaults to 'Version Bump' If you have other uncommitted changes in your repo, this action will fail. If you started off in a clean repo, and used the ipa and or sigh actions, then you can use the clean_build_artifacts action to clean those temporary files up before running this action. hg_commit_version_bump Supported platforms ios, android, mac Author @sjrmanning","title":"hg_commit_version_bump"},{"location":"actions/hg_commit_version_bump/#2-examples","text":"hg_commit_version_bump hg_commit_version_bump( message: \"Version Bump\", # create a commit with a custom message xcodeproj: \"./path/MyProject.xcodeproj\", # optional, if you have multiple Xcode project files, you must specify your main project here )","title":"2 Examples"},{"location":"actions/hg_commit_version_bump/#parameters","text":"Key Description Default message The commit message when committing the version bump Version Bump xcodeproj The path to your project file (Not the workspace). If you have only one, this is optional force Forces the commit, even if other files than the ones containing the version number have been modified false test_dirty_files A list of dirty files passed in for testing file1, file2 test_expected_files A list of expected changed files passed in for testing file1, file2 * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/hg_commit_version_bump/#documentation","text":"To show the documentation in your terminal, run fastlane action hg_commit_version_bump","title":"Documentation"},{"location":"actions/hg_commit_version_bump/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hg_commit_version_bump To pass parameters, make use of the : symbol, for example fastlane run hg_commit_version_bump parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/hg_commit_version_bump/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/hg_ensure_clean_status/","text":"hg_ensure_clean_status Raises an exception if there are uncommitted hg changes Along the same lines as the ensure_git_status_clean action, this is a sanity check to ensure the working mercurial repo is clean. Especially useful to put at the beginning of your Fastfile in the before_all block. hg_ensure_clean_status Supported platforms ios, android, mac Author @sjrmanning 1 Example hg_ensure_clean_status Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The hg_ensure_clean_status action generates the following Lane Variables: SharedValue Description SharedValues::HG_REPO_WAS_CLEAN_ON_START Stores the fact that the hg repo was clean at some point To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action hg_ensure_clean_status CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hg_ensure_clean_status To pass parameters, make use of the : symbol, for example fastlane run hg_ensure_clean_status parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"hg_ensure_clean_status"},{"location":"actions/hg_ensure_clean_status/#hg_ensure_clean_status","text":"Raises an exception if there are uncommitted hg changes Along the same lines as the ensure_git_status_clean action, this is a sanity check to ensure the working mercurial repo is clean. Especially useful to put at the beginning of your Fastfile in the before_all block. hg_ensure_clean_status Supported platforms ios, android, mac Author @sjrmanning","title":"hg_ensure_clean_status"},{"location":"actions/hg_ensure_clean_status/#1-example","text":"hg_ensure_clean_status","title":"1 Example"},{"location":"actions/hg_ensure_clean_status/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The hg_ensure_clean_status action generates the following Lane Variables: SharedValue Description SharedValues::HG_REPO_WAS_CLEAN_ON_START Stores the fact that the hg repo was clean at some point To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/hg_ensure_clean_status/#documentation","text":"To show the documentation in your terminal, run fastlane action hg_ensure_clean_status","title":"Documentation"},{"location":"actions/hg_ensure_clean_status/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hg_ensure_clean_status To pass parameters, make use of the : symbol, for example fastlane run hg_ensure_clean_status parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/hg_ensure_clean_status/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/hg_push/","text":"hg_push This will push changes to the remote hg repository The mercurial equivalent of push_to_git_remote . Pushes your local commits to a remote mercurial repo. Useful when local changes such as adding a version bump commit or adding a tag are part of your lane\u2019s actions. hg_push Supported platforms ios, android, mac Author @sjrmanning 2 Examples hg_push hg_push( destination: \"ssh://hg@repohost.com/owner/repo\", force: true ) Parameters Key Description Default force Force push to remote false destination The destination to push to '' * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action hg_push CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hg_push To pass parameters, make use of the : symbol, for example fastlane run hg_push parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"hg_push"},{"location":"actions/hg_push/#hg_push","text":"This will push changes to the remote hg repository The mercurial equivalent of push_to_git_remote . Pushes your local commits to a remote mercurial repo. Useful when local changes such as adding a version bump commit or adding a tag are part of your lane\u2019s actions. hg_push Supported platforms ios, android, mac Author @sjrmanning","title":"hg_push"},{"location":"actions/hg_push/#2-examples","text":"hg_push hg_push( destination: \"ssh://hg@repohost.com/owner/repo\", force: true )","title":"2 Examples"},{"location":"actions/hg_push/#parameters","text":"Key Description Default force Force push to remote false destination The destination to push to '' * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/hg_push/#documentation","text":"To show the documentation in your terminal, run fastlane action hg_push","title":"Documentation"},{"location":"actions/hg_push/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hg_push To pass parameters, make use of the : symbol, for example fastlane run hg_push parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/hg_push/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/hipchat/","text":"hipchat Send a error/success message to HipChat Send a message to room (by default) or a direct message to @username with success (green) or failure (red) status. hipchat Supported platforms ios, android, mac Author @jingx23 1 Example hipchat( message: \"App successfully released!\", message_format: \"html\", # or \"text\", defaults to \"html\" channel: \"Room or @username\", success: true ) Parameters Key Description Default message The message to post on HipChat '' channel The room or @username api_token Hipchat API Token custom_color Specify a custom color, this overrides the success boolean. Can be one of 'yellow', 'red', 'green', 'purple', 'gray', or 'random' success Was this build successful? (true/false) true version Version of the Hipchat API. Must be 1 or 2 notify_room Should the people in the room be notified? (true/false) false api_host The host of the HipChat-Server API api.hipchat.com message_format Format of the message to post. Must be either 'html' or 'text' html include_html_header Should html formatted messages include a preformatted header? (true/false) true from Name the message will appear to be sent from fastlane * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action hipchat CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hipchat To pass parameters, make use of the : symbol, for example fastlane run hipchat parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"hipchat"},{"location":"actions/hipchat/#hipchat","text":"Send a error/success message to HipChat Send a message to room (by default) or a direct message to @username with success (green) or failure (red) status. hipchat Supported platforms ios, android, mac Author @jingx23","title":"hipchat"},{"location":"actions/hipchat/#1-example","text":"hipchat( message: \"App successfully released!\", message_format: \"html\", # or \"text\", defaults to \"html\" channel: \"Room or @username\", success: true )","title":"1 Example"},{"location":"actions/hipchat/#parameters","text":"Key Description Default message The message to post on HipChat '' channel The room or @username api_token Hipchat API Token custom_color Specify a custom color, this overrides the success boolean. Can be one of 'yellow', 'red', 'green', 'purple', 'gray', or 'random' success Was this build successful? (true/false) true version Version of the Hipchat API. Must be 1 or 2 notify_room Should the people in the room be notified? (true/false) false api_host The host of the HipChat-Server API api.hipchat.com message_format Format of the message to post. Must be either 'html' or 'text' html include_html_header Should html formatted messages include a preformatted header? (true/false) true from Name the message will appear to be sent from fastlane * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/hipchat/#documentation","text":"To show the documentation in your terminal, run fastlane action hipchat","title":"Documentation"},{"location":"actions/hipchat/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hipchat To pass parameters, make use of the : symbol, for example fastlane run hipchat parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/hipchat/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/hockey/","text":"hockey Refer to App Center HockeyApp will be no longer supported and will be transitioned into App Center on November 16, 2019. Please migrate over to App Center HockeyApp will be no longer supported and will be transitioned into App Center on November 16, 2019. Please migrate over to App Center Symbols will also be uploaded automatically if a app.dSYM.zip file is found next to app.ipa . In case it is located in a different place you can specify the path explicitly in the :dsym parameter. More information about the available options can be found in the HockeyApp Docs . hockey Supported platforms ios, android, mac Author @KrauseFx, @modzelewski, @lacostej 3 Examples hockey( api_token: \"...\", ipa: \"./app.ipa\", notes: \"Changelog\" ) hockey( api_token: \"...\", create_update: true, public_identifier: \"....\", bundle_short_version: \"1.0.2\", bundle_version: \"1.0.2.145\", ipa: \"./my.msi\", notes: \"Changelog\" ) # You can bypass the CDN if you are uploading to Hockey and receive an SSL error (which can happen on corporate firewalls) hockey( api_token: \"...\", ipa: \"./app.ipa\", notes: \"Changelog\", bypass_cdn: true ) Parameters Key Description Default apk Path to your APK file * api_token API Token for Hockey Access ipa Path to your IPA file. Optional if you use the gym or xcodebuild action. For Mac zip the .app. For Android provide path to .apk file. In addition you could use this to upload .msi, .zip, .pkg, etc if you use the 'create_update' mechanism * dsym Path to your symbols file. For iOS and Mac provide path to app.dSYM.zip. For Android provide path to mappings.txt file * create_update Set true if you want to create then update your app as opposed to just upload it. You will need the 'public_identifier', 'bundle_version' and 'bundle_short_version' false notes Beta Notes * notify Notify testers? \"1\" for yes 1 status Download status: \"1\" = No user can download; \"2\" = Available for download (only possible with full-access token) 2 create_status Download status for initial version creation when create_update is true: \"1\" = No user can download; \"2\" = Available for download (only possible with full-access token) 2 notes_type Notes type for your :notes, \"0\" = Textile, \"1\" = Markdown (default) 1 release_type Release type of the app: \"0\" = Beta (default), \"1\" = Store, \"2\" = Alpha, \"3\" = Enterprise 0 mandatory Set to \"1\" to make this update mandatory 0 teams Comma separated list of team ID numbers to which this build will be restricted users Comma separated list of user ID numbers to which this build will be restricted tags Comma separated list of tags which will receive access to the build bundle_short_version The bundle_short_version of your application, required when using create_update bundle_version The bundle_version of your application, required when using create_update public_identifier App id of the app you are targeting, usually you won't need this value. Required, if upload_dsym_only set to true commit_sha The Git commit SHA for this build repository_url The URL of your source repository build_server_url The URL of the build job on your build server upload_dsym_only Flag to upload only the dSYM file to hockey app false owner_id ID for the owner of the app strategy Strategy: 'add' = to add the build as a new build even if it has the same build number (default); 'replace' = to replace a build with the same build number add timeout Request timeout in seconds bypass_cdn Flag to bypass Hockey CDN when it uploads successfully but reports error false dsa_signature DSA signature for sparkle updates for macOS '' * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The hockey action generates the following Lane Variables: SharedValue Description SharedValues::HOCKEY_DOWNLOAD_LINK The newly generated download link for this build SharedValues::HOCKEY_BUILD_INFORMATION contains all keys/values from the HockeyApp API, like :title, :bundle_identifier To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action hockey CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hockey To pass parameters, make use of the : symbol, for example fastlane run hockey parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"hockey"},{"location":"actions/hockey/#hockey","text":"Refer to App Center HockeyApp will be no longer supported and will be transitioned into App Center on November 16, 2019. Please migrate over to App Center HockeyApp will be no longer supported and will be transitioned into App Center on November 16, 2019. Please migrate over to App Center Symbols will also be uploaded automatically if a app.dSYM.zip file is found next to app.ipa . In case it is located in a different place you can specify the path explicitly in the :dsym parameter. More information about the available options can be found in the HockeyApp Docs . hockey Supported platforms ios, android, mac Author @KrauseFx, @modzelewski, @lacostej","title":"hockey"},{"location":"actions/hockey/#3-examples","text":"hockey( api_token: \"...\", ipa: \"./app.ipa\", notes: \"Changelog\" ) hockey( api_token: \"...\", create_update: true, public_identifier: \"....\", bundle_short_version: \"1.0.2\", bundle_version: \"1.0.2.145\", ipa: \"./my.msi\", notes: \"Changelog\" ) # You can bypass the CDN if you are uploading to Hockey and receive an SSL error (which can happen on corporate firewalls) hockey( api_token: \"...\", ipa: \"./app.ipa\", notes: \"Changelog\", bypass_cdn: true )","title":"3 Examples"},{"location":"actions/hockey/#parameters","text":"Key Description Default apk Path to your APK file * api_token API Token for Hockey Access ipa Path to your IPA file. Optional if you use the gym or xcodebuild action. For Mac zip the .app. For Android provide path to .apk file. In addition you could use this to upload .msi, .zip, .pkg, etc if you use the 'create_update' mechanism * dsym Path to your symbols file. For iOS and Mac provide path to app.dSYM.zip. For Android provide path to mappings.txt file * create_update Set true if you want to create then update your app as opposed to just upload it. You will need the 'public_identifier', 'bundle_version' and 'bundle_short_version' false notes Beta Notes * notify Notify testers? \"1\" for yes 1 status Download status: \"1\" = No user can download; \"2\" = Available for download (only possible with full-access token) 2 create_status Download status for initial version creation when create_update is true: \"1\" = No user can download; \"2\" = Available for download (only possible with full-access token) 2 notes_type Notes type for your :notes, \"0\" = Textile, \"1\" = Markdown (default) 1 release_type Release type of the app: \"0\" = Beta (default), \"1\" = Store, \"2\" = Alpha, \"3\" = Enterprise 0 mandatory Set to \"1\" to make this update mandatory 0 teams Comma separated list of team ID numbers to which this build will be restricted users Comma separated list of user ID numbers to which this build will be restricted tags Comma separated list of tags which will receive access to the build bundle_short_version The bundle_short_version of your application, required when using create_update bundle_version The bundle_version of your application, required when using create_update public_identifier App id of the app you are targeting, usually you won't need this value. Required, if upload_dsym_only set to true commit_sha The Git commit SHA for this build repository_url The URL of your source repository build_server_url The URL of the build job on your build server upload_dsym_only Flag to upload only the dSYM file to hockey app false owner_id ID for the owner of the app strategy Strategy: 'add' = to add the build as a new build even if it has the same build number (default); 'replace' = to replace a build with the same build number add timeout Request timeout in seconds bypass_cdn Flag to bypass Hockey CDN when it uploads successfully but reports error false dsa_signature DSA signature for sparkle updates for macOS '' * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/hockey/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The hockey action generates the following Lane Variables: SharedValue Description SharedValues::HOCKEY_DOWNLOAD_LINK The newly generated download link for this build SharedValues::HOCKEY_BUILD_INFORMATION contains all keys/values from the HockeyApp API, like :title, :bundle_identifier To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/hockey/#documentation","text":"To show the documentation in your terminal, run fastlane action hockey","title":"Documentation"},{"location":"actions/hockey/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hockey To pass parameters, make use of the : symbol, for example fastlane run hockey parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/hockey/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/ifttt/","text":"ifttt Connect to the IFTTT Maker Channel Connect to the IFTTT Maker Channel . An IFTTT Recipe has two components: a Trigger and an Action. In this case, the Trigger will fire every time the Maker Channel receives a web request (made by this fastlane action) to notify it of an event. The Action can be anything that IFTTT supports: email, SMS, etc. ifttt Supported platforms ios, android, mac Author @vpolouchkine 1 Example ifttt( api_key: \"...\", event_name: \"...\", value1: \"foo\", value2: \"bar\", value3: \"baz\" ) Parameters Key Description Default api_key API key event_name The name of the event that will be triggered value1 Extra data sent with the event value2 Extra data sent with the event value3 Extra data sent with the event * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action ifttt CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ifttt To pass parameters, make use of the : symbol, for example fastlane run ifttt parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"ifttt"},{"location":"actions/ifttt/#ifttt","text":"Connect to the IFTTT Maker Channel Connect to the IFTTT Maker Channel . An IFTTT Recipe has two components: a Trigger and an Action. In this case, the Trigger will fire every time the Maker Channel receives a web request (made by this fastlane action) to notify it of an event. The Action can be anything that IFTTT supports: email, SMS, etc. ifttt Supported platforms ios, android, mac Author @vpolouchkine","title":"ifttt"},{"location":"actions/ifttt/#1-example","text":"ifttt( api_key: \"...\", event_name: \"...\", value1: \"foo\", value2: \"bar\", value3: \"baz\" )","title":"1 Example"},{"location":"actions/ifttt/#parameters","text":"Key Description Default api_key API key event_name The name of the event that will be triggered value1 Extra data sent with the event value2 Extra data sent with the event value3 Extra data sent with the event * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/ifttt/#documentation","text":"To show the documentation in your terminal, run fastlane action ifttt","title":"Documentation"},{"location":"actions/ifttt/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ifttt To pass parameters, make use of the : symbol, for example fastlane run ifttt parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/ifttt/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/import/","text":"import Import another Fastfile to use its lanes 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 Supported platforms ios, android, mac Author @KrauseFx 1 Example import(\"./path/to/other/Fastfile\") Documentation To show the documentation in your terminal, run fastlane action import CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run import To pass parameters, make use of the : symbol, for example fastlane run import parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"import"},{"location":"actions/import/#import","text":"Import another Fastfile to use its lanes 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 Supported platforms ios, android, mac Author @KrauseFx","title":"import"},{"location":"actions/import/#1-example","text":"import(\"./path/to/other/Fastfile\")","title":"1 Example"},{"location":"actions/import/#documentation","text":"To show the documentation in your terminal, run fastlane action import","title":"Documentation"},{"location":"actions/import/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run import To pass parameters, make use of the : symbol, for example fastlane run import parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/import/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/import_certificate/","text":"import_certificate Import certificate from inputfile into a keychain Import certificates (and private keys) into the current default keychain. Use the create_keychain action to create a new keychain. import_certificate Supported platforms ios, android, mac Author @gin0606 3 Examples import_certificate(certificate_path: \"certs/AppleWWDRCA6.cer\") import_certificate( certificate_path: \"certs/dist.p12\", certificate_password: ENV[\"CERTIFICATE_PASSWORD\"] || \"default\" ) import_certificate( certificate_path: \"certs/development.cer\" ) Parameters Key Description Default certificate_path Path to certificate certificate_password Certificate password '' keychain_name Keychain the items should be imported to keychain_path Path to the Keychain file to which the items should be imported keychain_password The password for the keychain. Note that for the login keychain this is your user's password log_output If output should be logged to the console false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action import_certificate CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run import_certificate To pass parameters, make use of the : symbol, for example fastlane run import_certificate parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"import_certificate"},{"location":"actions/import_certificate/#import_certificate","text":"Import certificate from inputfile into a keychain Import certificates (and private keys) into the current default keychain. Use the create_keychain action to create a new keychain. import_certificate Supported platforms ios, android, mac Author @gin0606","title":"import_certificate"},{"location":"actions/import_certificate/#3-examples","text":"import_certificate(certificate_path: \"certs/AppleWWDRCA6.cer\") import_certificate( certificate_path: \"certs/dist.p12\", certificate_password: ENV[\"CERTIFICATE_PASSWORD\"] || \"default\" ) import_certificate( certificate_path: \"certs/development.cer\" )","title":"3 Examples"},{"location":"actions/import_certificate/#parameters","text":"Key Description Default certificate_path Path to certificate certificate_password Certificate password '' keychain_name Keychain the items should be imported to keychain_path Path to the Keychain file to which the items should be imported keychain_password The password for the keychain. Note that for the login keychain this is your user's password log_output If output should be logged to the console false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/import_certificate/#documentation","text":"To show the documentation in your terminal, run fastlane action import_certificate","title":"Documentation"},{"location":"actions/import_certificate/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run import_certificate To pass parameters, make use of the : symbol, for example fastlane run import_certificate parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/import_certificate/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/import_from_git/","text":"import_from_git Import another Fastfile from a remote git repository to use its lanes This is useful if you have shared lanes across multiple apps and you want to store the Fastfile in a remote git repository. import_from_git Supported platforms ios, android, mac Author @fabiomassimo, @KrauseFx, @Liquidsoul 2 Examples import_from_git( url: \"git@github.com:fastlane/fastlane.git\", # The URL of the repository to import the Fastfile from. branch: \"HEAD\", # The branch to checkout on the repository. path: \"fastlane/Fastfile\", # The path of the Fastfile in the repository. version: \"~> 1.0.0\" # The version to checkout on the repository. Optimistic match operator can be used to select the latest version within constraints. ) import_from_git( url: \"git@github.com:fastlane/fastlane.git\", # The URL of the repository to import the Fastfile from. branch: \"HEAD\", # The branch to checkout on the repository. path: \"fastlane/Fastfile\", # The path of the Fastfile in the repository. version: [\">= 1.1.0\", \"< 2.0.0\"], # The version to checkout on the repository. Multiple conditions can be used to select the latest version within constraints. cache_path: \"~/.cache/fastlane/imported\" # A directory in which the repository will be added, which means that it will not be cloned again on subsequent calls. ) Parameters Key Description Default url The URL of the repository to import the Fastfile from branch The branch or tag to check-out on the repository HEAD dependencies The array of additional Fastfiles in the repository [] path The path of the Fastfile in the repository fastlane/Fastfile version The version to checkout on the repository. Optimistic match operator or multiple conditions can be used to select the latest version within constraints cache_path The path to a directory where the repository should be cloned into. Defaults to nil , which causes the repository to be cloned on every call, to a temporary directory * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action import_from_git CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run import_from_git To pass parameters, make use of the : symbol, for example fastlane run import_from_git parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"import_from_git"},{"location":"actions/import_from_git/#import_from_git","text":"Import another Fastfile from a remote git repository to use its lanes This is useful if you have shared lanes across multiple apps and you want to store the Fastfile in a remote git repository. import_from_git Supported platforms ios, android, mac Author @fabiomassimo, @KrauseFx, @Liquidsoul","title":"import_from_git"},{"location":"actions/import_from_git/#2-examples","text":"import_from_git( url: \"git@github.com:fastlane/fastlane.git\", # The URL of the repository to import the Fastfile from. branch: \"HEAD\", # The branch to checkout on the repository. path: \"fastlane/Fastfile\", # The path of the Fastfile in the repository. version: \"~> 1.0.0\" # The version to checkout on the repository. Optimistic match operator can be used to select the latest version within constraints. ) import_from_git( url: \"git@github.com:fastlane/fastlane.git\", # The URL of the repository to import the Fastfile from. branch: \"HEAD\", # The branch to checkout on the repository. path: \"fastlane/Fastfile\", # The path of the Fastfile in the repository. version: [\">= 1.1.0\", \"< 2.0.0\"], # The version to checkout on the repository. Multiple conditions can be used to select the latest version within constraints. cache_path: \"~/.cache/fastlane/imported\" # A directory in which the repository will be added, which means that it will not be cloned again on subsequent calls. )","title":"2 Examples"},{"location":"actions/import_from_git/#parameters","text":"Key Description Default url The URL of the repository to import the Fastfile from branch The branch or tag to check-out on the repository HEAD dependencies The array of additional Fastfiles in the repository [] path The path of the Fastfile in the repository fastlane/Fastfile version The version to checkout on the repository. Optimistic match operator or multiple conditions can be used to select the latest version within constraints cache_path The path to a directory where the repository should be cloned into. Defaults to nil , which causes the repository to be cloned on every call, to a temporary directory * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/import_from_git/#documentation","text":"To show the documentation in your terminal, run fastlane action import_from_git","title":"Documentation"},{"location":"actions/import_from_git/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run import_from_git To pass parameters, make use of the : symbol, for example fastlane run import_from_git parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/import_from_git/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/increment_build_number/","text":"increment_build_number Increment the build number of your project increment_build_number Supported platforms ios, mac Author @KrauseFx Returns The new build number 4 Examples increment_build_number # automatically increment by one increment_build_number( build_number: \"75\" # set a specific number ) increment_build_number( build_number: 75, # specify specific build number (optional, omitting it increments by one) xcodeproj: \"./path/to/MyApp.xcodeproj\" # (optional, you must specify the path to your main Xcode project if it is not in the project root directory) ) build_number = increment_build_number Parameters Key Description Default build_number Change to a specific version. When you provide this parameter, Apple Generic Versioning does not have to be enabled skip_info_plist Don't update Info.plist files when updating the build version false xcodeproj optional, you must specify the path to your main Xcode project if it is not in the project root directory * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The increment_build_number action generates the following Lane Variables: SharedValue Description SharedValues::BUILD_NUMBER The new build number To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action increment_build_number CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run increment_build_number To pass parameters, make use of the : symbol, for example fastlane run increment_build_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"increment_build_number"},{"location":"actions/increment_build_number/#increment_build_number","text":"Increment the build number of your project increment_build_number Supported platforms ios, mac Author @KrauseFx Returns The new build number","title":"increment_build_number"},{"location":"actions/increment_build_number/#4-examples","text":"increment_build_number # automatically increment by one increment_build_number( build_number: \"75\" # set a specific number ) increment_build_number( build_number: 75, # specify specific build number (optional, omitting it increments by one) xcodeproj: \"./path/to/MyApp.xcodeproj\" # (optional, you must specify the path to your main Xcode project if it is not in the project root directory) ) build_number = increment_build_number","title":"4 Examples"},{"location":"actions/increment_build_number/#parameters","text":"Key Description Default build_number Change to a specific version. When you provide this parameter, Apple Generic Versioning does not have to be enabled skip_info_plist Don't update Info.plist files when updating the build version false xcodeproj optional, you must specify the path to your main Xcode project if it is not in the project root directory * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/increment_build_number/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The increment_build_number action generates the following Lane Variables: SharedValue Description SharedValues::BUILD_NUMBER The new build number To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/increment_build_number/#documentation","text":"To show the documentation in your terminal, run fastlane action increment_build_number","title":"Documentation"},{"location":"actions/increment_build_number/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run increment_build_number To pass parameters, make use of the : symbol, for example fastlane run increment_build_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/increment_build_number/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/increment_version_number/","text":"increment_version_number Increment the version number of your project This action will increment the version number. You first have to set up your Xcode project, if you haven't done it already: https://developer.apple.com/library/ios/qa/qa1827/_index.html . increment_version_number Supported platforms ios, mac Author @serluca Returns The new version number 7 Examples increment_version_number # Automatically increment version number increment_version_number( bump_type: \"patch\" # Automatically increment patch version number ) increment_version_number( bump_type: \"minor\" # Automatically increment minor version number ) increment_version_number( bump_type: \"major\" # Automatically increment major version number ) increment_version_number( version_number: \"2.1.1\" # Set a specific version number ) increment_version_number( version_number: \"2.1.1\", # specify specific version number (optional, omitting it increments patch version number) xcodeproj: \"./path/to/MyApp.xcodeproj\" # (optional, you must specify the path to your main Xcode project if it is not in the project root directory) ) version = increment_version_number Parameters Key Description Default bump_type The type of this version bump. Available: patch, minor, major bump version_number Change to a specific version. This will replace the bump type value xcodeproj optional, you must specify the path to your main Xcode project if it is not in the project root directory * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The increment_version_number action generates the following Lane Variables: SharedValue Description SharedValues::VERSION_NUMBER The new version number To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action increment_version_number CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run increment_version_number To pass parameters, make use of the : symbol, for example fastlane run increment_version_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"increment_version_number"},{"location":"actions/increment_version_number/#increment_version_number","text":"Increment the version number of your project This action will increment the version number. You first have to set up your Xcode project, if you haven't done it already: https://developer.apple.com/library/ios/qa/qa1827/_index.html . increment_version_number Supported platforms ios, mac Author @serluca Returns The new version number","title":"increment_version_number"},{"location":"actions/increment_version_number/#7-examples","text":"increment_version_number # Automatically increment version number increment_version_number( bump_type: \"patch\" # Automatically increment patch version number ) increment_version_number( bump_type: \"minor\" # Automatically increment minor version number ) increment_version_number( bump_type: \"major\" # Automatically increment major version number ) increment_version_number( version_number: \"2.1.1\" # Set a specific version number ) increment_version_number( version_number: \"2.1.1\", # specify specific version number (optional, omitting it increments patch version number) xcodeproj: \"./path/to/MyApp.xcodeproj\" # (optional, you must specify the path to your main Xcode project if it is not in the project root directory) ) version = increment_version_number","title":"7 Examples"},{"location":"actions/increment_version_number/#parameters","text":"Key Description Default bump_type The type of this version bump. Available: patch, minor, major bump version_number Change to a specific version. This will replace the bump type value xcodeproj optional, you must specify the path to your main Xcode project if it is not in the project root directory * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/increment_version_number/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The increment_version_number action generates the following Lane Variables: SharedValue Description SharedValues::VERSION_NUMBER The new version number To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/increment_version_number/#documentation","text":"To show the documentation in your terminal, run fastlane action increment_version_number","title":"Documentation"},{"location":"actions/increment_version_number/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run increment_version_number To pass parameters, make use of the : symbol, for example fastlane run increment_version_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/increment_version_number/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/install_on_device/","text":"install_on_device Installs an .ipa file on a connected iOS-device via usb or wifi Installs the ipa on the device. If no id is given, the first found iOS device will be used. Works via USB or Wi-Fi. This requires ios-deploy to be installed. Please have a look at ios-deploy . To quickly install it, use npm -g i ios-deploy install_on_device Supported platforms ios Author @hjanuschka 1 Example install_on_device( device_id: \"a3be6c9ff7e5c3c6028597513243b0f933b876d4\", ipa: \"./app.ipa\" ) Parameters Key Description Default extra Extra Commandline arguments passed to ios-deploy device_id id of the device / if not set defaults to first found device skip_wifi Do not search for devices via WiFi ipa The IPA file to put on the device * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action install_on_device CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run install_on_device To pass parameters, make use of the : symbol, for example fastlane run install_on_device parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"install_on_device"},{"location":"actions/install_on_device/#install_on_device","text":"Installs an .ipa file on a connected iOS-device via usb or wifi Installs the ipa on the device. If no id is given, the first found iOS device will be used. Works via USB or Wi-Fi. This requires ios-deploy to be installed. Please have a look at ios-deploy . To quickly install it, use npm -g i ios-deploy install_on_device Supported platforms ios Author @hjanuschka","title":"install_on_device"},{"location":"actions/install_on_device/#1-example","text":"install_on_device( device_id: \"a3be6c9ff7e5c3c6028597513243b0f933b876d4\", ipa: \"./app.ipa\" )","title":"1 Example"},{"location":"actions/install_on_device/#parameters","text":"Key Description Default extra Extra Commandline arguments passed to ios-deploy device_id id of the device / if not set defaults to first found device skip_wifi Do not search for devices via WiFi ipa The IPA file to put on the device * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/install_on_device/#documentation","text":"To show the documentation in your terminal, run fastlane action install_on_device","title":"Documentation"},{"location":"actions/install_on_device/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run install_on_device To pass parameters, make use of the : symbol, for example fastlane run install_on_device parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/install_on_device/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/install_provisioning_profile/","text":"install_provisioning_profile Install provisioning profile from path Install provisioning profile from path for current user install_provisioning_profile Supported platforms ios, mac Author @SofteqDG Returns The absolute path to the installed provisioning profile 1 Example install_provisioning_profile(path: \"profiles/profile.mobileprovision\") Parameters Key Description Default path Path to provisioning profile * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action install_provisioning_profile CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run install_provisioning_profile To pass parameters, make use of the : symbol, for example fastlane run install_provisioning_profile parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"install_provisioning_profile"},{"location":"actions/install_provisioning_profile/#install_provisioning_profile","text":"Install provisioning profile from path Install provisioning profile from path for current user install_provisioning_profile Supported platforms ios, mac Author @SofteqDG Returns The absolute path to the installed provisioning profile","title":"install_provisioning_profile"},{"location":"actions/install_provisioning_profile/#1-example","text":"install_provisioning_profile(path: \"profiles/profile.mobileprovision\")","title":"1 Example"},{"location":"actions/install_provisioning_profile/#parameters","text":"Key Description Default path Path to provisioning profile * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/install_provisioning_profile/#documentation","text":"To show the documentation in your terminal, run fastlane action install_provisioning_profile","title":"Documentation"},{"location":"actions/install_provisioning_profile/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run install_provisioning_profile To pass parameters, make use of the : symbol, for example fastlane run install_provisioning_profile parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/install_provisioning_profile/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/install_xcode_plugin/","text":"install_xcode_plugin Install an Xcode plugin for the current user install_xcode_plugin Supported platforms ios, mac Author @NeoNachoSoto, @tommeier 2 Examples install_xcode_plugin(url: \"https://example.com/clubmate/plugin.zip\") install_xcode_plugin(github: \"https://github.com/contentful/ContentfulXcodePlugin\") Parameters Key Description Default url URL for Xcode plugin ZIP file github GitHub repository URL for Xcode plugin * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action install_xcode_plugin CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run install_xcode_plugin To pass parameters, make use of the : symbol, for example fastlane run install_xcode_plugin parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"install_xcode_plugin"},{"location":"actions/install_xcode_plugin/#install_xcode_plugin","text":"Install an Xcode plugin for the current user install_xcode_plugin Supported platforms ios, mac Author @NeoNachoSoto, @tommeier","title":"install_xcode_plugin"},{"location":"actions/install_xcode_plugin/#2-examples","text":"install_xcode_plugin(url: \"https://example.com/clubmate/plugin.zip\") install_xcode_plugin(github: \"https://github.com/contentful/ContentfulXcodePlugin\")","title":"2 Examples"},{"location":"actions/install_xcode_plugin/#parameters","text":"Key Description Default url URL for Xcode plugin ZIP file github GitHub repository URL for Xcode plugin * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/install_xcode_plugin/#documentation","text":"To show the documentation in your terminal, run fastlane action install_xcode_plugin","title":"Documentation"},{"location":"actions/install_xcode_plugin/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run install_xcode_plugin To pass parameters, make use of the : symbol, for example fastlane run install_xcode_plugin parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/install_xcode_plugin/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/installr/","text":"installr Upload a new build to Installr installr Supported platforms ios Author @scottrhoyt 1 Example installr( api_token: \"...\", ipa: \"test.ipa\", notes: \"The next great version of the app!\", notify: \"dev,qa\", add: \"exec,ops\" ) Parameters Key Description Default api_token API Token for Installr Access ipa Path to your IPA file. Optional if you use the gym or xcodebuild action * notes Release notes notify Groups to notify (e.g. 'dev,qa') add Groups to add (e.g. 'exec,ops') * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The installr action generates the following Lane Variables: SharedValue Description SharedValues::INSTALLR_BUILD_INFORMATION Contains release info like :appData. See http://help.installrapp.com/api/ To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action installr CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run installr To pass parameters, make use of the : symbol, for example fastlane run installr parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"installr"},{"location":"actions/installr/#installr","text":"Upload a new build to Installr installr Supported platforms ios Author @scottrhoyt","title":"installr"},{"location":"actions/installr/#1-example","text":"installr( api_token: \"...\", ipa: \"test.ipa\", notes: \"The next great version of the app!\", notify: \"dev,qa\", add: \"exec,ops\" )","title":"1 Example"},{"location":"actions/installr/#parameters","text":"Key Description Default api_token API Token for Installr Access ipa Path to your IPA file. Optional if you use the gym or xcodebuild action * notes Release notes notify Groups to notify (e.g. 'dev,qa') add Groups to add (e.g. 'exec,ops') * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/installr/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The installr action generates the following Lane Variables: SharedValue Description SharedValues::INSTALLR_BUILD_INFORMATION Contains release info like :appData. See http://help.installrapp.com/api/ To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/installr/#documentation","text":"To show the documentation in your terminal, run fastlane action installr","title":"Documentation"},{"location":"actions/installr/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run installr To pass parameters, make use of the : symbol, for example fastlane run installr parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/installr/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/ipa/","text":"ipa Easily build and sign your app using shenzhen You are using legacy shenzhen to build your app, which will be removed soon! It is recommended to upgrade to gym . To do so, just replace ipa(...) with gym(...) in your Fastfile. To make code signing work, follow https://docs.fastlane.tools/codesigning/xcode-project/ . ipa Supported platforms ios Author @joshdholtz 1 Example ipa( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", # (optionals) clean: true, # This means \"Do Clean\". Cleans project before building (the default if not specified). destination: \"path/to/dir\", # Destination directory. Defaults to current directory. ipa: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) xcargs: \"MY_ADHOC=0\", # pass additional arguments to xcodebuild when building the app. embed: \"my.mobileprovision\", # Sign .ipa file with .mobileprovision identity: \"MyIdentity\",# Identity to be used along with --embed sdk: \"10.0\", # use SDK as the name or path of the base SDK when building the project. archive: true# this means \"Do Archive\". Archive project after building (the default if not specified). ) Parameters Key Description Default workspace WORKSPACE Workspace (.xcworkspace) file to use to build app (automatically detected in current directory) project Project (.xcodeproj) file to use to build app (automatically detected in current directory, overridden by --workspace option, if passed) configuration Configuration used to build scheme Scheme used to build app clean Clean project before building archive Archive project after building destination Build destination. Defaults to current directory * embed Sign .ipa file with .mobileprovision identity Identity to be used along with --embed sdk Use SDK as the name or path of the base SDK when building the project ipa Specify the name of the .ipa file to generate (including file extension) xcconfig Use an extra XCCONFIG file to build the app xcargs Pass additional arguments to xcodebuild when building the app. Be sure to quote multiple args * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The ipa action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::DSYM_OUTPUT_PATH The path to the dsym file To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action ipa CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ipa To pass parameters, make use of the : symbol, for example fastlane run ipa parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"ipa"},{"location":"actions/ipa/#ipa","text":"Easily build and sign your app using shenzhen You are using legacy shenzhen to build your app, which will be removed soon! It is recommended to upgrade to gym . To do so, just replace ipa(...) with gym(...) in your Fastfile. To make code signing work, follow https://docs.fastlane.tools/codesigning/xcode-project/ . ipa Supported platforms ios Author @joshdholtz","title":"ipa"},{"location":"actions/ipa/#1-example","text":"ipa( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", # (optionals) clean: true, # This means \"Do Clean\". Cleans project before building (the default if not specified). destination: \"path/to/dir\", # Destination directory. Defaults to current directory. ipa: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) xcargs: \"MY_ADHOC=0\", # pass additional arguments to xcodebuild when building the app. embed: \"my.mobileprovision\", # Sign .ipa file with .mobileprovision identity: \"MyIdentity\",# Identity to be used along with --embed sdk: \"10.0\", # use SDK as the name or path of the base SDK when building the project. archive: true# this means \"Do Archive\". Archive project after building (the default if not specified). )","title":"1 Example"},{"location":"actions/ipa/#parameters","text":"Key Description Default workspace WORKSPACE Workspace (.xcworkspace) file to use to build app (automatically detected in current directory) project Project (.xcodeproj) file to use to build app (automatically detected in current directory, overridden by --workspace option, if passed) configuration Configuration used to build scheme Scheme used to build app clean Clean project before building archive Archive project after building destination Build destination. Defaults to current directory * embed Sign .ipa file with .mobileprovision identity Identity to be used along with --embed sdk Use SDK as the name or path of the base SDK when building the project ipa Specify the name of the .ipa file to generate (including file extension) xcconfig Use an extra XCCONFIG file to build the app xcargs Pass additional arguments to xcodebuild when building the app. Be sure to quote multiple args * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/ipa/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The ipa action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::DSYM_OUTPUT_PATH The path to the dsym file To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/ipa/#documentation","text":"To show the documentation in your terminal, run fastlane action ipa","title":"Documentation"},{"location":"actions/ipa/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ipa To pass parameters, make use of the : symbol, for example fastlane run ipa parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/ipa/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/is_ci/","text":"is_ci Is the current run being executed on a CI system, like Jenkins or Travis The return value of this method is true if fastlane is currently executed on Travis, Jenkins, Circle or a similar CI service is_ci Supported platforms ios, android, mac Author @KrauseFx 1 Example if is_ci puts \"I'm a computer\" else say \"Hi Human!\" end Documentation To show the documentation in your terminal, run fastlane action is_ci CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run is_ci To pass parameters, make use of the : symbol, for example fastlane run is_ci parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"is_ci"},{"location":"actions/is_ci/#is_ci","text":"Is the current run being executed on a CI system, like Jenkins or Travis The return value of this method is true if fastlane is currently executed on Travis, Jenkins, Circle or a similar CI service is_ci Supported platforms ios, android, mac Author @KrauseFx","title":"is_ci"},{"location":"actions/is_ci/#1-example","text":"if is_ci puts \"I'm a computer\" else say \"Hi Human!\" end","title":"1 Example"},{"location":"actions/is_ci/#documentation","text":"To show the documentation in your terminal, run fastlane action is_ci","title":"Documentation"},{"location":"actions/is_ci/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run is_ci To pass parameters, make use of the : symbol, for example fastlane run is_ci parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/is_ci/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/jazzy/","text":"jazzy Generate docs using Jazzy jazzy Supported platforms ios, mac Author @KrauseFx 2 Examples jazzy jazzy(config: \".jazzy.yaml\", module_version: \"2.1.37\") Parameters Key Description Default config Path to jazzy config file module_version Version string to use as part of the the default docs title and inside the docset * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action jazzy CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run jazzy To pass parameters, make use of the : symbol, for example fastlane run jazzy parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"jazzy"},{"location":"actions/jazzy/#jazzy","text":"Generate docs using Jazzy jazzy Supported platforms ios, mac Author @KrauseFx","title":"jazzy"},{"location":"actions/jazzy/#2-examples","text":"jazzy jazzy(config: \".jazzy.yaml\", module_version: \"2.1.37\")","title":"2 Examples"},{"location":"actions/jazzy/#parameters","text":"Key Description Default config Path to jazzy config file module_version Version string to use as part of the the default docs title and inside the docset * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/jazzy/#documentation","text":"To show the documentation in your terminal, run fastlane action jazzy","title":"Documentation"},{"location":"actions/jazzy/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run jazzy To pass parameters, make use of the : symbol, for example fastlane run jazzy parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/jazzy/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/jira/","text":"jira Leave a comment on a Jira ticket jira Supported platforms ios, android, mac Author @iAmChrisTruman, @crazymanish Returns A hash containing all relevant information of the Jira comment Access Jira comment 'id', 'author', 'body', and more 3 Examples jira( url: \"https://bugs.yourdomain.com\", username: \"Your username\", password: \"Your password or API token\", ticket_id: \"IOS-123\", comment_text: \"Text to post as a comment\" ) jira( url: \"https://yourserverdomain.com\", context_path: \"/jira\", username: \"Your username\", password: \"Your password or API token\", ticket_id: \"IOS-123\", comment_text: \"Text to post as a comment\" ) jira( ticket_id: \"IOS-123\", comment_text: \"Text to post as a comment\", fail_on_error: false ) Parameters Key Description Default url URL for Jira instance context_path Appends to the url (ex: \"/jira\") '' username Username for Jira instance password Password or API token for Jira ticket_id Ticket ID for Jira, i.e. IOS-123 comment_text Text to add to the ticket as a comment fail_on_error Should an error adding the Jira comment cause a failure? true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The jira action generates the following Lane Variables: SharedValue Description SharedValues::JIRA_JSON The whole Jira API JSON object To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action jira CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run jira To pass parameters, make use of the : symbol, for example fastlane run jira parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"jira"},{"location":"actions/jira/#jira","text":"Leave a comment on a Jira ticket jira Supported platforms ios, android, mac Author @iAmChrisTruman, @crazymanish Returns A hash containing all relevant information of the Jira comment Access Jira comment 'id', 'author', 'body', and more","title":"jira"},{"location":"actions/jira/#3-examples","text":"jira( url: \"https://bugs.yourdomain.com\", username: \"Your username\", password: \"Your password or API token\", ticket_id: \"IOS-123\", comment_text: \"Text to post as a comment\" ) jira( url: \"https://yourserverdomain.com\", context_path: \"/jira\", username: \"Your username\", password: \"Your password or API token\", ticket_id: \"IOS-123\", comment_text: \"Text to post as a comment\" ) jira( ticket_id: \"IOS-123\", comment_text: \"Text to post as a comment\", fail_on_error: false )","title":"3 Examples"},{"location":"actions/jira/#parameters","text":"Key Description Default url URL for Jira instance context_path Appends to the url (ex: \"/jira\") '' username Username for Jira instance password Password or API token for Jira ticket_id Ticket ID for Jira, i.e. IOS-123 comment_text Text to add to the ticket as a comment fail_on_error Should an error adding the Jira comment cause a failure? true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/jira/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The jira action generates the following Lane Variables: SharedValue Description SharedValues::JIRA_JSON The whole Jira API JSON object To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/jira/#documentation","text":"To show the documentation in your terminal, run fastlane action jira","title":"Documentation"},{"location":"actions/jira/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run jira To pass parameters, make use of the : symbol, for example fastlane run jira parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/jira/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/lane_context/","text":"lane_context Access lane context values Access the fastlane lane context values. More information about how the lane context works: https://docs.fastlane.tools/advanced/#lane-context . lane_context Supported platforms ios, android, mac Author @KrauseFx 2 Examples lane_context[SharedValues::BUILD_NUMBER] lane_context[SharedValues::IPA_OUTPUT_PATH] Documentation To show the documentation in your terminal, run fastlane action lane_context CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run lane_context To pass parameters, make use of the : symbol, for example fastlane run lane_context parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"lane_context"},{"location":"actions/lane_context/#lane_context","text":"Access lane context values Access the fastlane lane context values. More information about how the lane context works: https://docs.fastlane.tools/advanced/#lane-context . lane_context Supported platforms ios, android, mac Author @KrauseFx","title":"lane_context"},{"location":"actions/lane_context/#2-examples","text":"lane_context[SharedValues::BUILD_NUMBER] lane_context[SharedValues::IPA_OUTPUT_PATH]","title":"2 Examples"},{"location":"actions/lane_context/#documentation","text":"To show the documentation in your terminal, run fastlane action lane_context","title":"Documentation"},{"location":"actions/lane_context/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run lane_context To pass parameters, make use of the : symbol, for example fastlane run lane_context parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/lane_context/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/last_git_commit/","text":"last_git_commit Return last git commit hash, abbreviated commit hash, commit message and author last_git_commit Supported platforms ios, android, mac Author @ngutman Returns Returns the following dict: 1 Example commit = last_git_commit pilot(changelog: commit[:message]) # message of commit author = commit[:author] # author of the commit author_email = commit[:author_email] # email of the author of the commit hash = commit[:commit_hash] # long sha of commit short_hash = commit[:abbreviated_commit_hash] # short sha of commit Documentation To show the documentation in your terminal, run fastlane action last_git_commit CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run last_git_commit To pass parameters, make use of the : symbol, for example fastlane run last_git_commit parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"last_git_commit"},{"location":"actions/last_git_commit/#last_git_commit","text":"Return last git commit hash, abbreviated commit hash, commit message and author last_git_commit Supported platforms ios, android, mac Author @ngutman Returns Returns the following dict:","title":"last_git_commit"},{"location":"actions/last_git_commit/#1-example","text":"commit = last_git_commit pilot(changelog: commit[:message]) # message of commit author = commit[:author] # author of the commit author_email = commit[:author_email] # email of the author of the commit hash = commit[:commit_hash] # long sha of commit short_hash = commit[:abbreviated_commit_hash] # short sha of commit","title":"1 Example"},{"location":"actions/last_git_commit/#documentation","text":"To show the documentation in your terminal, run fastlane action last_git_commit","title":"Documentation"},{"location":"actions/last_git_commit/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run last_git_commit To pass parameters, make use of the : symbol, for example fastlane run last_git_commit parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/last_git_commit/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/last_git_tag/","text":"last_git_tag Get the most recent git tag If you are using this action on a shallow clone , the default with some CI systems like Bamboo , you need to ensure that you have also pulled all the git tags appropriately. Assuming your git repo has the correct remote set you can issue sh('git fetch --tags') . Pattern parameter allows you to filter to a subset of tags. last_git_tag Supported platforms ios, android, mac Author @KrauseFx, @wedkarz 2 Examples last_git_tag last_git_tag(pattern: \"release/v1.0/\") Parameters Key Description Default pattern Pattern to filter tags when looking for last one. Limit tags to ones matching given shell glob. If pattern lacks ?, *, or [, * at the end is implied * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action last_git_tag CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run last_git_tag To pass parameters, make use of the : symbol, for example fastlane run last_git_tag parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"last_git_tag"},{"location":"actions/last_git_tag/#last_git_tag","text":"Get the most recent git tag If you are using this action on a shallow clone , the default with some CI systems like Bamboo , you need to ensure that you have also pulled all the git tags appropriately. Assuming your git repo has the correct remote set you can issue sh('git fetch --tags') . Pattern parameter allows you to filter to a subset of tags. last_git_tag Supported platforms ios, android, mac Author @KrauseFx, @wedkarz","title":"last_git_tag"},{"location":"actions/last_git_tag/#2-examples","text":"last_git_tag last_git_tag(pattern: \"release/v1.0/\")","title":"2 Examples"},{"location":"actions/last_git_tag/#parameters","text":"Key Description Default pattern Pattern to filter tags when looking for last one. Limit tags to ones matching given shell glob. If pattern lacks ?, *, or [, * at the end is implied * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/last_git_tag/#documentation","text":"To show the documentation in your terminal, run fastlane action last_git_tag","title":"Documentation"},{"location":"actions/last_git_tag/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run last_git_tag To pass parameters, make use of the : symbol, for example fastlane run last_git_tag parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/last_git_tag/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/latest_testflight_build_number/","text":"latest_testflight_build_number Fetches most recent build number from TestFlight Provides a way to have increment_build_number be based on the latest build you uploaded to iTC. Fetches the most recent build number from TestFlight based on the version number. Provides a way to have increment_build_number be based on the latest build you uploaded to iTC. latest_testflight_build_number Supported platforms ios, mac Author @daveanderson Returns Integer representation of the latest build number uploaded to TestFlight 2 Examples latest_testflight_build_number(version: \"1.3\") increment_build_number({ build_number: latest_testflight_build_number + 1 }) Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) live Query the live version (ready-for-sale) false app_identifier The bundle identifier of your app * username Your Apple ID Username * version The version number whose latest build number we want platform The platform to use (optional) ios initial_build_number sets the build number to given value if no build is in current train 1 team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The latest_testflight_build_number action generates the following Lane Variables: SharedValue Description SharedValues::LATEST_TESTFLIGHT_BUILD_NUMBER The latest build number of the latest version of the app uploaded to TestFlight SharedValues::LATEST_TESTFLIGHT_VERSION The version of the latest build number To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action latest_testflight_build_number CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run latest_testflight_build_number To pass parameters, make use of the : symbol, for example fastlane run latest_testflight_build_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"latest_testflight_build_number"},{"location":"actions/latest_testflight_build_number/#latest_testflight_build_number","text":"Fetches most recent build number from TestFlight Provides a way to have increment_build_number be based on the latest build you uploaded to iTC. Fetches the most recent build number from TestFlight based on the version number. Provides a way to have increment_build_number be based on the latest build you uploaded to iTC. latest_testflight_build_number Supported platforms ios, mac Author @daveanderson Returns Integer representation of the latest build number uploaded to TestFlight","title":"latest_testflight_build_number"},{"location":"actions/latest_testflight_build_number/#2-examples","text":"latest_testflight_build_number(version: \"1.3\") increment_build_number({ build_number: latest_testflight_build_number + 1 })","title":"2 Examples"},{"location":"actions/latest_testflight_build_number/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) live Query the live version (ready-for-sale) false app_identifier The bundle identifier of your app * username Your Apple ID Username * version The version number whose latest build number we want platform The platform to use (optional) ios initial_build_number sets the build number to given value if no build is in current train 1 team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/latest_testflight_build_number/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The latest_testflight_build_number action generates the following Lane Variables: SharedValue Description SharedValues::LATEST_TESTFLIGHT_BUILD_NUMBER The latest build number of the latest version of the app uploaded to TestFlight SharedValues::LATEST_TESTFLIGHT_VERSION The version of the latest build number To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/latest_testflight_build_number/#documentation","text":"To show the documentation in your terminal, run fastlane action latest_testflight_build_number","title":"Documentation"},{"location":"actions/latest_testflight_build_number/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run latest_testflight_build_number To pass parameters, make use of the : symbol, for example fastlane run latest_testflight_build_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/latest_testflight_build_number/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/lcov/","text":"lcov Generates coverage data using lcov lcov Supported platforms ios, mac Author @thiagolioy 1 Example lcov( project_name: \"ProjectName\", scheme: \"yourScheme\", output_dir: \"cov_reports\" # This value is optional. Default is coverage_reports ) Parameters Key Description Default project_name Name of the project scheme Scheme of the project arch The build arch where will search .gcda files i386 output_dir The output directory that coverage data will be stored. If not passed will use coverage_reports as default value coverage_reports * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action lcov CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run lcov To pass parameters, make use of the : symbol, for example fastlane run lcov parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"lcov"},{"location":"actions/lcov/#lcov","text":"Generates coverage data using lcov lcov Supported platforms ios, mac Author @thiagolioy","title":"lcov"},{"location":"actions/lcov/#1-example","text":"lcov( project_name: \"ProjectName\", scheme: \"yourScheme\", output_dir: \"cov_reports\" # This value is optional. Default is coverage_reports )","title":"1 Example"},{"location":"actions/lcov/#parameters","text":"Key Description Default project_name Name of the project scheme Scheme of the project arch The build arch where will search .gcda files i386 output_dir The output directory that coverage data will be stored. If not passed will use coverage_reports as default value coverage_reports * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/lcov/#documentation","text":"To show the documentation in your terminal, run fastlane action lcov","title":"Documentation"},{"location":"actions/lcov/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run lcov To pass parameters, make use of the : symbol, for example fastlane run lcov parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/lcov/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/mailgun/","text":"mailgun Send a success/error message to an email group mailgun Supported platforms ios, android, mac Author @thiagolioy 2 Examples mailgun( to: \"fastlane@krausefx.com\", success: true, message: \"This is the mail's content\" ) mailgun( postmaster: \"MY_POSTMASTER\", apikey: \"MY_API_KEY\", to: \"DESTINATION_EMAIL\", from: \"EMAIL_FROM_NAME\", reply_to: \"EMAIL_REPLY_TO\", success: true, message: \"Mail Body\", app_link: \"http://www.myapplink.com\", ci_build_link: \"http://www.mycibuildlink.com\", template_path: \"HTML_TEMPLATE_PATH\", custom_placeholders: { :var1 => 123, :var2 => \"string\" }, attachment: \"dirname/filename.ext\" ) Parameters Key Description Default mailgun_sandbox_domain Mailgun sandbox domain postmaster for your mail. Please use postmaster instead mailgun_sandbox_postmaster Mailgun sandbox domain postmaster for your mail. Please use postmaster instead mailgun_apikey Mailgun apikey for your mail. Please use postmaster instead postmaster Mailgun sandbox domain postmaster for your mail apikey Mailgun apikey for your mail to Destination of your mail from Mailgun sender name Mailgun Sandbox message Message of your mail subject Subject of your mail fastlane build success Was this build successful? (true/false) true app_link App Release link ci_build_link CI Build Link template_path Mail HTML template reply_to Mail Reply to attachment Mail Attachment filenames, either an array or just one string custom_placeholders Placeholders for template given as a hash {} * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action mailgun CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run mailgun To pass parameters, make use of the : symbol, for example fastlane run mailgun parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"mailgun"},{"location":"actions/mailgun/#mailgun","text":"Send a success/error message to an email group mailgun Supported platforms ios, android, mac Author @thiagolioy","title":"mailgun"},{"location":"actions/mailgun/#2-examples","text":"mailgun( to: \"fastlane@krausefx.com\", success: true, message: \"This is the mail's content\" ) mailgun( postmaster: \"MY_POSTMASTER\", apikey: \"MY_API_KEY\", to: \"DESTINATION_EMAIL\", from: \"EMAIL_FROM_NAME\", reply_to: \"EMAIL_REPLY_TO\", success: true, message: \"Mail Body\", app_link: \"http://www.myapplink.com\", ci_build_link: \"http://www.mycibuildlink.com\", template_path: \"HTML_TEMPLATE_PATH\", custom_placeholders: { :var1 => 123, :var2 => \"string\" }, attachment: \"dirname/filename.ext\" )","title":"2 Examples"},{"location":"actions/mailgun/#parameters","text":"Key Description Default mailgun_sandbox_domain Mailgun sandbox domain postmaster for your mail. Please use postmaster instead mailgun_sandbox_postmaster Mailgun sandbox domain postmaster for your mail. Please use postmaster instead mailgun_apikey Mailgun apikey for your mail. Please use postmaster instead postmaster Mailgun sandbox domain postmaster for your mail apikey Mailgun apikey for your mail to Destination of your mail from Mailgun sender name Mailgun Sandbox message Message of your mail subject Subject of your mail fastlane build success Was this build successful? (true/false) true app_link App Release link ci_build_link CI Build Link template_path Mail HTML template reply_to Mail Reply to attachment Mail Attachment filenames, either an array or just one string custom_placeholders Placeholders for template given as a hash {} * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/mailgun/#documentation","text":"To show the documentation in your terminal, run fastlane action mailgun","title":"Documentation"},{"location":"actions/mailgun/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run mailgun To pass parameters, make use of the : symbol, for example fastlane run mailgun parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/mailgun/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/make_changelog_from_jenkins/","text":"make_changelog_from_jenkins Generate a changelog using the Changes section from the current Jenkins build This is useful when deploying automated builds. The changelog from Jenkins lists all the commit messages since the last build. make_changelog_from_jenkins Supported platforms ios, android, mac Author @mandrizzle 1 Example make_changelog_from_jenkins( # Optional, lets you set a changelog in the case is not generated on Jenkins or if ran outside of Jenkins fallback_changelog: \"Bug fixes and performance enhancements\" ) Parameters Key Description Default fallback_changelog Fallback changelog if there is not one on Jenkins, or it couldn't be read '' include_commit_body Include the commit body along with the summary true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The make_changelog_from_jenkins action generates the following Lane Variables: SharedValue Description SharedValues::FL_CHANGELOG The changelog generated by Jenkins To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action make_changelog_from_jenkins CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run make_changelog_from_jenkins To pass parameters, make use of the : symbol, for example fastlane run make_changelog_from_jenkins parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"make_changelog_from_jenkins"},{"location":"actions/make_changelog_from_jenkins/#make_changelog_from_jenkins","text":"Generate a changelog using the Changes section from the current Jenkins build This is useful when deploying automated builds. The changelog from Jenkins lists all the commit messages since the last build. make_changelog_from_jenkins Supported platforms ios, android, mac Author @mandrizzle","title":"make_changelog_from_jenkins"},{"location":"actions/make_changelog_from_jenkins/#1-example","text":"make_changelog_from_jenkins( # Optional, lets you set a changelog in the case is not generated on Jenkins or if ran outside of Jenkins fallback_changelog: \"Bug fixes and performance enhancements\" )","title":"1 Example"},{"location":"actions/make_changelog_from_jenkins/#parameters","text":"Key Description Default fallback_changelog Fallback changelog if there is not one on Jenkins, or it couldn't be read '' include_commit_body Include the commit body along with the summary true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/make_changelog_from_jenkins/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The make_changelog_from_jenkins action generates the following Lane Variables: SharedValue Description SharedValues::FL_CHANGELOG The changelog generated by Jenkins To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/make_changelog_from_jenkins/#documentation","text":"To show the documentation in your terminal, run fastlane action make_changelog_from_jenkins","title":"Documentation"},{"location":"actions/make_changelog_from_jenkins/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run make_changelog_from_jenkins To pass parameters, make use of the : symbol, for example fastlane run make_changelog_from_jenkins parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/make_changelog_from_jenkins/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/match/","text":"match Alias for the sync_code_signing action Easily sync your certificates and profiles across your team A new approach to iOS and macOS code signing: Share one code signing identity across your development team to simplify your codesigning setup and prevent code signing issues. match is the implementation of the codesigning.guide concept . match creates all required certificates & provisioning profiles and stores them in a separate git repository, Google Cloud, or Amazon S3. Every team member with access to the selected storage can use those credentials for code signing. match also automatically repairs broken and expired credentials. It's the easiest way to share signing credentials across teams More information on how to get started with codesigning Why? \u2022 Usage \u2022 Is this secure? match is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Why match? Before starting to use match , make sure to read the codesigning.guide : When deploying an app to the App Store, beta testing service or even installing it on a device, most development teams have separate code signing identities for every member. This results in dozens of profiles including a lot of duplicates. You have to manually renew and download the latest set of provisioning profiles every time you add a new device or a certificate expires. Additionally this requires spending a lot of time when setting up a new machine that will build your app. A new approach Share one code signing identity across your development team to simplify your setup and prevent code signing issues. What if there was a central place where your code signing identity and profiles are kept, so anyone in the team can access them during the build process? For more information about the concept, visit codesigning.guide . Why not let Xcode handle all this? You have full control over what happens You have access to all the certificates and profiles, which are all securely stored in git You share one code signing identity across the team to have fewer certificates and profiles Xcode sometimes revokes certificates which breaks your setup causing failed builds More predictable builds by settings profiles in an explicit way instead of using the Automatic setting It just works\u2122 What does match do for you? match \ud83d\udd04 Automatically sync your iOS and macOS keys and profiles across all your team members using git \ud83d\udce6 Handle all the heavy lifting of creating and storing your certificates and profiles \ud83d\udcbb Setup codesigning on a new machine in under a minute \ud83c\udfaf Designed to work with apps with multiple targets and bundle identifiers \ud83d\udd12 You have full control over your files and Git repo, no third party service involved \u2728 Provisioning profile will always match the correct certificate \ud83d\udca5 Easily reset your existing profiles and certificates if your current account has expired or invalid profiles \u267b\ufe0f Automatically renew your provisioning profiles to include all your devices using the --force option \ud83d\udc65 Support for multiple Apple accounts and multiple teams \u2728 Tightly integrated with fastlane to work seamlessly with gym and other build tools Usage Setup Optional: Create a new, shared Apple Developer Portal account , something like office@company.com , that will be shared across your team from now on (for more information visit codesigning.guide ) Run the following in your project folder to start using match : fastlane match init You'll be asked if you want to store your code signing identities inside a Git repo , Google Cloud or Amazon S3 . Git Storage Use Git Storage to store all code signing identities in a private git repo, owned and operated by you. The files will be encrypted using OpenSSL. First, enter the URL to your private (!) Git repo (You can create one for free on e.g. GitHub or BitBucket ). The URL you enter can be either a https:// or a git URL. fastlane match init won't read or modify your certificates or profiles yet, and also won't validate your git URL. This will create a Matchfile in your current directory (or in your ./fastlane/ folder). Example content (for more advanced setups check out the fastlane section ): git_url(\"https://github.com/fastlane/certificates\") app_identifier(\"tools.fastlane.app\") username(\"user@fastlane.tools\") Git Storage on GitHub If your machine is currently using SSH to authenticate with GitHub, you'll want to use a git URL, otherwise, you may see an authentication error when you attempt to use match. Alternatively, you can set a basic authorization for match : Using parameter: match(git_basic_authorization: '') Using environment variable: ENV['MATCH_GIT_BASIC_AUTHORIZATION'] = '' match To generate your base64 key according to RFC 7617 , run this: echo -n your_github_username:your_personal_access_token | base64 You can find more information about GitHub basic authentication and personal token generation here: https://developer.github.com/v3/auth/#basic-authentication Git Storage on GitHub - Deploy keys If your machine does not have a private key set up for your certificates repository, you can give match a path for one: Using parameter: match(git_private_key: '') Using environment variable: ENV['MATCH_GIT_PRIVATE_KEY'] = '' match You can find more information about GitHub basic authentication and personal token generation here: https://developer.github.com/v3/auth/#basic-authentication Git Storage on Azure DevOps If you're running a pipeline on Azure DevOps and using git storage in a another repository on the same project, you might want to use bearer token authentication. Using parameter: match(git_bearer_authorization: '') Using environment variable: ENV['MATCH_GIT_BEARER_AUTHORIZATION'] = '' match You can find more information about this use case here: https://docs.microsoft.com/en-us/azure/devops/pipelines/repos/azure-repos-git?view=azure-devops&tabs=yaml#authorize-access-to-your-repositories Google Cloud Storage Use Google Cloud Storage for a fully hosted solution for your code signing identities. Certificates are stored on Google Cloud, encrypted using Google managed keys. Everything will be stored on your Google account, inside a storage bucket you provide. You can also directly access the files using the web console. This will create a Matchfile in your current directory (or in your ./fastlane/ folder). Example content (for more advanced setups check out the fastlane section ): google_cloud_bucket_name(\"major-key-certificates\") Amazon S3 Use Amazon S3 for a fully hosted solution for your code signing identities. Certificates are stored on S3, inside a storage bucket you provide. You can also directly access the files using the web console. This will create a Matchfile in your current directory (or in your ./fastlane/ folder). Example content (for more advanced setups check out the fastlane section ): s3_bucket(\"ios-certificates\") Multiple teams match can store the codesigning files for multiple development teams: Git Storage Use one git branch per team. match also supports storing certificates of multiple teams in one repo, by using separate git branches. If you work in multiple teams, make sure to set the git_branch parameter to a unique value per team. From there, match will automatically create and use the specified branch for you. match(git_branch: \"team1\", username: \"user@team1.com\") match(git_branch: \"team2\", username: \"user@team2.com\") Google Cloud or Amazon S3 Storage If you use Google Cloud or Amazon S3 Storage, you don't need to do anything manually. Just use Google Cloud or Amazon S3 Storage, and the top level folder will be the team ID. Run Before running match for the first time, you should consider clearing your existing profiles and certificates using the match nuke command . After running fastlane match init you can run the following to generate new certificates and profiles: fastlane match appstore fastlane match development This will create a new certificate and provisioning profile (if required) and store them in your selected storage. If you previously ran match with the configured storage it will automatically install the existing profiles from your storage. The provisioning profiles are installed in ~/Library/MobileDevice/Provisioning Profiles while the certificates and private keys are installed in your Keychain. To get a more detailed output of what match is doing use fastlane match --verbose For a list of all available options run fastlane action match Handle multiple targets match can use the same one Git repository, Google Cloud, or Amazon S3 Storage for all bundle identifiers. If you have several targets with different bundle identifiers, supply them as a comma-separated list: fastlane match appstore -a tools.fastlane.app,tools.fastlane.app.watchkitapp You can make this even easier using fastlane by creating a certificates lane like this: lane :certificates do match(app_identifier: [\"tools.fastlane.app\", \"tools.fastlane.app.watchkitapp\"]) end Then all your team has to do is run fastlane certificates and the keys, certificates and profiles for all targets will be synced. Handle multiple apps per developer/distribution certificate If you want to use a single developer and/or distribution certificate for multiple apps belonging to the same development team, you may use the same signing identities repository and branch to store the signing identities for your apps: Matchfile example for both App #1 and #2: git_url(\"https://github.com/example/example-repo.git\") git_branch(\"master\") match will reuse certificates and will create separate provisioning profiles for each app. Passphrase Git Repo storage only When running match for the first time on a new machine, it will ask you for the passphrase for the Git repository. This is an additional layer of security: each of the files will be encrypted using openssl . Make sure to remember the password, as you'll need it when you run match on a different machine. To set the passphrase to decrypt your profiles using an environment variable (and avoid the prompt) use MATCH_PASSWORD . Migrate from Git Repo to Google Cloud If you're already using a Git Repo, but would like to switch to using Google Cloud Storage, run the following command to automatically migrate all your existing code signing identities and provisioning profiles fastlane match migrate After a successful migration you can safely delete your Git repo. Google Cloud access control Google Cloud Storage only There are two cases for reading and writing certificates stored in a Google Cloud storage bucket: Continuous integration jobs. These will authenticate to your Google Cloud project via a service account, and use a gc_keys.json file as credentials. Developers on a local workstation. In this case, you should choose whether everyone on your team will create their own gc_keys.json file, or whether you want to manage access to the bucket directly using your developers' Google accounts. When running fastlane match init the first time, the setup process will give you the option to create your gc_keys.json file. This file contains the authentication credentials needed to access your Google Cloud storage bucket. Make sure to keep that file secret and never add it to version control. We recommend adding gc_keys.json to your .gitignore Managing developer access via keys If you want to manage developer access to your certificates via authentication keys, every developer should create their own gc_keys.json and add the file to all their work machines. This will give the admin full control over who has read/write access to the given Storage bucket. At the same time it allows your team to revoke a single key if a file gets compromised. Managing developer access via Google accounts If your developers already have Google accounts and access to your Google Cloud project, you can also manage access to the storage bucket via Cloud Identity and Access Management (IAM) . Just set up individual developer accounts or an entire Google Group containing your team as readers and writers on your storage bucket. You can then specify the Google Cloud project id containing your storage bucket in your Matchfile : storage_mode(\"google_cloud\") google_cloud_bucket_name(\"my-app-certificates\") google_cloud_project_id(\"my-app-project\") This lets developers on your team use Application Default Credentials when accessing your storage bucket. After installing the Google Cloud SDK , they only need to run the following command once: gcloud auth application-default login ... and log in with their Google account. Then, when they run fastlane match , match will use these credentials to read from and write to the storage bucket. New machine To set up the certificates and provisioning profiles on a new machine, you just run the same command using: fastlane match development You can also run match in a readonly mode to be sure it won't create any new certificates or profiles. fastlane match development --readonly We recommend to always use readonly mode when running fastlane on CI systems. This can be done using lane :beta do match(type: \"appstore\", readonly: is_ci) gym(scheme: \"Release\") end Access Control A benefit of using match is that it enables you to give the developers of your team access to the code signing certificates without having to give everyone access to the Developer Portal: Run match to store the certificates in a Git repo or Google Cloud Storage Grant access to the Git repo / Google Cloud Storage Bucket to your developers and give them the passphrase (for git storage) The developers can now run match which will install the latest code signing profiles so they can build and sign the application without having to have access to the Apple Developer Portal Every time you run match to update the profiles (e.g. add a new device), all your developers will automatically get the latest profiles when running match If you decide to run match without access to the Developer Portal, make sure to use the --readonly option so that the commands don't ask you for the password to the Developer Portal. The advantage of this approach is that no one in your team will revoke a certificate by mistake, while having all code signing secrets in one location. Folder structure After running match for the first time, your Git repo or Google Cloud bucket will contain 2 directories: The certs folder contains all certificates with their private keys The profiles folder contains all provisioning profiles Additionally, match creates a nice repo README.md for you, making it easy to onboard new team members: In the case of Google Cloud, the top level folder will be the team ID. fastlane Add match to your Fastfile to automatically fetch the latest code signing certificates with fastlane . match(type: \"appstore\") match(type: \"development\") match(type: \"adhoc\", app_identifier: \"tools.fastlane.app\") match(type: \"enterprise\", app_identifier: \"tools.fastlane.app\") # _match_ should be called before building the app with _gym_ gym # ... Registering new devices By using match , you'll save a lot of time every time you add new device to your Ad Hoc or Development profiles. Use match in combination with the register_devices action. lane :beta do register_devices(devices_file: \"./devices.txt\") match(type: \"adhoc\", force_for_new_devices: true) end By using the force_for_new_devices parameter, match will check if the (enabled) device count has changed since the last time you ran match , and automatically re-generate the provisioning profile if necessary. You can also use force: true to re-generate the provisioning profile on each run. Important: The force_for_new_devices parameter is ignored for App Store provisioning profiles since they don't contain any device information. If you're not using Fastfile , you can also use the force_for_new_devices option from the command line: fastlane match adhoc --force_for_new_devices Templates (aka: custom entitlements) match can generate profiles that contain custom entitlements by passing in the entitlement's name with the template_name parameter. match(type: \"development\", template_name: \"Apple Pay Pass Suppression Development\") Setup Xcode project Docs on how to set up your Xcode project To build from the command line using fastlane match automatically pre-fills environment variables with the UUIDs of the correct provisioning profiles, ready to be used in your Xcode project. More information about how to setup your Xcode project can be found here To build from Xcode manually This is useful when installing your application on your device using the Development profile. You can statically select the right provisioning profile in your Xcode project (the name will be match Development tools.fastlane.app ). Docs on how to set up your Xcode project Continuous Integration Git repo access There is one tricky part of setting up a CI system to work with match , which is enabling the CI to access the repo. Usually you'd just add your CI's public ssh key as a deploy key to your match repo, but since your CI will already likely be using its public ssh key to access the codebase repo, you won't be able to do that . Some repo hosts might allow you to use the same deploy key for different repos, but GitHub will not. If your host does, you don't need to worry about this, just add your CI's public ssh key as a deploy key for your match repo and scroll down to \" Encryption password \". There are a few ways around this: Create a new account on your repo host with read-only access to your match repo. Bitrise have a good description of this here . Some CIs allow you to upload your signing credentials manually, but obviously this means that you'll have to re-upload the profiles/keys/certs each time they change. Neither solution is pretty. It's one of those trade-off things. Do you care more about not having an extra account sitting around, or do you care more about having the :sparkles: of auto-syncing of credentials. Git repo encryption password Once you've decided which approach to take, all that's left to do is to set your encryption password as secret environment variable named MATCH_PASSWORD . match will pick this up when it's run. Google Cloud Storage access Accessing Google Cloud Storage from your CI system requires you to provide the gc_keys.json file as part of your build. How you implement this is your decision. You can inject that file during build time. Amazon S3 Storage access Accessing Amazon S3 Storage from your CI system requires you to provide the s3_region , s3_access_key , s3_secret_access_key and s3_bucket options (or environment variables), with keys that has read access to the bucket. Nuke If you never really cared about code signing and have a messy Apple Developer account with a lot of invalid, expired or Xcode managed profiles/certificates, you can use the match nuke command to revoke your certificates and provisioning profiles. Don't worry, apps that are already available in the App Store / TestFlight will still work. Builds distributed via Ad Hoc or Enterprise will be disabled after nuking your account, so you'll have to re-upload a new build. After clearing your account you'll start from a clean state, and you can run match to generate your certificates and profiles again. To revoke all certificates and provisioning profiles for a specific environment: fastlane match nuke development fastlane match nuke distribution fastlane match nuke enterprise You'll have to confirm a list of profiles / certificates that will be deleted. Advanced Git Storage features Change Password To change the password of your repo and therefore decrypting and encrypting all files run: fastlane match change_password You'll be asked for the new password on all your machines on the next run. Import To import and encrypt a certificate ( .cer ), the private key ( .p12 ) and the provisioning profiles ( .mobileprovision or .provisionprofile ) into the match repo run: fastlane match import You'll be prompted for the certificate ( .cer ), the private key ( .p12 ) and the provisioning profiles ( .mobileprovision or .provisionprofile ) paths. match will first validate the certificate ( .cer ) against the Developer Portal before importing the certificate, the private key and the provisioning profiles into the specified match repository. However if there is no access to the developer portal but there are certificates, private keys and profiles provided, you can use the skip_certificate_matching option to tell match not to verify the certificates. Like this: fastlane match import --skip_certificate_matching true This will skip login to Apple Developer Portal and will import the provided certificate, private key and profile directly to the certificates repo. Please be careful when using this option and ensure the certificates and profiles match the type (development, adhoc, appstore, enterprise, developer_id) and are not revoked or expired. Manual Decrypt If you want to manually decrypt a file you can. openssl aes-256-cbc -k \"\" -in \"\" -out \"\" -a -d -md [md5|sha256] Note: You may need to swap double quotes \" for single quotes ' if your match password contains an exclamation mark ! . Export Distribution Certificate and Private Key as Single .p12 File match stores the certificate ( .cer ) and the private key ( .p12 ) files separately. The following steps will repackage the separate certificate and private key into a single .p12 file. Decrypt your cert found in certs//.cer as a pem file: openssl aes-256-cbc -k \"\" -in \"certs//.cer\" -out \"cert.der\" -a -d -md [md5|sha256] openssl x509 -inform der -in cert.der -out cert.pem Decrypt your private key found in certs//.p12 as a pem file: openssl aes-256-cbc -k \"\" -in \"certs/distribution/.p12\" -out \"key.pem\" -a -d -md [md5|sha256] Generate an encrypted p12 file with the same or new password: openssl pkcs12 -export -out \"cert.p12\" -inkey \"key.pem\" -in \"cert.pem\" -password pass: Is this secure? Git Both your keys and provisioning profiles are encrypted using OpenSSL using a passphrase. Storing your private keys in a Git repo may sound off-putting at first. We did an analysis of potential security issues, see section below. Google Cloud Storage All your keys and provisioning profiles are encrypted using Google managed keys. What could happen if someone stole a private key? If attackers would have your certificate and provisioning profile, they could codesign an application with the same bundle identifier. What's the worst that could happen for each of the profile types? App Store Profiles An App Store profile can't be used for anything as long as it's not re-signed by Apple. The only way to get an app resigned is to submit an app for review which could take anywhere from 24 hours to a few days (checkout appreviewtimes.com for up-to-date expectations). Attackers could only submit an app for review, if they also got access to your App Store Connect credentials (which are not stored in git, but in your local keychain). Additionally you get an email notification every time a build gets uploaded to cancel the submission even before your app gets into the review stage. Development and Ad Hoc Profiles In general those profiles are harmless as they can only be used to install a signed application on a small subset of devices. To add new devices, the attacker would also need your Apple Developer Portal credentials (which are not stored in git, but in your local keychain). Enterprise Profiles Attackers could use an In-House profile to distribute signed application to a potentially unlimited number of devices. All this would run under your company name and it could eventually lead to Apple revoking your In-House account. However it is very easy to revoke a certificate to remotely break the app on all devices. Because of the potentially dangerous nature of In-House profiles please use match with enterprise profiles with caution, ensure your git repository is private and use a secure password. To sum up You have full control over the access list of your Git repo, no third party service involved Even if your certificates are leaked, they can't be used to cause any harm without your App Store Connect login credentials Use In-House enterprise profile with match with caution If you use GitHub or Bitbucket we encourage enabling 2 factor authentication for all accounts that have access to the certificates repo The complete source code of match is fully open source on GitHub match Supported platforms ios, mac Author @KrauseFx 4 Examples sync_code_signing(type: \"appstore\", app_identifier: \"tools.fastlane.app\") sync_code_signing(type: \"development\", readonly: true) sync_code_signing(app_identifier: [\"tools.fastlane.app\", \"tools.fastlane.sleepy\"]) match # alias for \"sync_code_signing\" Parameters Key Description Default type Define the profile type, can be appstore, adhoc, development, enterprise, developer_id, mac_installer_distribution, developer_id_installer development additional_cert_types Create additional cert types needed for macOS installers (valid values: mac_installer_distribution, developer_id_installer) readonly Only fetch existing certificates and profiles, don't generate new ones false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * skip_provisioning_profiles Skip syncing provisioning profiles false app_identifier The bundle identifier(s) of your app (comma-separated string or array of strings) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * storage_mode Define where you want to store your certificates git git_url URL to the git repo containing all the certificates git_branch Specific git branch to use master git_full_name git user full name to commit git_user_email git user email to commit shallow_clone Make a shallow clone of the repository (truncate the history to 1 revision) false clone_branch_directly Clone just the branch specified, instead of the whole repo. This requires that the branch already exists. Otherwise the command will fail false git_basic_authorization Use a basic authorization header to access the git repo (e.g.: access via HTTPS, GitHub Actions, etc), usually a string in Base64 git_bearer_authorization Use a bearer authorization header to access the git repo (e.g.: access to an Azure DevOps repository), usually a string in Base64 git_private_key Use a private key to access the git repo (e.g.: access to GitHub repository via Deploy keys), usually a id_rsa named file or the contents hereof google_cloud_bucket_name Name of the Google Cloud Storage bucket to use google_cloud_keys_file Path to the gc_keys.json file google_cloud_project_id ID of the Google Cloud project to use for authentication skip_google_cloud_account_confirmation Skips confirming to use the system google account false s3_region Name of the S3 region s3_access_key S3 access key s3_secret_access_key S3 secret access key s3_bucket Name of the S3 bucket s3_object_prefix Prefix to be used on all objects uploaded to S3 s3_skip_encryption Skip encryption of all objects uploaded to S3. WARNING: only enable this on S3 buckets with sufficiently restricted permissions and server-side encryption enabled. See https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html false gitlab_project GitLab Project Path (i.e. 'gitlab-org/gitlab') gitlab_host GitLab Host (i.e. 'https://gitlab.com') https://gitlab.com job_token GitLab CI_JOB_TOKEN private_token GitLab Access Token keychain_name Keychain the items should be imported to login.keychain keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password force Renew the provisioning profiles every time you run match false force_for_new_devices Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile types 'appstore' and 'developer_id' false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false force_for_new_certificates Renew the provisioning profiles if the certificate count on the developer portal has changed. Works only for the 'development' provisioning profile type. Requires 'include_all_certificates' option to be 'true' false skip_confirmation Disables confirmation prompts during nuke, answering them with yes false safe_remove_certs Remove certs from repository during nuke without revoking them on the developer portal false skip_docs Skip generation of a README.md for the created git repository false platform Set the provisioning profile's platform to work with (i.e. ios, tvos, macos, catalyst) * derive_catalyst_app_identifier Enable this if you have the Mac Catalyst capability enabled and your project was created with Xcode 11.3 or earlier. Prepends 'maccatalyst.' to the app identifier for the provisioning profile mapping false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") profile_name A custom name for the provisioning profile. This will replace the default provisioning profile name if specified fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false skip_certificate_matching Set to true if there is no access to Apple developer portal but there are certificates, keys and profiles provided. Only works with match import action false output_path Path in which to export certificates, key and profile skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false verbose Print out extra information and all commands false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The match action generates the following Lane Variables: SharedValue Description SharedValues::MATCH_PROVISIONING_PROFILE_MAPPING The match provisioning profile mapping SharedValues::SIGH_PROFILE_TYPE The profile type, can be app-store, ad-hoc, development, enterprise, can be used in build_app as a default value for export_method To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action match CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run match To pass parameters, make use of the : symbol, for example fastlane run match parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"match"},{"location":"actions/match/#match","text":"Alias for the sync_code_signing action","title":"match"},{"location":"actions/match/#why-match","text":"Before starting to use match , make sure to read the codesigning.guide : When deploying an app to the App Store, beta testing service or even installing it on a device, most development teams have separate code signing identities for every member. This results in dozens of profiles including a lot of duplicates. You have to manually renew and download the latest set of provisioning profiles every time you add a new device or a certificate expires. Additionally this requires spending a lot of time when setting up a new machine that will build your app. A new approach Share one code signing identity across your development team to simplify your setup and prevent code signing issues. What if there was a central place where your code signing identity and profiles are kept, so anyone in the team can access them during the build process? For more information about the concept, visit codesigning.guide .","title":"Why match?"},{"location":"actions/match/#usage","text":"","title":"Usage"},{"location":"actions/match/#advanced-git-storage-features","text":"","title":"Advanced Git Storage features"},{"location":"actions/match/#is-this-secure","text":"","title":"Is this secure?"},{"location":"actions/match/#4-examples","text":"sync_code_signing(type: \"appstore\", app_identifier: \"tools.fastlane.app\") sync_code_signing(type: \"development\", readonly: true) sync_code_signing(app_identifier: [\"tools.fastlane.app\", \"tools.fastlane.sleepy\"]) match # alias for \"sync_code_signing\"","title":"4 Examples"},{"location":"actions/match/#parameters","text":"Key Description Default type Define the profile type, can be appstore, adhoc, development, enterprise, developer_id, mac_installer_distribution, developer_id_installer development additional_cert_types Create additional cert types needed for macOS installers (valid values: mac_installer_distribution, developer_id_installer) readonly Only fetch existing certificates and profiles, don't generate new ones false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * skip_provisioning_profiles Skip syncing provisioning profiles false app_identifier The bundle identifier(s) of your app (comma-separated string or array of strings) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * storage_mode Define where you want to store your certificates git git_url URL to the git repo containing all the certificates git_branch Specific git branch to use master git_full_name git user full name to commit git_user_email git user email to commit shallow_clone Make a shallow clone of the repository (truncate the history to 1 revision) false clone_branch_directly Clone just the branch specified, instead of the whole repo. This requires that the branch already exists. Otherwise the command will fail false git_basic_authorization Use a basic authorization header to access the git repo (e.g.: access via HTTPS, GitHub Actions, etc), usually a string in Base64 git_bearer_authorization Use a bearer authorization header to access the git repo (e.g.: access to an Azure DevOps repository), usually a string in Base64 git_private_key Use a private key to access the git repo (e.g.: access to GitHub repository via Deploy keys), usually a id_rsa named file or the contents hereof google_cloud_bucket_name Name of the Google Cloud Storage bucket to use google_cloud_keys_file Path to the gc_keys.json file google_cloud_project_id ID of the Google Cloud project to use for authentication skip_google_cloud_account_confirmation Skips confirming to use the system google account false s3_region Name of the S3 region s3_access_key S3 access key s3_secret_access_key S3 secret access key s3_bucket Name of the S3 bucket s3_object_prefix Prefix to be used on all objects uploaded to S3 s3_skip_encryption Skip encryption of all objects uploaded to S3. WARNING: only enable this on S3 buckets with sufficiently restricted permissions and server-side encryption enabled. See https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html false gitlab_project GitLab Project Path (i.e. 'gitlab-org/gitlab') gitlab_host GitLab Host (i.e. 'https://gitlab.com') https://gitlab.com job_token GitLab CI_JOB_TOKEN private_token GitLab Access Token keychain_name Keychain the items should be imported to login.keychain keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password force Renew the provisioning profiles every time you run match false force_for_new_devices Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile types 'appstore' and 'developer_id' false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false force_for_new_certificates Renew the provisioning profiles if the certificate count on the developer portal has changed. Works only for the 'development' provisioning profile type. Requires 'include_all_certificates' option to be 'true' false skip_confirmation Disables confirmation prompts during nuke, answering them with yes false safe_remove_certs Remove certs from repository during nuke without revoking them on the developer portal false skip_docs Skip generation of a README.md for the created git repository false platform Set the provisioning profile's platform to work with (i.e. ios, tvos, macos, catalyst) * derive_catalyst_app_identifier Enable this if you have the Mac Catalyst capability enabled and your project was created with Xcode 11.3 or earlier. Prepends 'maccatalyst.' to the app identifier for the provisioning profile mapping false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") profile_name A custom name for the provisioning profile. This will replace the default provisioning profile name if specified fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false skip_certificate_matching Set to true if there is no access to Apple developer portal but there are certificates, keys and profiles provided. Only works with match import action false output_path Path in which to export certificates, key and profile skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false verbose Print out extra information and all commands false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/match/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The match action generates the following Lane Variables: SharedValue Description SharedValues::MATCH_PROVISIONING_PROFILE_MAPPING The match provisioning profile mapping SharedValues::SIGH_PROFILE_TYPE The profile type, can be app-store, ad-hoc, development, enterprise, can be used in build_app as a default value for export_method To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/match/#documentation","text":"To show the documentation in your terminal, run fastlane action match","title":"Documentation"},{"location":"actions/match/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run match To pass parameters, make use of the : symbol, for example fastlane run match parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/match/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/match_nuke/","text":"match_nuke Easily nuke your certificate and provisioning profiles (via match ) Use the match_nuke action to revoke your certificates and provisioning profiles. Don't worry, apps that are already available in the App Store / TestFlight will still work. Builds distributed via Ad Hoc or Enterprise will be disabled after nuking your account, so you'll have to re-upload a new build. After clearing your account you'll start from a clean state, and you can run match to generate your certificates and profiles again. More information: https://docs.fastlane.tools/actions/match/ match_nuke Supported platforms ios, mac Author @crazymanish 2 Examples match_nuke(type: \"development\") match_nuke(type: \"development\", api_key: app_store_connect_api_key) Parameters Key Description Default type Define the profile type, can be appstore, adhoc, development, enterprise, developer_id, mac_installer_distribution, developer_id_installer development additional_cert_types Create additional cert types needed for macOS installers (valid values: mac_installer_distribution, developer_id_installer) readonly Only fetch existing certificates and profiles, don't generate new ones false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * skip_provisioning_profiles Skip syncing provisioning profiles false app_identifier The bundle identifier(s) of your app (comma-separated string or array of strings) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * storage_mode Define where you want to store your certificates git git_url URL to the git repo containing all the certificates git_branch Specific git branch to use master git_full_name git user full name to commit git_user_email git user email to commit shallow_clone Make a shallow clone of the repository (truncate the history to 1 revision) false clone_branch_directly Clone just the branch specified, instead of the whole repo. This requires that the branch already exists. Otherwise the command will fail false git_basic_authorization Use a basic authorization header to access the git repo (e.g.: access via HTTPS, GitHub Actions, etc), usually a string in Base64 git_bearer_authorization Use a bearer authorization header to access the git repo (e.g.: access to an Azure DevOps repository), usually a string in Base64 git_private_key Use a private key to access the git repo (e.g.: access to GitHub repository via Deploy keys), usually a id_rsa named file or the contents hereof google_cloud_bucket_name Name of the Google Cloud Storage bucket to use google_cloud_keys_file Path to the gc_keys.json file google_cloud_project_id ID of the Google Cloud project to use for authentication skip_google_cloud_account_confirmation Skips confirming to use the system google account false s3_region Name of the S3 region s3_access_key S3 access key s3_secret_access_key S3 secret access key s3_bucket Name of the S3 bucket s3_object_prefix Prefix to be used on all objects uploaded to S3 s3_skip_encryption Skip encryption of all objects uploaded to S3. WARNING: only enable this on S3 buckets with sufficiently restricted permissions and server-side encryption enabled. See https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html false gitlab_project GitLab Project Path (i.e. 'gitlab-org/gitlab') gitlab_host GitLab Host (i.e. 'https://gitlab.com') https://gitlab.com job_token GitLab CI_JOB_TOKEN private_token GitLab Access Token keychain_name Keychain the items should be imported to login.keychain keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password force Renew the provisioning profiles every time you run match false force_for_new_devices Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile types 'appstore' and 'developer_id' false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false force_for_new_certificates Renew the provisioning profiles if the certificate count on the developer portal has changed. Works only for the 'development' provisioning profile type. Requires 'include_all_certificates' option to be 'true' false skip_confirmation Disables confirmation prompts during nuke, answering them with yes false safe_remove_certs Remove certs from repository during nuke without revoking them on the developer portal false skip_docs Skip generation of a README.md for the created git repository false platform Set the provisioning profile's platform to work with (i.e. ios, tvos, macos, catalyst) * derive_catalyst_app_identifier Enable this if you have the Mac Catalyst capability enabled and your project was created with Xcode 11.3 or earlier. Prepends 'maccatalyst.' to the app identifier for the provisioning profile mapping false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") profile_name A custom name for the provisioning profile. This will replace the default provisioning profile name if specified fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false skip_certificate_matching Set to true if there is no access to Apple developer portal but there are certificates, keys and profiles provided. Only works with match import action false output_path Path in which to export certificates, key and profile skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false verbose Print out extra information and all commands false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action match_nuke CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run match_nuke To pass parameters, make use of the : symbol, for example fastlane run match_nuke parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"match_nuke"},{"location":"actions/match_nuke/#match_nuke","text":"Easily nuke your certificate and provisioning profiles (via match ) Use the match_nuke action to revoke your certificates and provisioning profiles. Don't worry, apps that are already available in the App Store / TestFlight will still work. Builds distributed via Ad Hoc or Enterprise will be disabled after nuking your account, so you'll have to re-upload a new build. After clearing your account you'll start from a clean state, and you can run match to generate your certificates and profiles again. More information: https://docs.fastlane.tools/actions/match/ match_nuke Supported platforms ios, mac Author @crazymanish","title":"match_nuke"},{"location":"actions/match_nuke/#2-examples","text":"match_nuke(type: \"development\") match_nuke(type: \"development\", api_key: app_store_connect_api_key)","title":"2 Examples"},{"location":"actions/match_nuke/#parameters","text":"Key Description Default type Define the profile type, can be appstore, adhoc, development, enterprise, developer_id, mac_installer_distribution, developer_id_installer development additional_cert_types Create additional cert types needed for macOS installers (valid values: mac_installer_distribution, developer_id_installer) readonly Only fetch existing certificates and profiles, don't generate new ones false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * skip_provisioning_profiles Skip syncing provisioning profiles false app_identifier The bundle identifier(s) of your app (comma-separated string or array of strings) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * storage_mode Define where you want to store your certificates git git_url URL to the git repo containing all the certificates git_branch Specific git branch to use master git_full_name git user full name to commit git_user_email git user email to commit shallow_clone Make a shallow clone of the repository (truncate the history to 1 revision) false clone_branch_directly Clone just the branch specified, instead of the whole repo. This requires that the branch already exists. Otherwise the command will fail false git_basic_authorization Use a basic authorization header to access the git repo (e.g.: access via HTTPS, GitHub Actions, etc), usually a string in Base64 git_bearer_authorization Use a bearer authorization header to access the git repo (e.g.: access to an Azure DevOps repository), usually a string in Base64 git_private_key Use a private key to access the git repo (e.g.: access to GitHub repository via Deploy keys), usually a id_rsa named file or the contents hereof google_cloud_bucket_name Name of the Google Cloud Storage bucket to use google_cloud_keys_file Path to the gc_keys.json file google_cloud_project_id ID of the Google Cloud project to use for authentication skip_google_cloud_account_confirmation Skips confirming to use the system google account false s3_region Name of the S3 region s3_access_key S3 access key s3_secret_access_key S3 secret access key s3_bucket Name of the S3 bucket s3_object_prefix Prefix to be used on all objects uploaded to S3 s3_skip_encryption Skip encryption of all objects uploaded to S3. WARNING: only enable this on S3 buckets with sufficiently restricted permissions and server-side encryption enabled. See https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html false gitlab_project GitLab Project Path (i.e. 'gitlab-org/gitlab') gitlab_host GitLab Host (i.e. 'https://gitlab.com') https://gitlab.com job_token GitLab CI_JOB_TOKEN private_token GitLab Access Token keychain_name Keychain the items should be imported to login.keychain keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password force Renew the provisioning profiles every time you run match false force_for_new_devices Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile types 'appstore' and 'developer_id' false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false force_for_new_certificates Renew the provisioning profiles if the certificate count on the developer portal has changed. Works only for the 'development' provisioning profile type. Requires 'include_all_certificates' option to be 'true' false skip_confirmation Disables confirmation prompts during nuke, answering them with yes false safe_remove_certs Remove certs from repository during nuke without revoking them on the developer portal false skip_docs Skip generation of a README.md for the created git repository false platform Set the provisioning profile's platform to work with (i.e. ios, tvos, macos, catalyst) * derive_catalyst_app_identifier Enable this if you have the Mac Catalyst capability enabled and your project was created with Xcode 11.3 or earlier. Prepends 'maccatalyst.' to the app identifier for the provisioning profile mapping false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") profile_name A custom name for the provisioning profile. This will replace the default provisioning profile name if specified fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false skip_certificate_matching Set to true if there is no access to Apple developer portal but there are certificates, keys and profiles provided. Only works with match import action false output_path Path in which to export certificates, key and profile skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false verbose Print out extra information and all commands false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/match_nuke/#documentation","text":"To show the documentation in your terminal, run fastlane action match_nuke","title":"Documentation"},{"location":"actions/match_nuke/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run match_nuke To pass parameters, make use of the : symbol, for example fastlane run match_nuke parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/match_nuke/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/min_fastlane_version/","text":"min_fastlane_version Verifies the minimum fastlane version required Add this to your Fastfile to require a certain version of fastlane . Use it if you use an action that just recently came out and you need it. min_fastlane_version Supported platforms ios, android, mac Author @KrauseFx 1 Example min_fastlane_version(\"1.50.0\") Documentation To show the documentation in your terminal, run fastlane action min_fastlane_version CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run min_fastlane_version To pass parameters, make use of the : symbol, for example fastlane run min_fastlane_version parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"min_fastlane_version"},{"location":"actions/min_fastlane_version/#min_fastlane_version","text":"Verifies the minimum fastlane version required Add this to your Fastfile to require a certain version of fastlane . Use it if you use an action that just recently came out and you need it. min_fastlane_version Supported platforms ios, android, mac Author @KrauseFx","title":"min_fastlane_version"},{"location":"actions/min_fastlane_version/#1-example","text":"min_fastlane_version(\"1.50.0\")","title":"1 Example"},{"location":"actions/min_fastlane_version/#documentation","text":"To show the documentation in your terminal, run fastlane action min_fastlane_version","title":"Documentation"},{"location":"actions/min_fastlane_version/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run min_fastlane_version To pass parameters, make use of the : symbol, for example fastlane run min_fastlane_version parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/min_fastlane_version/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/modify_services/","text":"modify_services Modifies the services of the app created on Developer Portal The options are the same as :enable_services in the produce action modify_services Supported platforms ios Author @bhimsenpadalkar 1 Example modify_services( username: \"test.account@gmail.com\", app_identifier: \"com.someorg.app\", services: { push_notification: \"on\", associated_domains: \"off\", wallet: :on, apple_pay: :off, data_protection: true, multipath: false }) Parameters Key Description Default username Your Apple ID Username * app_identifier App Identifier (Bundle ID, e.g. com.krausefx.app) * services Array with Spaceship App Services (e.g. access_wifi: (on|off)(:on|:off)(true|false), app_attest: (on|off)(:on|:off)(true|false), app_group: (on|off)(:on|:off)(true|false), apple_pay: (on|off)(:on|:off)(true|false), associated_domains: (on|off)(:on|:off)(true|false), auto_fill_credential: (on|off)(:on|:off)(true|false), class_kit: (on|off)(:on|:off)(true|false), icloud: (legacy|cloudkit)(:on|:off)(true|false), custom_network_protocol: (on|off)(:on|:off)(true|false), data_protection: (complete|unlessopen|untilfirstauth)(:on|:off)(true|false), extended_virtual_address_space: (on|off)(:on|:off)(true|false), family_controls: (on|off)(:on|:off)(true|false), file_provider_testing_mode: (on|off)(:on|:off)(true|false), fonts: (on|off)(:on|:off)(true|false), game_center: (ios|mac)(:on|:off)(true|false), health_kit: (on|off)(:on|:off)(true|false), hls_interstitial_preview: (on|off)(:on|:off)(true|false), home_kit: (on|off)(:on|:off)(true|false), hotspot: (on|off)(:on|:off)(true|false), in_app_purchase: (on|off)(:on|:off)(true|false), inter_app_audio: (on|off)(:on|:off)(true|false), low_latency_hls: (on|off)(:on|:off)(true|false), managed_associated_domains: (on|off)(:on|:off)(true|false), maps: (on|off)(:on|:off)(true|false), multipath: (on|off)(:on|:off)(true|false), network_extension: (on|off)(:on|:off)(true|false), nfc_tag_reading: (on|off)(:on|:off)(true|false), personal_vpn: (on|off)(:on|:off)(true|false), passbook: (on|off)(:on|:off)(true|false), push_notification: (on|off)(:on|:off)(true|false), sign_in_with_apple: (on)(:on|:off)(true|false), siri_kit: (on|off)(:on|:off)(true|false), system_extension: (on|off)(:on|:off)(true|false), user_management: (on|off)(:on|:off)(true|false), vpn_configuration: (on|off)(:on|:off)(true|false), wallet: (on|off)(:on|:off)(true|false), wireless_accessory: (on|off)(:on|:off)(true|false), car_play_audio_app: (on|off)(:on|:off)(true|false), car_play_messaging_app: (on|off)(:on|:off)(true|false), car_play_navigation_app: (on|off)(:on|:off)(true|false), car_play_voip_calling_app: (on|off)(:on|:off)(true|false), critical_alerts: (on|off)(:on|:off)(true|false), hotspot_helper: (on|off)(:on|:off)(true|false), driver_kit: (on|off)(:on|:off)(true|false), driver_kit_endpoint_security: (on|off)(:on|:off)(true|false), driver_kit_family_hid_device: (on|off)(:on|:off)(true|false), driver_kit_family_networking: (on|off)(:on|:off)(true|false), driver_kit_family_serial: (on|off)(:on|:off)(true|false), driver_kit_hid_event_service: (on|off)(:on|:off)(true|false), driver_kit_transport_hid: (on|off)(:on|:off)(true|false), multitasking_camera_access: (on|off)(:on|:off)(true|false), sf_universal_link_api: (on|off)(:on|:off)(true|false), vp9_decoder: (on|off)(:on|:off)(true|false), music_kit: (on|off)(:on|:off)(true|false), shazam_kit: (on|off)(:on|:off)(true|false), communication_notifications: (on|off)(:on|:off)(true|false), group_activities: (on|off)(:on|:off)(true|false), health_kit_estimate_recalibration: (on|off)(:on|:off)(true|false), time_sensitive_notifications: (on|off)(:on|:off)(true|false)) {} team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action modify_services CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run modify_services To pass parameters, make use of the : symbol, for example fastlane run modify_services parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"modify_services"},{"location":"actions/modify_services/#modify_services","text":"Modifies the services of the app created on Developer Portal The options are the same as :enable_services in the produce action modify_services Supported platforms ios Author @bhimsenpadalkar","title":"modify_services"},{"location":"actions/modify_services/#1-example","text":"modify_services( username: \"test.account@gmail.com\", app_identifier: \"com.someorg.app\", services: { push_notification: \"on\", associated_domains: \"off\", wallet: :on, apple_pay: :off, data_protection: true, multipath: false })","title":"1 Example"},{"location":"actions/modify_services/#parameters","text":"Key Description Default username Your Apple ID Username * app_identifier App Identifier (Bundle ID, e.g. com.krausefx.app) * services Array with Spaceship App Services (e.g. access_wifi: (on|off)(:on|:off)(true|false), app_attest: (on|off)(:on|:off)(true|false), app_group: (on|off)(:on|:off)(true|false), apple_pay: (on|off)(:on|:off)(true|false), associated_domains: (on|off)(:on|:off)(true|false), auto_fill_credential: (on|off)(:on|:off)(true|false), class_kit: (on|off)(:on|:off)(true|false), icloud: (legacy|cloudkit)(:on|:off)(true|false), custom_network_protocol: (on|off)(:on|:off)(true|false), data_protection: (complete|unlessopen|untilfirstauth)(:on|:off)(true|false), extended_virtual_address_space: (on|off)(:on|:off)(true|false), family_controls: (on|off)(:on|:off)(true|false), file_provider_testing_mode: (on|off)(:on|:off)(true|false), fonts: (on|off)(:on|:off)(true|false), game_center: (ios|mac)(:on|:off)(true|false), health_kit: (on|off)(:on|:off)(true|false), hls_interstitial_preview: (on|off)(:on|:off)(true|false), home_kit: (on|off)(:on|:off)(true|false), hotspot: (on|off)(:on|:off)(true|false), in_app_purchase: (on|off)(:on|:off)(true|false), inter_app_audio: (on|off)(:on|:off)(true|false), low_latency_hls: (on|off)(:on|:off)(true|false), managed_associated_domains: (on|off)(:on|:off)(true|false), maps: (on|off)(:on|:off)(true|false), multipath: (on|off)(:on|:off)(true|false), network_extension: (on|off)(:on|:off)(true|false), nfc_tag_reading: (on|off)(:on|:off)(true|false), personal_vpn: (on|off)(:on|:off)(true|false), passbook: (on|off)(:on|:off)(true|false), push_notification: (on|off)(:on|:off)(true|false), sign_in_with_apple: (on)(:on|:off)(true|false), siri_kit: (on|off)(:on|:off)(true|false), system_extension: (on|off)(:on|:off)(true|false), user_management: (on|off)(:on|:off)(true|false), vpn_configuration: (on|off)(:on|:off)(true|false), wallet: (on|off)(:on|:off)(true|false), wireless_accessory: (on|off)(:on|:off)(true|false), car_play_audio_app: (on|off)(:on|:off)(true|false), car_play_messaging_app: (on|off)(:on|:off)(true|false), car_play_navigation_app: (on|off)(:on|:off)(true|false), car_play_voip_calling_app: (on|off)(:on|:off)(true|false), critical_alerts: (on|off)(:on|:off)(true|false), hotspot_helper: (on|off)(:on|:off)(true|false), driver_kit: (on|off)(:on|:off)(true|false), driver_kit_endpoint_security: (on|off)(:on|:off)(true|false), driver_kit_family_hid_device: (on|off)(:on|:off)(true|false), driver_kit_family_networking: (on|off)(:on|:off)(true|false), driver_kit_family_serial: (on|off)(:on|:off)(true|false), driver_kit_hid_event_service: (on|off)(:on|:off)(true|false), driver_kit_transport_hid: (on|off)(:on|:off)(true|false), multitasking_camera_access: (on|off)(:on|:off)(true|false), sf_universal_link_api: (on|off)(:on|:off)(true|false), vp9_decoder: (on|off)(:on|:off)(true|false), music_kit: (on|off)(:on|:off)(true|false), shazam_kit: (on|off)(:on|:off)(true|false), communication_notifications: (on|off)(:on|:off)(true|false), group_activities: (on|off)(:on|:off)(true|false), health_kit_estimate_recalibration: (on|off)(:on|:off)(true|false), time_sensitive_notifications: (on|off)(:on|:off)(true|false)) {} team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/modify_services/#documentation","text":"To show the documentation in your terminal, run fastlane action modify_services","title":"Documentation"},{"location":"actions/modify_services/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run modify_services To pass parameters, make use of the : symbol, for example fastlane run modify_services parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/modify_services/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/nexus_upload/","text":"nexus_upload Upload a file to Sonatype Nexus platform nexus_upload Supported platforms ios, android, mac Author @xfreebird, @mdio 2 Examples # for Nexus 2 nexus_upload( file: \"/path/to/file.ipa\", repo_id: \"artefacts\", repo_group_id: \"com.fastlane\", repo_project_name: \"ipa\", repo_project_version: \"1.13\", repo_classifier: \"dSYM\", # Optional endpoint: \"http://localhost:8081\", username: \"admin\", password: \"admin123\" ) # for Nexus 3 nexus_upload( nexus_version: 3, mount_path: \"\", file: \"/path/to/file.ipa\", repo_id: \"artefacts\", repo_group_id: \"com.fastlane\", repo_project_name: \"ipa\", repo_project_version: \"1.13\", repo_classifier: \"dSYM\", # Optional endpoint: \"http://localhost:8081\", username: \"admin\", password: \"admin123\" ) Parameters Key Description Default file File to be uploaded to Nexus repo_id Nexus repository id e.g. artefacts repo_group_id Nexus repository group id e.g. com.company repo_project_name Nexus repository commandect name. Only letters, digits, underscores(_), hyphens(-), and dots(.) are allowed repo_project_version Nexus repository commandect version repo_classifier Nexus repository artifact classifier (optional) endpoint Nexus endpoint e.g. http://nexus:8081 mount_path Nexus mount path (Nexus 3 instances have this configured as empty by default) /nexus username Nexus username password Nexus password ssl_verify Verify SSL true nexus_version Nexus major version 2 verbose Make detailed output false proxy_username Proxy username proxy_password Proxy password proxy_address Proxy address proxy_port Proxy port * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action nexus_upload CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run nexus_upload To pass parameters, make use of the : symbol, for example fastlane run nexus_upload parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"nexus_upload"},{"location":"actions/nexus_upload/#nexus_upload","text":"Upload a file to Sonatype Nexus platform nexus_upload Supported platforms ios, android, mac Author @xfreebird, @mdio","title":"nexus_upload"},{"location":"actions/nexus_upload/#2-examples","text":"# for Nexus 2 nexus_upload( file: \"/path/to/file.ipa\", repo_id: \"artefacts\", repo_group_id: \"com.fastlane\", repo_project_name: \"ipa\", repo_project_version: \"1.13\", repo_classifier: \"dSYM\", # Optional endpoint: \"http://localhost:8081\", username: \"admin\", password: \"admin123\" ) # for Nexus 3 nexus_upload( nexus_version: 3, mount_path: \"\", file: \"/path/to/file.ipa\", repo_id: \"artefacts\", repo_group_id: \"com.fastlane\", repo_project_name: \"ipa\", repo_project_version: \"1.13\", repo_classifier: \"dSYM\", # Optional endpoint: \"http://localhost:8081\", username: \"admin\", password: \"admin123\" )","title":"2 Examples"},{"location":"actions/nexus_upload/#parameters","text":"Key Description Default file File to be uploaded to Nexus repo_id Nexus repository id e.g. artefacts repo_group_id Nexus repository group id e.g. com.company repo_project_name Nexus repository commandect name. Only letters, digits, underscores(_), hyphens(-), and dots(.) are allowed repo_project_version Nexus repository commandect version repo_classifier Nexus repository artifact classifier (optional) endpoint Nexus endpoint e.g. http://nexus:8081 mount_path Nexus mount path (Nexus 3 instances have this configured as empty by default) /nexus username Nexus username password Nexus password ssl_verify Verify SSL true nexus_version Nexus major version 2 verbose Make detailed output false proxy_username Proxy username proxy_password Proxy password proxy_address Proxy address proxy_port Proxy port * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/nexus_upload/#documentation","text":"To show the documentation in your terminal, run fastlane action nexus_upload","title":"Documentation"},{"location":"actions/nexus_upload/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run nexus_upload To pass parameters, make use of the : symbol, for example fastlane run nexus_upload parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/nexus_upload/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/notarize/","text":"notarize Notarizes a macOS app notarize Supported platforms mac Author @zeplin Parameters Key Description Default package Path to package to notarize, e.g. .app bundle or disk image use_notarytool Whether to xcrun notarytool or xcrun altool * try_early_stapling Whether to try early stapling while the notarization request is in progress false skip_stapling Do not staple the notarization ticket to the artifact; useful for single file executables and ZIP archives false bundle_id Bundle identifier to uniquely identify the package username Apple ID username * asc_provider Provider short name for accounts associated with multiple providers print_log Whether to print notarization log file, listing issues on failure and warnings on success false verbose Whether to log requests false api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action notarize CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run notarize To pass parameters, make use of the : symbol, for example fastlane run notarize parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"notarize"},{"location":"actions/notarize/#notarize","text":"Notarizes a macOS app notarize Supported platforms mac Author @zeplin","title":"notarize"},{"location":"actions/notarize/#parameters","text":"Key Description Default package Path to package to notarize, e.g. .app bundle or disk image use_notarytool Whether to xcrun notarytool or xcrun altool * try_early_stapling Whether to try early stapling while the notarization request is in progress false skip_stapling Do not staple the notarization ticket to the artifact; useful for single file executables and ZIP archives false bundle_id Bundle identifier to uniquely identify the package username Apple ID username * asc_provider Provider short name for accounts associated with multiple providers print_log Whether to print notarization log file, listing issues on failure and warnings on success false verbose Whether to log requests false api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/notarize/#documentation","text":"To show the documentation in your terminal, run fastlane action notarize","title":"Documentation"},{"location":"actions/notarize/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run notarize To pass parameters, make use of the : symbol, for example fastlane run notarize parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/notarize/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/notification/","text":"notification Display a macOS notification with custom message and title notification Supported platforms ios, android, mac Author @champo, @cbowns, @KrauseFx, @amarcadet, @dusek 1 Example notification(subtitle: \"Finished Building\", message: \"Ready to upload...\") Parameters Key Description Default title The title to display in the notification fastlane subtitle A subtitle to display in the notification message The message to display in the notification sound The name of a sound to play when the notification appears (names are listed in Sound Preferences) activate Bundle identifier of application to be opened when the notification is clicked app_icon The URL of an image to display instead of the application icon (Mavericks+ only) content_image The URL of an image to display attached to the notification (Mavericks+ only) open URL of the resource to be opened when the notification is clicked execute Shell command to run when the notification is clicked * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action notification CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run notification To pass parameters, make use of the : symbol, for example fastlane run notification parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"notification"},{"location":"actions/notification/#notification","text":"Display a macOS notification with custom message and title notification Supported platforms ios, android, mac Author @champo, @cbowns, @KrauseFx, @amarcadet, @dusek","title":"notification"},{"location":"actions/notification/#1-example","text":"notification(subtitle: \"Finished Building\", message: \"Ready to upload...\")","title":"1 Example"},{"location":"actions/notification/#parameters","text":"Key Description Default title The title to display in the notification fastlane subtitle A subtitle to display in the notification message The message to display in the notification sound The name of a sound to play when the notification appears (names are listed in Sound Preferences) activate Bundle identifier of application to be opened when the notification is clicked app_icon The URL of an image to display instead of the application icon (Mavericks+ only) content_image The URL of an image to display attached to the notification (Mavericks+ only) open URL of the resource to be opened when the notification is clicked execute Shell command to run when the notification is clicked * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/notification/#documentation","text":"To show the documentation in your terminal, run fastlane action notification","title":"Documentation"},{"location":"actions/notification/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run notification To pass parameters, make use of the : symbol, for example fastlane run notification parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/notification/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/notify/","text":"notify Shows a macOS notification - use notification instead It's recommended to use the new notification action instead of notify notify Supported platforms ios, android, mac Author @champo, @KrauseFx Documentation To show the documentation in your terminal, run fastlane action notify CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run notify To pass parameters, make use of the : symbol, for example fastlane run notify parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"notify"},{"location":"actions/notify/#notify","text":"Shows a macOS notification - use notification instead It's recommended to use the new notification action instead of notify notify Supported platforms ios, android, mac Author @champo, @KrauseFx","title":"notify"},{"location":"actions/notify/#documentation","text":"To show the documentation in your terminal, run fastlane action notify","title":"Documentation"},{"location":"actions/notify/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run notify To pass parameters, make use of the : symbol, for example fastlane run notify parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/notify/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/number_of_commits/","text":"number_of_commits Return the number of commits in current git branch You can use this action to get the number of commits of this branch. This is useful if you want to set the build number to the number of commits. See fastlane actions number_of_commits for more details. number_of_commits Supported platforms ios, android, mac Author @onevcat, @samuelbeek Returns The total number of all commits in current git branch 2 Examples increment_build_number(build_number: number_of_commits) build_number = number_of_commits(all: true) increment_build_number(build_number: build_number) Parameters Key Description Default all Returns number of all commits instead of current branch * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action number_of_commits CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run number_of_commits To pass parameters, make use of the : symbol, for example fastlane run number_of_commits parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"number_of_commits"},{"location":"actions/number_of_commits/#number_of_commits","text":"Return the number of commits in current git branch You can use this action to get the number of commits of this branch. This is useful if you want to set the build number to the number of commits. See fastlane actions number_of_commits for more details. number_of_commits Supported platforms ios, android, mac Author @onevcat, @samuelbeek Returns The total number of all commits in current git branch","title":"number_of_commits"},{"location":"actions/number_of_commits/#2-examples","text":"increment_build_number(build_number: number_of_commits) build_number = number_of_commits(all: true) increment_build_number(build_number: build_number)","title":"2 Examples"},{"location":"actions/number_of_commits/#parameters","text":"Key Description Default all Returns number of all commits instead of current branch * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/number_of_commits/#documentation","text":"To show the documentation in your terminal, run fastlane action number_of_commits","title":"Documentation"},{"location":"actions/number_of_commits/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run number_of_commits To pass parameters, make use of the : symbol, for example fastlane run number_of_commits parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/number_of_commits/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/oclint/","text":"oclint Lints implementation files with OCLint Run the static analyzer tool OCLint for your project. You need to have a compile_commands.json file in your fastlane directory or pass a path to your file. oclint Supported platforms ios, android, mac Author @HeEAaD 1 Example oclint( compile_commands: \"commands.json\", # The JSON compilation database, use xctool reporter \"json-compilation-database\" select_regex: /ViewController.m/, # Select all files matching this regex exclude_regex: /Test.m/, # Exclude all files matching this regex report_type: \"pmd\", # The type of the report (default: html) max_priority_1: 10, # The max allowed number of priority 1 violations max_priority_2: 100, # The max allowed number of priority 2 violations max_priority_3: 1000, # The max allowed number of priority 3 violations thresholds: [ # Override the default behavior of rules \"LONG_LINE=200\", \"LONG_METHOD=200\" ], enable_rules: [ # List of rules to pick explicitly \"DoubleNegative\", \"SwitchStatementsDon'TNeedDefaultWhenFullyCovered\" ], disable_rules: [\"GotoStatement\"], # List of rules to disable list_enabled_rules: true, # List enabled rules enable_clang_static_analyzer: true, # Enable Clang Static Analyzer, and integrate results into OCLint report enable_global_analysis: true, # Compile every source, and analyze across global contexts (depends on number of source files, could results in high memory load) allow_duplicated_violations: true, # Allow duplicated violations in the OCLint report extra_arg: \"-Wno-everything\"# Additional argument to append to the compiler command line ) Parameters Key Description Default oclint_path The path to oclint binary oclint compile_commands The json compilation database, use xctool reporter 'json-compilation-database' compile_commands.json select_reqex DEPRECATED! Use :select_regex instead - Select all files matching this reqex select_regex Select all files matching this regex exclude_regex Exclude all files matching this regex report_type The type of the report (default: html) html report_path The reports file path list_enabled_rules List enabled rules false rc Override the default behavior of rules thresholds List of rule thresholds to override the default behavior of rules enable_rules List of rules to pick explicitly disable_rules List of rules to disable max_priority_1 The max allowed number of priority 1 violations max_priority_2 The max allowed number of priority 2 violations max_priority_3 The max allowed number of priority 3 violations enable_clang_static_analyzer Enable Clang Static Analyzer, and integrate results into OCLint report false enable_global_analysis Compile every source, and analyze across global contexts (depends on number of source files, could results in high memory load) false allow_duplicated_violations Allow duplicated violations in the OCLint report false extra_arg Additional argument to append to the compiler command line * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The oclint action generates the following Lane Variables: SharedValue Description SharedValues::FL_OCLINT_REPORT_PATH The reports file path To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action oclint CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run oclint To pass parameters, make use of the : symbol, for example fastlane run oclint parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"oclint"},{"location":"actions/oclint/#oclint","text":"Lints implementation files with OCLint Run the static analyzer tool OCLint for your project. You need to have a compile_commands.json file in your fastlane directory or pass a path to your file. oclint Supported platforms ios, android, mac Author @HeEAaD","title":"oclint"},{"location":"actions/oclint/#1-example","text":"oclint( compile_commands: \"commands.json\", # The JSON compilation database, use xctool reporter \"json-compilation-database\" select_regex: /ViewController.m/, # Select all files matching this regex exclude_regex: /Test.m/, # Exclude all files matching this regex report_type: \"pmd\", # The type of the report (default: html) max_priority_1: 10, # The max allowed number of priority 1 violations max_priority_2: 100, # The max allowed number of priority 2 violations max_priority_3: 1000, # The max allowed number of priority 3 violations thresholds: [ # Override the default behavior of rules \"LONG_LINE=200\", \"LONG_METHOD=200\" ], enable_rules: [ # List of rules to pick explicitly \"DoubleNegative\", \"SwitchStatementsDon'TNeedDefaultWhenFullyCovered\" ], disable_rules: [\"GotoStatement\"], # List of rules to disable list_enabled_rules: true, # List enabled rules enable_clang_static_analyzer: true, # Enable Clang Static Analyzer, and integrate results into OCLint report enable_global_analysis: true, # Compile every source, and analyze across global contexts (depends on number of source files, could results in high memory load) allow_duplicated_violations: true, # Allow duplicated violations in the OCLint report extra_arg: \"-Wno-everything\"# Additional argument to append to the compiler command line )","title":"1 Example"},{"location":"actions/oclint/#parameters","text":"Key Description Default oclint_path The path to oclint binary oclint compile_commands The json compilation database, use xctool reporter 'json-compilation-database' compile_commands.json select_reqex DEPRECATED! Use :select_regex instead - Select all files matching this reqex select_regex Select all files matching this regex exclude_regex Exclude all files matching this regex report_type The type of the report (default: html) html report_path The reports file path list_enabled_rules List enabled rules false rc Override the default behavior of rules thresholds List of rule thresholds to override the default behavior of rules enable_rules List of rules to pick explicitly disable_rules List of rules to disable max_priority_1 The max allowed number of priority 1 violations max_priority_2 The max allowed number of priority 2 violations max_priority_3 The max allowed number of priority 3 violations enable_clang_static_analyzer Enable Clang Static Analyzer, and integrate results into OCLint report false enable_global_analysis Compile every source, and analyze across global contexts (depends on number of source files, could results in high memory load) false allow_duplicated_violations Allow duplicated violations in the OCLint report false extra_arg Additional argument to append to the compiler command line * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/oclint/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The oclint action generates the following Lane Variables: SharedValue Description SharedValues::FL_OCLINT_REPORT_PATH The reports file path To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/oclint/#documentation","text":"To show the documentation in your terminal, run fastlane action oclint","title":"Documentation"},{"location":"actions/oclint/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run oclint To pass parameters, make use of the : symbol, for example fastlane run oclint parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/oclint/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/onesignal/","text":"onesignal Create or update a new OneSignal application You can use this action to automatically create or update a OneSignal application. You can also upload a .p12 with password, a GCM key, or both. onesignal Supported platforms ios, android Author @timothybarraclough, @smartshowltd 2 Examples onesignal( auth_token: \"Your OneSignal Auth Token\", app_name: \"Name for OneSignal App\", android_token: \"Your Android GCM key (optional)\", android_gcm_sender_id: \"Your Android GCM Sender ID (optional)\", apns_p12: \"Path to Apple .p12 file (optional)\", apns_p12_password: \"Password for .p12 file (optional)\", apns_env: \"production/sandbox (defaults to production)\", organization_id: \"Onesignal organization id (optional)\" ) onesignal( app_id: \"Your OneSignal App ID\", auth_token: \"Your OneSignal Auth Token\", app_name: \"New Name for OneSignal App\", android_token: \"Your Android GCM key (optional)\", android_gcm_sender_id: \"Your Android GCM Sender ID (optional)\", apns_p12: \"Path to Apple .p12 file (optional)\", apns_p12_password: \"Password for .p12 file (optional)\", apns_env: \"production/sandbox (defaults to production)\", organization_id: \"Onesignal organization id (optional)\" ) Parameters Key Description Default app_id OneSignal App ID. Setting this updates an existing app auth_token OneSignal Authorization Key app_name OneSignal App Name. This is required when creating an app (in other words, when :app_id is not set, and optional when updating an app android_token ANDROID GCM KEY android_gcm_sender_id GCM SENDER ID apns_p12 APNS P12 File (in .p12 format) apns_p12_password APNS P12 password apns_env APNS environment production organization_id OneSignal Organization ID * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The onesignal action generates the following Lane Variables: SharedValue Description SharedValues::ONE_SIGNAL_APP_ID The app ID of the newly created or updated app SharedValues::ONE_SIGNAL_APP_AUTH_KEY The auth token for the newly created or updated app To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action onesignal CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run onesignal To pass parameters, make use of the : symbol, for example fastlane run onesignal parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"onesignal"},{"location":"actions/onesignal/#onesignal","text":"Create or update a new OneSignal application You can use this action to automatically create or update a OneSignal application. You can also upload a .p12 with password, a GCM key, or both. onesignal Supported platforms ios, android Author @timothybarraclough, @smartshowltd","title":"onesignal"},{"location":"actions/onesignal/#2-examples","text":"onesignal( auth_token: \"Your OneSignal Auth Token\", app_name: \"Name for OneSignal App\", android_token: \"Your Android GCM key (optional)\", android_gcm_sender_id: \"Your Android GCM Sender ID (optional)\", apns_p12: \"Path to Apple .p12 file (optional)\", apns_p12_password: \"Password for .p12 file (optional)\", apns_env: \"production/sandbox (defaults to production)\", organization_id: \"Onesignal organization id (optional)\" ) onesignal( app_id: \"Your OneSignal App ID\", auth_token: \"Your OneSignal Auth Token\", app_name: \"New Name for OneSignal App\", android_token: \"Your Android GCM key (optional)\", android_gcm_sender_id: \"Your Android GCM Sender ID (optional)\", apns_p12: \"Path to Apple .p12 file (optional)\", apns_p12_password: \"Password for .p12 file (optional)\", apns_env: \"production/sandbox (defaults to production)\", organization_id: \"Onesignal organization id (optional)\" )","title":"2 Examples"},{"location":"actions/onesignal/#parameters","text":"Key Description Default app_id OneSignal App ID. Setting this updates an existing app auth_token OneSignal Authorization Key app_name OneSignal App Name. This is required when creating an app (in other words, when :app_id is not set, and optional when updating an app android_token ANDROID GCM KEY android_gcm_sender_id GCM SENDER ID apns_p12 APNS P12 File (in .p12 format) apns_p12_password APNS P12 password apns_env APNS environment production organization_id OneSignal Organization ID * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/onesignal/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The onesignal action generates the following Lane Variables: SharedValue Description SharedValues::ONE_SIGNAL_APP_ID The app ID of the newly created or updated app SharedValues::ONE_SIGNAL_APP_AUTH_KEY The auth token for the newly created or updated app To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/onesignal/#documentation","text":"To show the documentation in your terminal, run fastlane action onesignal","title":"Documentation"},{"location":"actions/onesignal/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run onesignal To pass parameters, make use of the : symbol, for example fastlane run onesignal parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/onesignal/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/opt_out_crash_reporting/","text":"opt_out_crash_reporting This will prevent reports from being uploaded when fastlane crashes fastlane doesn't have crash reporting any more. Feel free to remove opt_out_crash_reporting from your Fastfile. opt_out_crash_reporting Supported platforms ios, android, mac Author @mpirri, @ohayon Documentation To show the documentation in your terminal, run fastlane action opt_out_crash_reporting CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run opt_out_crash_reporting To pass parameters, make use of the : symbol, for example fastlane run opt_out_crash_reporting parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"opt_out_crash_reporting"},{"location":"actions/opt_out_crash_reporting/#opt_out_crash_reporting","text":"This will prevent reports from being uploaded when fastlane crashes fastlane doesn't have crash reporting any more. Feel free to remove opt_out_crash_reporting from your Fastfile. opt_out_crash_reporting Supported platforms ios, android, mac Author @mpirri, @ohayon","title":"opt_out_crash_reporting"},{"location":"actions/opt_out_crash_reporting/#documentation","text":"To show the documentation in your terminal, run fastlane action opt_out_crash_reporting","title":"Documentation"},{"location":"actions/opt_out_crash_reporting/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run opt_out_crash_reporting To pass parameters, make use of the : symbol, for example fastlane run opt_out_crash_reporting parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/opt_out_crash_reporting/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/opt_out_usage/","text":"opt_out_usage This will stop uploading the information which actions were run By default, fastlane will track what actions are being used. No personal/sensitive information is recorded. Learn more at https://docs.fastlane.tools/#metrics . Add opt_out_usage at the top of your Fastfile to disable metrics collection. opt_out_usage Supported platforms ios, android, mac Author @KrauseFx 1 Example opt_out_usage # add this to the top of your Fastfile Documentation To show the documentation in your terminal, run fastlane action opt_out_usage CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run opt_out_usage To pass parameters, make use of the : symbol, for example fastlane run opt_out_usage parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"opt_out_usage"},{"location":"actions/opt_out_usage/#opt_out_usage","text":"This will stop uploading the information which actions were run By default, fastlane will track what actions are being used. No personal/sensitive information is recorded. Learn more at https://docs.fastlane.tools/#metrics . Add opt_out_usage at the top of your Fastfile to disable metrics collection. opt_out_usage Supported platforms ios, android, mac Author @KrauseFx","title":"opt_out_usage"},{"location":"actions/opt_out_usage/#1-example","text":"opt_out_usage # add this to the top of your Fastfile","title":"1 Example"},{"location":"actions/opt_out_usage/#documentation","text":"To show the documentation in your terminal, run fastlane action opt_out_usage","title":"Documentation"},{"location":"actions/opt_out_usage/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run opt_out_usage To pass parameters, make use of the : symbol, for example fastlane run opt_out_usage parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/opt_out_usage/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/pem/","text":"pem Alias for the get_push_certificate action Automatically generate and renew your push notification profiles Tired of manually creating and maintaining your push notification profiles for your iOS apps? Tired of generating a pem file for your server? pem does all that for you, just by simply running pem . pem creates new .pem, .cer, and .p12 files to be uploaded to your push server if a valid push notification profile is needed. pem does not cover uploading the file to your server. To automate iOS Provisioning profiles you can use match . Features \u2022 Usage \u2022 How does it work? \u2022 Tips \u2022 Need help? pem is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Features Well, it's actually just one: Generate the pem file for your server. Check out this gif: Usage fastlane pem Yes, that's the whole command! This does the following: Create a new signing request Create a new push certification Downloads the certificate Generates a new .pem file in the current working directory, which you can upload to your server Note that pem will never revoke your existing certificates. pem can't download any of your existing push certificates, as the private key is only available on the machine it was created on. If you already have a push certificate enabled, which is active for at least 30 more days, pem will not create a new certificate. If you still want to create one, use the force : fastlane pem --force You can pass parameters like this: fastlane pem -a com.krausefx.app -u username If you want to generate a development certificate instead: fastlane pem --development If you want to generate a Website Push certificate: fastlane pem --website_push Set a password for your p12 file: fastlane pem -p \"MyPass\" You can specify a name for the output file: fastlane pem -o my.pem To get a list of available options run: fastlane action pem Note about empty p12 passwords and Keychain Access.app pem will produce a valid p12 without specifying a password, or using the empty-string as the password. While the file is valid, the Mac's Keychain Access will not allow you to open the file without specifying a passphrase. Instead, you may verify the file is valid using OpenSSL: openssl pkcs12 -info -in my.p12 If you need the p12 in your keychain, perhaps to test push with an app like Knuff or Pusher , you can use openssl to export the p12 to pem and back to p12 : % openssl pkcs12 -in my.p12 -out my.pem Enter Import Password: MAC verified OK Enter your pem passphrase: % openssl pkcs12 -export -in my.pem -out my-with-passphrase.p12 Enter pass phrase for temp.pem: Enter Export Password: Environment Variables Run fastlane action pem to get a list of available environment variables. How does it work? pem uses spaceship to communicate with the Apple Developer Portal to request a new push certificate for you. How is my password stored? pem uses the password manager from fastlane . Take a look the CredentialsManager README for more information. pem Supported platforms ios, mac Author @KrauseFx 3 Examples get_push_certificate pem # alias for \"get_push_certificate\" get_push_certificate( force: true, # create a new profile, even if the old one is still valid app_identifier: \"net.sunapps.9\", # optional app identifier, save_private_key: true, new_profile: proc do |profile_path| # this block gets called when a new profile was generated puts profile_path # the absolute path to the new PEM file # insert the code to upload the PEM file to the server end ) Parameters Key Description Default platform Set certificate's platform. Used for creation of production & development certificates. Supported platforms: ios, macos ios development Renew the development push certificate instead of the production one false website_push Create a Website Push certificate false generate_p12 Generate a p12 file additionally to a PEM file true active_days_limit If the current certificate is active for less than this number of days, generate a new one 30 force Create a new push certificate, even if the current one is active for 30 (or PEM_ACTIVE_DAYS_LIMIT) more days false save_private_key Set to save the private RSA key true app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * p12_password The password that is used for your p12 file pem_name The file name of the generated .pem file output_path The path to a directory in which all certificates and private keys should be stored . new_profile Block that is called if there is a new profile * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action pem CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run pem To pass parameters, make use of the : symbol, for example fastlane run pem parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"pem"},{"location":"actions/pem/#pem","text":"Alias for the get_push_certificate action","title":"pem"},{"location":"actions/pem/#features","text":"Well, it's actually just one: Generate the pem file for your server. Check out this gif:","title":"Features"},{"location":"actions/pem/#usage","text":"fastlane pem Yes, that's the whole command! This does the following: Create a new signing request Create a new push certification Downloads the certificate Generates a new .pem file in the current working directory, which you can upload to your server Note that pem will never revoke your existing certificates. pem can't download any of your existing push certificates, as the private key is only available on the machine it was created on. If you already have a push certificate enabled, which is active for at least 30 more days, pem will not create a new certificate. If you still want to create one, use the force : fastlane pem --force You can pass parameters like this: fastlane pem -a com.krausefx.app -u username If you want to generate a development certificate instead: fastlane pem --development If you want to generate a Website Push certificate: fastlane pem --website_push Set a password for your p12 file: fastlane pem -p \"MyPass\" You can specify a name for the output file: fastlane pem -o my.pem To get a list of available options run: fastlane action pem","title":"Usage"},{"location":"actions/pem/#environment-variables","text":"Run fastlane action pem to get a list of available environment variables.","title":"Environment Variables"},{"location":"actions/pem/#how-does-it-work","text":"pem uses spaceship to communicate with the Apple Developer Portal to request a new push certificate for you.","title":"How does it work?"},{"location":"actions/pem/#how-is-my-password-stored","text":"pem uses the password manager from fastlane . Take a look the CredentialsManager README for more information. pem Supported platforms ios, mac Author @KrauseFx","title":"How is my password stored?"},{"location":"actions/pem/#3-examples","text":"get_push_certificate pem # alias for \"get_push_certificate\" get_push_certificate( force: true, # create a new profile, even if the old one is still valid app_identifier: \"net.sunapps.9\", # optional app identifier, save_private_key: true, new_profile: proc do |profile_path| # this block gets called when a new profile was generated puts profile_path # the absolute path to the new PEM file # insert the code to upload the PEM file to the server end )","title":"3 Examples"},{"location":"actions/pem/#parameters","text":"Key Description Default platform Set certificate's platform. Used for creation of production & development certificates. Supported platforms: ios, macos ios development Renew the development push certificate instead of the production one false website_push Create a Website Push certificate false generate_p12 Generate a p12 file additionally to a PEM file true active_days_limit If the current certificate is active for less than this number of days, generate a new one 30 force Create a new push certificate, even if the current one is active for 30 (or PEM_ACTIVE_DAYS_LIMIT) more days false save_private_key Set to save the private RSA key true app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * p12_password The password that is used for your p12 file pem_name The file name of the generated .pem file output_path The path to a directory in which all certificates and private keys should be stored . new_profile Block that is called if there is a new profile * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/pem/#documentation","text":"To show the documentation in your terminal, run fastlane action pem","title":"Documentation"},{"location":"actions/pem/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run pem To pass parameters, make use of the : symbol, for example fastlane run pem parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/pem/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/pilot/","text":"pilot Alias for the upload_to_testflight action The best way to manage your TestFlight testers and builds from your terminal pilot makes it easier to manage your app on Apple\u2019s TestFlight. You can: Upload & distribute builds Add & remove testers Retrieve information about testers & devices Import/export all available testers pilot uses spaceship.airforce to interact with App Store Connect \ud83d\ude80 Usage \u2022 Tips pilot is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Usage For all commands, you can either use an API Key or your Apple ID . App Store Connect API Key The App Store Connect API Key is the preferred authentication method (if you are able to use it). Uses official App Store Connect API No need for 2FA Better performance over Apple ID Specify the API key using --api_key_path ./path/to/api_key_info.json or --api_key \"{\\\"key_id\\\": \\\"D83848D23\\\", \\\"issuer_id\\\": \\\"227b0bbf-ada8-458c-9d62-3d8022b7d07f\\\", \\\"key_filepath\\\": \\\"D83848D23.p8\\\"}\" Go to Using App Store Connect API for information on obtaining an API key, the fastlane api_key_info.json format, and other API key usage. Apple ID Specify the Apple ID to use using -u felix@krausefx.com . If you execute pilot in a project already using fastlane the username and app identifier will automatically be determined. Uploading builds To upload a new build, just run fastlane pilot upload This will automatically look for an ipa in your current directory and tries to fetch the login credentials from your fastlane setup . You'll be asked for any missing information. Additionally, you can pass all kinds of parameters: fastlane action pilot You can pass a changelog using fastlane pilot upload --changelog \"Something that is new here\" You can also skip the submission of the binary, which means, the ipa file will only be uploaded and not distributed to testers: fastlane pilot upload --skip_submission pilot does all kinds of magic for you: Automatically detects the bundle identifier from your ipa file Automatically fetch the AppID of your app based on the bundle identifier pilot uses spaceship to submit the build metadata and the iTunes Transporter to upload the binary. Because iTunes Transporter's upload capability is only supported on OS X, pilot upload does not work on Linux, as described in this issue List builds To list all builds for specific application use fastlane pilot builds The result lists all active builds and processing builds: +-----------+---------+----------+ | Great App Builds | +-----------+---------+----------+ | Version # | Build # | Installs | +-----------+---------+----------+ | 0.9.13 | 1 | 0 | | 0.9.13 | 2 | 0 | | 0.9.20 | 3 | 0 | | 0.9.20 | 4 | 3 | +-----------+---------+----------+ Managing beta testers List of Testers This command will list all your testers, both internal and external. fastlane pilot list The output will look like this: +--------+--------+--------------------------+-----------+ | Internal Testers | +--------+--------+--------------------------+-----------+ | First | Last | Email | # Devices | +--------+--------+--------------------------+-----------+ | Felix | Krause | felix@krausefx.com | 2 | +--------+--------+--------------------------+-----------+ +-----------+---------+----------------------------+-----------+ | External Testers | +-----------+---------+----------------------------+-----------+ | First | Last | Email | # Devices | +-----------+---------+----------------------------+-----------+ | Max | Manfred | email@email.com | 0 | | Detlef | M\u00fcller | detlef@krausefx.com | 1 | +-----------+---------+----------------------------+-----------+ Add a new tester To add a new tester to your App Store Connect account and to associate it to at least one testing group of your app, use the pilot add command. This will create a new tester (if necessary) or add an existing tester to the app to test. fastlane pilot add email@invite.com -g group-1,group-2 Additionally you can specify the app identifier (if necessary): fastlane pilot add email@email.com -a com.krausefx.app -g group-1,group-2 Find a tester To find a specific tester use fastlane pilot find felix@krausefx.com The resulting output will look like this: +---------------------+---------------------+ | felix@krausefx.com | +---------------------+---------------------+ | First name | Felix | | Last name | Krause | | Email | felix@krausefx.com | | Latest Version | 0.9.14 (23 | | Latest Install Date | 03/28/15 19:00 | | 2 Devices | \u2022 iPhone 6, iOS 8.3 | | | \u2022 iPhone 5, iOS 7.0 | +---------------------+---------------------+ Remove a tester This command will remove beta tester from app (from all internal and external groups) fastlane pilot remove felix@krausefx.com You can also use groups option to remove the tester from the groups specified: fastlane pilot remove felix@krausefx.com -g group-1,group-2 Export testers To export all external testers to a CSV file. Useful if you need to import tester info to another system or a new account. fastlane pilot export Import testers Add external testers from a CSV file. Create a file (ex: testers.csv ) and fill it with the following format: John,Appleseed,appleseed_john@mac.com,group-1;group-2 fastlane pilot import You can also specify the directory using fastlane pilot export -c ~/Desktop/testers.csv fastlane pilot import -c ~/Desktop/testers.csv Tips Debug information If you run into any issues you can use the verbose mode to get a more detailed output: fastlane pilot upload --verbose Firewall Issues pilot uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol from the command line using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" pilot ... If you are using pilot via the fastlane action , add the following to your Fastfile ENV[\"DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS\"] = \"-t DAV\" pilot... Note, however, that Apple recommends you don\u2019t specify the -t transport and instead allow Transporter to use automatic transport discovery to determine the best transport mode for your packages. For this reason, if the t option is passed, we will raise a warning. Also note that -t is not the only additional parameter that can be used. The string specified in the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS environment variable will be forwarded to Transporter. For all the available options, check Apple's Transporter User Guide . Credentials Issues If your password contains special characters, pilot may throw a confusing error saying your \"Your Apple ID or password was entered incorrectly\". The easiest way to fix this error is to change your password to something that does not contains special characters. How is my password stored? pilot uses the CredentialsManager from fastlane . Provider Short Name If you are on multiple App Store Connect teams, iTunes Transporter may need a provider short name to know where to upload your binary. pilot will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option. Use an Application Specific Password to upload pilot / upload_to_testflight can use an Application Specific Password via the FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD environment variable to upload a binary if both the skip_waiting_for_build_processing and apple_id options are set. (If any of those are not set, it will use the normal Apple login process that might require 2FA authentication.) Role for App Store Connect User pilot / upload_to_testflight updates build information and testers after the build has finished processing. App Store Connect requires the \"App Manager\" or \"Admin\" role for your Apple account to update this information. The \"Developer\" role will allow builds to be uploaded but will not allow updating of build information and testers. pilot Supported platforms ios, mac Author @KrauseFx 7 Examples upload_to_testflight testflight # alias for \"upload_to_testflight\" pilot # alias for \"upload_to_testflight\" upload_to_testflight(skip_submission: true) # to only upload the build upload_to_testflight( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) upload_to_testflight( beta_app_feedback_email: \"email@email.com\", beta_app_description: \"This is a description of my app\", demo_account_required: true, notify_external_testers: false, changelog: \"This is my changelog of things that have changed in a log\" ) upload_to_testflight( beta_app_review_info: { contact_email: \"email@email.com\", contact_first_name: \"Connect\", contact_last_name: \"API\", contact_phone: \"5558675309\", demo_account_name: \"demo@email.com\", demo_account_password: \"connectapi\", notes: \"this is review note for the reviewer <3 thank you for reviewing\" }, localized_app_info: { \"default\": { feedback_email: \"default@email.com\", marketing_url: \"https://example.com/marketing-defafult\", privacy_policy_url: \"https://example.com/privacy-defafult\", description: \"Default description\", }, \"en-GB\": { feedback_email: \"en-gb@email.com\", marketing_url: \"https://example.com/marketing-en-gb\", privacy_policy_url: \"https://example.com/privacy-en-gb\", description: \"en-gb description\", } }, localized_build_info: { \"default\": { whats_new: \"Default changelog\", }, \"en-GB\": { whats_new: \"en-gb changelog\", } } ) Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of the app to upload or manage testers (optional) * app_platform The platform to use (optional) apple_id Apple ID property in the App Information section in App Store Connect * ipa Path to the ipa file to upload * pkg Path to your pkg file * demo_account_required Do you need a demo account when Apple does review? beta_app_review_info Beta app review information for contact info and demo account localized_app_info Localized beta app test info for description, feedback email, marketing url, and privacy policy beta_app_description Provide the 'Beta App Description' when uploading a new build beta_app_feedback_email Provide the beta app email when uploading a new build localized_build_info Localized beta app test info for what's new changelog Provide the 'What to Test' text when uploading a new build skip_submission Skip the distributing action of pilot and only upload the ipa file false skip_waiting_for_build_processing If set to true, the distribute_external option won't work and no build will be distributed to testers. (You might want to use this option if you are using this action on CI and have to pay for 'minutes used' on your CI plan). If set to true and a changelog is provided, it will partially wait for the build to appear on AppStore Connect so the changelog can be set, and skip the remaining processing steps false update_build_info_on_upload DEPRECATED! Update build info immediately after validation. This is deprecated and will be removed in a future release. App Store Connect no longer supports setting build info until after build processing has completed, which is when build info is updated by default false distribute_only Distribute a previously uploaded build (equivalent to the fastlane pilot distribute command) false uses_non_exempt_encryption Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist false distribute_external Should the build be distributed to external testers? If set to true, use of groups option is required false notify_external_testers Should notify external testers? (Not setting a value will use App Store Connect's default which is to notify) app_version The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed build_number The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed expire_previous_builds Should expire previous builds? false first_name The tester's first name last_name The tester's last name email The tester's email testers_file_path Path to a CSV file of testers ./testers.csv groups Associate tester to one group or more by group name / group id. E.g. -g \"Team 1\",\"Team 2\" This is required when distribute_external option is set to true or when we want to add a tester to one or more external testing groups team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your team in the developer portal, if you're in multiple teams. Different from your iTC team ID! * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column wait_processing_interval Interval in seconds to wait for App Store Connect processing 30 wait_processing_timeout_duration Timeout duration in seconds to wait for App Store Connect processing. If set, after exceeding timeout duration, this will force stop to wait for App Store Connect processing and exit with exception wait_for_uploaded_build DEPRECATED! No longer needed with the transition over to the App Store Connect API - Use version info from uploaded ipa file to determine what build to use for distribution. If set to false, latest processing or any latest build will be used false reject_build_waiting_for_review Expire previous if it's 'waiting for review' false submit_beta_review Send the build for a beta review true * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action pilot CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run pilot To pass parameters, make use of the : symbol, for example fastlane run pilot parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"pilot"},{"location":"actions/pilot/#pilot","text":"Alias for the upload_to_testflight action","title":"pilot"},{"location":"actions/pilot/#usage","text":"For all commands, you can either use an API Key or your Apple ID .","title":"Usage"},{"location":"actions/pilot/#uploading-builds","text":"To upload a new build, just run fastlane pilot upload This will automatically look for an ipa in your current directory and tries to fetch the login credentials from your fastlane setup . You'll be asked for any missing information. Additionally, you can pass all kinds of parameters: fastlane action pilot You can pass a changelog using fastlane pilot upload --changelog \"Something that is new here\" You can also skip the submission of the binary, which means, the ipa file will only be uploaded and not distributed to testers: fastlane pilot upload --skip_submission pilot does all kinds of magic for you: Automatically detects the bundle identifier from your ipa file Automatically fetch the AppID of your app based on the bundle identifier pilot uses spaceship to submit the build metadata and the iTunes Transporter to upload the binary. Because iTunes Transporter's upload capability is only supported on OS X, pilot upload does not work on Linux, as described in this issue","title":"Uploading builds"},{"location":"actions/pilot/#list-builds","text":"To list all builds for specific application use fastlane pilot builds The result lists all active builds and processing builds: +-----------+---------+----------+ | Great App Builds | +-----------+---------+----------+ | Version # | Build # | Installs | +-----------+---------+----------+ | 0.9.13 | 1 | 0 | | 0.9.13 | 2 | 0 | | 0.9.20 | 3 | 0 | | 0.9.20 | 4 | 3 | +-----------+---------+----------+","title":"List builds"},{"location":"actions/pilot/#managing-beta-testers","text":"","title":"Managing beta testers"},{"location":"actions/pilot/#tips","text":"","title":"Tips"},{"location":"actions/pilot/#debug-information","text":"If you run into any issues you can use the verbose mode to get a more detailed output: fastlane pilot upload --verbose","title":"Debug information"},{"location":"actions/pilot/#firewall-issues","text":"pilot uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol from the command line using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" pilot ... If you are using pilot via the fastlane action , add the following to your Fastfile ENV[\"DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS\"] = \"-t DAV\" pilot... Note, however, that Apple recommends you don\u2019t specify the -t transport and instead allow Transporter to use automatic transport discovery to determine the best transport mode for your packages. For this reason, if the t option is passed, we will raise a warning. Also note that -t is not the only additional parameter that can be used. The string specified in the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS environment variable will be forwarded to Transporter. For all the available options, check Apple's Transporter User Guide .","title":"Firewall Issues"},{"location":"actions/pilot/#credentials-issues","text":"If your password contains special characters, pilot may throw a confusing error saying your \"Your Apple ID or password was entered incorrectly\". The easiest way to fix this error is to change your password to something that does not contains special characters.","title":"Credentials Issues"},{"location":"actions/pilot/#how-is-my-password-stored","text":"pilot uses the CredentialsManager from fastlane .","title":"How is my password stored?"},{"location":"actions/pilot/#provider-short-name","text":"If you are on multiple App Store Connect teams, iTunes Transporter may need a provider short name to know where to upload your binary. pilot will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option.","title":"Provider Short Name"},{"location":"actions/pilot/#use-an-application-specific-password-to-upload","text":"pilot / upload_to_testflight can use an Application Specific Password via the FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD environment variable to upload a binary if both the skip_waiting_for_build_processing and apple_id options are set. (If any of those are not set, it will use the normal Apple login process that might require 2FA authentication.)","title":"Use an Application Specific Password to upload"},{"location":"actions/pilot/#role-for-app-store-connect-user","text":"pilot / upload_to_testflight updates build information and testers after the build has finished processing. App Store Connect requires the \"App Manager\" or \"Admin\" role for your Apple account to update this information. The \"Developer\" role will allow builds to be uploaded but will not allow updating of build information and testers. pilot Supported platforms ios, mac Author @KrauseFx","title":"Role for App Store Connect User"},{"location":"actions/pilot/#7-examples","text":"upload_to_testflight testflight # alias for \"upload_to_testflight\" pilot # alias for \"upload_to_testflight\" upload_to_testflight(skip_submission: true) # to only upload the build upload_to_testflight( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) upload_to_testflight( beta_app_feedback_email: \"email@email.com\", beta_app_description: \"This is a description of my app\", demo_account_required: true, notify_external_testers: false, changelog: \"This is my changelog of things that have changed in a log\" ) upload_to_testflight( beta_app_review_info: { contact_email: \"email@email.com\", contact_first_name: \"Connect\", contact_last_name: \"API\", contact_phone: \"5558675309\", demo_account_name: \"demo@email.com\", demo_account_password: \"connectapi\", notes: \"this is review note for the reviewer <3 thank you for reviewing\" }, localized_app_info: { \"default\": { feedback_email: \"default@email.com\", marketing_url: \"https://example.com/marketing-defafult\", privacy_policy_url: \"https://example.com/privacy-defafult\", description: \"Default description\", }, \"en-GB\": { feedback_email: \"en-gb@email.com\", marketing_url: \"https://example.com/marketing-en-gb\", privacy_policy_url: \"https://example.com/privacy-en-gb\", description: \"en-gb description\", } }, localized_build_info: { \"default\": { whats_new: \"Default changelog\", }, \"en-GB\": { whats_new: \"en-gb changelog\", } } )","title":"7 Examples"},{"location":"actions/pilot/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of the app to upload or manage testers (optional) * app_platform The platform to use (optional) apple_id Apple ID property in the App Information section in App Store Connect * ipa Path to the ipa file to upload * pkg Path to your pkg file * demo_account_required Do you need a demo account when Apple does review? beta_app_review_info Beta app review information for contact info and demo account localized_app_info Localized beta app test info for description, feedback email, marketing url, and privacy policy beta_app_description Provide the 'Beta App Description' when uploading a new build beta_app_feedback_email Provide the beta app email when uploading a new build localized_build_info Localized beta app test info for what's new changelog Provide the 'What to Test' text when uploading a new build skip_submission Skip the distributing action of pilot and only upload the ipa file false skip_waiting_for_build_processing If set to true, the distribute_external option won't work and no build will be distributed to testers. (You might want to use this option if you are using this action on CI and have to pay for 'minutes used' on your CI plan). If set to true and a changelog is provided, it will partially wait for the build to appear on AppStore Connect so the changelog can be set, and skip the remaining processing steps false update_build_info_on_upload DEPRECATED! Update build info immediately after validation. This is deprecated and will be removed in a future release. App Store Connect no longer supports setting build info until after build processing has completed, which is when build info is updated by default false distribute_only Distribute a previously uploaded build (equivalent to the fastlane pilot distribute command) false uses_non_exempt_encryption Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist false distribute_external Should the build be distributed to external testers? If set to true, use of groups option is required false notify_external_testers Should notify external testers? (Not setting a value will use App Store Connect's default which is to notify) app_version The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed build_number The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed expire_previous_builds Should expire previous builds? false first_name The tester's first name last_name The tester's last name email The tester's email testers_file_path Path to a CSV file of testers ./testers.csv groups Associate tester to one group or more by group name / group id. E.g. -g \"Team 1\",\"Team 2\" This is required when distribute_external option is set to true or when we want to add a tester to one or more external testing groups team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your team in the developer portal, if you're in multiple teams. Different from your iTC team ID! * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column wait_processing_interval Interval in seconds to wait for App Store Connect processing 30 wait_processing_timeout_duration Timeout duration in seconds to wait for App Store Connect processing. If set, after exceeding timeout duration, this will force stop to wait for App Store Connect processing and exit with exception wait_for_uploaded_build DEPRECATED! No longer needed with the transition over to the App Store Connect API - Use version info from uploaded ipa file to determine what build to use for distribution. If set to false, latest processing or any latest build will be used false reject_build_waiting_for_review Expire previous if it's 'waiting for review' false submit_beta_review Send the build for a beta review true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/pilot/#documentation","text":"To show the documentation in your terminal, run fastlane action pilot","title":"Documentation"},{"location":"actions/pilot/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run pilot To pass parameters, make use of the : symbol, for example fastlane run pilot parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/pilot/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/plugin_scores/","text":"plugin_scores \u001b[31mNo description provided\u001b[0m plugin_scores | -----|---- Supported platforms | ios, android, mac Author | @KrauseFx Parameters Key Description Default * = default value is dependent on the user's system To show the documentation in your terminal, run fastlane action plugin_scores View source code Back to actions","title":"Plugin scores"},{"location":"actions/plugin_scores/#plugin_scores","text":"\u001b[31mNo description provided\u001b[0m plugin_scores | -----|---- Supported platforms | ios, android, mac Author | @KrauseFx","title":"plugin_scores"},{"location":"actions/plugin_scores/#parameters","text":"Key Description Default * = default value is dependent on the user's system To show the documentation in your terminal, run fastlane action plugin_scores View source code Back to actions","title":"Parameters"},{"location":"actions/pod_lib_lint/","text":"pod_lib_lint Pod lib lint Test the syntax of your Podfile by linting the pod against the files of its directory pod_lib_lint Supported platforms ios, mac Author @thierryxing 4 Examples pod_lib_lint # Allow output detail in console pod_lib_lint(verbose: true) # Allow warnings during pod lint pod_lib_lint(allow_warnings: true) # If the podspec has a dependency on another private pod, then you will have to supply the sources pod_lib_lint(sources: [\"https://github.com/username/Specs\", \"https://github.com/CocoaPods/Specs\"]) Parameters Key Description Default use_bundle_exec Use bundle exec when there is a Gemfile presented true podspec Path of spec to lint verbose Allow output detail in console allow_warnings Allow warnings during pod lint sources The sources of repos you want the pod spec to lint with, separated by commas subspec A specific subspec to lint instead of the entire spec include_podspecs A Glob of additional ancillary podspecs which are used for linting via :path (available since cocoapods >= 1.7) external_podspecs A Glob of additional ancillary podspecs which are used for linting via :podspec. If there are --include-podspecs, then these are removed from them (available since cocoapods >= 1.7) swift_version The SWIFT_VERSION that should be used to lint the spec. This takes precedence over a .swift-version file use_libraries Lint uses static libraries to install the spec false use_modular_headers Lint using modular libraries (available since cocoapods >= 1.6) false fail_fast Lint stops on the first failing platform or subspec false private Lint skips checks that apply only to public specs false quick Lint skips checks that would require to download and build the spec false no_clean Lint leaves the build directory intact for inspection false no_subspecs Lint skips validation of subspecs false platforms Lint against specific platforms (defaults to all platforms supported by the podspec). Multiple platforms must be comma-delimited (available since cocoapods >= 1.6) skip_import_validation Lint skips validating that the pod can be imported (available since cocoapods >= 1.3) false skip_tests Lint skips building and running tests during validation (available since cocoapods >= 1.3) false analyze Validate with the Xcode Static Analysis tool (available since cocoapods >= 1.6.1) false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action pod_lib_lint CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run pod_lib_lint To pass parameters, make use of the : symbol, for example fastlane run pod_lib_lint parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"pod_lib_lint"},{"location":"actions/pod_lib_lint/#pod_lib_lint","text":"Pod lib lint Test the syntax of your Podfile by linting the pod against the files of its directory pod_lib_lint Supported platforms ios, mac Author @thierryxing","title":"pod_lib_lint"},{"location":"actions/pod_lib_lint/#4-examples","text":"pod_lib_lint # Allow output detail in console pod_lib_lint(verbose: true) # Allow warnings during pod lint pod_lib_lint(allow_warnings: true) # If the podspec has a dependency on another private pod, then you will have to supply the sources pod_lib_lint(sources: [\"https://github.com/username/Specs\", \"https://github.com/CocoaPods/Specs\"])","title":"4 Examples"},{"location":"actions/pod_lib_lint/#parameters","text":"Key Description Default use_bundle_exec Use bundle exec when there is a Gemfile presented true podspec Path of spec to lint verbose Allow output detail in console allow_warnings Allow warnings during pod lint sources The sources of repos you want the pod spec to lint with, separated by commas subspec A specific subspec to lint instead of the entire spec include_podspecs A Glob of additional ancillary podspecs which are used for linting via :path (available since cocoapods >= 1.7) external_podspecs A Glob of additional ancillary podspecs which are used for linting via :podspec. If there are --include-podspecs, then these are removed from them (available since cocoapods >= 1.7) swift_version The SWIFT_VERSION that should be used to lint the spec. This takes precedence over a .swift-version file use_libraries Lint uses static libraries to install the spec false use_modular_headers Lint using modular libraries (available since cocoapods >= 1.6) false fail_fast Lint stops on the first failing platform or subspec false private Lint skips checks that apply only to public specs false quick Lint skips checks that would require to download and build the spec false no_clean Lint leaves the build directory intact for inspection false no_subspecs Lint skips validation of subspecs false platforms Lint against specific platforms (defaults to all platforms supported by the podspec). Multiple platforms must be comma-delimited (available since cocoapods >= 1.6) skip_import_validation Lint skips validating that the pod can be imported (available since cocoapods >= 1.3) false skip_tests Lint skips building and running tests during validation (available since cocoapods >= 1.3) false analyze Validate with the Xcode Static Analysis tool (available since cocoapods >= 1.6.1) false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/pod_lib_lint/#documentation","text":"To show the documentation in your terminal, run fastlane action pod_lib_lint","title":"Documentation"},{"location":"actions/pod_lib_lint/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run pod_lib_lint To pass parameters, make use of the : symbol, for example fastlane run pod_lib_lint parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/pod_lib_lint/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/pod_push/","text":"pod_push Push a Podspec to Trunk or a private repository pod_push Supported platforms ios, mac Author @squarefrog 4 Examples # If no path is supplied then Trunk will attempt to find the first Podspec in the current directory. pod_push # Alternatively, supply the Podspec file path pod_push(path: \"TSMessages.podspec\") # You may also push to a private repo instead of Trunk pod_push(path: \"TSMessages.podspec\", repo: \"MyRepo\") # If the podspec has a dependency on another private pod, then you will have to supply the sources you want the podspec to lint with for pod_push to succeed. Read more here - https://github.com/CocoaPods/CocoaPods/issues/2543. pod_push(path: \"TMessages.podspec\", repo: \"MyRepo\", sources: [\"https://github.com/username/Specs\", \"https://github.com/CocoaPods/Specs\"]) Parameters Key Description Default use_bundle_exec Use bundle exec when there is a Gemfile presented false path The Podspec you want to push repo The repo you want to push. Pushes to Trunk by default allow_warnings Allow warnings during pod push use_libraries Allow lint to use static libraries to install the spec sources The sources of repos you want the pod spec to lint with, separated by commas swift_version The SWIFT_VERSION that should be used to lint the spec. This takes precedence over a .swift-version file skip_import_validation Lint skips validating that the pod can be imported skip_tests Lint skips building and running tests during validation use_json Convert the podspec to JSON before pushing it to the repo verbose Show more debugging information false use_modular_headers Use modular headers option during validation synchronous If validation depends on other recently pushed pods, synchronize no_overwrite Disallow pushing that would overwrite an existing spec local_only Does not perform the step of pushing REPO to its remote * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action pod_push CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run pod_push To pass parameters, make use of the : symbol, for example fastlane run pod_push parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"pod_push"},{"location":"actions/pod_push/#pod_push","text":"Push a Podspec to Trunk or a private repository pod_push Supported platforms ios, mac Author @squarefrog","title":"pod_push"},{"location":"actions/pod_push/#4-examples","text":"# If no path is supplied then Trunk will attempt to find the first Podspec in the current directory. pod_push # Alternatively, supply the Podspec file path pod_push(path: \"TSMessages.podspec\") # You may also push to a private repo instead of Trunk pod_push(path: \"TSMessages.podspec\", repo: \"MyRepo\") # If the podspec has a dependency on another private pod, then you will have to supply the sources you want the podspec to lint with for pod_push to succeed. Read more here - https://github.com/CocoaPods/CocoaPods/issues/2543. pod_push(path: \"TMessages.podspec\", repo: \"MyRepo\", sources: [\"https://github.com/username/Specs\", \"https://github.com/CocoaPods/Specs\"])","title":"4 Examples"},{"location":"actions/pod_push/#parameters","text":"Key Description Default use_bundle_exec Use bundle exec when there is a Gemfile presented false path The Podspec you want to push repo The repo you want to push. Pushes to Trunk by default allow_warnings Allow warnings during pod push use_libraries Allow lint to use static libraries to install the spec sources The sources of repos you want the pod spec to lint with, separated by commas swift_version The SWIFT_VERSION that should be used to lint the spec. This takes precedence over a .swift-version file skip_import_validation Lint skips validating that the pod can be imported skip_tests Lint skips building and running tests during validation use_json Convert the podspec to JSON before pushing it to the repo verbose Show more debugging information false use_modular_headers Use modular headers option during validation synchronous If validation depends on other recently pushed pods, synchronize no_overwrite Disallow pushing that would overwrite an existing spec local_only Does not perform the step of pushing REPO to its remote * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/pod_push/#documentation","text":"To show the documentation in your terminal, run fastlane action pod_push","title":"Documentation"},{"location":"actions/pod_push/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run pod_push To pass parameters, make use of the : symbol, for example fastlane run pod_push parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/pod_push/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/podio_item/","text":"podio_item Creates or updates an item within your Podio app Use this action to create or update an item within your Podio app (see https://help.podio.com/hc/en-us/articles/201019278-Creating-apps- ). Pass in dictionary with field keys and their values. Field key is located under Modify app -> Advanced -> Developer -> External ID (see https://developers.podio.com/examples/items ). podio_item Supported platforms ios, android, mac Author @pprochazka72, @laugejepsen 1 Example podio_item( identifying_value: \"Your unique value\", other_fields: { \"field1\" => \"fieldValue\", \"field2\" => \"fieldValue2\" } ) Parameters Key Description Default client_id Client ID for Podio API (see https://developers.podio.com/api-key) client_secret Client secret for Podio API (see https://developers.podio.com/api-key) app_id App ID of the app you intend to authenticate with (see https://developers.podio.com/authentication/app_auth) app_token App token of the app you intend to authenticate with (see https://developers.podio.com/authentication/app_auth) identifying_field String specifying the field key used for identification of an item identifying_value String uniquely specifying an item within the app other_fields Dictionary of your app fields. Podio supports several field types, see https://developers.podio.com/doc/items * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The podio_item action generates the following Lane Variables: SharedValue Description SharedValues::PODIO_ITEM_URL URL to newly created (or updated) Podio item To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action podio_item CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run podio_item To pass parameters, make use of the : symbol, for example fastlane run podio_item parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"podio_item"},{"location":"actions/podio_item/#podio_item","text":"Creates or updates an item within your Podio app Use this action to create or update an item within your Podio app (see https://help.podio.com/hc/en-us/articles/201019278-Creating-apps- ). Pass in dictionary with field keys and their values. Field key is located under Modify app -> Advanced -> Developer -> External ID (see https://developers.podio.com/examples/items ). podio_item Supported platforms ios, android, mac Author @pprochazka72, @laugejepsen","title":"podio_item"},{"location":"actions/podio_item/#1-example","text":"podio_item( identifying_value: \"Your unique value\", other_fields: { \"field1\" => \"fieldValue\", \"field2\" => \"fieldValue2\" } )","title":"1 Example"},{"location":"actions/podio_item/#parameters","text":"Key Description Default client_id Client ID for Podio API (see https://developers.podio.com/api-key) client_secret Client secret for Podio API (see https://developers.podio.com/api-key) app_id App ID of the app you intend to authenticate with (see https://developers.podio.com/authentication/app_auth) app_token App token of the app you intend to authenticate with (see https://developers.podio.com/authentication/app_auth) identifying_field String specifying the field key used for identification of an item identifying_value String uniquely specifying an item within the app other_fields Dictionary of your app fields. Podio supports several field types, see https://developers.podio.com/doc/items * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/podio_item/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The podio_item action generates the following Lane Variables: SharedValue Description SharedValues::PODIO_ITEM_URL URL to newly created (or updated) Podio item To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/podio_item/#documentation","text":"To show the documentation in your terminal, run fastlane action podio_item","title":"Documentation"},{"location":"actions/podio_item/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run podio_item To pass parameters, make use of the : symbol, for example fastlane run podio_item parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/podio_item/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/precheck/","text":"precheck Alias for the check_app_store_metadata action precheck Check your app using a community driven set of App Store review rules to avoid being rejected Apple rejects builds for many avoidable metadata issues like including swear words \ud83d\ude2e, other companies\u2019 trademarks, or even mentioning an iOS bug \ud83d\udc1b. fastlane precheck takes a lot of the guess work out by scanning your app\u2019s details in App Store Connect for avoidable problems. fastlane precheck helps you get your app through app review without rejections so you can ship faster \ud83d\ude80 Features \u2022 Usage \u2022 Example \u2022 How does it work? Features precheck Features \ud83d\udc1b \uf8ff product bug mentions \ud83d\ude45 Swear word checker \ud83e\udd16 Mentioning other platforms \ud83d\ude35 URL reachability checker \ud83d\udcdd Placeholder/test words/mentioning future features \ud83d\udcc5 Copyright date checking \ud83d\ude48 Customizable word list checking \ud83d\udce2 You can decide if you want to warn about potential problems and continue or have fastlane show an error and stop after all scans are done Usage Run fastlane precheck to check the app metadata from App Store Connect fastlane precheck To get a list of available options run fastlane action precheck Example Since you might want to manually trigger precheck but don't want to specify all the parameters every time, you can store your defaults in a so called Precheckfile . Run fastlane precheck init to create a new configuration file. Example: # indicates that your metadata will not be checked by this rule negative_apple_sentiment(level: :skip) # when triggered, this rule will warn you of a potential problem curse_words(level: :warn) # show error and prevent any further commands from running after fastlane precheck finishes unreachable_urls(level: :error) # pass in whatever words you want to check for custom_text(data: [\"chrome\", \"webos\"], level: :warn) Use with fastlane precheck is fully integrated with deliver another fastlane tool. Update your Fastfile to contain the following code: lane :production do # ... # by default deliver will call precheck and warn you of any problems # if you want precheck to halt submitting to app review, you can pass # precheck_default_rule_level: :error deliver(precheck_default_rule_level: :error) # ... end # or if you prefer, you can run precheck alone lane :check_metadata do precheck end How does it work? precheck will access App Store Connect to download your app's metadata. It uses spaceship to communicate with Apple's web services. Want to improve precheck's rules? Please submit an issue on GitHub and provide information about your App Store rejection! Make sure you scrub out any personally identifiable information since this will be public. precheck Supported platforms ios Author @taquitos Returns true if precheck passes, else, false 2 Examples check_app_store_metadata( negative_apple_sentiment: [level: :skip], # Set to skip to not run the `negative_apple_sentiment` rule curse_words: [level: :warn] # Set to warn to only warn on curse word check failures ) precheck # alias for \"check_app_store_metadata\" Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * platform The platform to use (optional) ios default_rule_level The default rule level unless otherwise configured :error include_in_app_purchases Should check in-app purchases? true use_live Should force check live app? false negative_apple_sentiment mentioning \uf8ff in a way that could be considered negative placeholder_text using placeholder text (e.g.:\"lorem ipsum\", \"text here\", etc...) other_platforms mentioning other platforms, like Android or Blackberry future_functionality mentioning features or content that is not currently available in your app test_words using text indicating this release is a test curse_words including words that might be considered objectionable free_stuff_in_iap using text indicating that your IAP is free custom_text mentioning any of the user-specified words passed to custom_text(data: [words]) copyright_date using a copyright date that is any different from this current year, or missing a date unreachable_urls unreachable URLs in app metadata * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action precheck CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run precheck To pass parameters, make use of the : symbol, for example fastlane run precheck parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"precheck"},{"location":"actions/precheck/#precheck","text":"Alias for the check_app_store_metadata action","title":"precheck"},{"location":"actions/precheck/#precheck_1","text":"","title":"precheck"},{"location":"actions/precheck/#features","text":"precheck Features \ud83d\udc1b \uf8ff product bug mentions \ud83d\ude45 Swear word checker \ud83e\udd16 Mentioning other platforms \ud83d\ude35 URL reachability checker \ud83d\udcdd Placeholder/test words/mentioning future features \ud83d\udcc5 Copyright date checking \ud83d\ude48 Customizable word list checking \ud83d\udce2 You can decide if you want to warn about potential problems and continue or have fastlane show an error and stop after all scans are done","title":"Features"},{"location":"actions/precheck/#usage","text":"Run fastlane precheck to check the app metadata from App Store Connect fastlane precheck To get a list of available options run fastlane action precheck","title":"Usage"},{"location":"actions/precheck/#example","text":"Since you might want to manually trigger precheck but don't want to specify all the parameters every time, you can store your defaults in a so called Precheckfile . Run fastlane precheck init to create a new configuration file. Example: # indicates that your metadata will not be checked by this rule negative_apple_sentiment(level: :skip) # when triggered, this rule will warn you of a potential problem curse_words(level: :warn) # show error and prevent any further commands from running after fastlane precheck finishes unreachable_urls(level: :error) # pass in whatever words you want to check for custom_text(data: [\"chrome\", \"webos\"], level: :warn)","title":"Example"},{"location":"actions/precheck/#how-does-it-work","text":"precheck will access App Store Connect to download your app's metadata. It uses spaceship to communicate with Apple's web services.","title":"How does it work?"},{"location":"actions/precheck/#want-to-improve-prechecks-rules","text":"Please submit an issue on GitHub and provide information about your App Store rejection! Make sure you scrub out any personally identifiable information since this will be public. precheck Supported platforms ios Author @taquitos Returns true if precheck passes, else, false","title":"Want to improve precheck's rules?"},{"location":"actions/precheck/#2-examples","text":"check_app_store_metadata( negative_apple_sentiment: [level: :skip], # Set to skip to not run the `negative_apple_sentiment` rule curse_words: [level: :warn] # Set to warn to only warn on curse word check failures ) precheck # alias for \"check_app_store_metadata\"","title":"2 Examples"},{"location":"actions/precheck/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * platform The platform to use (optional) ios default_rule_level The default rule level unless otherwise configured :error include_in_app_purchases Should check in-app purchases? true use_live Should force check live app? false negative_apple_sentiment mentioning \uf8ff in a way that could be considered negative placeholder_text using placeholder text (e.g.:\"lorem ipsum\", \"text here\", etc...) other_platforms mentioning other platforms, like Android or Blackberry future_functionality mentioning features or content that is not currently available in your app test_words using text indicating this release is a test curse_words including words that might be considered objectionable free_stuff_in_iap using text indicating that your IAP is free custom_text mentioning any of the user-specified words passed to custom_text(data: [words]) copyright_date using a copyright date that is any different from this current year, or missing a date unreachable_urls unreachable URLs in app metadata * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/precheck/#documentation","text":"To show the documentation in your terminal, run fastlane action precheck","title":"Documentation"},{"location":"actions/precheck/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run precheck To pass parameters, make use of the : symbol, for example fastlane run precheck parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/precheck/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/println/","text":"println Alias for the puts action println Supported platforms ios, android, mac Author @KrauseFx 1 Example puts \"Hi there\" Parameters Key Description Default message Message to be printed out * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action println CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run println To pass parameters, make use of the : symbol, for example fastlane run println parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"println"},{"location":"actions/println/#println","text":"Alias for the puts action println Supported platforms ios, android, mac Author @KrauseFx","title":"println"},{"location":"actions/println/#1-example","text":"puts \"Hi there\"","title":"1 Example"},{"location":"actions/println/#parameters","text":"Key Description Default message Message to be printed out * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/println/#documentation","text":"To show the documentation in your terminal, run fastlane action println","title":"Documentation"},{"location":"actions/println/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run println To pass parameters, make use of the : symbol, for example fastlane run println parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/println/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/produce/","text":"produce Alias for the create_app_online action Create new iOS apps on App Store Connect and Apple Developer Portal using your command line produce creates new iOS apps on both the Apple Developer Portal and App Store Connect with the minimum required information. Features \u2022 Usage \u2022 How does it work? Features Create new apps on both App Store Connect and the Apple Developer Portal Modify Application Services on the Apple Developer Portal Create App Groups on the Apple Developer Portal Associate apps with App Groups on the Apple Developer Portal Create iCloud Containers on the Apple Developer Portal Associate apps with iCloud Containers on the Apple Developer Portal Create Merchant Identifiers on the Apple Developer Portal Associate apps with Merchant Identifiers on the Apple Developer Portal Support for multiple Apple accounts , storing your credentials securely in the Keychain Usage Creating a new application fastlane produce To get a list of all available parameters: fastlane produce --help Commands: (* default) associate_group Associate with a group, which is created if needed or simply located otherwise associate_merchant Associate with a merchant for use with Apple Pay. Apple Pay will be enabled for this app create * Creates a new app on App Store Connect and the Apple Developer Portal disable_services Disable specific Application Services for a specific app on the Apple Developer Portal enable_services Enable specific Application Services for a specific app on the Apple Developer Portal group Ensure that a specific App Group exists cloud_container Ensure that a specific iCloud Container exists help Display global or [command] help documentation merchant Ensure that a specific Merchant exists Global Options: --verbose -h, --help Display help documentation -v, --version Display version information Options for create: -u, --username STRING Your Apple ID Username (PRODUCE_USERNAME) -a, --app_identifier STRING App Identifier (Bundle ID, e.g. com.krausefx.app) (PRODUCE_APP_IDENTIFIER) -e, --bundle_identifier_suffix STRING App Identifier Suffix (Ignored if App Identifier does not ends with .*) (PRODUCE_APP_IDENTIFIER_SUFFIX) -q, --app_name STRING App Name (PRODUCE_APP_NAME) -z, --app_version STRING Initial version number (e.g. '1.0') (PRODUCE_VERSION) -y, --sku STRING SKU Number (e.g. '1234') (PRODUCE_SKU) -j, --platform STRING The platform to use (optional) (PRODUCE_PLATFORM) -m, --language STRING Primary Language (e.g. 'English', 'German') (PRODUCE_LANGUAGE) -c, --company_name STRING The name of your company. It's used to set company name on App Store Connect team's app pages. Only required if it's the first app you create (PRODUCE_COMPANY_NAME) -i, --skip_itc [VALUE] Skip the creation of the app on App Store Connect (PRODUCE_SKIP_ITC) -d, --skip_devcenter [VALUE] Skip the creation of the app on the Apple Developer Portal (PRODUCE_SKIP_DEVCENTER) -s, --itc_users ARRAY Array of App Store Connect users. If provided, you can limit access to this newly created app for users with the App Manager, Developer, Marketer or Sales roles (ITC_USERS) -b, --team_id STRING The ID of your Developer Portal team if you're in multiple teams (PRODUCE_TEAM_ID) -l, --team_name STRING The name of your Developer Portal team if you're in multiple teams (PRODUCE_TEAM_NAME) -k, --itc_team_id [VALUE] The ID of your App Store Connect team if you're in multiple teams (PRODUCE_ITC_TEAM_ID) -p, --itc_team_name STRING The name of your App Store Connect team if you're in multiple teams (PRODUCE_ITC_TEAM_NAME) Enabling / Disabling Application Services If you want to enable Application Services for an App ID (HomeKit and HealthKit in this example): fastlane produce enable_services --homekit --healthkit If you want to disable Application Services for an App ID (iCloud in this case): fastlane produce disable_services --icloud If you want to create a new App Group: fastlane produce group -g group.krausefx -n \"Example App Group\" If you want to associate an app with an App Group: fastlane produce associate_group -a com.krausefx.app group.krausefx If you want to create a new iCloud Container: fastlane produce cloud_container -g iCloud.com.krausefx.app -n \"Example iCloud Container\" If you want to associate an app with an iCloud Container: fastlane produce associate_cloud_container -a com.krausefx.app iCloud.com.krausefx.app If you want to associate an app with multiple iCloud Containers: fastlane produce associate_cloud_container -a com.krausefx.app iCloud.com.krausefx.app1 iCloud.com.krausefx.app2 Parameters Get a list of all available options using fastlane produce enable_services --help --access-wifi Enable Access Wifi --app-attest Enable App Attest --app-group Enable App Group --apple-pay Enable Apple Pay --associated-domains Enable Associated Domains --auto-fill-credential Enable Auto Fill Credential --class-kit Enable Class Kit --icloud STRING Enable iCloud, suitable values are \"xcode5_compatible\" and \"xcode6_compatible\" --custom-network-protocol Enable Custom Network Protocol --data-protection STRING Enable Data Protection, suitable values are \"complete\", \"unlessopen\" and \"untilfirstauth\" --extended-virtual-address-space Enable Extended Virtual Address Space --game-center STRING Enable Game Center, suitable values are \"ios\" and \"macos --health-kit Enable Health Kit --hls-interstitial-preview Enable Hls Interstitial Preview --home-kit Enable Home Kit --hotspot Enable Hotspot --in-app-purchase Enable In App Purchase --inter-app-audio Enable Inter App Audio --low-latency-hls Enable Low Latency Hls --managed-associated-domains Enable Managed Associated Domains --maps Enable Maps --multipath Enable Multipath --network-extension Enable Network Extension --nfc-tag-reading Enable NFC Tag Reading --personal-vpn Enable Personal VPN --passbook Enable Passbook (deprecated) --push-notification Enable Push Notification --sign-in-with-apple Enable Sign In With Apple --siri-kit Enable Siri Kit --system-extension Enable System Extension --user-management Enable User Management --vpn-configuration Enable Vpn Configuration (deprecated) --wallet Enable Wallet --wireless-accessory Enable Wireless Accessory --car-play-audio-app Enable Car Play Audio App --car-play-messaging-app Enable Car Play Messaging App --car-play-navigation-app Enable Car Play Navigation App --car-play-voip-calling-app Enable Car Play Voip Calling App --critical-alerts Enable Critical Alerts --hotspot-helper Enable Hotspot Helper --driver-kit Enable DriverKit --driver-kit-endpoint-security Enable DriverKit Endpoint Security --driver-kit-family-hid-device Enable DriverKit Family HID Device --driver-kit-family-networking Enable DriverKit Family Networking --driver-kit-family-serial Enable DriverKit Family Serial --driver-kit-hid-event-service Enable DriverKit HID EventService --driver-kit-transport-hid Enable DriverKit Transport HID --multitasking-camera-access Enable Multitasking Camera Access --sf-universal-link-api Enable SFUniversalLink API --vp9-decoder Enable VP9 Decoder --music-kit Enable MusicKit --shazam-kit Enable ShazamKit --communication-notifications Enable Communication Notifications --group-activities Enable Group Activities --health-kit-estimate-recalibration Enable HealthKit Estimate Recalibration --time-sensitive-notifications Enable Time Sensitive Notifications fastlane produce disable_services --help --access-wifi Disable Access Wifi --app-attest Disable App Attest --app-group Disable App Group --apple-pay Disable Apple Pay --associated-domains Disable Associated Domains --auto-fill-credential Disable Auto Fill Credential --class-kit Disable Class Kit --icloud STRING Disable iCloud --custom-network-protocol Disable Custom Network Protocol --data-protection STRING Disable Data Protection --extended-virtual-address-space Disable Extended Virtual Address Space --game-center STRING Disable Game Center --health-kit Disable Health Kit --hls-interstitial-preview Disable Hls Interstitial Preview --home-kit Disable Home Kit --hotspot Disable Hotspot --in-app-purchase Disable In App Purchase --inter-app-audio Disable Inter App Audio --low-latency-hls Disable Low Latency Hls --managed-associated-domains Disable Managed Associated Domains --maps Disable Maps --multipath Disable Multipath --network-extension Disable Network Extension --nfc-tag-reading Disable NFC Tag Reading --personal-vpn Disable Personal VPN --passbook Disable Passbook (deprecated) --push-notification Disable Push Notification --sign-in-with-apple Disable Sign In With Apple --siri-kit Disable Siri Kit --system-extension Disable System Extension --user-management Disable User Management --vpn-configuration Disable Vpn Configuration (deprecated) --wallet Disable Wallet --wireless-accessory Disable Wireless Accessory --car-play-audio-app Disable Car Play Audio App --car-play-messaging-app Disable Car Play Messaging App --car-play-navigation-app Disable Car Play Navigation App --car-play-voip-calling-app Disable Car Play Voip Calling App --critical-alerts Disable Critical Alerts --hotspot-helper Disable Hotspot Helper --driver-kit Disable DriverKit --driver-kit-endpoint-security Disable DriverKit Endpoint Security --driver-kit-family-hid-device Disable DriverKit Family HID Device --driver-kit-family-networking Disable DriverKit Family Networking --driver-kit-family-serial Disable DriverKit Family Serial --driver-kit-hid-event-service Disable DriverKit HID EventService --driver-kit-transport-hid Disable DriverKit Transport HID --multitasking-camera-access Disable Multitasking Camera Access --sf-universal-link-api Disable SFUniversalLink API --vp9-decoder Disable VP9 Decoder --music-kit Disable MusicKit --shazam-kit Disable ShazamKit --communication-notifications Disable Communication Notifications --group-activities Disable Group Activities --health-kit-estimate-recalibration Disable HealthKit Estimate Recalibration --time-sensitive-notifications Disable Time Sensitive Notifications Creating Apple Pay merchants and associating them with an App ID If you want to create a new Apple Pay Merchant Identifier: fastlane produce merchant -o merchant.com.example.production -r \"Example Merchant Production\" Use --help for more information about all available parameters fastlane produce merchant --help If you want to associate an app with a Merchant Identifier: fastlane produce associate_merchant -a com.krausefx.app merchant.com.example.production If you want to associate an app with multiple Merchant Identifiers: fastlane produce associate_merchant -a com.krausefx.app merchant.com.example.production merchant.com.example.sandbox Use --help for more information about all available parameters fastlane produce associate_merchant --help Environment Variables All available values can also be passed using environment variables, run fastlane produce --help to get a list of all available parameters. fastlane Integration Your Fastfile should look like this lane :release do produce( username: 'felix@krausefx.com', app_identifier: 'com.krausefx.app', app_name: 'MyApp', language: 'English', app_version: '1.0', sku: '123', team_name: 'SunApps GmbH', # only necessary when in multiple teams # Optional # App services can be enabled during app creation enable_services: { access_wifi: \"on\", # Valid values: \"on\", \"off\" app_attest: \"on\", # Valid values: \"on\", \"off\" app_group: \"on\", # Valid values: \"on\", \"off\" apple_pay: \"on\", # Valid values: \"on\", \"off\" associated_domains: \"on\", # Valid values: \"on\", \"off\" auto_fill_credential: \"on\", # Valid values: \"on\", \"off\" car_play_audio_app: \"on\", # Valid values: \"on\", \"off\" car_play_messaging_app: \"on\", # Valid values: \"on\", \"off\" car_play_navigation_app: \"on\", # Valid values: \"on\", \"off\" car_play_voip_calling_app: \"on\", # Valid values: \"on\", \"off\" class_kit: \"on\", # Valid values: \"on\", \"off\" icloud: \"xcode5_compatible\", # Valid values: \"xcode5_compatible\", \"xcode6_compatible\", \"off\" critical_alerts: \"on\", # Valid values: \"on\", \"off\" custom_network_protocol: \"on\", # Valid values: \"on\", \"off\" data_protection: \"complete\", # Valid values: \"complete\", \"unlessopen\", \"untilfirstauth\", \"off\" extended_virtual_address_space: \"on\", # Valid values: \"on\", \"off\" file_provider_testing_mode: \"on\", # Valid values: \"on\", \"off\" fonts: \"on\", # Valid values: \"on\", \"off\" game_center: \"ios\", # Valid values: \"ios\", \"macos\", off\" health_kit: \"on\", # Valid values: \"on\", \"off\" hls_interstitial_preview: \"on\", # Valid values: \"on\", \"off\" home_kit: \"on\", # Valid values: \"on\", \"off\" hotspot: \"on\", # Valid values: \"on\", \"off\" hotspot_helper: \"on\", # Valid values: \"on\", \"off\" in_app_purchase: \"on\", # Valid values: \"on\", \"off\" inter_app_audio: \"on\", # Valid values: \"on\", \"off\" low_latency_hls: \"on\", # Valid values: \"on\", \"off\" managed_associated_domains: \"on\", # Valid values: \"on\", \"off\" maps: \"on\", # Valid values: \"on\", \"off\" multipath: \"on\", # Valid values: \"on\", \"off\" network_extension: \"on\", # Valid values: \"on\", \"off\" nfc_tag_reading: \"on\", # Valid values: \"on\", \"off\" passbook: \"on\", # Valid values: \"on\", \"off\" (deprecated) personal_vpn: \"on\", # Valid values: \"on\", \"off\" push_notification: \"on\", # Valid values: \"on\", \"off\" sign_in_with_apple: \"on\", # Valid values: \"on\", \"off\" siri_kit: \"on\", # Valid values: \"on\", \"off\" system_extension: \"on\", # Valid values: \"on\", \"off\" user_management: \"on\", # Valid values: \"on\", \"off\" vpn_configuration: \"on\", # Valid values: \"on\", \"off\" (deprecated) wallet: \"on\", # Valid values: \"on\", \"off\" wireless_accessory: \"on\", # Valid values: \"on\", \"off\" driver_kit: \"on\", # Valid values: \"on\", \"off\" driver_kit_endpoint_security: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_hid_device: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_networking: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_serial: \"on\", # Valid values: \"on\", \"off\" driver_kit_hid_event_service: \"on\", # Valid values: \"on\", \"off\" driver_kit_transport_hid: \"on\", # Valid values: \"on\", \"off\" multitasking_camera_access: \"on\", # Valid values: \"on\", \"off\" sf_universal_link_api: \"on\", # Valid values: \"on\", \"off\" vp9_decoder: \"on\", # Valid values: \"on\", \"off\" music_kit: \"on\", # Valid values: \"on\", \"off\" shazam_kit: \"on\", # Valid values: \"on\", \"off\" communication_notifications: \"on\", # Valid values: \"on\", \"off\" group_activities: \"on\", # Valid values: \"on\", \"off\" health_kit_estimate_recalibration: \"on\", # Valid values: \"on\", \"off\" time_sensitive_notifications: \"on\", # Valid values: \"on\", \"off\" } ) deliver end To use the newly generated app in deliver , you need to add this line to your Deliverfile : apple_id(ENV['PRODUCE_APPLE_ID']) This will tell deliver , which App ID to use, since the app is not yet available in the App Store. You'll still have to fill out the remaining information (like screenshots, app description and pricing). You can use deliver to upload your app metadata using a CLI How is my password stored? produce uses the password manager from fastlane . Take a look the CredentialsManager README for more information. produce Supported platforms ios Author @KrauseFx 2 Examples create_app_online( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", app_name: \"MyApp\", language: \"English\", app_version: \"1.0\", sku: \"123\", team_name: \"SunApps GmbH\" # Only necessary when in multiple teams. ) produce # alias for \"create_app_online\" Parameters Key Description Default username Your Apple ID Username * app_identifier App Identifier (Bundle ID, e.g. com.krausefx.app) * bundle_identifier_suffix App Identifier Suffix (Ignored if App Identifier does not end with .*) app_name App Name app_version Initial version number (e.g. '1.0') sku SKU Number (e.g. '1234') * platform The platform to use (optional) ios platforms The platforms to use (optional) language Primary Language (e.g. 'en-US', 'fr-FR') English company_name The name of your company. It's used to set company name on App Store Connect team's app pages. Only required if it's the first app you create skip_itc Skip the creation of the app on App Store Connect false itc_users Array of App Store Connect users. If provided, you can limit access to this newly created app for users with the App Manager, Developer, Marketer or Sales roles enabled_features DEPRECATED! Please use enable_services instead - Array with Spaceship App Services {} enable_services Array with Spaceship App Services (e.g. access_wifi: (on|off), app_attest: (on|off), app_group: (on|off), apple_pay: (on|off), associated_domains: (on|off), auto_fill_credential: (on|off), class_kit: (on|off), icloud: (legacy|cloudkit), custom_network_protocol: (on|off), data_protection: (complete|unlessopen|untilfirstauth), extended_virtual_address_space: (on|off), family_controls: (on|off), file_provider_testing_mode: (on|off), fonts: (on|off), game_center: (ios|mac), health_kit: (on|off), hls_interstitial_preview: (on|off), home_kit: (on|off), hotspot: (on|off), in_app_purchase: (on|off), inter_app_audio: (on|off), low_latency_hls: (on|off), managed_associated_domains: (on|off), maps: (on|off), multipath: (on|off), network_extension: (on|off), nfc_tag_reading: (on|off), personal_vpn: (on|off), passbook: (on|off), push_notification: (on|off), sign_in_with_apple: (on), siri_kit: (on|off), system_extension: (on|off), user_management: (on|off), vpn_configuration: (on|off), wallet: (on|off), wireless_accessory: (on|off), car_play_audio_app: (on|off), car_play_messaging_app: (on|off), car_play_navigation_app: (on|off), car_play_voip_calling_app: (on|off), critical_alerts: (on|off), hotspot_helper: (on|off), driver_kit: (on|off), driver_kit_endpoint_security: (on|off), driver_kit_family_hid_device: (on|off), driver_kit_family_networking: (on|off), driver_kit_family_serial: (on|off), driver_kit_hid_event_service: (on|off), driver_kit_transport_hid: (on|off), multitasking_camera_access: (on|off), sf_universal_link_api: (on|off), vp9_decoder: (on|off), music_kit: (on|off), shazam_kit: (on|off), communication_notifications: (on|off), group_activities: (on|off), health_kit_estimate_recalibration: (on|off), time_sensitive_notifications: (on|off)) {} skip_devcenter Skip the creation of the app on the Apple Developer Portal false team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * itc_team_id The ID of your App Store Connect team if you're in multiple teams * itc_team_name The name of your App Store Connect team if you're in multiple teams * * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The produce action generates the following Lane Variables: SharedValue Description SharedValues::PRODUCE_APPLE_ID The Apple ID of the newly created app. You probably need it for deliver To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action produce CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run produce To pass parameters, make use of the : symbol, for example fastlane run produce parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"produce"},{"location":"actions/produce/#produce","text":"Alias for the create_app_online action","title":"produce"},{"location":"actions/produce/#features","text":"Create new apps on both App Store Connect and the Apple Developer Portal Modify Application Services on the Apple Developer Portal Create App Groups on the Apple Developer Portal Associate apps with App Groups on the Apple Developer Portal Create iCloud Containers on the Apple Developer Portal Associate apps with iCloud Containers on the Apple Developer Portal Create Merchant Identifiers on the Apple Developer Portal Associate apps with Merchant Identifiers on the Apple Developer Portal Support for multiple Apple accounts , storing your credentials securely in the Keychain","title":"Features"},{"location":"actions/produce/#usage","text":"","title":"Usage"},{"location":"actions/produce/#creating-a-new-application","text":"fastlane produce To get a list of all available parameters: fastlane produce --help Commands: (* default) associate_group Associate with a group, which is created if needed or simply located otherwise associate_merchant Associate with a merchant for use with Apple Pay. Apple Pay will be enabled for this app create * Creates a new app on App Store Connect and the Apple Developer Portal disable_services Disable specific Application Services for a specific app on the Apple Developer Portal enable_services Enable specific Application Services for a specific app on the Apple Developer Portal group Ensure that a specific App Group exists cloud_container Ensure that a specific iCloud Container exists help Display global or [command] help documentation merchant Ensure that a specific Merchant exists Global Options: --verbose -h, --help Display help documentation -v, --version Display version information Options for create: -u, --username STRING Your Apple ID Username (PRODUCE_USERNAME) -a, --app_identifier STRING App Identifier (Bundle ID, e.g. com.krausefx.app) (PRODUCE_APP_IDENTIFIER) -e, --bundle_identifier_suffix STRING App Identifier Suffix (Ignored if App Identifier does not ends with .*) (PRODUCE_APP_IDENTIFIER_SUFFIX) -q, --app_name STRING App Name (PRODUCE_APP_NAME) -z, --app_version STRING Initial version number (e.g. '1.0') (PRODUCE_VERSION) -y, --sku STRING SKU Number (e.g. '1234') (PRODUCE_SKU) -j, --platform STRING The platform to use (optional) (PRODUCE_PLATFORM) -m, --language STRING Primary Language (e.g. 'English', 'German') (PRODUCE_LANGUAGE) -c, --company_name STRING The name of your company. It's used to set company name on App Store Connect team's app pages. Only required if it's the first app you create (PRODUCE_COMPANY_NAME) -i, --skip_itc [VALUE] Skip the creation of the app on App Store Connect (PRODUCE_SKIP_ITC) -d, --skip_devcenter [VALUE] Skip the creation of the app on the Apple Developer Portal (PRODUCE_SKIP_DEVCENTER) -s, --itc_users ARRAY Array of App Store Connect users. If provided, you can limit access to this newly created app for users with the App Manager, Developer, Marketer or Sales roles (ITC_USERS) -b, --team_id STRING The ID of your Developer Portal team if you're in multiple teams (PRODUCE_TEAM_ID) -l, --team_name STRING The name of your Developer Portal team if you're in multiple teams (PRODUCE_TEAM_NAME) -k, --itc_team_id [VALUE] The ID of your App Store Connect team if you're in multiple teams (PRODUCE_ITC_TEAM_ID) -p, --itc_team_name STRING The name of your App Store Connect team if you're in multiple teams (PRODUCE_ITC_TEAM_NAME)","title":"Creating a new application"},{"location":"actions/produce/#enabling-disabling-application-services","text":"If you want to enable Application Services for an App ID (HomeKit and HealthKit in this example): fastlane produce enable_services --homekit --healthkit If you want to disable Application Services for an App ID (iCloud in this case): fastlane produce disable_services --icloud If you want to create a new App Group: fastlane produce group -g group.krausefx -n \"Example App Group\" If you want to associate an app with an App Group: fastlane produce associate_group -a com.krausefx.app group.krausefx If you want to create a new iCloud Container: fastlane produce cloud_container -g iCloud.com.krausefx.app -n \"Example iCloud Container\" If you want to associate an app with an iCloud Container: fastlane produce associate_cloud_container -a com.krausefx.app iCloud.com.krausefx.app If you want to associate an app with multiple iCloud Containers: fastlane produce associate_cloud_container -a com.krausefx.app iCloud.com.krausefx.app1 iCloud.com.krausefx.app2","title":"Enabling / Disabling Application Services"},{"location":"actions/produce/#parameters","text":"Get a list of all available options using fastlane produce enable_services --help --access-wifi Enable Access Wifi --app-attest Enable App Attest --app-group Enable App Group --apple-pay Enable Apple Pay --associated-domains Enable Associated Domains --auto-fill-credential Enable Auto Fill Credential --class-kit Enable Class Kit --icloud STRING Enable iCloud, suitable values are \"xcode5_compatible\" and \"xcode6_compatible\" --custom-network-protocol Enable Custom Network Protocol --data-protection STRING Enable Data Protection, suitable values are \"complete\", \"unlessopen\" and \"untilfirstauth\" --extended-virtual-address-space Enable Extended Virtual Address Space --game-center STRING Enable Game Center, suitable values are \"ios\" and \"macos --health-kit Enable Health Kit --hls-interstitial-preview Enable Hls Interstitial Preview --home-kit Enable Home Kit --hotspot Enable Hotspot --in-app-purchase Enable In App Purchase --inter-app-audio Enable Inter App Audio --low-latency-hls Enable Low Latency Hls --managed-associated-domains Enable Managed Associated Domains --maps Enable Maps --multipath Enable Multipath --network-extension Enable Network Extension --nfc-tag-reading Enable NFC Tag Reading --personal-vpn Enable Personal VPN --passbook Enable Passbook (deprecated) --push-notification Enable Push Notification --sign-in-with-apple Enable Sign In With Apple --siri-kit Enable Siri Kit --system-extension Enable System Extension --user-management Enable User Management --vpn-configuration Enable Vpn Configuration (deprecated) --wallet Enable Wallet --wireless-accessory Enable Wireless Accessory --car-play-audio-app Enable Car Play Audio App --car-play-messaging-app Enable Car Play Messaging App --car-play-navigation-app Enable Car Play Navigation App --car-play-voip-calling-app Enable Car Play Voip Calling App --critical-alerts Enable Critical Alerts --hotspot-helper Enable Hotspot Helper --driver-kit Enable DriverKit --driver-kit-endpoint-security Enable DriverKit Endpoint Security --driver-kit-family-hid-device Enable DriverKit Family HID Device --driver-kit-family-networking Enable DriverKit Family Networking --driver-kit-family-serial Enable DriverKit Family Serial --driver-kit-hid-event-service Enable DriverKit HID EventService --driver-kit-transport-hid Enable DriverKit Transport HID --multitasking-camera-access Enable Multitasking Camera Access --sf-universal-link-api Enable SFUniversalLink API --vp9-decoder Enable VP9 Decoder --music-kit Enable MusicKit --shazam-kit Enable ShazamKit --communication-notifications Enable Communication Notifications --group-activities Enable Group Activities --health-kit-estimate-recalibration Enable HealthKit Estimate Recalibration --time-sensitive-notifications Enable Time Sensitive Notifications fastlane produce disable_services --help --access-wifi Disable Access Wifi --app-attest Disable App Attest --app-group Disable App Group --apple-pay Disable Apple Pay --associated-domains Disable Associated Domains --auto-fill-credential Disable Auto Fill Credential --class-kit Disable Class Kit --icloud STRING Disable iCloud --custom-network-protocol Disable Custom Network Protocol --data-protection STRING Disable Data Protection --extended-virtual-address-space Disable Extended Virtual Address Space --game-center STRING Disable Game Center --health-kit Disable Health Kit --hls-interstitial-preview Disable Hls Interstitial Preview --home-kit Disable Home Kit --hotspot Disable Hotspot --in-app-purchase Disable In App Purchase --inter-app-audio Disable Inter App Audio --low-latency-hls Disable Low Latency Hls --managed-associated-domains Disable Managed Associated Domains --maps Disable Maps --multipath Disable Multipath --network-extension Disable Network Extension --nfc-tag-reading Disable NFC Tag Reading --personal-vpn Disable Personal VPN --passbook Disable Passbook (deprecated) --push-notification Disable Push Notification --sign-in-with-apple Disable Sign In With Apple --siri-kit Disable Siri Kit --system-extension Disable System Extension --user-management Disable User Management --vpn-configuration Disable Vpn Configuration (deprecated) --wallet Disable Wallet --wireless-accessory Disable Wireless Accessory --car-play-audio-app Disable Car Play Audio App --car-play-messaging-app Disable Car Play Messaging App --car-play-navigation-app Disable Car Play Navigation App --car-play-voip-calling-app Disable Car Play Voip Calling App --critical-alerts Disable Critical Alerts --hotspot-helper Disable Hotspot Helper --driver-kit Disable DriverKit --driver-kit-endpoint-security Disable DriverKit Endpoint Security --driver-kit-family-hid-device Disable DriverKit Family HID Device --driver-kit-family-networking Disable DriverKit Family Networking --driver-kit-family-serial Disable DriverKit Family Serial --driver-kit-hid-event-service Disable DriverKit HID EventService --driver-kit-transport-hid Disable DriverKit Transport HID --multitasking-camera-access Disable Multitasking Camera Access --sf-universal-link-api Disable SFUniversalLink API --vp9-decoder Disable VP9 Decoder --music-kit Disable MusicKit --shazam-kit Disable ShazamKit --communication-notifications Disable Communication Notifications --group-activities Disable Group Activities --health-kit-estimate-recalibration Disable HealthKit Estimate Recalibration --time-sensitive-notifications Disable Time Sensitive Notifications","title":"Parameters"},{"location":"actions/produce/#creating-apple-pay-merchants-and-associating-them-with-an-app-id","text":"If you want to create a new Apple Pay Merchant Identifier: fastlane produce merchant -o merchant.com.example.production -r \"Example Merchant Production\" Use --help for more information about all available parameters fastlane produce merchant --help If you want to associate an app with a Merchant Identifier: fastlane produce associate_merchant -a com.krausefx.app merchant.com.example.production If you want to associate an app with multiple Merchant Identifiers: fastlane produce associate_merchant -a com.krausefx.app merchant.com.example.production merchant.com.example.sandbox Use --help for more information about all available parameters fastlane produce associate_merchant --help","title":"Creating Apple Pay merchants and associating them with an App ID"},{"location":"actions/produce/#environment-variables","text":"All available values can also be passed using environment variables, run fastlane produce --help to get a list of all available parameters.","title":"Environment Variables"},{"location":"actions/produce/#fastlane-integration","text":"Your Fastfile should look like this lane :release do produce( username: 'felix@krausefx.com', app_identifier: 'com.krausefx.app', app_name: 'MyApp', language: 'English', app_version: '1.0', sku: '123', team_name: 'SunApps GmbH', # only necessary when in multiple teams # Optional # App services can be enabled during app creation enable_services: { access_wifi: \"on\", # Valid values: \"on\", \"off\" app_attest: \"on\", # Valid values: \"on\", \"off\" app_group: \"on\", # Valid values: \"on\", \"off\" apple_pay: \"on\", # Valid values: \"on\", \"off\" associated_domains: \"on\", # Valid values: \"on\", \"off\" auto_fill_credential: \"on\", # Valid values: \"on\", \"off\" car_play_audio_app: \"on\", # Valid values: \"on\", \"off\" car_play_messaging_app: \"on\", # Valid values: \"on\", \"off\" car_play_navigation_app: \"on\", # Valid values: \"on\", \"off\" car_play_voip_calling_app: \"on\", # Valid values: \"on\", \"off\" class_kit: \"on\", # Valid values: \"on\", \"off\" icloud: \"xcode5_compatible\", # Valid values: \"xcode5_compatible\", \"xcode6_compatible\", \"off\" critical_alerts: \"on\", # Valid values: \"on\", \"off\" custom_network_protocol: \"on\", # Valid values: \"on\", \"off\" data_protection: \"complete\", # Valid values: \"complete\", \"unlessopen\", \"untilfirstauth\", \"off\" extended_virtual_address_space: \"on\", # Valid values: \"on\", \"off\" file_provider_testing_mode: \"on\", # Valid values: \"on\", \"off\" fonts: \"on\", # Valid values: \"on\", \"off\" game_center: \"ios\", # Valid values: \"ios\", \"macos\", off\" health_kit: \"on\", # Valid values: \"on\", \"off\" hls_interstitial_preview: \"on\", # Valid values: \"on\", \"off\" home_kit: \"on\", # Valid values: \"on\", \"off\" hotspot: \"on\", # Valid values: \"on\", \"off\" hotspot_helper: \"on\", # Valid values: \"on\", \"off\" in_app_purchase: \"on\", # Valid values: \"on\", \"off\" inter_app_audio: \"on\", # Valid values: \"on\", \"off\" low_latency_hls: \"on\", # Valid values: \"on\", \"off\" managed_associated_domains: \"on\", # Valid values: \"on\", \"off\" maps: \"on\", # Valid values: \"on\", \"off\" multipath: \"on\", # Valid values: \"on\", \"off\" network_extension: \"on\", # Valid values: \"on\", \"off\" nfc_tag_reading: \"on\", # Valid values: \"on\", \"off\" passbook: \"on\", # Valid values: \"on\", \"off\" (deprecated) personal_vpn: \"on\", # Valid values: \"on\", \"off\" push_notification: \"on\", # Valid values: \"on\", \"off\" sign_in_with_apple: \"on\", # Valid values: \"on\", \"off\" siri_kit: \"on\", # Valid values: \"on\", \"off\" system_extension: \"on\", # Valid values: \"on\", \"off\" user_management: \"on\", # Valid values: \"on\", \"off\" vpn_configuration: \"on\", # Valid values: \"on\", \"off\" (deprecated) wallet: \"on\", # Valid values: \"on\", \"off\" wireless_accessory: \"on\", # Valid values: \"on\", \"off\" driver_kit: \"on\", # Valid values: \"on\", \"off\" driver_kit_endpoint_security: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_hid_device: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_networking: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_serial: \"on\", # Valid values: \"on\", \"off\" driver_kit_hid_event_service: \"on\", # Valid values: \"on\", \"off\" driver_kit_transport_hid: \"on\", # Valid values: \"on\", \"off\" multitasking_camera_access: \"on\", # Valid values: \"on\", \"off\" sf_universal_link_api: \"on\", # Valid values: \"on\", \"off\" vp9_decoder: \"on\", # Valid values: \"on\", \"off\" music_kit: \"on\", # Valid values: \"on\", \"off\" shazam_kit: \"on\", # Valid values: \"on\", \"off\" communication_notifications: \"on\", # Valid values: \"on\", \"off\" group_activities: \"on\", # Valid values: \"on\", \"off\" health_kit_estimate_recalibration: \"on\", # Valid values: \"on\", \"off\" time_sensitive_notifications: \"on\", # Valid values: \"on\", \"off\" } ) deliver end To use the newly generated app in deliver , you need to add this line to your Deliverfile : apple_id(ENV['PRODUCE_APPLE_ID']) This will tell deliver , which App ID to use, since the app is not yet available in the App Store. You'll still have to fill out the remaining information (like screenshots, app description and pricing). You can use deliver to upload your app metadata using a CLI","title":"fastlane Integration"},{"location":"actions/produce/#how-is-my-password-stored","text":"produce uses the password manager from fastlane . Take a look the CredentialsManager README for more information. produce Supported platforms ios Author @KrauseFx","title":"How is my password stored?"},{"location":"actions/produce/#2-examples","text":"create_app_online( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", app_name: \"MyApp\", language: \"English\", app_version: \"1.0\", sku: \"123\", team_name: \"SunApps GmbH\" # Only necessary when in multiple teams. ) produce # alias for \"create_app_online\"","title":"2 Examples"},{"location":"actions/produce/#parameters_1","text":"Key Description Default username Your Apple ID Username * app_identifier App Identifier (Bundle ID, e.g. com.krausefx.app) * bundle_identifier_suffix App Identifier Suffix (Ignored if App Identifier does not end with .*) app_name App Name app_version Initial version number (e.g. '1.0') sku SKU Number (e.g. '1234') * platform The platform to use (optional) ios platforms The platforms to use (optional) language Primary Language (e.g. 'en-US', 'fr-FR') English company_name The name of your company. It's used to set company name on App Store Connect team's app pages. Only required if it's the first app you create skip_itc Skip the creation of the app on App Store Connect false itc_users Array of App Store Connect users. If provided, you can limit access to this newly created app for users with the App Manager, Developer, Marketer or Sales roles enabled_features DEPRECATED! Please use enable_services instead - Array with Spaceship App Services {} enable_services Array with Spaceship App Services (e.g. access_wifi: (on|off), app_attest: (on|off), app_group: (on|off), apple_pay: (on|off), associated_domains: (on|off), auto_fill_credential: (on|off), class_kit: (on|off), icloud: (legacy|cloudkit), custom_network_protocol: (on|off), data_protection: (complete|unlessopen|untilfirstauth), extended_virtual_address_space: (on|off), family_controls: (on|off), file_provider_testing_mode: (on|off), fonts: (on|off), game_center: (ios|mac), health_kit: (on|off), hls_interstitial_preview: (on|off), home_kit: (on|off), hotspot: (on|off), in_app_purchase: (on|off), inter_app_audio: (on|off), low_latency_hls: (on|off), managed_associated_domains: (on|off), maps: (on|off), multipath: (on|off), network_extension: (on|off), nfc_tag_reading: (on|off), personal_vpn: (on|off), passbook: (on|off), push_notification: (on|off), sign_in_with_apple: (on), siri_kit: (on|off), system_extension: (on|off), user_management: (on|off), vpn_configuration: (on|off), wallet: (on|off), wireless_accessory: (on|off), car_play_audio_app: (on|off), car_play_messaging_app: (on|off), car_play_navigation_app: (on|off), car_play_voip_calling_app: (on|off), critical_alerts: (on|off), hotspot_helper: (on|off), driver_kit: (on|off), driver_kit_endpoint_security: (on|off), driver_kit_family_hid_device: (on|off), driver_kit_family_networking: (on|off), driver_kit_family_serial: (on|off), driver_kit_hid_event_service: (on|off), driver_kit_transport_hid: (on|off), multitasking_camera_access: (on|off), sf_universal_link_api: (on|off), vp9_decoder: (on|off), music_kit: (on|off), shazam_kit: (on|off), communication_notifications: (on|off), group_activities: (on|off), health_kit_estimate_recalibration: (on|off), time_sensitive_notifications: (on|off)) {} skip_devcenter Skip the creation of the app on the Apple Developer Portal false team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * itc_team_id The ID of your App Store Connect team if you're in multiple teams * itc_team_name The name of your App Store Connect team if you're in multiple teams * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/produce/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The produce action generates the following Lane Variables: SharedValue Description SharedValues::PRODUCE_APPLE_ID The Apple ID of the newly created app. You probably need it for deliver To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/produce/#documentation","text":"To show the documentation in your terminal, run fastlane action produce","title":"Documentation"},{"location":"actions/produce/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run produce To pass parameters, make use of the : symbol, for example fastlane run produce parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/produce/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/prompt/","text":"prompt Ask the user for a value or for confirmation You can use prompt to ask the user for a value or to just let the user confirm the next step. When this is executed on a CI service, the passed ci_input value will be returned. This action also supports multi-line inputs using the multi_line_end_keyword option. prompt Supported platforms ios, android, mac Author @KrauseFx 2 Examples changelog = prompt(text: \"Changelog: \") changelog = prompt( text: \"Changelog: \", multi_line_end_keyword: \"END\" ) pilot(changelog: changelog) Parameters Key Description Default text The text that will be displayed to the user Please enter some text: ci_input The default text that will be used when being executed on a CI service '' boolean Is that a boolean question (yes/no)? This will add (y/n) at the end false secure_text Is that a secure text (yes/no)? false multi_line_end_keyword Enable multi-line inputs by providing an end text (e.g. 'END') which will stop the user input * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action prompt CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run prompt To pass parameters, make use of the : symbol, for example fastlane run prompt parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"prompt"},{"location":"actions/prompt/#prompt","text":"Ask the user for a value or for confirmation You can use prompt to ask the user for a value or to just let the user confirm the next step. When this is executed on a CI service, the passed ci_input value will be returned. This action also supports multi-line inputs using the multi_line_end_keyword option. prompt Supported platforms ios, android, mac Author @KrauseFx","title":"prompt"},{"location":"actions/prompt/#2-examples","text":"changelog = prompt(text: \"Changelog: \") changelog = prompt( text: \"Changelog: \", multi_line_end_keyword: \"END\" ) pilot(changelog: changelog)","title":"2 Examples"},{"location":"actions/prompt/#parameters","text":"Key Description Default text The text that will be displayed to the user Please enter some text: ci_input The default text that will be used when being executed on a CI service '' boolean Is that a boolean question (yes/no)? This will add (y/n) at the end false secure_text Is that a secure text (yes/no)? false multi_line_end_keyword Enable multi-line inputs by providing an end text (e.g. 'END') which will stop the user input * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/prompt/#documentation","text":"To show the documentation in your terminal, run fastlane action prompt","title":"Documentation"},{"location":"actions/prompt/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run prompt To pass parameters, make use of the : symbol, for example fastlane run prompt parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/prompt/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/push_git_tags/","text":"push_git_tags Push local tags to the remote - this will only push tags If you only want to push the tags and nothing else, you can use the push_git_tags action push_git_tags Supported platforms ios, android, mac Author @vittoriom 1 Example push_git_tags Parameters Key Description Default force Force push to remote false remote The remote to push tags to origin tag The tag to push to remote * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action push_git_tags CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run push_git_tags To pass parameters, make use of the : symbol, for example fastlane run push_git_tags parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"push_git_tags"},{"location":"actions/push_git_tags/#push_git_tags","text":"Push local tags to the remote - this will only push tags If you only want to push the tags and nothing else, you can use the push_git_tags action push_git_tags Supported platforms ios, android, mac Author @vittoriom","title":"push_git_tags"},{"location":"actions/push_git_tags/#1-example","text":"push_git_tags","title":"1 Example"},{"location":"actions/push_git_tags/#parameters","text":"Key Description Default force Force push to remote false remote The remote to push tags to origin tag The tag to push to remote * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/push_git_tags/#documentation","text":"To show the documentation in your terminal, run fastlane action push_git_tags","title":"Documentation"},{"location":"actions/push_git_tags/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run push_git_tags To pass parameters, make use of the : symbol, for example fastlane run push_git_tags parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/push_git_tags/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/push_to_git_remote/","text":"push_to_git_remote Push local changes to the remote branch Lets you push your local commits to a remote git repo. Useful if you make local changes such as adding a version bump commit (using commit_version_bump ) or a git tag (using 'add_git_tag') on a CI server, and you want to push those changes back to your canonical/main repo. If this is a new branch, use the set_upstream option to set the remote branch as upstream. push_to_git_remote Supported platforms ios, android, mac Author @lmirosevic 2 Examples push_to_git_remote # simple version. pushes \"master\" branch to \"origin\" remote push_to_git_remote( remote: \"origin\", # optional, default: \"origin\" local_branch: \"develop\", # optional, aliased by \"branch\", default is set to current branch remote_branch: \"develop\", # optional, default is set to local_branch force: true, # optional, default: false force_with_lease: true, # optional, default: false tags: false, # optional, default: true no_verify: true,# optional, default: false set_upstream: true # optional, default: false ) Parameters Key Description Default local_branch The local branch to push from. Defaults to the current branch * remote_branch The remote branch to push to. Defaults to the local branch * force Force push to remote false force_with_lease Force push with lease to remote false tags Whether tags are pushed to remote true remote The remote to push to origin no_verify Whether or not to use --no-verify false set_upstream Whether or not to use --set-upstream false push_options Array of strings to be passed using the '--push-option' option [] * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action push_to_git_remote CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run push_to_git_remote To pass parameters, make use of the : symbol, for example fastlane run push_to_git_remote parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"push_to_git_remote"},{"location":"actions/push_to_git_remote/#push_to_git_remote","text":"Push local changes to the remote branch Lets you push your local commits to a remote git repo. Useful if you make local changes such as adding a version bump commit (using commit_version_bump ) or a git tag (using 'add_git_tag') on a CI server, and you want to push those changes back to your canonical/main repo. If this is a new branch, use the set_upstream option to set the remote branch as upstream. push_to_git_remote Supported platforms ios, android, mac Author @lmirosevic","title":"push_to_git_remote"},{"location":"actions/push_to_git_remote/#2-examples","text":"push_to_git_remote # simple version. pushes \"master\" branch to \"origin\" remote push_to_git_remote( remote: \"origin\", # optional, default: \"origin\" local_branch: \"develop\", # optional, aliased by \"branch\", default is set to current branch remote_branch: \"develop\", # optional, default is set to local_branch force: true, # optional, default: false force_with_lease: true, # optional, default: false tags: false, # optional, default: true no_verify: true,# optional, default: false set_upstream: true # optional, default: false )","title":"2 Examples"},{"location":"actions/push_to_git_remote/#parameters","text":"Key Description Default local_branch The local branch to push from. Defaults to the current branch * remote_branch The remote branch to push to. Defaults to the local branch * force Force push to remote false force_with_lease Force push with lease to remote false tags Whether tags are pushed to remote true remote The remote to push to origin no_verify Whether or not to use --no-verify false set_upstream Whether or not to use --set-upstream false push_options Array of strings to be passed using the '--push-option' option [] * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/push_to_git_remote/#documentation","text":"To show the documentation in your terminal, run fastlane action push_to_git_remote","title":"Documentation"},{"location":"actions/push_to_git_remote/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run push_to_git_remote To pass parameters, make use of the : symbol, for example fastlane run push_to_git_remote parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/push_to_git_remote/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/puts/","text":"puts Prints out the given text puts Supported platforms ios, android, mac Author @KrauseFx 1 Example puts \"Hi there\" Parameters Key Description Default message Message to be printed out * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action puts CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run puts To pass parameters, make use of the : symbol, for example fastlane run puts parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"puts"},{"location":"actions/puts/#puts","text":"Prints out the given text puts Supported platforms ios, android, mac Author @KrauseFx","title":"puts"},{"location":"actions/puts/#1-example","text":"puts \"Hi there\"","title":"1 Example"},{"location":"actions/puts/#parameters","text":"Key Description Default message Message to be printed out * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/puts/#documentation","text":"To show the documentation in your terminal, run fastlane action puts","title":"Documentation"},{"location":"actions/puts/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run puts To pass parameters, make use of the : symbol, for example fastlane run puts parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/puts/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/read_podspec/","text":"read_podspec Loads a CocoaPods spec as JSON This can be used for only specifying a version string in your podspec - and during your release process you'd read it from the podspec by running version = read_podspec['version'] at the beginning of your lane. Loads the specified (or the first found) podspec in the folder as JSON, so that you can inspect its version , files etc. This can be useful when basing your release process on the version string only stored in one place - in the podspec. As one of the first steps you'd read the podspec and its version and the rest of the workflow can use that version string (when e.g. creating a new git tag or a GitHub Release). read_podspec Supported platforms ios, mac Author @czechboy0 2 Examples spec = read_podspec version = spec[\"version\"] puts \"Using Version #{version}\" spec = read_podspec(path: \"./XcodeServerSDK.podspec\") Parameters Key Description Default path Path to the podspec to be read * * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The read_podspec action generates the following Lane Variables: SharedValue Description SharedValues::READ_PODSPEC_JSON Podspec JSON payload To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action read_podspec CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run read_podspec To pass parameters, make use of the : symbol, for example fastlane run read_podspec parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"read_podspec"},{"location":"actions/read_podspec/#read_podspec","text":"Loads a CocoaPods spec as JSON This can be used for only specifying a version string in your podspec - and during your release process you'd read it from the podspec by running version = read_podspec['version'] at the beginning of your lane. Loads the specified (or the first found) podspec in the folder as JSON, so that you can inspect its version , files etc. This can be useful when basing your release process on the version string only stored in one place - in the podspec. As one of the first steps you'd read the podspec and its version and the rest of the workflow can use that version string (when e.g. creating a new git tag or a GitHub Release). read_podspec Supported platforms ios, mac Author @czechboy0","title":"read_podspec"},{"location":"actions/read_podspec/#2-examples","text":"spec = read_podspec version = spec[\"version\"] puts \"Using Version #{version}\" spec = read_podspec(path: \"./XcodeServerSDK.podspec\")","title":"2 Examples"},{"location":"actions/read_podspec/#parameters","text":"Key Description Default path Path to the podspec to be read * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/read_podspec/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The read_podspec action generates the following Lane Variables: SharedValue Description SharedValues::READ_PODSPEC_JSON Podspec JSON payload To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/read_podspec/#documentation","text":"To show the documentation in your terminal, run fastlane action read_podspec","title":"Documentation"},{"location":"actions/read_podspec/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run read_podspec To pass parameters, make use of the : symbol, for example fastlane run read_podspec parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/read_podspec/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/recreate_schemes/","text":"recreate_schemes Recreate not shared Xcode project schemes recreate_schemes Supported platforms ios, mac Author @jerolimov 1 Example recreate_schemes(project: \"./path/to/MyApp.xcodeproj\") Parameters Key Description Default project The Xcode project * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action recreate_schemes CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run recreate_schemes To pass parameters, make use of the : symbol, for example fastlane run recreate_schemes parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"recreate_schemes"},{"location":"actions/recreate_schemes/#recreate_schemes","text":"Recreate not shared Xcode project schemes recreate_schemes Supported platforms ios, mac Author @jerolimov","title":"recreate_schemes"},{"location":"actions/recreate_schemes/#1-example","text":"recreate_schemes(project: \"./path/to/MyApp.xcodeproj\")","title":"1 Example"},{"location":"actions/recreate_schemes/#parameters","text":"Key Description Default project The Xcode project * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/recreate_schemes/#documentation","text":"To show the documentation in your terminal, run fastlane action recreate_schemes","title":"Documentation"},{"location":"actions/recreate_schemes/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run recreate_schemes To pass parameters, make use of the : symbol, for example fastlane run recreate_schemes parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/recreate_schemes/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/register_device/","text":"register_device Registers a new device to the Apple Dev Portal This will register an iOS device with the Developer Portal so that you can include it in your provisioning profiles. This is an optimistic action, in that it will only ever add a device to the member center. If the device has already been registered within the member center, it will be left alone in the member center. The action will connect to the Apple Developer Portal using the username you specified in your Appfile with apple_id , but you can override it using the :username option. register_device Supported platforms ios Author @pvinis 2 Examples register_device( name: \"Luka iPhone 6\", udid: \"1234567890123456789012345678901234567890\" ) # Simply provide the name and udid of the device register_device( name: \"Luka iPhone 6\", udid: \"1234567890123456789012345678901234567890\", team_id: \"XXXXXXXXXX\", # Optional, if you\"re a member of multiple teams, then you need to pass the team ID here. username: \"luka@goonbee.com\" # Optional, lets you override the Apple Member Center username. ) Parameters Key Description Default name Provide the name of the device to register as platform Provide the platform of the device to register as (ios, mac) ios udid Provide the UDID of the device to register as api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * username Optional: Your Apple ID * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action register_device CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run register_device To pass parameters, make use of the : symbol, for example fastlane run register_device parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"register_device"},{"location":"actions/register_device/#register_device","text":"Registers a new device to the Apple Dev Portal This will register an iOS device with the Developer Portal so that you can include it in your provisioning profiles. This is an optimistic action, in that it will only ever add a device to the member center. If the device has already been registered within the member center, it will be left alone in the member center. The action will connect to the Apple Developer Portal using the username you specified in your Appfile with apple_id , but you can override it using the :username option. register_device Supported platforms ios Author @pvinis","title":"register_device"},{"location":"actions/register_device/#2-examples","text":"register_device( name: \"Luka iPhone 6\", udid: \"1234567890123456789012345678901234567890\" ) # Simply provide the name and udid of the device register_device( name: \"Luka iPhone 6\", udid: \"1234567890123456789012345678901234567890\", team_id: \"XXXXXXXXXX\", # Optional, if you\"re a member of multiple teams, then you need to pass the team ID here. username: \"luka@goonbee.com\" # Optional, lets you override the Apple Member Center username. )","title":"2 Examples"},{"location":"actions/register_device/#parameters","text":"Key Description Default name Provide the name of the device to register as platform Provide the platform of the device to register as (ios, mac) ios udid Provide the UDID of the device to register as api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * username Optional: Your Apple ID * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/register_device/#documentation","text":"To show the documentation in your terminal, run fastlane action register_device","title":"Documentation"},{"location":"actions/register_device/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run register_device To pass parameters, make use of the : symbol, for example fastlane run register_device parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/register_device/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/register_devices/","text":"register_devices Registers new devices to the Apple Dev Portal This will register iOS/Mac devices with the Developer Portal so that you can include them in your provisioning profiles. This is an optimistic action, in that it will only ever add new devices to the member center, and never remove devices. If a device which has already been registered within the member center is not passed to this action, it will be left alone in the member center and continue to work. The action will connect to the Apple Developer Portal using the username you specified in your Appfile with apple_id , but you can override it using the username option, or by setting the env variable ENV['DELIVER_USER'] . register_devices Supported platforms ios, mac Author @lmirosevic 4 Examples register_devices( devices: { \"Luka iPhone 6\" => \"1234567890123456789012345678901234567890\", \"Felix iPad Air 2\" => \"abcdefghijklmnopqrstvuwxyzabcdefghijklmn\" } ) # Simply provide a list of devices as a Hash register_devices( devices_file: \"./devices.txt\" ) # Alternatively provide a standard UDID export .txt file, see the Apple Sample (http://devimages.apple.com/downloads/devices/Multiple-Upload-Samples.zip) register_devices( devices_file: \"./devices.txt\", # You must pass in either `devices_file` or `devices`. team_id: \"XXXXXXXXXX\", # Optional, if you\"re a member of multiple teams, then you need to pass the team ID here. username: \"luka@goonbee.com\" # Optional, lets you override the Apple Member Center username. ) register_devices( devices: { \"Luka MacBook\" => \"12345678-1234-1234-1234-123456789012\", \"Felix MacBook Pro\" => \"ABCDEFGH-ABCD-ABCD-ABCD-ABCDEFGHIJKL\" }, platform: \"mac\" ) # Register devices for Mac Parameters Key Description Default devices A hash of devices, with the name as key and the UDID as value devices_file Provide a path to a file with the devices to register. For the format of the file see the examples api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * username Optional: Your Apple ID * platform The platform to use (optional) ios * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action register_devices CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run register_devices To pass parameters, make use of the : symbol, for example fastlane run register_devices parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"register_devices"},{"location":"actions/register_devices/#register_devices","text":"Registers new devices to the Apple Dev Portal This will register iOS/Mac devices with the Developer Portal so that you can include them in your provisioning profiles. This is an optimistic action, in that it will only ever add new devices to the member center, and never remove devices. If a device which has already been registered within the member center is not passed to this action, it will be left alone in the member center and continue to work. The action will connect to the Apple Developer Portal using the username you specified in your Appfile with apple_id , but you can override it using the username option, or by setting the env variable ENV['DELIVER_USER'] . register_devices Supported platforms ios, mac Author @lmirosevic","title":"register_devices"},{"location":"actions/register_devices/#4-examples","text":"register_devices( devices: { \"Luka iPhone 6\" => \"1234567890123456789012345678901234567890\", \"Felix iPad Air 2\" => \"abcdefghijklmnopqrstvuwxyzabcdefghijklmn\" } ) # Simply provide a list of devices as a Hash register_devices( devices_file: \"./devices.txt\" ) # Alternatively provide a standard UDID export .txt file, see the Apple Sample (http://devimages.apple.com/downloads/devices/Multiple-Upload-Samples.zip) register_devices( devices_file: \"./devices.txt\", # You must pass in either `devices_file` or `devices`. team_id: \"XXXXXXXXXX\", # Optional, if you\"re a member of multiple teams, then you need to pass the team ID here. username: \"luka@goonbee.com\" # Optional, lets you override the Apple Member Center username. ) register_devices( devices: { \"Luka MacBook\" => \"12345678-1234-1234-1234-123456789012\", \"Felix MacBook Pro\" => \"ABCDEFGH-ABCD-ABCD-ABCD-ABCDEFGHIJKL\" }, platform: \"mac\" ) # Register devices for Mac","title":"4 Examples"},{"location":"actions/register_devices/#parameters","text":"Key Description Default devices A hash of devices, with the name as key and the UDID as value devices_file Provide a path to a file with the devices to register. For the format of the file see the examples api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * username Optional: Your Apple ID * platform The platform to use (optional) ios * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/register_devices/#documentation","text":"To show the documentation in your terminal, run fastlane action register_devices","title":"Documentation"},{"location":"actions/register_devices/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run register_devices To pass parameters, make use of the : symbol, for example fastlane run register_devices parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/register_devices/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/reset_git_repo/","text":"reset_git_repo Resets git repo to a clean state by discarding uncommitted changes This action will reset your git repo to a clean state, discarding any uncommitted and untracked changes. Useful in case you need to revert the repo back to a clean state, e.g. after running fastlane . Untracked files like .env will also be deleted, unless :skip_clean is true. It's a pretty drastic action so it comes with a sort of safety latch. It will only proceed with the reset if this condition is met: You have called the ensure_git_status_clean action prior to calling this action. This ensures that your repo started off in a clean state, so the only things that will get destroyed by this action are files that are created as a byproduct of the fastlane run. reset_git_repo Supported platforms ios, android, mac Author @lmirosevic 4 Examples reset_git_repo reset_git_repo(force: true) # If you don't care about warnings and are absolutely sure that you want to discard all changes. This will reset the repo even if you have valuable uncommitted changes, so use with care! reset_git_repo(skip_clean: true) # If you want \"git clean\" to be skipped, thus NOT deleting untracked files like \".env\". Optional, defaults to false. reset_git_repo( force: true, files: [ \"./file.txt\" ] ) Parameters Key Description Default files Array of files the changes should be discarded. If not given, all files will be discarded force Skip verifying of previously clean state of repo. Only recommended in combination with files option false skip_clean Skip 'git clean' to avoid removing untracked files like .env false disregard_gitignore Setting this to true will clean the whole repository, ignoring anything in your local .gitignore. Set this to true if you want the equivalent of a fresh clone, and for all untracked and ignore files to also be removed true exclude You can pass a string, or array of, file pattern(s) here which you want to have survive the cleaning process, and remain on disk, e.g. to leave the artifacts directory you would specify exclude: 'artifacts' . Make sure this pattern is also in your gitignore! See the gitignore documentation for info on patterns * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action reset_git_repo CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run reset_git_repo To pass parameters, make use of the : symbol, for example fastlane run reset_git_repo parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"reset_git_repo"},{"location":"actions/reset_git_repo/#reset_git_repo","text":"Resets git repo to a clean state by discarding uncommitted changes This action will reset your git repo to a clean state, discarding any uncommitted and untracked changes. Useful in case you need to revert the repo back to a clean state, e.g. after running fastlane . Untracked files like .env will also be deleted, unless :skip_clean is true. It's a pretty drastic action so it comes with a sort of safety latch. It will only proceed with the reset if this condition is met: You have called the ensure_git_status_clean action prior to calling this action. This ensures that your repo started off in a clean state, so the only things that will get destroyed by this action are files that are created as a byproduct of the fastlane run. reset_git_repo Supported platforms ios, android, mac Author @lmirosevic","title":"reset_git_repo"},{"location":"actions/reset_git_repo/#4-examples","text":"reset_git_repo reset_git_repo(force: true) # If you don't care about warnings and are absolutely sure that you want to discard all changes. This will reset the repo even if you have valuable uncommitted changes, so use with care! reset_git_repo(skip_clean: true) # If you want \"git clean\" to be skipped, thus NOT deleting untracked files like \".env\". Optional, defaults to false. reset_git_repo( force: true, files: [ \"./file.txt\" ] )","title":"4 Examples"},{"location":"actions/reset_git_repo/#parameters","text":"Key Description Default files Array of files the changes should be discarded. If not given, all files will be discarded force Skip verifying of previously clean state of repo. Only recommended in combination with files option false skip_clean Skip 'git clean' to avoid removing untracked files like .env false disregard_gitignore Setting this to true will clean the whole repository, ignoring anything in your local .gitignore. Set this to true if you want the equivalent of a fresh clone, and for all untracked and ignore files to also be removed true exclude You can pass a string, or array of, file pattern(s) here which you want to have survive the cleaning process, and remain on disk, e.g. to leave the artifacts directory you would specify exclude: 'artifacts' . Make sure this pattern is also in your gitignore! See the gitignore documentation for info on patterns * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/reset_git_repo/#documentation","text":"To show the documentation in your terminal, run fastlane action reset_git_repo","title":"Documentation"},{"location":"actions/reset_git_repo/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run reset_git_repo To pass parameters, make use of the : symbol, for example fastlane run reset_git_repo parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/reset_git_repo/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/reset_simulator_contents/","text":"reset_simulator_contents Shutdown and reset running simulators reset_simulator_contents Supported platforms ios Author @danramteke 2 Examples reset_simulator_contents reset_simulator_contents(os_versions: [\"10.3.1\",\"12.2\"]) Parameters Key Description Default ios DEPRECATED! Use :os_versions instead - Which OS versions of Simulators you want to reset content and settings, this does not remove/recreate the simulators os_versions Which OS versions of Simulators you want to reset content and settings, this does not remove/recreate the simulators * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action reset_simulator_contents CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run reset_simulator_contents To pass parameters, make use of the : symbol, for example fastlane run reset_simulator_contents parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"reset_simulator_contents"},{"location":"actions/reset_simulator_contents/#reset_simulator_contents","text":"Shutdown and reset running simulators reset_simulator_contents Supported platforms ios Author @danramteke","title":"reset_simulator_contents"},{"location":"actions/reset_simulator_contents/#2-examples","text":"reset_simulator_contents reset_simulator_contents(os_versions: [\"10.3.1\",\"12.2\"])","title":"2 Examples"},{"location":"actions/reset_simulator_contents/#parameters","text":"Key Description Default ios DEPRECATED! Use :os_versions instead - Which OS versions of Simulators you want to reset content and settings, this does not remove/recreate the simulators os_versions Which OS versions of Simulators you want to reset content and settings, this does not remove/recreate the simulators * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/reset_simulator_contents/#documentation","text":"To show the documentation in your terminal, run fastlane action reset_simulator_contents","title":"Documentation"},{"location":"actions/reset_simulator_contents/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run reset_simulator_contents To pass parameters, make use of the : symbol, for example fastlane run reset_simulator_contents parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/reset_simulator_contents/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/resign/","text":"resign Codesign an existing ipa file resign Supported platforms ios Author @lmirosevic 2 Examples resign( ipa: \"path/to/ipa\", # can omit if using the `ipa` action signing_identity: \"iPhone Distribution: Luka Mirosevic (0123456789)\", provisioning_profile: \"path/to/profile\", # can omit if using the _sigh_ action ) # You may provide multiple provisioning profiles if the application contains nested # applications or app extensions, which need their own provisioning profile. # You can do so by passing an array of provisioning profile strings or a hash # that associates provisioning profile values to bundle identifier keys. resign( ipa: \"path/to/ipa\", # can omit if using the `ipa` action signing_identity: \"iPhone Distribution: Luka Mirosevic (0123456789)\", provisioning_profile: { \"com.example.awesome-app\" => \"path/to/profile\", \"com.example.awesome-app.app-extension\" => \"path/to/app-extension/profile\" } ) Parameters Key Description Default ipa Path to the ipa file to resign. Optional if you use the gym or xcodebuild action * signing_identity Code signing identity to use. e.g. iPhone Distribution: Luka Mirosevic (0123456789) entitlements Path to the entitlement file to use, e.g. myApp/MyApp.entitlements provisioning_profile Path to your provisioning_profile. Optional if you use sigh * version Version number to force resigned ipa to use. Updates both CFBundleShortVersionString and CFBundleVersion values in Info.plist . Applies for main app and all nested apps or extensions display_name Display name to force resigned ipa to use short_version Short version string to force resigned ipa to use ( CFBundleShortVersionString ) bundle_version Bundle version to force resigned ipa to use ( CFBundleVersion ) bundle_id Set new bundle ID during resign ( CFBundleIdentifier ) use_app_entitlements Extract app bundle codesigning entitlements and combine with entitlements from new provisioning profile keychain_path Provide a path to a keychain file that should be used by /usr/bin/codesign * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action resign CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run resign To pass parameters, make use of the : symbol, for example fastlane run resign parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"resign"},{"location":"actions/resign/#resign","text":"Codesign an existing ipa file resign Supported platforms ios Author @lmirosevic","title":"resign"},{"location":"actions/resign/#2-examples","text":"resign( ipa: \"path/to/ipa\", # can omit if using the `ipa` action signing_identity: \"iPhone Distribution: Luka Mirosevic (0123456789)\", provisioning_profile: \"path/to/profile\", # can omit if using the _sigh_ action ) # You may provide multiple provisioning profiles if the application contains nested # applications or app extensions, which need their own provisioning profile. # You can do so by passing an array of provisioning profile strings or a hash # that associates provisioning profile values to bundle identifier keys. resign( ipa: \"path/to/ipa\", # can omit if using the `ipa` action signing_identity: \"iPhone Distribution: Luka Mirosevic (0123456789)\", provisioning_profile: { \"com.example.awesome-app\" => \"path/to/profile\", \"com.example.awesome-app.app-extension\" => \"path/to/app-extension/profile\" } )","title":"2 Examples"},{"location":"actions/resign/#parameters","text":"Key Description Default ipa Path to the ipa file to resign. Optional if you use the gym or xcodebuild action * signing_identity Code signing identity to use. e.g. iPhone Distribution: Luka Mirosevic (0123456789) entitlements Path to the entitlement file to use, e.g. myApp/MyApp.entitlements provisioning_profile Path to your provisioning_profile. Optional if you use sigh * version Version number to force resigned ipa to use. Updates both CFBundleShortVersionString and CFBundleVersion values in Info.plist . Applies for main app and all nested apps or extensions display_name Display name to force resigned ipa to use short_version Short version string to force resigned ipa to use ( CFBundleShortVersionString ) bundle_version Bundle version to force resigned ipa to use ( CFBundleVersion ) bundle_id Set new bundle ID during resign ( CFBundleIdentifier ) use_app_entitlements Extract app bundle codesigning entitlements and combine with entitlements from new provisioning profile keychain_path Provide a path to a keychain file that should be used by /usr/bin/codesign * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/resign/#documentation","text":"To show the documentation in your terminal, run fastlane action resign","title":"Documentation"},{"location":"actions/resign/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run resign To pass parameters, make use of the : symbol, for example fastlane run resign parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/resign/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/restore_file/","text":"restore_file This action restore your file that was backuped with the backup_file action restore_file Supported platforms ios, android, mac Author @gin0606 1 Example restore_file(path: \"/path/to/file\") Parameters Key Description Default path Original file name you want to restore * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action restore_file CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run restore_file To pass parameters, make use of the : symbol, for example fastlane run restore_file parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"restore_file"},{"location":"actions/restore_file/#restore_file","text":"This action restore your file that was backuped with the backup_file action restore_file Supported platforms ios, android, mac Author @gin0606","title":"restore_file"},{"location":"actions/restore_file/#1-example","text":"restore_file(path: \"/path/to/file\")","title":"1 Example"},{"location":"actions/restore_file/#parameters","text":"Key Description Default path Original file name you want to restore * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/restore_file/#documentation","text":"To show the documentation in your terminal, run fastlane action restore_file","title":"Documentation"},{"location":"actions/restore_file/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run restore_file To pass parameters, make use of the : symbol, for example fastlane run restore_file parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/restore_file/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/rocket/","text":"rocket Outputs ascii-art for a rocket \ud83d\ude80 Print an ascii Rocket :rocket:. Useful after using crashlytics or pilot to indicate that your new build has been shipped to outer-space. rocket Supported platforms ios, android, mac Author @JaviSoto, @radex 1 Example rocket Documentation To show the documentation in your terminal, run fastlane action rocket CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run rocket To pass parameters, make use of the : symbol, for example fastlane run rocket parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"rocket"},{"location":"actions/rocket/#rocket","text":"Outputs ascii-art for a rocket \ud83d\ude80 Print an ascii Rocket :rocket:. Useful after using crashlytics or pilot to indicate that your new build has been shipped to outer-space. rocket Supported platforms ios, android, mac Author @JaviSoto, @radex","title":"rocket"},{"location":"actions/rocket/#1-example","text":"rocket","title":"1 Example"},{"location":"actions/rocket/#documentation","text":"To show the documentation in your terminal, run fastlane action rocket","title":"Documentation"},{"location":"actions/rocket/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run rocket To pass parameters, make use of the : symbol, for example fastlane run rocket parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/rocket/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/rspec/","text":"rspec Run tests using rspec rspec | -----|---- Supported platforms | ios, android, mac Author | @KrauseFx To show the documentation in your terminal, run fastlane action rspec View source code Back to actions","title":"Rspec"},{"location":"actions/rspec/#rspec","text":"Run tests using rspec rspec | -----|---- Supported platforms | ios, android, mac Author | @KrauseFx To show the documentation in your terminal, run fastlane action rspec View source code Back to actions","title":"rspec"},{"location":"actions/rsync/","text":"rsync Rsync files from :source to :destination A wrapper around rsync , which is a tool that lets you synchronize files, including permissions and so on. For a more detailed information about rsync , please see rsync(1) man page . rsync Supported platforms ios, android, mac Author @hjanuschka 1 Example rsync( source: \"root@host:/tmp/1.txt\", destination: \"/tmp/local_file.txt\" ) Parameters Key Description Default extra Port -av source source file/folder destination destination file/folder * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action rsync CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run rsync To pass parameters, make use of the : symbol, for example fastlane run rsync parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"rsync"},{"location":"actions/rsync/#rsync","text":"Rsync files from :source to :destination A wrapper around rsync , which is a tool that lets you synchronize files, including permissions and so on. For a more detailed information about rsync , please see rsync(1) man page . rsync Supported platforms ios, android, mac Author @hjanuschka","title":"rsync"},{"location":"actions/rsync/#1-example","text":"rsync( source: \"root@host:/tmp/1.txt\", destination: \"/tmp/local_file.txt\" )","title":"1 Example"},{"location":"actions/rsync/#parameters","text":"Key Description Default extra Port -av source source file/folder destination destination file/folder * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/rsync/#documentation","text":"To show the documentation in your terminal, run fastlane action rsync","title":"Documentation"},{"location":"actions/rsync/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run rsync To pass parameters, make use of the : symbol, for example fastlane run rsync parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/rsync/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/rubocop/","text":"rubocop Runs the code style checks rubocop | -----|---- Supported platforms | ios, android, mac Author | @KrauseFx To show the documentation in your terminal, run fastlane action rubocop View source code Back to actions","title":"Rubocop"},{"location":"actions/rubocop/#rubocop","text":"Runs the code style checks rubocop | -----|---- Supported platforms | ios, android, mac Author | @KrauseFx To show the documentation in your terminal, run fastlane action rubocop View source code Back to actions","title":"rubocop"},{"location":"actions/ruby_version/","text":"ruby_version Verifies the minimum ruby version required Add this to your Fastfile to require a certain version of ruby . Put it at the top of your Fastfile to ensure that fastlane is executed appropriately. ruby_version Supported platforms ios, android, mac Author @sebastianvarela 1 Example ruby_version(\"2.4.0\") Documentation To show the documentation in your terminal, run fastlane action ruby_version CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ruby_version To pass parameters, make use of the : symbol, for example fastlane run ruby_version parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"ruby_version"},{"location":"actions/ruby_version/#ruby_version","text":"Verifies the minimum ruby version required Add this to your Fastfile to require a certain version of ruby . Put it at the top of your Fastfile to ensure that fastlane is executed appropriately. ruby_version Supported platforms ios, android, mac Author @sebastianvarela","title":"ruby_version"},{"location":"actions/ruby_version/#1-example","text":"ruby_version(\"2.4.0\")","title":"1 Example"},{"location":"actions/ruby_version/#documentation","text":"To show the documentation in your terminal, run fastlane action ruby_version","title":"Documentation"},{"location":"actions/ruby_version/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ruby_version To pass parameters, make use of the : symbol, for example fastlane run ruby_version parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/ruby_version/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/run_tests/","text":"run_tests Easily run tests of your iOS app (via scan ) The easiest way to run tests of your iOS and Mac app scan makes it easy to run tests of your iOS and Mac app on a simulator or connected device. Features \u2022 Usage \u2022 Scanfile What's scan? Before scan xcodebuild \\ -workspace MyApp.xcworkspace \\ -scheme \"MyApp\" \\ -sdk iphonesimulator \\ -destination 'platform=iOS Simulator,name=iPhone 6,OS=8.1' \\ test As the output will look like this /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/Objects-normal/arm64/main.o Example/main.m normal arm64 objective-c com.apple.compilers.llvm.clang.1_0.compiler cd /Users/felixkrause/Developer/fastlane/gym/example/cocoapods export LANG=en_US.US-ASCII export PATH=\"/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode-beta.app/Contents/Developer/usr/bin:/Users/felixkrause/.rvm/gems/ruby-2.2.0/bin:/Users/felixkrause/.rvm/gems/ruby-2.2.0@global/bin:/Users/felixkrause/.rvm/rubies/ruby-2.2.0/bin:/Users/felixkrause/.rvm/bin:/usr/local/heroku/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin\" /Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x objective-c -arch arm64 -fmessage-length=126 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -fcolor-diagnostics -std=gnu99 -fobjc-arc -fmodules -gmodules -fmodules-cache-path=/Users/felixkrause/Library/Developer/Xcode/DerivedData/ModuleCache -fmodules-prune-interval=86400 -fmodules-prune-after=345600 -fbuild-session-file=/Users/felixkrause/Library/Developer/Xcode/DerivedData/ModuleCache/Session.modulevalidation -fmodules-validate-once-per-build-session -Wnon-modular-include-in-framework-module -Werror=non-modular-include-in-framework-module -Wno-trigraphs -fpascal-strings -Os -fno-common -Wno-missing-field-initializers -Wno-missing-prototypes -Werror=return-type -Wunreachable-code -Wno-implicit-atomic-properties -Werror=deprecated-objc-isa-usage -Werror=objc-root-class -Wno-arc-repeated-use-of-weak -Wduplicate-method-match -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wconditional-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wshorten-64-to-32 -Wpointer-sign -Wno-newline-eof -Wno-selector -Wno-strict-selector-match -Wundeclared-selector -Wno-deprecated-implementations -DCOCOAPODS=1 -DNS_BLOCK_ASSERTIONS=1 -DOBJC_OLD_DISPATCH_PROTOTYPES=0 -isysroot /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk -fstrict-aliasing -Wprotocol -Wdeprecated-declarations -miphoneos-version-min=9.0 -g -fvisibility=hidden -Wno-sign-conversion -fembed-bitcode -iquote /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/ExampleProductName-generated-files.hmap -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/ExampleProductName-own-target-headers.hmap -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/ExampleProductName-all-target-headers.hmap -iquote /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/ExampleProductName-project-headers.hmap -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/BuildProductsPath/Release-iphoneos/include -I/Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Pods/Headers/Public -I/Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Pods/Headers/Public/HexColors -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/DerivedSources/arm64 -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/DerivedSources -F/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/BuildProductsPath/Release-iphoneos -isystem /Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Pods/Headers/Public -isystem /Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Pods/Headers/Public/HexColors -MMD -MT dependencies -MF /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/Objects-normal/arm64/main.d --serialize-diagnostics /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/Objects-normal/arm64/main.dia -c /Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Example/main.m -o /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/Objects-normal/arm64/main.o you'll probably want to use something like xcpretty , which will look like this: set -o pipefail && xcodebuild \\ -workspace MyApp.xcworkspace \\ -scheme \"MyApp\" \\ -sdk iphonesimulator \\ -destination 'platform=iOS Simulator,name=iPhone 6,OS=8.1' \\ test \\ | xcpretty \\ -r \"html\" \\ -o \"tests.html\" With scan fastlane scan Why scan ? scan uses the latest APIs and tools to make running tests plain simple and offer a great integration into your existing workflow, like fastlane or Jenkins. scan Features \ud83c\udfc1 Beautiful inline build output while running the tests \ud83d\udea0 Sensible defaults: Automatically detect the project, schemes and more \ud83d\udcca Support for HTML, JSON and JUnit reports \ud83d\udd0e Xcode duplicated your simulators again? scan will handle this for you \ud83d\udd17 Works perfectly with fastlane and other tools \ud83d\ude85 Don't remember any complicated build commands, just scan \ud83d\udd27 Easy and dynamic configuration using parameters and environment variables \ud83d\udce2 Beautiful slack notifications of the test results \ud83d\udcbe Store common build settings in a Scanfile \ud83d\udce4 The raw xcodebuild outputs are stored in ~/Library/Logs/scan \ud83d\udcbb Supports both iOS and Mac applications \ud83d\udc71 Automatically switches to the travis formatter when running on Travis \ud83d\udcd6 Helps you resolve common test errors like simulator not responding scan uses a plain xcodebuild command, therefore keeping 100% compatible with xcodebuild . To generate the nice output, scan uses xcpretty . You can always access the raw output in ~/Library/Logs/scan . Usage fastlane scan That's all you need to run your tests. If you want more control, here are some available parameters: fastlane scan --workspace \"Example.xcworkspace\" --scheme \"AppName\" --device \"iPhone 6\" --clean If you need to use a different Xcode install, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" scan To run scan on multiple devices via fastlane , add this to your Fastfile : scan( workspace: \"Example.xcworkspace\", devices: [\"iPhone 6s\", \"iPad Air\"] ) For a list of all available parameters use fastlane action scan To access the raw xcodebuild output open ~/Library/Logs/scan Scanfile Since you might want to manually trigger the tests but don't want to specify all the parameters every time, you can store your defaults in a so called Scanfile . Run fastlane scan init to create a new configuration file. Example: scheme(\"Example\") devices([\"iPhone 6s\", \"iPad Air\"]) clean(true) output_types(\"html\") Automating the whole process scan works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :test do scan(scheme: \"Example\") end run_tests Supported platforms ios, mac Author @KrauseFx Returns Outputs hash of results with the following keys: :number_of_tests, :number_of_failures, :number_of_retries, :number_of_tests_excluding_retries, :number_of_failures_excluding_retries 6 Examples run_tests scan # alias for \"run_tests\" run_tests( workspace: \"App.xcworkspace\", scheme: \"MyTests\", clean: false ) # Build For Testing run_tests( derived_data_path: \"my_folder\", build_for_testing: true ) # run tests using derived data from prev. build run_tests( derived_data_path: \"my_folder\", test_without_building: true ) # or run it from an existing xctestrun package run_tests( xctestrun: \"/path/to/mytests.xctestrun\" ) Parameters Key Description Default workspace Path to the workspace file project Path to the project file package_path Path to the Swift Package scheme The project's scheme. Make sure it's marked as Shared device The name of the simulator type you want to run tests on (e.g. 'iPhone 6' or 'iPhone SE (2nd generation) (14.5)') devices Array of devices to run the tests on (e.g. ['iPhone 6', 'iPad Air', 'iPhone SE (2nd generation) (14.5)']) skip_detect_devices Should skip auto detecting of devices if none were specified false ensure_devices_found Should fail if devices not found false force_quit_simulator Enabling this option will automatically killall Simulator processes before the run false reset_simulator Enabling this option will automatically erase the simulator before running the application false disable_slide_to_type Enabling this option will disable the simulator from showing the 'Slide to type' prompt true prelaunch_simulator Enabling this option will launch the first simulator prior to calling any xcodebuild command reinstall_app Enabling this option will automatically uninstall the application before running it false app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip testplan The testplan associated with the scheme that should be used for testing only_test_configurations Array of strings matching test plan configurations to run skip_test_configurations Array of strings matching test plan configurations to skip xctestrun Run tests using the provided .xctestrun file toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a ) clean Should the project be cleaned before building it? false code_coverage Should code coverage be generated? (Xcode 7 and up) address_sanitizer Should the address sanitizer be turned on? thread_sanitizer Should the thread sanitizer be turned on? open_report Should the HTML report be opened when tests are completed? false output_directory The directory in which all reports will be stored * output_style Define how the output should look like. Valid values are: standard, basic, rspec, or raw (disables xcpretty during xcodebuild) output_types Comma separated list of the output types (e.g. html, junit, json-compilation-database) html,junit output_files Comma separated list of the output files, corresponding to the types provided by :output_types (order should match). If specifying an output type of json-compilation-database with :use_clang_report_name enabled, that option will take precedence buildlog_path The directory where to store the raw log * include_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * output_remove_retry_attempts Remove retry attempts from test results table and the JUnit report (if not using xcpretty) false disable_xcpretty DEPRECATED! Use output_style: 'raw' instead - Disable xcpretty formatting of build, similar to output_style='raw' but this will also skip the test results table formatter DEPRECATED! Use 'xcpretty_formatter' instead - A custom xcpretty formatter to use xcpretty_formatter A custom xcpretty formatter to use xcpretty_args Pass in xcpretty additional command line arguments (e.g. '--test --no-color' or '--tap --no-utf') derived_data_path The directory where build products and other derived data will go should_zip_build_products Should zip the derived data build products and place in output path? false output_xctestrun Should provide additional copy of .xctestrun file (settings.xctestrun) and place in output path? false result_bundle_path Custom path for the result bundle, overrides result_bundle result_bundle Should an Xcode result bundle be generated in the output directory false use_clang_report_name Generate the json compilation database with clang naming convention (compile_commands.json) false parallel_testing Optionally override the per-target setting in the scheme for running tests in parallel. Equivalent to -parallel-testing-enabled concurrent_workers Specify the exact number of test runners that will be spawned during parallel testing. Equivalent to -parallel-testing-worker-count max_concurrent_simulators Constrain the number of simulator devices on which to test concurrently. Equivalent to -maximum-concurrent-test-simulator-destinations disable_concurrent_testing Do not run test bundles in parallel on the specified destinations. Testing will occur on each destination serially. Equivalent to -disable-concurrent-testing false skip_build Should debug build be skipped before test build? false test_without_building Test without building, requires a derived data path build_for_testing Build for testing only, does not run tests sdk The SDK that should be used for building the application configuration The configuration to use when building the app. Defaults to 'Release' * xcargs Pass additional arguments to xcodebuild. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app app_name App name to use in slack message and logfile name deployment_target_version Target version of the app being build or tested. Used to filter out simulator version slack_url Create an Incoming WebHook for your Slack group to post results there slack_channel #channel or @username slack_message The message included with each message posted to slack slack_use_webhook_configured_username_and_icon Use webhook's default username and icon settings? (true/false) false slack_username Overrides the webhook's username property if slack_use_webhook_configured_username_and_icon is false fastlane slack_icon_url Overrides the webhook's image property if slack_use_webhook_configured_username_and_icon is false https://fastlane.tools/assets/img/fastlane_icon.png skip_slack Don't publish to slack, even when an URL is given false slack_only_on_failure Only post on Slack if the tests fail false slack_default_payloads Specifies default payloads to include in Slack messages. For more info visit https://docs.fastlane.tools/actions/slack destination Use only if you're a pro, use the other options instead run_rosetta_simulator Adds arch=x86_64 to the xcodebuild 'destination' argument to run simulator in a Rosetta mode false catalyst_platform Platform to build when using a Catalyst enabled app. Valid values are: ios, macos custom_report_file_name DEPRECATED! Use --output_files instead - Sets custom full report file name when generating a single report xcodebuild_command Allows for override of the default xcodebuild command env NSUnbufferedIO=YES xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false number_of_retries The number of times a test can fail 0 fail_build Should this step stop the build if the tests fail? Set this to false if you're using trainer true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The run_tests action generates the following Lane Variables: SharedValue Description SharedValues::SCAN_DERIVED_DATA_PATH The path to the derived data SharedValues::SCAN_GENERATED_PLIST_FILE The generated plist file SharedValues::SCAN_GENERATED_PLIST_FILES The generated plist files SharedValues::SCAN_GENERATED_XCRESULT_PATH The path to the generated .xcresult SharedValues::SCAN_ZIP_BUILD_PRODUCTS_PATH The path to the zipped build products To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action run_tests CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run run_tests To pass parameters, make use of the : symbol, for example fastlane run run_tests parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"run_tests"},{"location":"actions/run_tests/#run_tests","text":"Easily run tests of your iOS app (via scan )","title":"run_tests"},{"location":"actions/run_tests/#whats-scan","text":"","title":"What's scan?"},{"location":"actions/run_tests/#usage","text":"fastlane scan That's all you need to run your tests. If you want more control, here are some available parameters: fastlane scan --workspace \"Example.xcworkspace\" --scheme \"AppName\" --device \"iPhone 6\" --clean If you need to use a different Xcode install, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" scan To run scan on multiple devices via fastlane , add this to your Fastfile : scan( workspace: \"Example.xcworkspace\", devices: [\"iPhone 6s\", \"iPad Air\"] ) For a list of all available parameters use fastlane action scan To access the raw xcodebuild output open ~/Library/Logs/scan","title":"Usage"},{"location":"actions/run_tests/#scanfile","text":"Since you might want to manually trigger the tests but don't want to specify all the parameters every time, you can store your defaults in a so called Scanfile . Run fastlane scan init to create a new configuration file. Example: scheme(\"Example\") devices([\"iPhone 6s\", \"iPad Air\"]) clean(true) output_types(\"html\")","title":"Scanfile"},{"location":"actions/run_tests/#automating-the-whole-process","text":"scan works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :test do scan(scheme: \"Example\") end run_tests Supported platforms ios, mac Author @KrauseFx Returns Outputs hash of results with the following keys: :number_of_tests, :number_of_failures, :number_of_retries, :number_of_tests_excluding_retries, :number_of_failures_excluding_retries","title":"Automating the whole process"},{"location":"actions/run_tests/#6-examples","text":"run_tests scan # alias for \"run_tests\" run_tests( workspace: \"App.xcworkspace\", scheme: \"MyTests\", clean: false ) # Build For Testing run_tests( derived_data_path: \"my_folder\", build_for_testing: true ) # run tests using derived data from prev. build run_tests( derived_data_path: \"my_folder\", test_without_building: true ) # or run it from an existing xctestrun package run_tests( xctestrun: \"/path/to/mytests.xctestrun\" )","title":"6 Examples"},{"location":"actions/run_tests/#parameters","text":"Key Description Default workspace Path to the workspace file project Path to the project file package_path Path to the Swift Package scheme The project's scheme. Make sure it's marked as Shared device The name of the simulator type you want to run tests on (e.g. 'iPhone 6' or 'iPhone SE (2nd generation) (14.5)') devices Array of devices to run the tests on (e.g. ['iPhone 6', 'iPad Air', 'iPhone SE (2nd generation) (14.5)']) skip_detect_devices Should skip auto detecting of devices if none were specified false ensure_devices_found Should fail if devices not found false force_quit_simulator Enabling this option will automatically killall Simulator processes before the run false reset_simulator Enabling this option will automatically erase the simulator before running the application false disable_slide_to_type Enabling this option will disable the simulator from showing the 'Slide to type' prompt true prelaunch_simulator Enabling this option will launch the first simulator prior to calling any xcodebuild command reinstall_app Enabling this option will automatically uninstall the application before running it false app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip testplan The testplan associated with the scheme that should be used for testing only_test_configurations Array of strings matching test plan configurations to run skip_test_configurations Array of strings matching test plan configurations to skip xctestrun Run tests using the provided .xctestrun file toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a ) clean Should the project be cleaned before building it? false code_coverage Should code coverage be generated? (Xcode 7 and up) address_sanitizer Should the address sanitizer be turned on? thread_sanitizer Should the thread sanitizer be turned on? open_report Should the HTML report be opened when tests are completed? false output_directory The directory in which all reports will be stored * output_style Define how the output should look like. Valid values are: standard, basic, rspec, or raw (disables xcpretty during xcodebuild) output_types Comma separated list of the output types (e.g. html, junit, json-compilation-database) html,junit output_files Comma separated list of the output files, corresponding to the types provided by :output_types (order should match). If specifying an output type of json-compilation-database with :use_clang_report_name enabled, that option will take precedence buildlog_path The directory where to store the raw log * include_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * output_remove_retry_attempts Remove retry attempts from test results table and the JUnit report (if not using xcpretty) false disable_xcpretty DEPRECATED! Use output_style: 'raw' instead - Disable xcpretty formatting of build, similar to output_style='raw' but this will also skip the test results table formatter DEPRECATED! Use 'xcpretty_formatter' instead - A custom xcpretty formatter to use xcpretty_formatter A custom xcpretty formatter to use xcpretty_args Pass in xcpretty additional command line arguments (e.g. '--test --no-color' or '--tap --no-utf') derived_data_path The directory where build products and other derived data will go should_zip_build_products Should zip the derived data build products and place in output path? false output_xctestrun Should provide additional copy of .xctestrun file (settings.xctestrun) and place in output path? false result_bundle_path Custom path for the result bundle, overrides result_bundle result_bundle Should an Xcode result bundle be generated in the output directory false use_clang_report_name Generate the json compilation database with clang naming convention (compile_commands.json) false parallel_testing Optionally override the per-target setting in the scheme for running tests in parallel. Equivalent to -parallel-testing-enabled concurrent_workers Specify the exact number of test runners that will be spawned during parallel testing. Equivalent to -parallel-testing-worker-count max_concurrent_simulators Constrain the number of simulator devices on which to test concurrently. Equivalent to -maximum-concurrent-test-simulator-destinations disable_concurrent_testing Do not run test bundles in parallel on the specified destinations. Testing will occur on each destination serially. Equivalent to -disable-concurrent-testing false skip_build Should debug build be skipped before test build? false test_without_building Test without building, requires a derived data path build_for_testing Build for testing only, does not run tests sdk The SDK that should be used for building the application configuration The configuration to use when building the app. Defaults to 'Release' * xcargs Pass additional arguments to xcodebuild. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app app_name App name to use in slack message and logfile name deployment_target_version Target version of the app being build or tested. Used to filter out simulator version slack_url Create an Incoming WebHook for your Slack group to post results there slack_channel #channel or @username slack_message The message included with each message posted to slack slack_use_webhook_configured_username_and_icon Use webhook's default username and icon settings? (true/false) false slack_username Overrides the webhook's username property if slack_use_webhook_configured_username_and_icon is false fastlane slack_icon_url Overrides the webhook's image property if slack_use_webhook_configured_username_and_icon is false https://fastlane.tools/assets/img/fastlane_icon.png skip_slack Don't publish to slack, even when an URL is given false slack_only_on_failure Only post on Slack if the tests fail false slack_default_payloads Specifies default payloads to include in Slack messages. For more info visit https://docs.fastlane.tools/actions/slack destination Use only if you're a pro, use the other options instead run_rosetta_simulator Adds arch=x86_64 to the xcodebuild 'destination' argument to run simulator in a Rosetta mode false catalyst_platform Platform to build when using a Catalyst enabled app. Valid values are: ios, macos custom_report_file_name DEPRECATED! Use --output_files instead - Sets custom full report file name when generating a single report xcodebuild_command Allows for override of the default xcodebuild command env NSUnbufferedIO=YES xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false number_of_retries The number of times a test can fail 0 fail_build Should this step stop the build if the tests fail? Set this to false if you're using trainer true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/run_tests/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The run_tests action generates the following Lane Variables: SharedValue Description SharedValues::SCAN_DERIVED_DATA_PATH The path to the derived data SharedValues::SCAN_GENERATED_PLIST_FILE The generated plist file SharedValues::SCAN_GENERATED_PLIST_FILES The generated plist files SharedValues::SCAN_GENERATED_XCRESULT_PATH The path to the generated .xcresult SharedValues::SCAN_ZIP_BUILD_PRODUCTS_PATH The path to the zipped build products To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/run_tests/#documentation","text":"To show the documentation in your terminal, run fastlane action run_tests","title":"Documentation"},{"location":"actions/run_tests/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run run_tests To pass parameters, make use of the : symbol, for example fastlane run run_tests parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/run_tests/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/s3/","text":"s3 Generates a plist file and uploads all to AWS S3 Please use the aws_s3 plugin instead. Install using fastlane add_plugin aws_s3 . Upload a new build to Amazon S3 to distribute the build to beta testers. Works for both Ad Hoc and Enterprise signed applications. This step will generate the necessary HTML, plist, and version files for you. It is recommended to not store the AWS access keys in the Fastfile . The uploaded version.json file provides an easy way for apps to poll if a new update is available. s3 Supported platforms Author @joshdholtz 2 Examples s3 s3( # All of these are used to make Shenzhen's `ipa distribute:s3` command access_key: ENV[\"S3_ACCESS_KEY\"], # Required from user. secret_access_key: ENV[\"S3_SECRET_ACCESS_KEY\"], # Required from user. bucket: ENV[\"S3_BUCKET\"], # Required from user. ipa: \"AppName.ipa\", # Optional if you use `ipa` to build dsym: \"AppName.app.dSYM.zip\", # Optional if you use `ipa` to build path: \"v{CFBundleShortVersionString}_b{CFBundleVersion}/\", # This is actually the default. upload_metadata: true, # Upload version.json, plist and HTML. Set to false to skip uploading of these files. version_file_name: \"app_version.json\",# Name of the file to upload to S3. Defaults to \"version.json\" version_template_path: \"path/to/erb\" # Path to an ERB to configure the structure of the version JSON file ) Parameters Key Description Default ipa .ipa file for the build * dsym zipped .dsym package for the build * upload_metadata Upload relevant metadata for this build true plist_template_path plist template path plist_file_name uploaded plist filename html_template_path html erb template path html_file_name uploaded html filename version_template_path version erb template path version_file_name uploaded version filename access_key AWS Access Key ID * secret_access_key AWS Secret Access Key * bucket AWS bucket name * region AWS region (for bucket creation) * path S3 'path'. Values from Info.plist will be substituted for keys wrapped in {} v{CFBundleShortVersionString}_b{CFBundleVersion}/ source Optional source directory e.g. ./build acl Uploaded object permissions e.g public_read (default), private, public_read_write, authenticated_read public_read * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The s3 action generates the following Lane Variables: SharedValue Description SharedValues::S3_IPA_OUTPUT_PATH Direct HTTP link to the uploaded ipa file SharedValues::S3_DSYM_OUTPUT_PATH Direct HTTP link to the uploaded dsym file SharedValues::S3_PLIST_OUTPUT_PATH Direct HTTP link to the uploaded plist file SharedValues::S3_HTML_OUTPUT_PATH Direct HTTP link to the uploaded HTML file SharedValues::S3_VERSION_OUTPUT_PATH Direct HTTP link to the uploaded Version file To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action s3 CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run s3 To pass parameters, make use of the : symbol, for example fastlane run s3 parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"s3"},{"location":"actions/s3/#s3","text":"Generates a plist file and uploads all to AWS S3 Please use the aws_s3 plugin instead. Install using fastlane add_plugin aws_s3 . Upload a new build to Amazon S3 to distribute the build to beta testers. Works for both Ad Hoc and Enterprise signed applications. This step will generate the necessary HTML, plist, and version files for you. It is recommended to not store the AWS access keys in the Fastfile . The uploaded version.json file provides an easy way for apps to poll if a new update is available. s3 Supported platforms Author @joshdholtz","title":"s3"},{"location":"actions/s3/#2-examples","text":"s3 s3( # All of these are used to make Shenzhen's `ipa distribute:s3` command access_key: ENV[\"S3_ACCESS_KEY\"], # Required from user. secret_access_key: ENV[\"S3_SECRET_ACCESS_KEY\"], # Required from user. bucket: ENV[\"S3_BUCKET\"], # Required from user. ipa: \"AppName.ipa\", # Optional if you use `ipa` to build dsym: \"AppName.app.dSYM.zip\", # Optional if you use `ipa` to build path: \"v{CFBundleShortVersionString}_b{CFBundleVersion}/\", # This is actually the default. upload_metadata: true, # Upload version.json, plist and HTML. Set to false to skip uploading of these files. version_file_name: \"app_version.json\",# Name of the file to upload to S3. Defaults to \"version.json\" version_template_path: \"path/to/erb\" # Path to an ERB to configure the structure of the version JSON file )","title":"2 Examples"},{"location":"actions/s3/#parameters","text":"Key Description Default ipa .ipa file for the build * dsym zipped .dsym package for the build * upload_metadata Upload relevant metadata for this build true plist_template_path plist template path plist_file_name uploaded plist filename html_template_path html erb template path html_file_name uploaded html filename version_template_path version erb template path version_file_name uploaded version filename access_key AWS Access Key ID * secret_access_key AWS Secret Access Key * bucket AWS bucket name * region AWS region (for bucket creation) * path S3 'path'. Values from Info.plist will be substituted for keys wrapped in {} v{CFBundleShortVersionString}_b{CFBundleVersion}/ source Optional source directory e.g. ./build acl Uploaded object permissions e.g public_read (default), private, public_read_write, authenticated_read public_read * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/s3/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The s3 action generates the following Lane Variables: SharedValue Description SharedValues::S3_IPA_OUTPUT_PATH Direct HTTP link to the uploaded ipa file SharedValues::S3_DSYM_OUTPUT_PATH Direct HTTP link to the uploaded dsym file SharedValues::S3_PLIST_OUTPUT_PATH Direct HTTP link to the uploaded plist file SharedValues::S3_HTML_OUTPUT_PATH Direct HTTP link to the uploaded HTML file SharedValues::S3_VERSION_OUTPUT_PATH Direct HTTP link to the uploaded Version file To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/s3/#documentation","text":"To show the documentation in your terminal, run fastlane action s3","title":"Documentation"},{"location":"actions/s3/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run s3 To pass parameters, make use of the : symbol, for example fastlane run s3 parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/s3/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/say/","text":"say This action speaks the given text out loud say Supported platforms ios, android, mac Author @KrauseFx 1 Example say(\"I can speak\") Parameters Key Description Default text Text to be spoken out loud (as string or array of strings) mute If say should be muted with text printed out false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action say CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run say To pass parameters, make use of the : symbol, for example fastlane run say parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"say"},{"location":"actions/say/#say","text":"This action speaks the given text out loud say Supported platforms ios, android, mac Author @KrauseFx","title":"say"},{"location":"actions/say/#1-example","text":"say(\"I can speak\")","title":"1 Example"},{"location":"actions/say/#parameters","text":"Key Description Default text Text to be spoken out loud (as string or array of strings) mute If say should be muted with text printed out false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/say/#documentation","text":"To show the documentation in your terminal, run fastlane action say","title":"Documentation"},{"location":"actions/say/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run say To pass parameters, make use of the : symbol, for example fastlane run say parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/say/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/scan/","text":"scan Alias for the run_tests action The easiest way to run tests of your iOS and Mac app scan makes it easy to run tests of your iOS and Mac app on a simulator or connected device. Features \u2022 Usage \u2022 Scanfile What's scan? Before scan xcodebuild \\ -workspace MyApp.xcworkspace \\ -scheme \"MyApp\" \\ -sdk iphonesimulator \\ -destination 'platform=iOS Simulator,name=iPhone 6,OS=8.1' \\ test As the output will look like this /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/Objects-normal/arm64/main.o Example/main.m normal arm64 objective-c com.apple.compilers.llvm.clang.1_0.compiler cd /Users/felixkrause/Developer/fastlane/gym/example/cocoapods export LANG=en_US.US-ASCII export PATH=\"/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode-beta.app/Contents/Developer/usr/bin:/Users/felixkrause/.rvm/gems/ruby-2.2.0/bin:/Users/felixkrause/.rvm/gems/ruby-2.2.0@global/bin:/Users/felixkrause/.rvm/rubies/ruby-2.2.0/bin:/Users/felixkrause/.rvm/bin:/usr/local/heroku/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin\" /Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x objective-c -arch arm64 -fmessage-length=126 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -fcolor-diagnostics -std=gnu99 -fobjc-arc -fmodules -gmodules -fmodules-cache-path=/Users/felixkrause/Library/Developer/Xcode/DerivedData/ModuleCache -fmodules-prune-interval=86400 -fmodules-prune-after=345600 -fbuild-session-file=/Users/felixkrause/Library/Developer/Xcode/DerivedData/ModuleCache/Session.modulevalidation -fmodules-validate-once-per-build-session -Wnon-modular-include-in-framework-module -Werror=non-modular-include-in-framework-module -Wno-trigraphs -fpascal-strings -Os -fno-common -Wno-missing-field-initializers -Wno-missing-prototypes -Werror=return-type -Wunreachable-code -Wno-implicit-atomic-properties -Werror=deprecated-objc-isa-usage -Werror=objc-root-class -Wno-arc-repeated-use-of-weak -Wduplicate-method-match -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wconditional-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wshorten-64-to-32 -Wpointer-sign -Wno-newline-eof -Wno-selector -Wno-strict-selector-match -Wundeclared-selector -Wno-deprecated-implementations -DCOCOAPODS=1 -DNS_BLOCK_ASSERTIONS=1 -DOBJC_OLD_DISPATCH_PROTOTYPES=0 -isysroot /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk -fstrict-aliasing -Wprotocol -Wdeprecated-declarations -miphoneos-version-min=9.0 -g -fvisibility=hidden -Wno-sign-conversion -fembed-bitcode -iquote /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/ExampleProductName-generated-files.hmap -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/ExampleProductName-own-target-headers.hmap -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/ExampleProductName-all-target-headers.hmap -iquote /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/ExampleProductName-project-headers.hmap -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/BuildProductsPath/Release-iphoneos/include -I/Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Pods/Headers/Public -I/Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Pods/Headers/Public/HexColors -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/DerivedSources/arm64 -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/DerivedSources -F/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/BuildProductsPath/Release-iphoneos -isystem /Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Pods/Headers/Public -isystem /Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Pods/Headers/Public/HexColors -MMD -MT dependencies -MF /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/Objects-normal/arm64/main.d --serialize-diagnostics /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/Objects-normal/arm64/main.dia -c /Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Example/main.m -o /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/Objects-normal/arm64/main.o you'll probably want to use something like xcpretty , which will look like this: set -o pipefail && xcodebuild \\ -workspace MyApp.xcworkspace \\ -scheme \"MyApp\" \\ -sdk iphonesimulator \\ -destination 'platform=iOS Simulator,name=iPhone 6,OS=8.1' \\ test \\ | xcpretty \\ -r \"html\" \\ -o \"tests.html\" With scan fastlane scan Why scan ? scan uses the latest APIs and tools to make running tests plain simple and offer a great integration into your existing workflow, like fastlane or Jenkins. scan Features \ud83c\udfc1 Beautiful inline build output while running the tests \ud83d\udea0 Sensible defaults: Automatically detect the project, schemes and more \ud83d\udcca Support for HTML, JSON and JUnit reports \ud83d\udd0e Xcode duplicated your simulators again? scan will handle this for you \ud83d\udd17 Works perfectly with fastlane and other tools \ud83d\ude85 Don't remember any complicated build commands, just scan \ud83d\udd27 Easy and dynamic configuration using parameters and environment variables \ud83d\udce2 Beautiful slack notifications of the test results \ud83d\udcbe Store common build settings in a Scanfile \ud83d\udce4 The raw xcodebuild outputs are stored in ~/Library/Logs/scan \ud83d\udcbb Supports both iOS and Mac applications \ud83d\udc71 Automatically switches to the travis formatter when running on Travis \ud83d\udcd6 Helps you resolve common test errors like simulator not responding scan uses a plain xcodebuild command, therefore keeping 100% compatible with xcodebuild . To generate the nice output, scan uses xcpretty . You can always access the raw output in ~/Library/Logs/scan . Usage fastlane scan That's all you need to run your tests. If you want more control, here are some available parameters: fastlane scan --workspace \"Example.xcworkspace\" --scheme \"AppName\" --device \"iPhone 6\" --clean If you need to use a different Xcode install, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" scan To run scan on multiple devices via fastlane , add this to your Fastfile : scan( workspace: \"Example.xcworkspace\", devices: [\"iPhone 6s\", \"iPad Air\"] ) For a list of all available parameters use fastlane action scan To access the raw xcodebuild output open ~/Library/Logs/scan Scanfile Since you might want to manually trigger the tests but don't want to specify all the parameters every time, you can store your defaults in a so called Scanfile . Run fastlane scan init to create a new configuration file. Example: scheme(\"Example\") devices([\"iPhone 6s\", \"iPad Air\"]) clean(true) output_types(\"html\") Automating the whole process scan works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :test do scan(scheme: \"Example\") end scan Supported platforms ios, mac Author @KrauseFx Returns Outputs hash of results with the following keys: :number_of_tests, :number_of_failures, :number_of_retries, :number_of_tests_excluding_retries, :number_of_failures_excluding_retries 6 Examples run_tests scan # alias for \"run_tests\" run_tests( workspace: \"App.xcworkspace\", scheme: \"MyTests\", clean: false ) # Build For Testing run_tests( derived_data_path: \"my_folder\", build_for_testing: true ) # run tests using derived data from prev. build run_tests( derived_data_path: \"my_folder\", test_without_building: true ) # or run it from an existing xctestrun package run_tests( xctestrun: \"/path/to/mytests.xctestrun\" ) Parameters Key Description Default workspace Path to the workspace file project Path to the project file package_path Path to the Swift Package scheme The project's scheme. Make sure it's marked as Shared device The name of the simulator type you want to run tests on (e.g. 'iPhone 6' or 'iPhone SE (2nd generation) (14.5)') devices Array of devices to run the tests on (e.g. ['iPhone 6', 'iPad Air', 'iPhone SE (2nd generation) (14.5)']) skip_detect_devices Should skip auto detecting of devices if none were specified false ensure_devices_found Should fail if devices not found false force_quit_simulator Enabling this option will automatically killall Simulator processes before the run false reset_simulator Enabling this option will automatically erase the simulator before running the application false disable_slide_to_type Enabling this option will disable the simulator from showing the 'Slide to type' prompt true prelaunch_simulator Enabling this option will launch the first simulator prior to calling any xcodebuild command reinstall_app Enabling this option will automatically uninstall the application before running it false app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip testplan The testplan associated with the scheme that should be used for testing only_test_configurations Array of strings matching test plan configurations to run skip_test_configurations Array of strings matching test plan configurations to skip xctestrun Run tests using the provided .xctestrun file toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a ) clean Should the project be cleaned before building it? false code_coverage Should code coverage be generated? (Xcode 7 and up) address_sanitizer Should the address sanitizer be turned on? thread_sanitizer Should the thread sanitizer be turned on? open_report Should the HTML report be opened when tests are completed? false output_directory The directory in which all reports will be stored * output_style Define how the output should look like. Valid values are: standard, basic, rspec, or raw (disables xcpretty during xcodebuild) output_types Comma separated list of the output types (e.g. html, junit, json-compilation-database) html,junit output_files Comma separated list of the output files, corresponding to the types provided by :output_types (order should match). If specifying an output type of json-compilation-database with :use_clang_report_name enabled, that option will take precedence buildlog_path The directory where to store the raw log * include_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * output_remove_retry_attempts Remove retry attempts from test results table and the JUnit report (if not using xcpretty) false disable_xcpretty DEPRECATED! Use output_style: 'raw' instead - Disable xcpretty formatting of build, similar to output_style='raw' but this will also skip the test results table formatter DEPRECATED! Use 'xcpretty_formatter' instead - A custom xcpretty formatter to use xcpretty_formatter A custom xcpretty formatter to use xcpretty_args Pass in xcpretty additional command line arguments (e.g. '--test --no-color' or '--tap --no-utf') derived_data_path The directory where build products and other derived data will go should_zip_build_products Should zip the derived data build products and place in output path? false output_xctestrun Should provide additional copy of .xctestrun file (settings.xctestrun) and place in output path? false result_bundle_path Custom path for the result bundle, overrides result_bundle result_bundle Should an Xcode result bundle be generated in the output directory false use_clang_report_name Generate the json compilation database with clang naming convention (compile_commands.json) false parallel_testing Optionally override the per-target setting in the scheme for running tests in parallel. Equivalent to -parallel-testing-enabled concurrent_workers Specify the exact number of test runners that will be spawned during parallel testing. Equivalent to -parallel-testing-worker-count max_concurrent_simulators Constrain the number of simulator devices on which to test concurrently. Equivalent to -maximum-concurrent-test-simulator-destinations disable_concurrent_testing Do not run test bundles in parallel on the specified destinations. Testing will occur on each destination serially. Equivalent to -disable-concurrent-testing false skip_build Should debug build be skipped before test build? false test_without_building Test without building, requires a derived data path build_for_testing Build for testing only, does not run tests sdk The SDK that should be used for building the application configuration The configuration to use when building the app. Defaults to 'Release' * xcargs Pass additional arguments to xcodebuild. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app app_name App name to use in slack message and logfile name deployment_target_version Target version of the app being build or tested. Used to filter out simulator version slack_url Create an Incoming WebHook for your Slack group to post results there slack_channel #channel or @username slack_message The message included with each message posted to slack slack_use_webhook_configured_username_and_icon Use webhook's default username and icon settings? (true/false) false slack_username Overrides the webhook's username property if slack_use_webhook_configured_username_and_icon is false fastlane slack_icon_url Overrides the webhook's image property if slack_use_webhook_configured_username_and_icon is false https://fastlane.tools/assets/img/fastlane_icon.png skip_slack Don't publish to slack, even when an URL is given false slack_only_on_failure Only post on Slack if the tests fail false slack_default_payloads Specifies default payloads to include in Slack messages. For more info visit https://docs.fastlane.tools/actions/slack destination Use only if you're a pro, use the other options instead run_rosetta_simulator Adds arch=x86_64 to the xcodebuild 'destination' argument to run simulator in a Rosetta mode false catalyst_platform Platform to build when using a Catalyst enabled app. Valid values are: ios, macos custom_report_file_name DEPRECATED! Use --output_files instead - Sets custom full report file name when generating a single report xcodebuild_command Allows for override of the default xcodebuild command env NSUnbufferedIO=YES xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false number_of_retries The number of times a test can fail 0 fail_build Should this step stop the build if the tests fail? Set this to false if you're using trainer true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The scan action generates the following Lane Variables: SharedValue Description SharedValues::SCAN_DERIVED_DATA_PATH The path to the derived data SharedValues::SCAN_GENERATED_PLIST_FILE The generated plist file SharedValues::SCAN_GENERATED_PLIST_FILES The generated plist files SharedValues::SCAN_GENERATED_XCRESULT_PATH The path to the generated .xcresult SharedValues::SCAN_ZIP_BUILD_PRODUCTS_PATH The path to the zipped build products To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action scan CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run scan To pass parameters, make use of the : symbol, for example fastlane run scan parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"scan"},{"location":"actions/scan/#scan","text":"Alias for the run_tests action","title":"scan"},{"location":"actions/scan/#whats-scan","text":"","title":"What's scan?"},{"location":"actions/scan/#usage","text":"fastlane scan That's all you need to run your tests. If you want more control, here are some available parameters: fastlane scan --workspace \"Example.xcworkspace\" --scheme \"AppName\" --device \"iPhone 6\" --clean If you need to use a different Xcode install, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" scan To run scan on multiple devices via fastlane , add this to your Fastfile : scan( workspace: \"Example.xcworkspace\", devices: [\"iPhone 6s\", \"iPad Air\"] ) For a list of all available parameters use fastlane action scan To access the raw xcodebuild output open ~/Library/Logs/scan","title":"Usage"},{"location":"actions/scan/#scanfile","text":"Since you might want to manually trigger the tests but don't want to specify all the parameters every time, you can store your defaults in a so called Scanfile . Run fastlane scan init to create a new configuration file. Example: scheme(\"Example\") devices([\"iPhone 6s\", \"iPad Air\"]) clean(true) output_types(\"html\")","title":"Scanfile"},{"location":"actions/scan/#automating-the-whole-process","text":"scan works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :test do scan(scheme: \"Example\") end scan Supported platforms ios, mac Author @KrauseFx Returns Outputs hash of results with the following keys: :number_of_tests, :number_of_failures, :number_of_retries, :number_of_tests_excluding_retries, :number_of_failures_excluding_retries","title":"Automating the whole process"},{"location":"actions/scan/#6-examples","text":"run_tests scan # alias for \"run_tests\" run_tests( workspace: \"App.xcworkspace\", scheme: \"MyTests\", clean: false ) # Build For Testing run_tests( derived_data_path: \"my_folder\", build_for_testing: true ) # run tests using derived data from prev. build run_tests( derived_data_path: \"my_folder\", test_without_building: true ) # or run it from an existing xctestrun package run_tests( xctestrun: \"/path/to/mytests.xctestrun\" )","title":"6 Examples"},{"location":"actions/scan/#parameters","text":"Key Description Default workspace Path to the workspace file project Path to the project file package_path Path to the Swift Package scheme The project's scheme. Make sure it's marked as Shared device The name of the simulator type you want to run tests on (e.g. 'iPhone 6' or 'iPhone SE (2nd generation) (14.5)') devices Array of devices to run the tests on (e.g. ['iPhone 6', 'iPad Air', 'iPhone SE (2nd generation) (14.5)']) skip_detect_devices Should skip auto detecting of devices if none were specified false ensure_devices_found Should fail if devices not found false force_quit_simulator Enabling this option will automatically killall Simulator processes before the run false reset_simulator Enabling this option will automatically erase the simulator before running the application false disable_slide_to_type Enabling this option will disable the simulator from showing the 'Slide to type' prompt true prelaunch_simulator Enabling this option will launch the first simulator prior to calling any xcodebuild command reinstall_app Enabling this option will automatically uninstall the application before running it false app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip testplan The testplan associated with the scheme that should be used for testing only_test_configurations Array of strings matching test plan configurations to run skip_test_configurations Array of strings matching test plan configurations to skip xctestrun Run tests using the provided .xctestrun file toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a ) clean Should the project be cleaned before building it? false code_coverage Should code coverage be generated? (Xcode 7 and up) address_sanitizer Should the address sanitizer be turned on? thread_sanitizer Should the thread sanitizer be turned on? open_report Should the HTML report be opened when tests are completed? false output_directory The directory in which all reports will be stored * output_style Define how the output should look like. Valid values are: standard, basic, rspec, or raw (disables xcpretty during xcodebuild) output_types Comma separated list of the output types (e.g. html, junit, json-compilation-database) html,junit output_files Comma separated list of the output files, corresponding to the types provided by :output_types (order should match). If specifying an output type of json-compilation-database with :use_clang_report_name enabled, that option will take precedence buildlog_path The directory where to store the raw log * include_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * output_remove_retry_attempts Remove retry attempts from test results table and the JUnit report (if not using xcpretty) false disable_xcpretty DEPRECATED! Use output_style: 'raw' instead - Disable xcpretty formatting of build, similar to output_style='raw' but this will also skip the test results table formatter DEPRECATED! Use 'xcpretty_formatter' instead - A custom xcpretty formatter to use xcpretty_formatter A custom xcpretty formatter to use xcpretty_args Pass in xcpretty additional command line arguments (e.g. '--test --no-color' or '--tap --no-utf') derived_data_path The directory where build products and other derived data will go should_zip_build_products Should zip the derived data build products and place in output path? false output_xctestrun Should provide additional copy of .xctestrun file (settings.xctestrun) and place in output path? false result_bundle_path Custom path for the result bundle, overrides result_bundle result_bundle Should an Xcode result bundle be generated in the output directory false use_clang_report_name Generate the json compilation database with clang naming convention (compile_commands.json) false parallel_testing Optionally override the per-target setting in the scheme for running tests in parallel. Equivalent to -parallel-testing-enabled concurrent_workers Specify the exact number of test runners that will be spawned during parallel testing. Equivalent to -parallel-testing-worker-count max_concurrent_simulators Constrain the number of simulator devices on which to test concurrently. Equivalent to -maximum-concurrent-test-simulator-destinations disable_concurrent_testing Do not run test bundles in parallel on the specified destinations. Testing will occur on each destination serially. Equivalent to -disable-concurrent-testing false skip_build Should debug build be skipped before test build? false test_without_building Test without building, requires a derived data path build_for_testing Build for testing only, does not run tests sdk The SDK that should be used for building the application configuration The configuration to use when building the app. Defaults to 'Release' * xcargs Pass additional arguments to xcodebuild. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app app_name App name to use in slack message and logfile name deployment_target_version Target version of the app being build or tested. Used to filter out simulator version slack_url Create an Incoming WebHook for your Slack group to post results there slack_channel #channel or @username slack_message The message included with each message posted to slack slack_use_webhook_configured_username_and_icon Use webhook's default username and icon settings? (true/false) false slack_username Overrides the webhook's username property if slack_use_webhook_configured_username_and_icon is false fastlane slack_icon_url Overrides the webhook's image property if slack_use_webhook_configured_username_and_icon is false https://fastlane.tools/assets/img/fastlane_icon.png skip_slack Don't publish to slack, even when an URL is given false slack_only_on_failure Only post on Slack if the tests fail false slack_default_payloads Specifies default payloads to include in Slack messages. For more info visit https://docs.fastlane.tools/actions/slack destination Use only if you're a pro, use the other options instead run_rosetta_simulator Adds arch=x86_64 to the xcodebuild 'destination' argument to run simulator in a Rosetta mode false catalyst_platform Platform to build when using a Catalyst enabled app. Valid values are: ios, macos custom_report_file_name DEPRECATED! Use --output_files instead - Sets custom full report file name when generating a single report xcodebuild_command Allows for override of the default xcodebuild command env NSUnbufferedIO=YES xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false number_of_retries The number of times a test can fail 0 fail_build Should this step stop the build if the tests fail? Set this to false if you're using trainer true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/scan/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The scan action generates the following Lane Variables: SharedValue Description SharedValues::SCAN_DERIVED_DATA_PATH The path to the derived data SharedValues::SCAN_GENERATED_PLIST_FILE The generated plist file SharedValues::SCAN_GENERATED_PLIST_FILES The generated plist files SharedValues::SCAN_GENERATED_XCRESULT_PATH The path to the generated .xcresult SharedValues::SCAN_ZIP_BUILD_PRODUCTS_PATH The path to the zipped build products To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/scan/#documentation","text":"To show the documentation in your terminal, run fastlane action scan","title":"Documentation"},{"location":"actions/scan/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run scan To pass parameters, make use of the : symbol, for example fastlane run scan parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/scan/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/scp/","text":"scp Transfer files via SCP scp Supported platforms ios, android, mac Author @hjanuschka 2 Examples scp( host: \"dev.januschka.com\", username: \"root\", upload: { src: \"/root/dir1\", dst: \"/tmp/new_dir\" } ) scp( host: \"dev.januschka.com\", username: \"root\", download: { src: \"/root/dir1\", dst: \"/tmp/new_dir\" } ) Parameters Key Description Default username Username password Password host Hostname port Port 22 upload Upload download Download * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action scp CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run scp To pass parameters, make use of the : symbol, for example fastlane run scp parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"scp"},{"location":"actions/scp/#scp","text":"Transfer files via SCP scp Supported platforms ios, android, mac Author @hjanuschka","title":"scp"},{"location":"actions/scp/#2-examples","text":"scp( host: \"dev.januschka.com\", username: \"root\", upload: { src: \"/root/dir1\", dst: \"/tmp/new_dir\" } ) scp( host: \"dev.januschka.com\", username: \"root\", download: { src: \"/root/dir1\", dst: \"/tmp/new_dir\" } )","title":"2 Examples"},{"location":"actions/scp/#parameters","text":"Key Description Default username Username password Password host Hostname port Port 22 upload Upload download Download * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/scp/#documentation","text":"To show the documentation in your terminal, run fastlane action scp","title":"Documentation"},{"location":"actions/scp/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run scp To pass parameters, make use of the : symbol, for example fastlane run scp parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/scp/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/screengrab/","text":"screengrab Alias for the capture_android_screenshots action Automated localized screenshots of your Android app on every device screengrab generates localized screenshots of your Android app for different device types and languages for Google Play and can be uploaded using supply . Why should I automate this process? Create hundreds of screenshots in multiple languages on emulators or real devices, saving you hours Easily verify that localizations fit into labels on all screen dimensions to find UI mistakes before you ship You only need to configure it once for anyone on your team to run it Keep your screenshots perfectly up-to-date with every app update. Your customers deserve it! Fully integrates with fastlane and supply Installation Install the gem gem install fastlane Gradle dependency androidTestImplementation 'tools.fastlane:screengrab:x.x.x' The latest version is As of screengrab version 2.0.0, all Android test dependencies are AndroidX dependencies. This means a device with API 18+, Android 4.3 or greater is required. If you wish to capture screenshots with an older Android OS, then you must use a 1.x.x version. Configuring your Manifest Permissions Ensure that the following permissions exist in your src/debug/AndroidManifest.xml Configuring your UI Tests for Screenshots Add LocaleTestRule to your tests class to handle automatic switching of locales. If you're using Java use: java @ClassRule public static final LocaleTestRule localeTestRule = new LocaleTestRule(); If you're using Kotlin use: kotlin @Rule @JvmField val localeTestRule = LocaleTestRule() The @JvmField annotation is important. It won't work like this: kotlin companion object { @get:ClassRule val localeTestRule = LocaleTestRule() } To capture screenshots, add the following to your tests Screengrab.screenshot(\"name_of_screenshot_here\"); on the appropriate screens Generating Screenshots with screengrab Then, before running fastlane screengrab you'll need a debug and test apk You can create your APKs manually with ./gradlew assembleDebug assembleAndroidTest You can also create a lane and use build_android_app : ruby desc \"Build debug and test APK for screenshots\" lane :build_and_screengrab do build_android_app( task: 'assemble', build_type: 'Debug' ) build_android_app( task: 'assemble', build_type: 'AndroidTest' ) screengrab() end - Once complete run fastlane screengrab in your app project directory to generate screenshots - You will be prompted to provide any required parameters which are not in your Screengrabfile or provided as command line arguments - Your screenshots will be saved to fastlane/metadata/android in the directory where you ran screengrab Improved screenshot capture with UI Automator As of screengrab 0.5.0, you can specify different strategies to control the way screengrab captures screenshots. The newer strategy delegates to UI Automator which fixes a number of problems compared to the original strategy: Shadows/elevation are correctly captured for Material UI Multi-window situations are correctly captured (dialogs, etc.) Works on Android N UI Automator is the default strategy. However, UI Automator requires a device with API level >= 18 . If you need to grab screenshots on an older Android version, use the latest 1.x.x version of this library and set the DecorView ScreenshotStrategy. Screengrab.setDefaultScreenshotStrategy(new DecorViewScreenshotStrategy()); Improved screenshot capture with Falcon As of screengrab 1.2.0, you can specify a new strategy to delegate to Falcon . Falcon may work better than UI Automator in some situations and also provides similar benefits as UI Automator: Multi-window situations are correctly captured (dialogs, etc.) Works on Android N Falcon requires a device with API level >= 10 . To enable it for all screenshots by default, make the following call before your tests run: Screengrab.setDefaultScreenshotStrategy(new FalconScreenshotStrategy(activityRule.getActivity())); Advanced Screengrabfile Configuration Running fastlane screengrab init generated a Screengrabfile which can store all of your configuration options. Since most values will not change often for your project, it is recommended to store them there. The Screengrabfile is written in Ruby, so you may find it helpful to use an editor that highlights Ruby syntax to modify this file. # remove the leading '#' to uncomment lines # app_package_name('your.app.package') # use_tests_in_packages(['your.screenshot.tests.package']) # app_apk_path('path/to/your/app.apk') # tests_apk_path('path/to/your/tests.apk') locales(['en-US', 'fr-FR', 'it-IT']) # clear all previously generated screenshots in your local output directory before creating new ones clear_previous_screenshots(true) For more information about all available options run fastlane action screengrab Tips UI Tests Check out Testing UI for a Single App for an introduction to using Espresso for UI testing. Example UI Test Class (Using JUnit4) Java: @RunWith(JUnit4.class) public class JUnit4StyleTests { @ClassRule public static final LocaleTestRule localeTestRule = new LocaleTestRule(); @Rule public ActivityScenarioRule activityRule = new ActivityScenarioRule<>(MainActivity.class); @Test public void testTakeScreenshot() { Screengrab.screenshot(\"before_button_click\"); onView(withId(R.id.fab)).perform(click()); Screengrab.screenshot(\"after_button_click\"); } } Kotlin: @RunWith(JUnit4.class) class JUnit4StyleTests { @get:Rule var activityRule = ActivityScenarioRule(MainActivity::class.java) @Rule @JvmField val localeTestRule = LocaleTestRule() @Test fun testTakeScreenshot() { Screengrab.screenshot(\"before_button_click\") onView(withId(R.id.fab)).perform(click()) Screengrab.screenshot(\"after_button_click\") } } There is an example project showing how to use JUnit 3 or 4 and Espresso with the screengrab Java library to capture screenshots during a UI test run. Using JUnit 4 is preferable because of its ability to perform actions before and after the entire test class is run. This means you will change the device's locale far fewer times when compared with JUnit 3 running those commands before and after each test method. When using JUnit 3 you'll need to add a bit more code: Use LocaleUtil.changeDeviceLocaleTo(LocaleUtil.getTestLocale()); in setUp() Use LocaleUtil.changeDeviceLocaleTo(LocaleUtil.getEndingLocale()); in tearDown() Use Screengrab.screenshot(\"name_of_screenshot_here\"); to capture screenshots at the appropriate points in your tests Clean Status Bar screengrab can clean your status bar to make your screenshots even more beautiful. It is simply a wrapper that allows configuring SystemUI DemoMode in your code. Note: the clean status bar feature is only supported on devices with API level >= 23 . You can enable and disable the clean status bar at any moment during your tests. In most cases you probably want to do this in the @BeforeClass and @AfterClass methods. @BeforeClass public static void beforeAll() { CleanStatusBar.enableWithDefaults(); } @AfterClass public static void afterAll() { CleanStatusBar.disable(); } Have a look at the methods of the CleanStatusBar class to customize the status bar even more. You could for example show the Bluetooth icon and the LTE text. new CleanStatusBar() .setBluetoothState(BluetoothState.DISCONNECTED) .setMobileNetworkDataType(MobileDataType.LTE) .enable(); Advanced screengrab Launch Arguments You can provide additional arguments to your test cases on launch. These strings will be available in your tests through InstrumentationRegistry.getArguments() . screengrab( launch_arguments: [ \"username hjanuschka\", \"build_number 201\" ] ) Bundle extras = InstrumentationRegistry.getArguments(); String peerID = null; if (extras != null) { if (extras.containsKey(\"username\")) { username = extras.getString(\"username\"); System.out.println(\"Username: \" + username); } else { System.out.println(\"No username in extras\"); } } else { System.out.println(\"No extras\"); } Detecting screengrab at runtime For some apps, it is helpful to know when screengrab is running so that you can display specific data for your screenshots. For iOS fastlane users, this is much like \"FASTLANE_SNAPSHOT\". In order to do this, you'll need to have at least two product flavors of your app. Add two product flavors to the app-level build.gradle file: android { ... flavorDimensions \"mode\" productFlavors { screengrab { dimension \"mode\" } regular { dimension \"mode\" } } ... } Check for the existence of that flavor (i.e screengrab) in your app code as follows in order to use mock data or customize data for screenshots: if (BuildConfig.FLAVOR == \"screengrab\") { System.out.println(\"screengrab is running!\"); } When running screengrab , do the following to build the flavor you want as well as the test apk. Note that you use \"assembleFlavor_name\" where Flavor_name is the flavor name, capitalized (i.e. Screengrab). ./gradlew assembleScreengrab assembleAndroidTest Run screengrab : fastlane screengrab screengrab will ask you to select the debug and test apps (which you can then add to your Screengrabfile to skip this step later). The debug apk should be somewhere like this: app/build/outputs/apk/screengrab/debug/app-screengrab-debug.apk The test apk should be somewhere like this: app/build/outputs/apk/androidTest/screengrab/debug/app-screengrab-debug-androidTest.apk Sit back and enjoy your new screenshots! Note: while this could also be done by creating a new build variant (i.e. debug, release and creating a new one called screengrab), Android only allows one build type to be tested which defaults to debug. That's why we use product flavors. screengrab Supported platforms android Author @asfalcone, @i2amsam, @mfurtak 3 Examples capture_android_screenshots screengrab # alias for \"capture_android_screenshots\" capture_android_screenshots( locales: [\"en-US\", \"fr-FR\", \"ja-JP\"], clear_previous_screenshots: true, app_apk_path: \"build/outputs/apk/example-debug.apk\", tests_apk_path: \"build/outputs/apk/example-debug-androidTest-unaligned.apk\" ) Parameters Key Description Default android_home Path to the root of your Android SDK installation, e.g. ~/tools/android-sdk-macosx * build_tools_version DEPRECATED! The Android build tools version to use, e.g. '23.0.2' locales A list of locales which should be used [\"en-US\"] clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running screengrab false output_directory The directory where to store the screenshots fastlane/metadata/android skip_open_summary Don't open the summary after running screengrab * app_package_name The package name of the app under test (e.g. com.yourcompany.yourapp) * tests_package_name The package name of the tests bundle (e.g. com.yourcompany.yourapp.test) use_tests_in_packages Only run tests in these Java packages use_tests_in_classes Only run tests in these Java classes launch_arguments Additional launch arguments test_instrumentation_runner The fully qualified class name of your test instrumentation runner androidx.test.runner.AndroidJUnitRunner ending_locale DEPRECATED! Return the device to this locale after running tests en-US use_adb_root DEPRECATED! Restarts the adb daemon using adb root to allow access to screenshots directories on device. Use if getting 'Permission denied' errors false app_apk_path The path to the APK for the app under test * tests_apk_path The path to the APK for the tests bundle * specific_device Use the device or emulator with the given serial number or qualifier device_type Type of device used for screenshots. Matches Google Play Types (phone, sevenInch, tenInch, tv, wear) phone exit_on_test_failure Whether or not to exit Screengrab on test failure. Exiting on failure will not copy screenshots to local machine nor open screenshots summary true reinstall_app Enabling this option will automatically uninstall the application before running it false use_timestamp_suffix Add timestamp suffix to screenshot filename true adb_host Configure the host used by adb to connect, allows running on remote devices farm * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The screengrab action generates the following Lane Variables: SharedValue Description SharedValues::SCREENGRAB_OUTPUT_DIRECTORY The path to the output directory To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action screengrab CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run screengrab To pass parameters, make use of the : symbol, for example fastlane run screengrab parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"screengrab"},{"location":"actions/screengrab/#screengrab","text":"Alias for the capture_android_screenshots action","title":"screengrab"},{"location":"actions/screengrab/#installation","text":"Install the gem gem install fastlane","title":"Installation"},{"location":"actions/screengrab/#generating-screenshots-with-screengrab","text":"Then, before running fastlane screengrab you'll need a debug and test apk You can create your APKs manually with ./gradlew assembleDebug assembleAndroidTest You can also create a lane and use build_android_app : ruby desc \"Build debug and test APK for screenshots\" lane :build_and_screengrab do build_android_app( task: 'assemble', build_type: 'Debug' ) build_android_app( task: 'assemble', build_type: 'AndroidTest' ) screengrab() end - Once complete run fastlane screengrab in your app project directory to generate screenshots - You will be prompted to provide any required parameters which are not in your Screengrabfile or provided as command line arguments - Your screenshots will be saved to fastlane/metadata/android in the directory where you ran screengrab","title":"Generating Screenshots with screengrab"},{"location":"actions/screengrab/#improved-screenshot-capture-with-ui-automator","text":"As of screengrab 0.5.0, you can specify different strategies to control the way screengrab captures screenshots. The newer strategy delegates to UI Automator which fixes a number of problems compared to the original strategy: Shadows/elevation are correctly captured for Material UI Multi-window situations are correctly captured (dialogs, etc.) Works on Android N UI Automator is the default strategy. However, UI Automator requires a device with API level >= 18 . If you need to grab screenshots on an older Android version, use the latest 1.x.x version of this library and set the DecorView ScreenshotStrategy. Screengrab.setDefaultScreenshotStrategy(new DecorViewScreenshotStrategy());","title":"Improved screenshot capture with UI Automator"},{"location":"actions/screengrab/#improved-screenshot-capture-with-falcon","text":"As of screengrab 1.2.0, you can specify a new strategy to delegate to Falcon . Falcon may work better than UI Automator in some situations and also provides similar benefits as UI Automator: Multi-window situations are correctly captured (dialogs, etc.) Works on Android N Falcon requires a device with API level >= 10 . To enable it for all screenshots by default, make the following call before your tests run: Screengrab.setDefaultScreenshotStrategy(new FalconScreenshotStrategy(activityRule.getActivity()));","title":"Improved screenshot capture with Falcon"},{"location":"actions/screengrab/#advanced-screengrabfile-configuration","text":"Running fastlane screengrab init generated a Screengrabfile which can store all of your configuration options. Since most values will not change often for your project, it is recommended to store them there. The Screengrabfile is written in Ruby, so you may find it helpful to use an editor that highlights Ruby syntax to modify this file. # remove the leading '#' to uncomment lines # app_package_name('your.app.package') # use_tests_in_packages(['your.screenshot.tests.package']) # app_apk_path('path/to/your/app.apk') # tests_apk_path('path/to/your/tests.apk') locales(['en-US', 'fr-FR', 'it-IT']) # clear all previously generated screenshots in your local output directory before creating new ones clear_previous_screenshots(true) For more information about all available options run fastlane action screengrab","title":"Advanced Screengrabfile Configuration"},{"location":"actions/screengrab/#tips","text":"","title":"Tips"},{"location":"actions/screengrab/#ui-tests","text":"Check out Testing UI for a Single App for an introduction to using Espresso for UI testing.","title":"UI Tests"},{"location":"actions/screengrab/#clean-status-bar","text":"screengrab can clean your status bar to make your screenshots even more beautiful. It is simply a wrapper that allows configuring SystemUI DemoMode in your code. Note: the clean status bar feature is only supported on devices with API level >= 23 . You can enable and disable the clean status bar at any moment during your tests. In most cases you probably want to do this in the @BeforeClass and @AfterClass methods. @BeforeClass public static void beforeAll() { CleanStatusBar.enableWithDefaults(); } @AfterClass public static void afterAll() { CleanStatusBar.disable(); } Have a look at the methods of the CleanStatusBar class to customize the status bar even more. You could for example show the Bluetooth icon and the LTE text. new CleanStatusBar() .setBluetoothState(BluetoothState.DISCONNECTED) .setMobileNetworkDataType(MobileDataType.LTE) .enable();","title":"Clean Status Bar"},{"location":"actions/screengrab/#advanced-screengrab","text":"Launch Arguments You can provide additional arguments to your test cases on launch. These strings will be available in your tests through InstrumentationRegistry.getArguments() . screengrab( launch_arguments: [ \"username hjanuschka\", \"build_number 201\" ] ) Bundle extras = InstrumentationRegistry.getArguments(); String peerID = null; if (extras != null) { if (extras.containsKey(\"username\")) { username = extras.getString(\"username\"); System.out.println(\"Username: \" + username); } else { System.out.println(\"No username in extras\"); } } else { System.out.println(\"No extras\"); } Detecting screengrab at runtime For some apps, it is helpful to know when screengrab is running so that you can display specific data for your screenshots. For iOS fastlane users, this is much like \"FASTLANE_SNAPSHOT\". In order to do this, you'll need to have at least two product flavors of your app. Add two product flavors to the app-level build.gradle file: android { ... flavorDimensions \"mode\" productFlavors { screengrab { dimension \"mode\" } regular { dimension \"mode\" } } ... } Check for the existence of that flavor (i.e screengrab) in your app code as follows in order to use mock data or customize data for screenshots: if (BuildConfig.FLAVOR == \"screengrab\") { System.out.println(\"screengrab is running!\"); } When running screengrab , do the following to build the flavor you want as well as the test apk. Note that you use \"assembleFlavor_name\" where Flavor_name is the flavor name, capitalized (i.e. Screengrab). ./gradlew assembleScreengrab assembleAndroidTest Run screengrab : fastlane screengrab screengrab will ask you to select the debug and test apps (which you can then add to your Screengrabfile to skip this step later). The debug apk should be somewhere like this: app/build/outputs/apk/screengrab/debug/app-screengrab-debug.apk The test apk should be somewhere like this: app/build/outputs/apk/androidTest/screengrab/debug/app-screengrab-debug-androidTest.apk Sit back and enjoy your new screenshots! Note: while this could also be done by creating a new build variant (i.e. debug, release and creating a new one called screengrab), Android only allows one build type to be tested which defaults to debug. That's why we use product flavors. screengrab Supported platforms android Author @asfalcone, @i2amsam, @mfurtak","title":"Advanced screengrab"},{"location":"actions/screengrab/#3-examples","text":"capture_android_screenshots screengrab # alias for \"capture_android_screenshots\" capture_android_screenshots( locales: [\"en-US\", \"fr-FR\", \"ja-JP\"], clear_previous_screenshots: true, app_apk_path: \"build/outputs/apk/example-debug.apk\", tests_apk_path: \"build/outputs/apk/example-debug-androidTest-unaligned.apk\" )","title":"3 Examples"},{"location":"actions/screengrab/#parameters","text":"Key Description Default android_home Path to the root of your Android SDK installation, e.g. ~/tools/android-sdk-macosx * build_tools_version DEPRECATED! The Android build tools version to use, e.g. '23.0.2' locales A list of locales which should be used [\"en-US\"] clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running screengrab false output_directory The directory where to store the screenshots fastlane/metadata/android skip_open_summary Don't open the summary after running screengrab * app_package_name The package name of the app under test (e.g. com.yourcompany.yourapp) * tests_package_name The package name of the tests bundle (e.g. com.yourcompany.yourapp.test) use_tests_in_packages Only run tests in these Java packages use_tests_in_classes Only run tests in these Java classes launch_arguments Additional launch arguments test_instrumentation_runner The fully qualified class name of your test instrumentation runner androidx.test.runner.AndroidJUnitRunner ending_locale DEPRECATED! Return the device to this locale after running tests en-US use_adb_root DEPRECATED! Restarts the adb daemon using adb root to allow access to screenshots directories on device. Use if getting 'Permission denied' errors false app_apk_path The path to the APK for the app under test * tests_apk_path The path to the APK for the tests bundle * specific_device Use the device or emulator with the given serial number or qualifier device_type Type of device used for screenshots. Matches Google Play Types (phone, sevenInch, tenInch, tv, wear) phone exit_on_test_failure Whether or not to exit Screengrab on test failure. Exiting on failure will not copy screenshots to local machine nor open screenshots summary true reinstall_app Enabling this option will automatically uninstall the application before running it false use_timestamp_suffix Add timestamp suffix to screenshot filename true adb_host Configure the host used by adb to connect, allows running on remote devices farm * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/screengrab/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The screengrab action generates the following Lane Variables: SharedValue Description SharedValues::SCREENGRAB_OUTPUT_DIRECTORY The path to the output directory To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/screengrab/#documentation","text":"To show the documentation in your terminal, run fastlane action screengrab","title":"Documentation"},{"location":"actions/screengrab/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run screengrab To pass parameters, make use of the : symbol, for example fastlane run screengrab parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/screengrab/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/set_build_number_repository/","text":"set_build_number_repository Set the build number from the current repository This action will set the build number according to what the SCM HEAD reports. Currently supported SCMs are svn (uses root revision), git-svn (uses svn revision) and git (uses short hash) and mercurial (uses short hash or revision number). There is an option, :use_hg_revision_number , which allows to use mercurial revision number instead of hash. set_build_number_repository Supported platforms ios, mac Author @pbrooks, @armadsen, @AndrewSB 2 Examples set_build_number_repository set_build_number_repository( xcodeproj: \"./path/to/MyApp.xcodeproj\" ) Parameters Key Description Default use_hg_revision_number Use hg revision number instead of hash (ignored for non-hg repos) false xcodeproj explicitly specify which xcodeproj to use * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action set_build_number_repository CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_build_number_repository To pass parameters, make use of the : symbol, for example fastlane run set_build_number_repository parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"set_build_number_repository"},{"location":"actions/set_build_number_repository/#set_build_number_repository","text":"Set the build number from the current repository This action will set the build number according to what the SCM HEAD reports. Currently supported SCMs are svn (uses root revision), git-svn (uses svn revision) and git (uses short hash) and mercurial (uses short hash or revision number). There is an option, :use_hg_revision_number , which allows to use mercurial revision number instead of hash. set_build_number_repository Supported platforms ios, mac Author @pbrooks, @armadsen, @AndrewSB","title":"set_build_number_repository"},{"location":"actions/set_build_number_repository/#2-examples","text":"set_build_number_repository set_build_number_repository( xcodeproj: \"./path/to/MyApp.xcodeproj\" )","title":"2 Examples"},{"location":"actions/set_build_number_repository/#parameters","text":"Key Description Default use_hg_revision_number Use hg revision number instead of hash (ignored for non-hg repos) false xcodeproj explicitly specify which xcodeproj to use * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/set_build_number_repository/#documentation","text":"To show the documentation in your terminal, run fastlane action set_build_number_repository","title":"Documentation"},{"location":"actions/set_build_number_repository/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_build_number_repository To pass parameters, make use of the : symbol, for example fastlane run set_build_number_repository parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/set_build_number_repository/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/set_changelog/","text":"set_changelog Set the changelog for all languages on App Store Connect This is useful if you have only one changelog for all languages. You can store the changelog in ./fastlane/changelog.txt and it will automatically get loaded from there. This integration is useful if you support e.g. 10 languages and want to use the same \"What's new\"-text for all languages. Defining the version is optional. fastlane will try to automatically detect it if you don't provide one. set_changelog Supported platforms ios, mac Author @KrauseFx 2 Examples set_changelog(changelog: \"Changelog for all Languages\") set_changelog(app_identifier: \"com.krausefx.app\", version: \"1.0\", changelog: \"Changelog for all Languages\") Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * app_identifier The bundle identifier of your app * username Your Apple ID Username * version The version number to create/update changelog Changelog text that should be uploaded to App Store Connect team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * platform The platform of the app (ios, appletvos, mac) ios * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action set_changelog CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_changelog To pass parameters, make use of the : symbol, for example fastlane run set_changelog parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"set_changelog"},{"location":"actions/set_changelog/#set_changelog","text":"Set the changelog for all languages on App Store Connect This is useful if you have only one changelog for all languages. You can store the changelog in ./fastlane/changelog.txt and it will automatically get loaded from there. This integration is useful if you support e.g. 10 languages and want to use the same \"What's new\"-text for all languages. Defining the version is optional. fastlane will try to automatically detect it if you don't provide one. set_changelog Supported platforms ios, mac Author @KrauseFx","title":"set_changelog"},{"location":"actions/set_changelog/#2-examples","text":"set_changelog(changelog: \"Changelog for all Languages\") set_changelog(app_identifier: \"com.krausefx.app\", version: \"1.0\", changelog: \"Changelog for all Languages\")","title":"2 Examples"},{"location":"actions/set_changelog/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * app_identifier The bundle identifier of your app * username Your Apple ID Username * version The version number to create/update changelog Changelog text that should be uploaded to App Store Connect team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * platform The platform of the app (ios, appletvos, mac) ios * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/set_changelog/#documentation","text":"To show the documentation in your terminal, run fastlane action set_changelog","title":"Documentation"},{"location":"actions/set_changelog/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_changelog To pass parameters, make use of the : symbol, for example fastlane run set_changelog parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/set_changelog/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/set_github_release/","text":"set_github_release This will create a new release on GitHub and upload assets for it Creates a new release on GitHub. You must provide your GitHub Personal token (get one from https://github.com/settings/tokens/new ), the repository name and tag name. By default, that's master . If the tag doesn't exist, one will be created on the commit or branch passed in as commitish. Out parameters provide the release's id, which can be used for later editing and the release HTML link to GitHub. You can also specify a list of assets to be uploaded to the release with the :upload_assets parameter. set_github_release Supported platforms ios, android, mac Author @czechboy0, @tommeier Returns A hash containing all relevant information of this release Access things like 'html_url', 'tag_name', 'name', 'body' 1 Example github_release = set_github_release( repository_name: \"fastlane/fastlane\", api_token: ENV[\"GITHUB_TOKEN\"], name: \"Super New actions\", tag_name: \"v1.22.0\", description: (File.read(\"changelog\") rescue \"No changelog provided\"), commitish: \"master\", upload_assets: [\"example_integration.ipa\", \"./pkg/built.gem\"] ) Parameters Key Description Default repository_name The path to your repo, e.g. 'fastlane/fastlane' server_url The server url. e.g. 'https://your.internal.github.host/api/v3' (Default: 'https://api.github.com') https://api.github.com api_token Personal API Token for GitHub - generate one at https://github.com/settings/tokens * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable tag_name Pass in the tag name name Name of this release commitish Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Unused if the Git tag already exists. Default: the repository's default branch (usually master) description Description of this release * is_draft Whether the release should be marked as draft false is_prerelease Whether the release should be marked as prerelease false is_generate_release_notes Whether the name and body of this release should be generated automatically false upload_assets Path to assets to be uploaded with the release * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The set_github_release action generates the following Lane Variables: SharedValue Description SharedValues::SET_GITHUB_RELEASE_HTML_LINK Link to your created release SharedValues::SET_GITHUB_RELEASE_RELEASE_ID Release id (useful for subsequent editing) SharedValues::SET_GITHUB_RELEASE_JSON The whole release JSON object To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action set_github_release CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_github_release To pass parameters, make use of the : symbol, for example fastlane run set_github_release parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"set_github_release"},{"location":"actions/set_github_release/#set_github_release","text":"This will create a new release on GitHub and upload assets for it Creates a new release on GitHub. You must provide your GitHub Personal token (get one from https://github.com/settings/tokens/new ), the repository name and tag name. By default, that's master . If the tag doesn't exist, one will be created on the commit or branch passed in as commitish. Out parameters provide the release's id, which can be used for later editing and the release HTML link to GitHub. You can also specify a list of assets to be uploaded to the release with the :upload_assets parameter. set_github_release Supported platforms ios, android, mac Author @czechboy0, @tommeier Returns A hash containing all relevant information of this release Access things like 'html_url', 'tag_name', 'name', 'body'","title":"set_github_release"},{"location":"actions/set_github_release/#1-example","text":"github_release = set_github_release( repository_name: \"fastlane/fastlane\", api_token: ENV[\"GITHUB_TOKEN\"], name: \"Super New actions\", tag_name: \"v1.22.0\", description: (File.read(\"changelog\") rescue \"No changelog provided\"), commitish: \"master\", upload_assets: [\"example_integration.ipa\", \"./pkg/built.gem\"] )","title":"1 Example"},{"location":"actions/set_github_release/#parameters","text":"Key Description Default repository_name The path to your repo, e.g. 'fastlane/fastlane' server_url The server url. e.g. 'https://your.internal.github.host/api/v3' (Default: 'https://api.github.com') https://api.github.com api_token Personal API Token for GitHub - generate one at https://github.com/settings/tokens * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable tag_name Pass in the tag name name Name of this release commitish Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Unused if the Git tag already exists. Default: the repository's default branch (usually master) description Description of this release * is_draft Whether the release should be marked as draft false is_prerelease Whether the release should be marked as prerelease false is_generate_release_notes Whether the name and body of this release should be generated automatically false upload_assets Path to assets to be uploaded with the release * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/set_github_release/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The set_github_release action generates the following Lane Variables: SharedValue Description SharedValues::SET_GITHUB_RELEASE_HTML_LINK Link to your created release SharedValues::SET_GITHUB_RELEASE_RELEASE_ID Release id (useful for subsequent editing) SharedValues::SET_GITHUB_RELEASE_JSON The whole release JSON object To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/set_github_release/#documentation","text":"To show the documentation in your terminal, run fastlane action set_github_release","title":"Documentation"},{"location":"actions/set_github_release/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_github_release To pass parameters, make use of the : symbol, for example fastlane run set_github_release parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/set_github_release/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/set_info_plist_value/","text":"set_info_plist_value Sets value to Info.plist of your project as native Ruby data structures set_info_plist_value Supported platforms ios, mac Author @kohtenko, @uwehollatz 2 Examples set_info_plist_value(path: \"./Info.plist\", key: \"CFBundleIdentifier\", value: \"com.krausefx.app.beta\") set_info_plist_value(path: \"./MyApp-Info.plist\", key: \"NSAppTransportSecurity\", subkey: \"NSAllowsArbitraryLoads\", value: true, output_file_name: \"./Info.plist\") Parameters Key Description Default key Name of key in plist subkey Name of subkey in plist value Value to setup path Path to plist file you want to update output_file_name Path to the output file you want to generate * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action set_info_plist_value CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_info_plist_value To pass parameters, make use of the : symbol, for example fastlane run set_info_plist_value parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"set_info_plist_value"},{"location":"actions/set_info_plist_value/#set_info_plist_value","text":"Sets value to Info.plist of your project as native Ruby data structures set_info_plist_value Supported platforms ios, mac Author @kohtenko, @uwehollatz","title":"set_info_plist_value"},{"location":"actions/set_info_plist_value/#2-examples","text":"set_info_plist_value(path: \"./Info.plist\", key: \"CFBundleIdentifier\", value: \"com.krausefx.app.beta\") set_info_plist_value(path: \"./MyApp-Info.plist\", key: \"NSAppTransportSecurity\", subkey: \"NSAllowsArbitraryLoads\", value: true, output_file_name: \"./Info.plist\")","title":"2 Examples"},{"location":"actions/set_info_plist_value/#parameters","text":"Key Description Default key Name of key in plist subkey Name of subkey in plist value Value to setup path Path to plist file you want to update output_file_name Path to the output file you want to generate * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/set_info_plist_value/#documentation","text":"To show the documentation in your terminal, run fastlane action set_info_plist_value","title":"Documentation"},{"location":"actions/set_info_plist_value/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_info_plist_value To pass parameters, make use of the : symbol, for example fastlane run set_info_plist_value parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/set_info_plist_value/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/set_pod_key/","text":"set_pod_key Sets a value for a key with cocoapods-keys Adds a key to cocoapods-keys set_pod_key Supported platforms ios, mac Author @marcelofabri 1 Example set_pod_key( key: \"APIToken\", value: \"1234\", project: \"MyProject\" ) Parameters Key Description Default use_bundle_exec Use bundle exec when there is a Gemfile presented true key The key to be saved with cocoapods-keys value The value to be saved with cocoapods-keys project The project name * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action set_pod_key CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_pod_key To pass parameters, make use of the : symbol, for example fastlane run set_pod_key parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"set_pod_key"},{"location":"actions/set_pod_key/#set_pod_key","text":"Sets a value for a key with cocoapods-keys Adds a key to cocoapods-keys set_pod_key Supported platforms ios, mac Author @marcelofabri","title":"set_pod_key"},{"location":"actions/set_pod_key/#1-example","text":"set_pod_key( key: \"APIToken\", value: \"1234\", project: \"MyProject\" )","title":"1 Example"},{"location":"actions/set_pod_key/#parameters","text":"Key Description Default use_bundle_exec Use bundle exec when there is a Gemfile presented true key The key to be saved with cocoapods-keys value The value to be saved with cocoapods-keys project The project name * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/set_pod_key/#documentation","text":"To show the documentation in your terminal, run fastlane action set_pod_key","title":"Documentation"},{"location":"actions/set_pod_key/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_pod_key To pass parameters, make use of the : symbol, for example fastlane run set_pod_key parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/set_pod_key/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/setup_ci/","text":"setup_ci Setup the keychain and match to work with CI Creates a new temporary keychain for use with match Switches match to readonly mode to not create new profiles/cert on CI Sets up log and test result paths to be easily collectible This action helps with CI integration. Add this to the top of your Fastfile if you use CI. setup_ci Supported platforms ios, mac Author @mollyIV, @svenmuennich 2 Examples setup_ci( provider: \"circleci\" ) setup_ci( provider: \"circleci\", timeout: 0 ) Parameters Key Description Default force Force setup, even if not executed by CI false provider CI provider. If none is set, the provider is detected automatically timeout Set a custom timeout in seconds for keychain. Set 0 if you want to specify 'no time-out' 3600 * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action setup_ci CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run setup_ci To pass parameters, make use of the : symbol, for example fastlane run setup_ci parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"setup_ci"},{"location":"actions/setup_ci/#setup_ci","text":"Setup the keychain and match to work with CI Creates a new temporary keychain for use with match Switches match to readonly mode to not create new profiles/cert on CI Sets up log and test result paths to be easily collectible This action helps with CI integration. Add this to the top of your Fastfile if you use CI. setup_ci Supported platforms ios, mac Author @mollyIV, @svenmuennich","title":"setup_ci"},{"location":"actions/setup_ci/#2-examples","text":"setup_ci( provider: \"circleci\" ) setup_ci( provider: \"circleci\", timeout: 0 )","title":"2 Examples"},{"location":"actions/setup_ci/#parameters","text":"Key Description Default force Force setup, even if not executed by CI false provider CI provider. If none is set, the provider is detected automatically timeout Set a custom timeout in seconds for keychain. Set 0 if you want to specify 'no time-out' 3600 * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/setup_ci/#documentation","text":"To show the documentation in your terminal, run fastlane action setup_ci","title":"Documentation"},{"location":"actions/setup_ci/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run setup_ci To pass parameters, make use of the : symbol, for example fastlane run setup_ci parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/setup_ci/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/setup_circle_ci/","text":"setup_circle_ci Setup the keychain and match to work with CircleCI Creates a new temporary keychain for use with match Switches match to readonly mode to not create new profiles/cert on CI Sets up log and test result paths to be easily collectible This action helps with CircleCI integration. Add this to the top of your Fastfile if you use CircleCI. setup_circle_ci Supported platforms ios, android, mac Author @dantoml 1 Example setup_circle_ci Parameters Key Description Default force Force setup, even if not executed by CircleCI false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action setup_circle_ci CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run setup_circle_ci To pass parameters, make use of the : symbol, for example fastlane run setup_circle_ci parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"setup_circle_ci"},{"location":"actions/setup_circle_ci/#setup_circle_ci","text":"Setup the keychain and match to work with CircleCI Creates a new temporary keychain for use with match Switches match to readonly mode to not create new profiles/cert on CI Sets up log and test result paths to be easily collectible This action helps with CircleCI integration. Add this to the top of your Fastfile if you use CircleCI. setup_circle_ci Supported platforms ios, android, mac Author @dantoml","title":"setup_circle_ci"},{"location":"actions/setup_circle_ci/#1-example","text":"setup_circle_ci","title":"1 Example"},{"location":"actions/setup_circle_ci/#parameters","text":"Key Description Default force Force setup, even if not executed by CircleCI false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/setup_circle_ci/#documentation","text":"To show the documentation in your terminal, run fastlane action setup_circle_ci","title":"Documentation"},{"location":"actions/setup_circle_ci/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run setup_circle_ci To pass parameters, make use of the : symbol, for example fastlane run setup_circle_ci parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/setup_circle_ci/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/setup_jenkins/","text":"setup_jenkins Setup xcodebuild, gym and scan for easier Jenkins integration Adds and unlocks keychains from Jenkins 'Keychains and Provisioning Profiles Plugin' Sets unlocked keychain to be used by Match Sets code signing identity from Jenkins 'Keychains and Provisioning Profiles Plugin' Sets output directory to './output' (gym, scan and backup_xcarchive) Sets derived data path to './derivedData' (xcodebuild, gym, scan and clear_derived_data, carthage) Produce result bundle (gym and scan) This action helps with Jenkins integration. Creates own derived data for each job. All build results like IPA files and archives will be stored in the ./output directory. The action also works with Keychains and Provisioning Profiles Plugin , the selected keychain will be automatically unlocked and the selected code signing identity will be used. Match will be also set up to use the unlocked keychain and set in read-only mode, if its environment variables were not yet defined. By default this action will only work when fastlane is executed on a CI system. setup_jenkins Supported platforms ios, mac Author @bartoszj 1 Example setup_jenkins Parameters Key Description Default force Force setup, even if not executed by Jenkins false unlock_keychain Unlocks keychain true add_keychain_to_search_list Add to keychain search list, valid values are true, false, :add, and :replace :replace set_default_keychain Set keychain as default true keychain_path Path to keychain keychain_password Keychain password '' set_code_signing_identity Set code signing identity from CODE_SIGNING_IDENTITY environment true code_signing_identity Code signing identity output_directory The directory in which the ipa file should be stored in ./output derived_data_path The directory where built products and other derived data will go ./derivedData result_bundle Produce the result bundle describing what occurred will be placed true * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action setup_jenkins CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run setup_jenkins To pass parameters, make use of the : symbol, for example fastlane run setup_jenkins parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"setup_jenkins"},{"location":"actions/setup_jenkins/#setup_jenkins","text":"Setup xcodebuild, gym and scan for easier Jenkins integration Adds and unlocks keychains from Jenkins 'Keychains and Provisioning Profiles Plugin' Sets unlocked keychain to be used by Match Sets code signing identity from Jenkins 'Keychains and Provisioning Profiles Plugin' Sets output directory to './output' (gym, scan and backup_xcarchive) Sets derived data path to './derivedData' (xcodebuild, gym, scan and clear_derived_data, carthage) Produce result bundle (gym and scan) This action helps with Jenkins integration. Creates own derived data for each job. All build results like IPA files and archives will be stored in the ./output directory. The action also works with Keychains and Provisioning Profiles Plugin , the selected keychain will be automatically unlocked and the selected code signing identity will be used. Match will be also set up to use the unlocked keychain and set in read-only mode, if its environment variables were not yet defined. By default this action will only work when fastlane is executed on a CI system. setup_jenkins Supported platforms ios, mac Author @bartoszj","title":"setup_jenkins"},{"location":"actions/setup_jenkins/#1-example","text":"setup_jenkins","title":"1 Example"},{"location":"actions/setup_jenkins/#parameters","text":"Key Description Default force Force setup, even if not executed by Jenkins false unlock_keychain Unlocks keychain true add_keychain_to_search_list Add to keychain search list, valid values are true, false, :add, and :replace :replace set_default_keychain Set keychain as default true keychain_path Path to keychain keychain_password Keychain password '' set_code_signing_identity Set code signing identity from CODE_SIGNING_IDENTITY environment true code_signing_identity Code signing identity output_directory The directory in which the ipa file should be stored in ./output derived_data_path The directory where built products and other derived data will go ./derivedData result_bundle Produce the result bundle describing what occurred will be placed true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/setup_jenkins/#documentation","text":"To show the documentation in your terminal, run fastlane action setup_jenkins","title":"Documentation"},{"location":"actions/setup_jenkins/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run setup_jenkins To pass parameters, make use of the : symbol, for example fastlane run setup_jenkins parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/setup_jenkins/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/setup_travis/","text":"setup_travis Setup the keychain and match to work with Travis CI Creates a new temporary keychain for use with match Switches match to readonly mode to not create new profiles/cert on CI This action helps with Travis integration. Add this to the top of your Fastfile if you use Travis. setup_travis Supported platforms ios, android, mac Author @KrauseFx 1 Example setup_travis Parameters Key Description Default force Force setup, even if not executed by travis false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action setup_travis CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run setup_travis To pass parameters, make use of the : symbol, for example fastlane run setup_travis parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"setup_travis"},{"location":"actions/setup_travis/#setup_travis","text":"Setup the keychain and match to work with Travis CI Creates a new temporary keychain for use with match Switches match to readonly mode to not create new profiles/cert on CI This action helps with Travis integration. Add this to the top of your Fastfile if you use Travis. setup_travis Supported platforms ios, android, mac Author @KrauseFx","title":"setup_travis"},{"location":"actions/setup_travis/#1-example","text":"setup_travis","title":"1 Example"},{"location":"actions/setup_travis/#parameters","text":"Key Description Default force Force setup, even if not executed by travis false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/setup_travis/#documentation","text":"To show the documentation in your terminal, run fastlane action setup_travis","title":"Documentation"},{"location":"actions/setup_travis/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run setup_travis To pass parameters, make use of the : symbol, for example fastlane run setup_travis parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/setup_travis/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/sh/","text":"sh Runs a shell command Allows running an arbitrary shell command. Be aware of a specific behavior of sh action with regard to the working directory. For details, refer to Advanced . sh Supported platforms ios, android, mac Author @KrauseFx Returns Outputs the string and executes it. When running in tests, it returns the actual command instead of executing it 2 Examples sh(\"ls\") sh(\"git\", \"commit\", \"-m\", \"My message\") Parameters Key Description Default command Shell command to be executed log Determines whether fastlane should print out the executed command itself and output of the executed command. If command line option --troubleshoot is used, then it overrides this option to true true error_callback A callback invoked with the command output if there is a non-zero exit status * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action sh CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sh To pass parameters, make use of the : symbol, for example fastlane run sh parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"sh"},{"location":"actions/sh/#sh","text":"Runs a shell command Allows running an arbitrary shell command. Be aware of a specific behavior of sh action with regard to the working directory. For details, refer to Advanced . sh Supported platforms ios, android, mac Author @KrauseFx Returns Outputs the string and executes it. When running in tests, it returns the actual command instead of executing it","title":"sh"},{"location":"actions/sh/#2-examples","text":"sh(\"ls\") sh(\"git\", \"commit\", \"-m\", \"My message\")","title":"2 Examples"},{"location":"actions/sh/#parameters","text":"Key Description Default command Shell command to be executed log Determines whether fastlane should print out the executed command itself and output of the executed command. If command line option --troubleshoot is used, then it overrides this option to true true error_callback A callback invoked with the command output if there is a non-zero exit status * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/sh/#documentation","text":"To show the documentation in your terminal, run fastlane action sh","title":"Documentation"},{"location":"actions/sh/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sh To pass parameters, make use of the : symbol, for example fastlane run sh parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/sh/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/sigh/","text":"sigh Alias for the get_provisioning_profile action Because you would rather spend your time building stuff than fighting provisioning sigh can create, renew, download and repair provisioning profiles (with one command). It supports App Store, Ad Hoc, Development and Enterprise profiles and supports nice features, like auto-adding all test devices. Features \u2022 Usage \u2022 Resign \u2022 How does it work? Features Download the latest provisioning profile for your app Renew a provisioning profile, when it has expired Repair a provisioning profile, when it is broken Create a new provisioning profile, if it doesn't exist already Supports App Store , Ad Hoc and Development profiles Support for multiple Apple accounts , storing your credentials securely in the Keychain Support for multiple Teams Support for Enterprise Profiles To automate iOS Push profiles you can use pem . Why not let Xcode do the work? sigh can easily be integrated into your CI-server (e.g. Jenkins) Xcode sometimes invalidates all existing profiles You have control over what happens You still get to have the signing files, which you can then use for your build scripts or store in git See sigh in action: Usage Note : It is recommended to use match according to the codesigning.guide for generating and maintaining your provisioning profiles. Use sigh directly only if you want full control over what's going on and know more about codesigning. fastlane sigh Yes, that's the whole command! sigh will create, repair and download profiles for the App Store by default. You can pass your bundle identifier and username like this: fastlane sigh -a com.krausefx.app -u username If you want to generate an Ad Hoc profile instead of an App Store profile: fastlane sigh --adhoc If you want to generate a Development profile: fastlane sigh --development To generate the profile in a specific directory: fastlane sigh -o \"~/Certificates/\" To download all your provisioning profiles use fastlane sigh download_all Optionally, use fastlane sigh download_all --download_xcode_profiles to also include the Xcode managed provisioning profiles For a list of available parameters and commands run fastlane action sigh Advanced By default, sigh will install the downloaded profile on your machine. If you just want to generate the profile and skip the installation, use the following flag: fastlane sigh --skip_install To save the provisioning profile under a specific name, use the -q option: fastlane sigh -a com.krausefx.app -u username -q \"myProfile.mobileprovision\" If for some reason you don't want sigh to verify that the code signing identity is installed on your local machine: fastlane sigh --skip_certificate_verification If you need the provisioning profile to be renewed regardless of its state use the --force option. This gives you a profile with the maximum lifetime. --force will also add all available devices to this profile. fastlane sigh --force By default, sigh will include all certificates on development profiles, and first certificate on other types. If you need to specify which certificate to use you can either use the environment variable SIGH_CERTIFICATE , or pass the name or expiry date of the certificate as argument: fastlane sigh -c \"SunApps GmbH\" For a list of available parameters and commands run fastlane action sigh Use with fastlane sigh becomes really interesting when used in fastlane in combination with cert . Update your Fastfile to contain the following code: lane :beta do cert sigh(force: true) end force: true will make sure to re-generate the provisioning profile on each run. This will result in sigh always using the correct signing certificate, which is installed on the local machine. Repair sigh can automatically repair all your existing provisioning profiles which are expired or just invalid. fastlane sigh repair Resign If you generated your ipa file but want to apply a different code signing onto the ipa file, you can use sigh resign : fastlane sigh resign sigh will find the ipa file and the provisioning profile for you if they are located in the current folder. You can pass more information using the command line: fastlane sigh resign ./path/app.ipa --signing_identity \"iPhone Distribution: Felix Krause\" -p \"my.mobileprovision\" Manage With sigh manage you can list all provisioning profiles installed locally. fastlane sigh manage Delete all expired provisioning profiles fastlane sigh manage -e Or delete all iOS Team Provisioning Profile by using a regular expression fastlane sigh manage -p \"iOS\\ ?Team Provisioning Profile:\" Environment Variables Run fastlane action sigh to get a list of all available environment variables. If you're using cert in combination with fastlane the signing certificate will automatically be selected for you. (make sure to run cert before sigh ) How does it work? sigh will access the iOS Dev Center to download, renew or generate the .mobileprovision file. It uses spaceship to communicate with Apple's web services. How is my password stored? sigh uses the CredentialsManager from fastlane . Tips Use 'ProvisionQL' for advanced Quick Look in Finder Install ProvisionQL . It will show you mobileprovision files like this: App Identifier couldn't be found If you also want to create a new App Identifier on the Apple Developer Portal, check out produce , which does exactly that. What happens to my Xcode managed profiles? sigh will never touch or use the profiles which are created and managed by Xcode. Instead sigh will manage its own set of provisioning profiles. sigh Supported platforms ios, mac Author @KrauseFx Returns The UUID of the profile sigh just fetched/generated 3 Examples get_provisioning_profile sigh # alias for \"get_provisioning_profile\" get_provisioning_profile( adhoc: true, force: true, filename: \"myFile.mobileprovision\" ) Parameters Key Description Default adhoc Setting this flag will generate AdHoc profiles instead of App Store Profiles false developer_id Setting this flag will generate Developer ID profiles instead of App Store Profiles false development Renew the development certificate instead of the production one false skip_install By default, the certificate will be added to your local machine. Setting this flag will skip this action false force Renew provisioning profiles regardless of its state - to automatically add all devices for ad hoc profiles false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false app_identifier The bundle identifier of your app * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * provisioning_name The name of the profile that is used on the Apple Developer Portal ignore_profiles_with_different_name Use in combination with :provisioning_name - when true only profiles matching this exact name will be downloaded false output_path Directory in which the profile should be stored . cert_id The ID of the code signing certificate to use (e.g. 78ADL6LVAA) cert_owner_name The certificate name to use for new profiles, or to renew with. (e.g. \"Felix Krause\") filename Filename to use for the generated provisioning profile (must include .mobileprovision) skip_fetch_profiles Skips the verification of existing profiles which is useful if you have thousands of profiles false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false skip_certificate_verification Skips the verification of the certificates for every existing profiles. This will make sure the provisioning profile can be used on the local machine * platform Set the provisioning profile's platform (i.e. ios, tvos, macos, catalyst) ios readonly Only fetch existing profile, don't generate new ones false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The sigh action generates the following Lane Variables: SharedValue Description SharedValues::SIGH_PROFILE_PATH A path in which certificates, key and profile are exported SharedValues::SIGH_PROFILE_PATHS Paths in which certificates, key and profile are exported SharedValues::SIGH_UUID UUID (Universally Unique IDentifier) of a provisioning profile SharedValues::SIGH_NAME The name of the profile SharedValues::SIGH_PROFILE_TYPE The profile type, can be app-store, ad-hoc, development, enterprise, developer-id, can be used in build_app as a default value for export_method To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action sigh CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sigh To pass parameters, make use of the : symbol, for example fastlane run sigh parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"sigh"},{"location":"actions/sigh/#sigh","text":"Alias for the get_provisioning_profile action","title":"sigh"},{"location":"actions/sigh/#features","text":"Download the latest provisioning profile for your app Renew a provisioning profile, when it has expired Repair a provisioning profile, when it is broken Create a new provisioning profile, if it doesn't exist already Supports App Store , Ad Hoc and Development profiles Support for multiple Apple accounts , storing your credentials securely in the Keychain Support for multiple Teams Support for Enterprise Profiles To automate iOS Push profiles you can use pem .","title":"Features"},{"location":"actions/sigh/#usage","text":"Note : It is recommended to use match according to the codesigning.guide for generating and maintaining your provisioning profiles. Use sigh directly only if you want full control over what's going on and know more about codesigning. fastlane sigh Yes, that's the whole command! sigh will create, repair and download profiles for the App Store by default. You can pass your bundle identifier and username like this: fastlane sigh -a com.krausefx.app -u username If you want to generate an Ad Hoc profile instead of an App Store profile: fastlane sigh --adhoc If you want to generate a Development profile: fastlane sigh --development To generate the profile in a specific directory: fastlane sigh -o \"~/Certificates/\" To download all your provisioning profiles use fastlane sigh download_all Optionally, use fastlane sigh download_all --download_xcode_profiles to also include the Xcode managed provisioning profiles For a list of available parameters and commands run fastlane action sigh","title":"Usage"},{"location":"actions/sigh/#repair","text":"sigh can automatically repair all your existing provisioning profiles which are expired or just invalid. fastlane sigh repair","title":"Repair"},{"location":"actions/sigh/#resign","text":"If you generated your ipa file but want to apply a different code signing onto the ipa file, you can use sigh resign : fastlane sigh resign sigh will find the ipa file and the provisioning profile for you if they are located in the current folder. You can pass more information using the command line: fastlane sigh resign ./path/app.ipa --signing_identity \"iPhone Distribution: Felix Krause\" -p \"my.mobileprovision\"","title":"Resign"},{"location":"actions/sigh/#manage","text":"With sigh manage you can list all provisioning profiles installed locally. fastlane sigh manage Delete all expired provisioning profiles fastlane sigh manage -e Or delete all iOS Team Provisioning Profile by using a regular expression fastlane sigh manage -p \"iOS\\ ?Team Provisioning Profile:\"","title":"Manage"},{"location":"actions/sigh/#environment-variables","text":"Run fastlane action sigh to get a list of all available environment variables. If you're using cert in combination with fastlane the signing certificate will automatically be selected for you. (make sure to run cert before sigh )","title":"Environment Variables"},{"location":"actions/sigh/#how-does-it-work","text":"sigh will access the iOS Dev Center to download, renew or generate the .mobileprovision file. It uses spaceship to communicate with Apple's web services.","title":"How does it work?"},{"location":"actions/sigh/#how-is-my-password-stored","text":"sigh uses the CredentialsManager from fastlane .","title":"How is my password stored?"},{"location":"actions/sigh/#tips","text":"","title":"Tips"},{"location":"actions/sigh/#use-provisionql-for-advanced-quick-look-in-finder","text":"Install ProvisionQL . It will show you mobileprovision files like this:","title":"Use 'ProvisionQL' for advanced Quick Look in Finder"},{"location":"actions/sigh/#app-identifier-couldnt-be-found","text":"If you also want to create a new App Identifier on the Apple Developer Portal, check out produce , which does exactly that.","title":"App Identifier couldn't be found"},{"location":"actions/sigh/#what-happens-to-my-xcode-managed-profiles","text":"sigh will never touch or use the profiles which are created and managed by Xcode. Instead sigh will manage its own set of provisioning profiles. sigh Supported platforms ios, mac Author @KrauseFx Returns The UUID of the profile sigh just fetched/generated","title":"What happens to my Xcode managed profiles?"},{"location":"actions/sigh/#3-examples","text":"get_provisioning_profile sigh # alias for \"get_provisioning_profile\" get_provisioning_profile( adhoc: true, force: true, filename: \"myFile.mobileprovision\" )","title":"3 Examples"},{"location":"actions/sigh/#parameters","text":"Key Description Default adhoc Setting this flag will generate AdHoc profiles instead of App Store Profiles false developer_id Setting this flag will generate Developer ID profiles instead of App Store Profiles false development Renew the development certificate instead of the production one false skip_install By default, the certificate will be added to your local machine. Setting this flag will skip this action false force Renew provisioning profiles regardless of its state - to automatically add all devices for ad hoc profiles false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false app_identifier The bundle identifier of your app * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * provisioning_name The name of the profile that is used on the Apple Developer Portal ignore_profiles_with_different_name Use in combination with :provisioning_name - when true only profiles matching this exact name will be downloaded false output_path Directory in which the profile should be stored . cert_id The ID of the code signing certificate to use (e.g. 78ADL6LVAA) cert_owner_name The certificate name to use for new profiles, or to renew with. (e.g. \"Felix Krause\") filename Filename to use for the generated provisioning profile (must include .mobileprovision) skip_fetch_profiles Skips the verification of existing profiles which is useful if you have thousands of profiles false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false skip_certificate_verification Skips the verification of the certificates for every existing profiles. This will make sure the provisioning profile can be used on the local machine * platform Set the provisioning profile's platform (i.e. ios, tvos, macos, catalyst) ios readonly Only fetch existing profile, don't generate new ones false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/sigh/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The sigh action generates the following Lane Variables: SharedValue Description SharedValues::SIGH_PROFILE_PATH A path in which certificates, key and profile are exported SharedValues::SIGH_PROFILE_PATHS Paths in which certificates, key and profile are exported SharedValues::SIGH_UUID UUID (Universally Unique IDentifier) of a provisioning profile SharedValues::SIGH_NAME The name of the profile SharedValues::SIGH_PROFILE_TYPE The profile type, can be app-store, ad-hoc, development, enterprise, developer-id, can be used in build_app as a default value for export_method To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/sigh/#documentation","text":"To show the documentation in your terminal, run fastlane action sigh","title":"Documentation"},{"location":"actions/sigh/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sigh To pass parameters, make use of the : symbol, for example fastlane run sigh parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/sigh/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/skip_docs/","text":"skip_docs Skip the creation of the fastlane/README.md file when running fastlane Tell fastlane to not automatically create a fastlane/README.md when running fastlane . You can always trigger the creation of this file manually by running fastlane docs . skip_docs Supported platforms ios, android, mac Author @KrauseFx 1 Example skip_docs Documentation To show the documentation in your terminal, run fastlane action skip_docs CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run skip_docs To pass parameters, make use of the : symbol, for example fastlane run skip_docs parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"skip_docs"},{"location":"actions/skip_docs/#skip_docs","text":"Skip the creation of the fastlane/README.md file when running fastlane Tell fastlane to not automatically create a fastlane/README.md when running fastlane . You can always trigger the creation of this file manually by running fastlane docs . skip_docs Supported platforms ios, android, mac Author @KrauseFx","title":"skip_docs"},{"location":"actions/skip_docs/#1-example","text":"skip_docs","title":"1 Example"},{"location":"actions/skip_docs/#documentation","text":"To show the documentation in your terminal, run fastlane action skip_docs","title":"Documentation"},{"location":"actions/skip_docs/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run skip_docs To pass parameters, make use of the : symbol, for example fastlane run skip_docs parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/skip_docs/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/slack/","text":"slack Send a success/error message to your Slack group Create an Incoming WebHook and export this as SLACK_URL . Can send a message to #channel (by default), a direct message to @username or a message to a private group group with success (green) or failure (red) status. slack Supported platforms ios, android, mac Author @KrauseFx 2 Examples slack(message: \"App successfully released!\") slack( message: \"App successfully released!\", channel: \"#channel\", # Optional, by default will post to the default channel configured for the POST URL. success: true, # Optional, defaults to true. payload: { # Optional, lets you specify any number of your own Slack attachments. \"Build Date\" => Time.new.to_s, \"Built by\" => \"Jenkins\", }, default_payloads: [:git_branch, :git_author], # Optional, lets you specify default payloads to include. Pass an empty array to suppress all the default payloads. attachment_properties: { # Optional, lets you specify any other properties available for attachments in the slack API (see https://api.slack.com/docs/attachments). # This hash is deep merged with the existing properties set using the other properties above. This allows your own fields properties to be appended to the existing fields that were created using the `payload` property for instance. thumb_url: \"http://example.com/path/to/thumb.png\", fields: [{ title: \"My Field\", value: \"My Value\", short: true }] } ) Parameters Key Description Default message The message that should be displayed on Slack. This supports the standard Slack markup language pretext This is optional text that appears above the message attachment block. This supports the standard Slack markup language channel #channel or @username use_webhook_configured_username_and_icon Use webhook's default username and icon settings? (true/false) false slack_url Create an Incoming WebHook for your Slack group username Overrides the webhook's username property if use_webhook_configured_username_and_icon is false fastlane icon_url Overrides the webhook's image property if use_webhook_configured_username_and_icon is false https://fastlane.tools/assets/img/fastlane_icon.png payload Add additional information to this post. payload must be a hash containing any key with any value {} default_payloads Specifies default payloads to include. Pass an empty array to suppress all the default payloads [\"lane\", \"test_result\", \"git_branch\", \"git_author\", \"last_git_commit\", \"last_git_commit_hash\"] attachment_properties Merge additional properties in the slack attachment, see https://api.slack.com/docs/attachments {} success Was this build successful? (true/false) true fail_on_error Should an error sending the slack notification cause a failure? (true/false) true link_names Find and link channel names and usernames (true/false) false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action slack CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run slack To pass parameters, make use of the : symbol, for example fastlane run slack parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"slack"},{"location":"actions/slack/#slack","text":"Send a success/error message to your Slack group Create an Incoming WebHook and export this as SLACK_URL . Can send a message to #channel (by default), a direct message to @username or a message to a private group group with success (green) or failure (red) status. slack Supported platforms ios, android, mac Author @KrauseFx","title":"slack"},{"location":"actions/slack/#2-examples","text":"slack(message: \"App successfully released!\") slack( message: \"App successfully released!\", channel: \"#channel\", # Optional, by default will post to the default channel configured for the POST URL. success: true, # Optional, defaults to true. payload: { # Optional, lets you specify any number of your own Slack attachments. \"Build Date\" => Time.new.to_s, \"Built by\" => \"Jenkins\", }, default_payloads: [:git_branch, :git_author], # Optional, lets you specify default payloads to include. Pass an empty array to suppress all the default payloads. attachment_properties: { # Optional, lets you specify any other properties available for attachments in the slack API (see https://api.slack.com/docs/attachments). # This hash is deep merged with the existing properties set using the other properties above. This allows your own fields properties to be appended to the existing fields that were created using the `payload` property for instance. thumb_url: \"http://example.com/path/to/thumb.png\", fields: [{ title: \"My Field\", value: \"My Value\", short: true }] } )","title":"2 Examples"},{"location":"actions/slack/#parameters","text":"Key Description Default message The message that should be displayed on Slack. This supports the standard Slack markup language pretext This is optional text that appears above the message attachment block. This supports the standard Slack markup language channel #channel or @username use_webhook_configured_username_and_icon Use webhook's default username and icon settings? (true/false) false slack_url Create an Incoming WebHook for your Slack group username Overrides the webhook's username property if use_webhook_configured_username_and_icon is false fastlane icon_url Overrides the webhook's image property if use_webhook_configured_username_and_icon is false https://fastlane.tools/assets/img/fastlane_icon.png payload Add additional information to this post. payload must be a hash containing any key with any value {} default_payloads Specifies default payloads to include. Pass an empty array to suppress all the default payloads [\"lane\", \"test_result\", \"git_branch\", \"git_author\", \"last_git_commit\", \"last_git_commit_hash\"] attachment_properties Merge additional properties in the slack attachment, see https://api.slack.com/docs/attachments {} success Was this build successful? (true/false) true fail_on_error Should an error sending the slack notification cause a failure? (true/false) true link_names Find and link channel names and usernames (true/false) false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/slack/#documentation","text":"To show the documentation in your terminal, run fastlane action slack","title":"Documentation"},{"location":"actions/slack/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run slack To pass parameters, make use of the : symbol, for example fastlane run slack parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/slack/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/slack_train/","text":"slack_train Show a train of the fastlane progress slack_train | -----|---- Supported platforms | ios, android, mac Author | @@KrauseFx Returns | A string that is being sent to slack To show the documentation in your terminal, run fastlane action slack_train View source code Back to actions","title":"Slack train"},{"location":"actions/slack_train/#slack_train","text":"Show a train of the fastlane progress slack_train | -----|---- Supported platforms | ios, android, mac Author | @@KrauseFx Returns | A string that is being sent to slack To show the documentation in your terminal, run fastlane action slack_train View source code Back to actions","title":"slack_train"},{"location":"actions/slack_train_crash/","text":"slack_train_crash slack_train_crash | -----|---- Supported platforms | ios, android, mac Author | @@KrauseFx To show the documentation in your terminal, run fastlane action slack_train_crash View source code Back to actions","title":"Slack train crash"},{"location":"actions/slack_train_crash/#slack_train_crash","text":"slack_train_crash | -----|---- Supported platforms | ios, android, mac Author | @@KrauseFx To show the documentation in your terminal, run fastlane action slack_train_crash View source code Back to actions","title":"slack_train_crash"},{"location":"actions/slack_train_start/","text":"slack_train_start Show a train of the fastlane progress slack_train_start | -----|---- Supported platforms | ios, android, mac Author | @@KrauseFx Parameters Key Description Default distance How many rails do we need? 5 train Train emoji \ud83d\ude9d rail Character or emoji for the rail = reverse_direction Pass true if you want the train to go from left to right false * = default value is dependent on the user's system To show the documentation in your terminal, run fastlane action slack_train_start View source code Back to actions","title":"Slack train start"},{"location":"actions/slack_train_start/#slack_train_start","text":"Show a train of the fastlane progress slack_train_start | -----|---- Supported platforms | ios, android, mac Author | @@KrauseFx","title":"slack_train_start"},{"location":"actions/slack_train_start/#parameters","text":"Key Description Default distance How many rails do we need? 5 train Train emoji \ud83d\ude9d rail Character or emoji for the rail = reverse_direction Pass true if you want the train to go from left to right false * = default value is dependent on the user's system To show the documentation in your terminal, run fastlane action slack_train_start View source code Back to actions","title":"Parameters"},{"location":"actions/slather/","text":"slather Use slather to generate a code coverage report Slather works with multiple code coverage formats, including Xcode 7 code coverage. Slather is available at https://github.com/SlatherOrg/slather . slather Supported platforms ios, mac Author @mattdelves 1 Example slather( build_directory: \"foo\", input_format: \"bah\", scheme: \"MyScheme\", proj: \"MyProject.xcodeproj\" ) Parameters Key Description Default build_directory The location of the build output proj The project file that slather looks at workspace The workspace that slather looks at scheme Scheme to use when calling slather configuration Configuration to use when calling slather (since slather-2.4.1) input_format The input format that slather should look for github Tell slather that it is running on Github Actions buildkite Tell slather that it is running on Buildkite teamcity Tell slather that it is running on TeamCity jenkins Tell slather that it is running on Jenkins travis Tell slather that it is running on TravisCI travis_pro Tell slather that it is running on TravisCI Pro circleci Tell slather that it is running on CircleCI coveralls Tell slather that it should post data to Coveralls simple_output Tell slather that it should output results to the terminal gutter_json Tell slather that it should output results as Gutter JSON format cobertura_xml Tell slather that it should output results as Cobertura XML format sonarqube_xml Tell slather that it should output results as SonarQube Generic XML format llvm_cov Tell slather that it should output results as llvm-cov show format json Tell slather that it should output results as static JSON report html Tell slather that it should output results as static HTML pages show Tell slather that it should open static html pages automatically false source_directory Tell slather the location of your source files output_directory Tell slather the location of for your output files ignore Tell slather to ignore files matching a path or any path from an array of paths verbose Tell slather to enable verbose mode use_bundle_exec Use bundle exec to execute slather. Make sure it is in the Gemfile false binary_basename Basename of the binary file, this should match the name of your bundle excluding its extension (i.e. YourApp [for YourApp.app bundle]) binary_file Binary file name to be used for code coverage arch Specify which architecture the binary file is in. Needed for universal binaries source_files A Dir.glob compatible pattern used to limit the lookup to specific source files. Ignored in gcov mode false decimals The amount of decimals to use for % coverage reporting false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action slather CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run slather To pass parameters, make use of the : symbol, for example fastlane run slather parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"slather"},{"location":"actions/slather/#slather","text":"Use slather to generate a code coverage report Slather works with multiple code coverage formats, including Xcode 7 code coverage. Slather is available at https://github.com/SlatherOrg/slather . slather Supported platforms ios, mac Author @mattdelves","title":"slather"},{"location":"actions/slather/#1-example","text":"slather( build_directory: \"foo\", input_format: \"bah\", scheme: \"MyScheme\", proj: \"MyProject.xcodeproj\" )","title":"1 Example"},{"location":"actions/slather/#parameters","text":"Key Description Default build_directory The location of the build output proj The project file that slather looks at workspace The workspace that slather looks at scheme Scheme to use when calling slather configuration Configuration to use when calling slather (since slather-2.4.1) input_format The input format that slather should look for github Tell slather that it is running on Github Actions buildkite Tell slather that it is running on Buildkite teamcity Tell slather that it is running on TeamCity jenkins Tell slather that it is running on Jenkins travis Tell slather that it is running on TravisCI travis_pro Tell slather that it is running on TravisCI Pro circleci Tell slather that it is running on CircleCI coveralls Tell slather that it should post data to Coveralls simple_output Tell slather that it should output results to the terminal gutter_json Tell slather that it should output results as Gutter JSON format cobertura_xml Tell slather that it should output results as Cobertura XML format sonarqube_xml Tell slather that it should output results as SonarQube Generic XML format llvm_cov Tell slather that it should output results as llvm-cov show format json Tell slather that it should output results as static JSON report html Tell slather that it should output results as static HTML pages show Tell slather that it should open static html pages automatically false source_directory Tell slather the location of your source files output_directory Tell slather the location of for your output files ignore Tell slather to ignore files matching a path or any path from an array of paths verbose Tell slather to enable verbose mode use_bundle_exec Use bundle exec to execute slather. Make sure it is in the Gemfile false binary_basename Basename of the binary file, this should match the name of your bundle excluding its extension (i.e. YourApp [for YourApp.app bundle]) binary_file Binary file name to be used for code coverage arch Specify which architecture the binary file is in. Needed for universal binaries source_files A Dir.glob compatible pattern used to limit the lookup to specific source files. Ignored in gcov mode false decimals The amount of decimals to use for % coverage reporting false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/slather/#documentation","text":"To show the documentation in your terminal, run fastlane action slather","title":"Documentation"},{"location":"actions/slather/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run slather To pass parameters, make use of the : symbol, for example fastlane run slather parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/slather/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/snapshot/","text":"snapshot Alias for the capture_ios_screenshots action Automate taking localized screenshots of your iOS, tvOS, and watchOS apps on every device Check out the new fastlane documentation on how to generate screenshots snapshot generates localized iOS, tvOS, and watchOS screenshots for different device types and languages for the App Store and can be uploaded using ( deliver ). You have to manually create 20 (languages) x 6 (devices) x 5 (screenshots) = 600 screenshots . It's hard to get everything right! New screenshots with every (design) update No loading indicators Same content / screens Clean Status Bar Uploading screenshots ( deliver is your friend) More information about creating perfect screenshots . snapshot runs completely in the background - you can do something else, while your computer takes the screenshots for you. Features \u2022 UI Tests \u2022 Quick Start \u2022 Usage \u2022 Tips \u2022 How? Features Create hundreds of screenshots in multiple languages on all simulators Take screenshots in multiple device simulators concurrently to cut down execution time (Xcode 9 only) Configure it once, store the configuration in git Do something else, while the computer takes the screenshots for you Integrates with fastlane and deliver Generates a beautiful web page, which shows all screenshots on all devices. This is perfect to send to QA or the marketing team snapshot automatically waits for network requests to be finished before taking a screenshot (we don't want loading images in the App Store screenshots) After snapshot successfully created new screenshots, it will generate a beautiful HTML file to get a quick overview of all screens: Why? This tool automatically switches the language and device type and runs UI Tests for every combination. Why should I automate this process? It takes hours to take screenshots You get a great overview of all your screens, running on all available simulators without the need to manually start it hundreds of times Easy verification for translators (without an iDevice) that translations do make sense in real App context Easy verification that localizations fit into labels on all screen dimensions It is an integration test: You can test for UI elements and other things inside your scripts Be so nice, and provide new screenshots with every App Store update. Your customers deserve it You realize, there is a spelling mistake in one of the screens? Well, just correct it and re-run the script UI Tests Getting started This project uses Apple's newly announced UI Tests. We will not go into detail on how to write scripts. Here a few links to get started: WWDC 2015 Introduction to UI Tests A first look into UI Tests UI Testing in Xcode 7 HSTestingBackchannel : \u2018Cheat\u2019 by communicating directly with your app Automating App Store screenshots using fastlane snapshot and frameit Quick Start Create a new UI Test target in your Xcode project ( top part of this article ) Run fastlane snapshot init in your project folder Add the ./SnapshotHelper.swift to your UI Test target (You can move the file anywhere you want) (Xcode 8 only) add the ./SnapshotHelperXcode8.swift to your UI Test target (Objective C only) add the bridging header to your test class: #import \"MYUITests-Swift.h\" (The bridging header is named after your test target with -Swift.h appended.) In your UI Test class, click the Record button on the bottom left and record your interaction To take a snapshot, call the following between interactions Swift: snapshot(\"01LoginScreen\") Objective C: [Snapshot snapshot:@\"01LoginScreen\" timeWaitingForIdle:10]; Add the following code to your setUp() method: Swift: let app = XCUIApplication() setupSnapshot(app) app.launch() Objective C: XCUIApplication *app = [[XCUIApplication alloc] init]; [Snapshot setupSnapshot:app waitForAnimations:NO]; [app launch]; Make sure you only have one launch call in your test class, as Xcode adds one automatically on new test files. You can try the snapshot example project by cloning this repo. To quick start your UI tests, you can use the UI Test recorder. You only have to interact with the simulator, and Xcode will generate the UI Test code for you. You can find the red record button on the bottom of the screen (more information in this blog post ) Usage fastlane snapshot Your screenshots will be stored in the ./screenshots/ folder by default (or ./fastlane/screenshots if you're using fastlane ) New with Xcode 9, snapshot can run multiple simulators concurrently. This is the default behavior in order to take your screenshots as quickly as possible. This can be disabled to run each device, one at a time, by setting the :concurrent_simulators option to false . Note: While running snapshot with Xcode 9, the simulators will not be visibly spawned. So, while you won't see the simulators running your tests, they will, in fact, be taking your screenshots. If any error occurs while running the snapshot script on a device, that device will not have any screenshots, and snapshot will continue with the next device or language. To stop the flow after the first error, run fastlane snapshot --stop_after_first_error Also by default, snapshot will open the HTML after all is done. This can be skipped with the following command fastlane snapshot --stop_after_first_error --skip_open_summary There are a lot of options available that define how to build your app, for example fastlane snapshot --scheme \"UITests\" --configuration \"Release\" --sdk \"iphonesimulator\" Reinstall the app before running snapshot fastlane snapshot --reinstall_app --app_identifier \"tools.fastlane.app\" By default snapshot automatically retries running UI Tests if they fail. This is due to randomly failing UI Tests (e.g. #2517 ). You can adapt this number using fastlane snapshot --number_of_retries 3 Add photos and/or videos to the simulator before running snapshot fastlane snapshot --add_photos MyTestApp/Assets/demo.jpg --add_videos MyTestApp/Assets/demo.mp4 For a list for all available options run fastlane action snapshot After running snapshot you will get a nice summary: Snapfile All of the available options can also be stored in a configuration file called the Snapfile . Since most values will not change often for your project, it is recommended to store them there: First make sure to have a Snapfile (you get it for free when running fastlane snapshot init ) The Snapfile can contain all the options that are also available on fastlane action snapshot scheme(\"UITests\") devices([ \"iPad (7th generation)\", \"iPad Air (3rd generation)\", \"iPad Pro (11-inch)\", \"iPad Pro (12.9-inch) (3rd generation)\", \"iPad Pro (9.7-inch)\", \"iPhone 11\", \"iPhone 11 Pro\", \"iPhone 11 Pro Max\", \"iPhone 8\", \"iPhone 8 Plus\" ]) languages([ \"en-US\", \"de-DE\", \"es-ES\", [\"pt\", \"pt_BR\"] # Portuguese with Brazilian locale ]) launch_arguments([\"-username Felix\"]) # The directory in which the screenshots should be stored output_directory('./screenshots') clear_previous_screenshots(true) override_status_bar(true) add_photos([\"MyTestApp/Assets/demo.jpg\"]) Completely reset all simulators You can run this command in the terminal to delete and re-create all iOS and tvOS simulators: fastlane snapshot reset_simulators Warning : This will delete all your simulators and replace by new ones! This is useful, if you run into weird problems when running snapshot . You can use the environment variable SNAPSHOT_FORCE_DELETE to stop asking for confirmation before deleting. SNAPSHOT_FORCE_DELETE=1 fastlane snapshot reset_simulators Update snapshot helpers Some updates require the helper files to be updated. snapshot will automatically warn you and tell you how to update. Basically you can run fastlane snapshot update to update your SnapshotHelper.swift files. In case you modified your SnapshotHelper.swift and want to manually update the file, check out SnapshotHelper.swift . Launch Arguments You can provide additional arguments to your app on launch. These strings will be available in your app (e.g. not in the testing target) through ProcessInfo.processInfo.arguments . Alternatively, use user-default syntax ( -key value ) and they will be available as key-value pairs in UserDefaults.standard . launch_arguments([ \"-firstName Felix -lastName Krause\" ]) name.text = UserDefaults.standard.string(forKey: \"firstName\") // name.text = \"Felix\" snapshot includes -FASTLANE_SNAPSHOT YES , which will set a temporary user default for the key FASTLANE_SNAPSHOT , you may use this to detect when the app is run by snapshot . if UserDefaults.standard.bool(forKey: \"FASTLANE_SNAPSHOT\") { // runtime check that we are in snapshot mode } Specify multiple argument strings and snapshot will generate screenshots for each combination of arguments, devices, and languages. This is useful for comparing the same screenshots with different feature flags, dynamic text sizes, and different data sets. # Snapfile for A/B Test Comparison launch_arguments([ \"-secretFeatureEnabled YES\", \"-secretFeatureEnabled NO\" ]) Xcode Environment Variables snapshot includes FASTLANE_SNAPSHOT=YES and FASTLANE_LANGUAGE= as arguments when executing xcodebuild . This means you may use these environment variables in a custom build phase run script to do any additional configuration. How does it work? The easiest solution would be to just render the UIWindow into a file. That's not possible because UI Tests don't run on a main thread. So snapshot uses a different approach: When you run unit tests in Xcode, the reporter generates a plist file, documenting all events that occurred during the tests ( More Information ). Additionally, Xcode generates screenshots before, during and after each of these events. There is no way to manually trigger a screenshot event. The screenshots and the plist files are stored in the DerivedData directory, which snapshot stores in a temporary folder. When the user calls snapshot(...) in the UI Tests (Swift or Objective C) the script actually does a rotation to .Unknown which doesn't have any effect on the actual app, but is enough to trigger a screenshot. It has no effect to the application and is not something you would do in your tests. The goal was to find some event that a user would never trigger, so that we know it's from snapshot . On tvOS, there is no orientation so we ask for a count of app views with type \"Browser\" (which should never exist on tvOS). snapshot then iterates through all test events and check where we either did this weird rotation (on iOS) or searched for browsers (on tvOS). Once snapshot has all events triggered by snapshot it collects a ordered list of all the file names of the actual screenshots of the application. In the test output, the Swift snapshot function will print out something like this snapshot: [some random text here] snapshot finds all these entries using a regex. The number of snapshot outputs in the terminal and the number of snapshot events in the plist file should be the same. Knowing that, snapshot automatically matches these 2 lists to identify the name of each of these screenshots. They are then copied over to the output directory and separated by language and device. 2 thing have to be passed on from snapshot to the xcodebuild command line tool: The device type is passed via the destination parameter of the xcodebuild parameter The language is passed via a temporary file which is written by snapshot before running the tests and read by the UI Tests when launching the application If you find a better way to do any of this, please submit an issue on GitHub or even a pull request :+1: Radar 23062925 has been resolved with Xcode 8.3, so it's now possible to actually take screenshots from the simulator. We'll keep using the old approach for now, since many of you still want to use older versions of Xcode. Tips Check out the new fastlane documentation on how to generate screenshots Frame the screenshots If you want to add frames around the screenshots and even put a title on top, check out frameit . Available language codes ALL_LANGUAGES = [\"da\", \"de-DE\", \"el\", \"en-AU\", \"en-CA\", \"en-GB\", \"en-US\", \"es-ES\", \"es-MX\", \"fi\", \"fr-CA\", \"fr-FR\", \"id\", \"it\", \"ja\", \"ko\", \"ms\", \"nl-NL\", \"no\", \"pt-BR\", \"pt-PT\", \"ru\", \"sv\", \"th\", \"tr\", \"vi\", \"zh-Hans\", \"zh-Hant\"] To get more information about language and locale codes please read Internationalization and Localization Guide . Use a clean status bar You can set override_status_bar to true to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available. Editing the Snapfile Change syntax highlighting to Ruby . Simulator doesn't launch the application When the app dies directly after the application is launched there might be 2 problems The simulator is somehow in a broken state and you need to re-create it. You can use snapshot reset_simulators to reset all simulators (this will remove all installed apps) A restart helps very often Determine language To detect the currently used localization in your tests, access the deviceLanguage variable from SnapshotHelper.swift . Speed up snapshots A lot of time in UI tests is spent waiting for animations. You can disable UIView animations in your app to make the tests faster: if ProcessInfo().arguments.contains(\"SKIP_ANIMATIONS\") { UIView.setAnimationsEnabled(false) } This requires you to pass the launch argument like so: snapshot(launch_arguments: [\"SKIP_ANIMATIONS\"]) By default, snapshot will wait for a short time for the animations to finish. If you're skipping the animations, this wait time is unnecessary and can be skipped: setupSnapshot(app, waitForAnimations: false) snapshot Supported platforms ios, mac Author @KrauseFx 3 Examples capture_ios_screenshots snapshot # alias for \"capture_ios_screenshots\" capture_ios_screenshots( skip_open_summary: true, clean: true ) Parameters Key Description Default workspace Path the workspace file project Path the project file xcargs Pass additional arguments to xcodebuild for the test phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app devices A list of devices you want to take the screenshots from languages A list of languages which should be used [\"en-US\"] launch_arguments A list of launch arguments which should be used [\"\"] output_directory The directory where to store the screenshots * output_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false ios_version By default, the latest version should be used automatically. If you want to change it, do it here skip_open_summary Don't open the HTML summary after running snapshot false skip_helper_version_check Do not check for most recent SnapshotHelper code false clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running snapshot false reinstall_app Enabling this option will automatically uninstall the application before running it false erase_simulator Enabling this option will automatically erase the simulator before running the application false headless Enabling this option will prevent displaying the simulator window true override_status_bar Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception (Adjust 'SNAPSHOT_SIMULATOR_WAIT_FOR_BOOT_TIMEOUT' environment variable if override status bar is not working. Might be because simulator is not fully booted. Defaults to 10 seconds) false override_status_bar_arguments Fully customize the status bar by setting each option here. Requires override_status_bar to be set to true . See xcrun simctl status_bar --help localize_simulator Enabling this option will configure the Simulator's system language false dark_mode Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark) app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * add_photos A list of photos that should be added to the simulator before running the application add_videos A list of videos that should be added to the simulator before running the application html_template A path to screenshots.html template buildlog_path The directory where to store the build log * clean Should the project be cleaned before building it? false test_without_building Test without building, requires a derived data path configuration The configuration to use when building the app. Defaults to 'Release' * sdk The SDK that should be used for building the application scheme The scheme you want to use, this must be the scheme for the UI Tests number_of_retries The number of times a test can fail before snapshot should stop retrying 1 stop_after_first_error Should snapshot stop immediately after the tests completely failed on one device? false derived_data_path The directory where build products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false test_target_name The name of the target you want to test (if you desire to override the Target Application from Xcode) namespace_log_files Separate the log files per device and per language concurrent_simulators Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9 true disable_slide_to_type Disable the simulator from showing the 'Slide to type' prompt false cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false testplan The testplan associated with the scheme that should be used for testing only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * xcpretty_args DEPRECATED! Use xcodebuild_formatter: '' instead - Additional xcpretty arguments disable_xcpretty Disable xcpretty formatting of build suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The snapshot action generates the following Lane Variables: SharedValue Description SharedValues::SNAPSHOT_SCREENSHOTS_PATH The path to the screenshots To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action snapshot CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run snapshot To pass parameters, make use of the : symbol, for example fastlane run snapshot parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"snapshot"},{"location":"actions/snapshot/#snapshot","text":"Alias for the capture_ios_screenshots action","title":"snapshot"},{"location":"actions/snapshot/#features","text":"Create hundreds of screenshots in multiple languages on all simulators Take screenshots in multiple device simulators concurrently to cut down execution time (Xcode 9 only) Configure it once, store the configuration in git Do something else, while the computer takes the screenshots for you Integrates with fastlane and deliver Generates a beautiful web page, which shows all screenshots on all devices. This is perfect to send to QA or the marketing team snapshot automatically waits for network requests to be finished before taking a screenshot (we don't want loading images in the App Store screenshots) After snapshot successfully created new screenshots, it will generate a beautiful HTML file to get a quick overview of all screens:","title":"Features"},{"location":"actions/snapshot/#why","text":"This tool automatically switches the language and device type and runs UI Tests for every combination.","title":"Why?"},{"location":"actions/snapshot/#ui-tests","text":"","title":"UI Tests"},{"location":"actions/snapshot/#getting-started","text":"This project uses Apple's newly announced UI Tests. We will not go into detail on how to write scripts. Here a few links to get started: WWDC 2015 Introduction to UI Tests A first look into UI Tests UI Testing in Xcode 7 HSTestingBackchannel : \u2018Cheat\u2019 by communicating directly with your app Automating App Store screenshots using fastlane snapshot and frameit","title":"Getting started"},{"location":"actions/snapshot/#quick-start","text":"Create a new UI Test target in your Xcode project ( top part of this article ) Run fastlane snapshot init in your project folder Add the ./SnapshotHelper.swift to your UI Test target (You can move the file anywhere you want) (Xcode 8 only) add the ./SnapshotHelperXcode8.swift to your UI Test target (Objective C only) add the bridging header to your test class: #import \"MYUITests-Swift.h\" (The bridging header is named after your test target with -Swift.h appended.) In your UI Test class, click the Record button on the bottom left and record your interaction To take a snapshot, call the following between interactions Swift: snapshot(\"01LoginScreen\") Objective C: [Snapshot snapshot:@\"01LoginScreen\" timeWaitingForIdle:10]; Add the following code to your setUp() method: Swift: let app = XCUIApplication() setupSnapshot(app) app.launch() Objective C: XCUIApplication *app = [[XCUIApplication alloc] init]; [Snapshot setupSnapshot:app waitForAnimations:NO]; [app launch]; Make sure you only have one launch call in your test class, as Xcode adds one automatically on new test files. You can try the snapshot example project by cloning this repo. To quick start your UI tests, you can use the UI Test recorder. You only have to interact with the simulator, and Xcode will generate the UI Test code for you. You can find the red record button on the bottom of the screen (more information in this blog post )","title":"Quick Start"},{"location":"actions/snapshot/#usage","text":"fastlane snapshot Your screenshots will be stored in the ./screenshots/ folder by default (or ./fastlane/screenshots if you're using fastlane ) New with Xcode 9, snapshot can run multiple simulators concurrently. This is the default behavior in order to take your screenshots as quickly as possible. This can be disabled to run each device, one at a time, by setting the :concurrent_simulators option to false . Note: While running snapshot with Xcode 9, the simulators will not be visibly spawned. So, while you won't see the simulators running your tests, they will, in fact, be taking your screenshots. If any error occurs while running the snapshot script on a device, that device will not have any screenshots, and snapshot will continue with the next device or language. To stop the flow after the first error, run fastlane snapshot --stop_after_first_error Also by default, snapshot will open the HTML after all is done. This can be skipped with the following command fastlane snapshot --stop_after_first_error --skip_open_summary There are a lot of options available that define how to build your app, for example fastlane snapshot --scheme \"UITests\" --configuration \"Release\" --sdk \"iphonesimulator\" Reinstall the app before running snapshot fastlane snapshot --reinstall_app --app_identifier \"tools.fastlane.app\" By default snapshot automatically retries running UI Tests if they fail. This is due to randomly failing UI Tests (e.g. #2517 ). You can adapt this number using fastlane snapshot --number_of_retries 3 Add photos and/or videos to the simulator before running snapshot fastlane snapshot --add_photos MyTestApp/Assets/demo.jpg --add_videos MyTestApp/Assets/demo.mp4 For a list for all available options run fastlane action snapshot After running snapshot you will get a nice summary:","title":"Usage"},{"location":"actions/snapshot/#snapfile","text":"All of the available options can also be stored in a configuration file called the Snapfile . Since most values will not change often for your project, it is recommended to store them there: First make sure to have a Snapfile (you get it for free when running fastlane snapshot init ) The Snapfile can contain all the options that are also available on fastlane action snapshot scheme(\"UITests\") devices([ \"iPad (7th generation)\", \"iPad Air (3rd generation)\", \"iPad Pro (11-inch)\", \"iPad Pro (12.9-inch) (3rd generation)\", \"iPad Pro (9.7-inch)\", \"iPhone 11\", \"iPhone 11 Pro\", \"iPhone 11 Pro Max\", \"iPhone 8\", \"iPhone 8 Plus\" ]) languages([ \"en-US\", \"de-DE\", \"es-ES\", [\"pt\", \"pt_BR\"] # Portuguese with Brazilian locale ]) launch_arguments([\"-username Felix\"]) # The directory in which the screenshots should be stored output_directory('./screenshots') clear_previous_screenshots(true) override_status_bar(true) add_photos([\"MyTestApp/Assets/demo.jpg\"])","title":"Snapfile"},{"location":"actions/snapshot/#update-snapshot-helpers","text":"Some updates require the helper files to be updated. snapshot will automatically warn you and tell you how to update. Basically you can run fastlane snapshot update to update your SnapshotHelper.swift files. In case you modified your SnapshotHelper.swift and want to manually update the file, check out SnapshotHelper.swift .","title":"Update snapshot helpers"},{"location":"actions/snapshot/#launch-arguments","text":"You can provide additional arguments to your app on launch. These strings will be available in your app (e.g. not in the testing target) through ProcessInfo.processInfo.arguments . Alternatively, use user-default syntax ( -key value ) and they will be available as key-value pairs in UserDefaults.standard . launch_arguments([ \"-firstName Felix -lastName Krause\" ]) name.text = UserDefaults.standard.string(forKey: \"firstName\") // name.text = \"Felix\" snapshot includes -FASTLANE_SNAPSHOT YES , which will set a temporary user default for the key FASTLANE_SNAPSHOT , you may use this to detect when the app is run by snapshot . if UserDefaults.standard.bool(forKey: \"FASTLANE_SNAPSHOT\") { // runtime check that we are in snapshot mode } Specify multiple argument strings and snapshot will generate screenshots for each combination of arguments, devices, and languages. This is useful for comparing the same screenshots with different feature flags, dynamic text sizes, and different data sets. # Snapfile for A/B Test Comparison launch_arguments([ \"-secretFeatureEnabled YES\", \"-secretFeatureEnabled NO\" ])","title":"Launch Arguments"},{"location":"actions/snapshot/#xcode-environment-variables","text":"snapshot includes FASTLANE_SNAPSHOT=YES and FASTLANE_LANGUAGE= as arguments when executing xcodebuild . This means you may use these environment variables in a custom build phase run script to do any additional configuration.","title":"Xcode Environment Variables"},{"location":"actions/snapshot/#how-does-it-work","text":"The easiest solution would be to just render the UIWindow into a file. That's not possible because UI Tests don't run on a main thread. So snapshot uses a different approach: When you run unit tests in Xcode, the reporter generates a plist file, documenting all events that occurred during the tests ( More Information ). Additionally, Xcode generates screenshots before, during and after each of these events. There is no way to manually trigger a screenshot event. The screenshots and the plist files are stored in the DerivedData directory, which snapshot stores in a temporary folder. When the user calls snapshot(...) in the UI Tests (Swift or Objective C) the script actually does a rotation to .Unknown which doesn't have any effect on the actual app, but is enough to trigger a screenshot. It has no effect to the application and is not something you would do in your tests. The goal was to find some event that a user would never trigger, so that we know it's from snapshot . On tvOS, there is no orientation so we ask for a count of app views with type \"Browser\" (which should never exist on tvOS). snapshot then iterates through all test events and check where we either did this weird rotation (on iOS) or searched for browsers (on tvOS). Once snapshot has all events triggered by snapshot it collects a ordered list of all the file names of the actual screenshots of the application. In the test output, the Swift snapshot function will print out something like this snapshot: [some random text here] snapshot finds all these entries using a regex. The number of snapshot outputs in the terminal and the number of snapshot events in the plist file should be the same. Knowing that, snapshot automatically matches these 2 lists to identify the name of each of these screenshots. They are then copied over to the output directory and separated by language and device. 2 thing have to be passed on from snapshot to the xcodebuild command line tool: The device type is passed via the destination parameter of the xcodebuild parameter The language is passed via a temporary file which is written by snapshot before running the tests and read by the UI Tests when launching the application If you find a better way to do any of this, please submit an issue on GitHub or even a pull request :+1: Radar 23062925 has been resolved with Xcode 8.3, so it's now possible to actually take screenshots from the simulator. We'll keep using the old approach for now, since many of you still want to use older versions of Xcode.","title":"How does it work?"},{"location":"actions/snapshot/#tips","text":"","title":"Tips"},{"location":"actions/snapshot/#frame-the-screenshots","text":"If you want to add frames around the screenshots and even put a title on top, check out frameit .","title":"Frame the screenshots"},{"location":"actions/snapshot/#available-language-codes","text":"ALL_LANGUAGES = [\"da\", \"de-DE\", \"el\", \"en-AU\", \"en-CA\", \"en-GB\", \"en-US\", \"es-ES\", \"es-MX\", \"fi\", \"fr-CA\", \"fr-FR\", \"id\", \"it\", \"ja\", \"ko\", \"ms\", \"nl-NL\", \"no\", \"pt-BR\", \"pt-PT\", \"ru\", \"sv\", \"th\", \"tr\", \"vi\", \"zh-Hans\", \"zh-Hant\"] To get more information about language and locale codes please read Internationalization and Localization Guide .","title":"Available language codes"},{"location":"actions/snapshot/#use-a-clean-status-bar","text":"You can set override_status_bar to true to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available.","title":"Use a clean status bar"},{"location":"actions/snapshot/#editing-the-snapfile","text":"Change syntax highlighting to Ruby .","title":"Editing the Snapfile"},{"location":"actions/snapshot/#determine-language","text":"To detect the currently used localization in your tests, access the deviceLanguage variable from SnapshotHelper.swift .","title":"Determine language"},{"location":"actions/snapshot/#speed-up-snapshots","text":"A lot of time in UI tests is spent waiting for animations. You can disable UIView animations in your app to make the tests faster: if ProcessInfo().arguments.contains(\"SKIP_ANIMATIONS\") { UIView.setAnimationsEnabled(false) } This requires you to pass the launch argument like so: snapshot(launch_arguments: [\"SKIP_ANIMATIONS\"]) By default, snapshot will wait for a short time for the animations to finish. If you're skipping the animations, this wait time is unnecessary and can be skipped: setupSnapshot(app, waitForAnimations: false) snapshot Supported platforms ios, mac Author @KrauseFx","title":"Speed up snapshots"},{"location":"actions/snapshot/#3-examples","text":"capture_ios_screenshots snapshot # alias for \"capture_ios_screenshots\" capture_ios_screenshots( skip_open_summary: true, clean: true )","title":"3 Examples"},{"location":"actions/snapshot/#parameters","text":"Key Description Default workspace Path the workspace file project Path the project file xcargs Pass additional arguments to xcodebuild for the test phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app devices A list of devices you want to take the screenshots from languages A list of languages which should be used [\"en-US\"] launch_arguments A list of launch arguments which should be used [\"\"] output_directory The directory where to store the screenshots * output_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false ios_version By default, the latest version should be used automatically. If you want to change it, do it here skip_open_summary Don't open the HTML summary after running snapshot false skip_helper_version_check Do not check for most recent SnapshotHelper code false clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running snapshot false reinstall_app Enabling this option will automatically uninstall the application before running it false erase_simulator Enabling this option will automatically erase the simulator before running the application false headless Enabling this option will prevent displaying the simulator window true override_status_bar Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception (Adjust 'SNAPSHOT_SIMULATOR_WAIT_FOR_BOOT_TIMEOUT' environment variable if override status bar is not working. Might be because simulator is not fully booted. Defaults to 10 seconds) false override_status_bar_arguments Fully customize the status bar by setting each option here. Requires override_status_bar to be set to true . See xcrun simctl status_bar --help localize_simulator Enabling this option will configure the Simulator's system language false dark_mode Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark) app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * add_photos A list of photos that should be added to the simulator before running the application add_videos A list of videos that should be added to the simulator before running the application html_template A path to screenshots.html template buildlog_path The directory where to store the build log * clean Should the project be cleaned before building it? false test_without_building Test without building, requires a derived data path configuration The configuration to use when building the app. Defaults to 'Release' * sdk The SDK that should be used for building the application scheme The scheme you want to use, this must be the scheme for the UI Tests number_of_retries The number of times a test can fail before snapshot should stop retrying 1 stop_after_first_error Should snapshot stop immediately after the tests completely failed on one device? false derived_data_path The directory where build products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false test_target_name The name of the target you want to test (if you desire to override the Target Application from Xcode) namespace_log_files Separate the log files per device and per language concurrent_simulators Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9 true disable_slide_to_type Disable the simulator from showing the 'Slide to type' prompt false cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false testplan The testplan associated with the scheme that should be used for testing only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * xcpretty_args DEPRECATED! Use xcodebuild_formatter: '' instead - Additional xcpretty arguments disable_xcpretty Disable xcpretty formatting of build suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/snapshot/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The snapshot action generates the following Lane Variables: SharedValue Description SharedValues::SNAPSHOT_SCREENSHOTS_PATH The path to the screenshots To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/snapshot/#documentation","text":"To show the documentation in your terminal, run fastlane action snapshot","title":"Documentation"},{"location":"actions/snapshot/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run snapshot To pass parameters, make use of the : symbol, for example fastlane run snapshot parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/snapshot/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/sonar/","text":"sonar Invokes sonar-scanner to programmatically run SonarQube analysis See http://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner for details. It can process unit test results if formatted as junit report as shown in xctest action. It can also integrate coverage reports in Cobertura format, which can be transformed into by the slather action. sonar Supported platforms ios, android, mac Author @c_gretzki Returns The exit code of the sonar-scanner binary 2 Examples sonar( project_key: \"name.gretzki.awesomeApp\", project_version: \"1.0\", project_name: \"iOS - AwesomeApp\", sources_path: File.expand_path(\"../AwesomeApp\") ) sonar( project_key: \"name.gretzki.awesomeApp\", project_version: \"1.0\", project_name: \"iOS - AwesomeApp\", sources_path: File.expand_path(\"../AwesomeApp\"), sonar_organization: \"myOrg\", sonar_login: \"123456abcdef\", sonar_url: \"https://sonarcloud.io\" ) Parameters Key Description Default project_configuration_path The path to your sonar project configuration file; defaults to sonar-project.properties project_key The key sonar uses to identify the project, e.g. name.gretzki.awesomeApp . Must either be specified here or inside the sonar project configuration file project_name The name of the project that gets displayed on the sonar report page. Must either be specified here or inside the sonar project configuration file project_version The project's version that gets displayed on the sonar report page. Must either be specified here or inside the sonar project configuration file sources_path Comma-separated paths to directories containing source files. Must either be specified here or inside the sonar project configuration file exclusions Comma-separated paths to directories to be excluded from the analysis project_language Language key, e.g. objc source_encoding Used encoding of source files, e.g., UTF-8 sonar_runner_args Pass additional arguments to sonar-scanner. Be sure to provide the arguments with a leading -D e.g. FL_SONAR_RUNNER_ARGS=\"-Dsonar.verbose=true\" sonar_login Pass the Sonar Login token (e.g: xxxxxxprivate_token_XXXXbXX7e) sonar_url Pass the url of the Sonar server sonar_organization Key of the organization on SonarCloud branch_name Pass the branch name which is getting scanned pull_request_branch The name of the branch that contains the changes to be merged pull_request_base The long-lived branch into which the PR will be merged pull_request_key Unique identifier of your PR. Must correspond to the key of the PR in GitHub or TFS * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action sonar CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sonar To pass parameters, make use of the : symbol, for example fastlane run sonar parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"sonar"},{"location":"actions/sonar/#sonar","text":"Invokes sonar-scanner to programmatically run SonarQube analysis See http://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner for details. It can process unit test results if formatted as junit report as shown in xctest action. It can also integrate coverage reports in Cobertura format, which can be transformed into by the slather action. sonar Supported platforms ios, android, mac Author @c_gretzki Returns The exit code of the sonar-scanner binary","title":"sonar"},{"location":"actions/sonar/#2-examples","text":"sonar( project_key: \"name.gretzki.awesomeApp\", project_version: \"1.0\", project_name: \"iOS - AwesomeApp\", sources_path: File.expand_path(\"../AwesomeApp\") ) sonar( project_key: \"name.gretzki.awesomeApp\", project_version: \"1.0\", project_name: \"iOS - AwesomeApp\", sources_path: File.expand_path(\"../AwesomeApp\"), sonar_organization: \"myOrg\", sonar_login: \"123456abcdef\", sonar_url: \"https://sonarcloud.io\" )","title":"2 Examples"},{"location":"actions/sonar/#parameters","text":"Key Description Default project_configuration_path The path to your sonar project configuration file; defaults to sonar-project.properties project_key The key sonar uses to identify the project, e.g. name.gretzki.awesomeApp . Must either be specified here or inside the sonar project configuration file project_name The name of the project that gets displayed on the sonar report page. Must either be specified here or inside the sonar project configuration file project_version The project's version that gets displayed on the sonar report page. Must either be specified here or inside the sonar project configuration file sources_path Comma-separated paths to directories containing source files. Must either be specified here or inside the sonar project configuration file exclusions Comma-separated paths to directories to be excluded from the analysis project_language Language key, e.g. objc source_encoding Used encoding of source files, e.g., UTF-8 sonar_runner_args Pass additional arguments to sonar-scanner. Be sure to provide the arguments with a leading -D e.g. FL_SONAR_RUNNER_ARGS=\"-Dsonar.verbose=true\" sonar_login Pass the Sonar Login token (e.g: xxxxxxprivate_token_XXXXbXX7e) sonar_url Pass the url of the Sonar server sonar_organization Key of the organization on SonarCloud branch_name Pass the branch name which is getting scanned pull_request_branch The name of the branch that contains the changes to be merged pull_request_base The long-lived branch into which the PR will be merged pull_request_key Unique identifier of your PR. Must correspond to the key of the PR in GitHub or TFS * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/sonar/#documentation","text":"To show the documentation in your terminal, run fastlane action sonar","title":"Documentation"},{"location":"actions/sonar/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sonar To pass parameters, make use of the : symbol, for example fastlane run sonar parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/sonar/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/sourcedocs/","text":"sourcedocs Generate docs using SourceDocs sourcedocs Supported platforms ios, mac Author @Kukurijek 2 Examples sourcedocs(output_folder: 'docs') sourcedocs(output_folder: 'docs', clean: true, reproducible: true, scheme: 'MyApp') Parameters Key Description Default all_modules Generate documentation for all modules in a Swift package spm_module Generate documentation for Swift Package Manager module module_name Generate documentation for a Swift module link_beginning The text to begin links with link_ending The text to end links with (default: .md) output_folder Output directory to clean (default: Documentation/Reference) min_acl Access level to include in documentation [private, fileprivate, internal, public, open] (default: public) module_name_path Include the module name as part of the output folder path clean Delete output folder before generating documentation collapsible Put methods, properties and enum cases inside collapsible blocks table_of_contents Generate a table of contents with properties and methods for each type reproducible Generate documentation that is reproducible: only depends on the sources scheme Create documentation for specific scheme sdk_platform Create documentation for specific sdk platform * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action sourcedocs CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sourcedocs To pass parameters, make use of the : symbol, for example fastlane run sourcedocs parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"sourcedocs"},{"location":"actions/sourcedocs/#sourcedocs","text":"Generate docs using SourceDocs sourcedocs Supported platforms ios, mac Author @Kukurijek","title":"sourcedocs"},{"location":"actions/sourcedocs/#2-examples","text":"sourcedocs(output_folder: 'docs') sourcedocs(output_folder: 'docs', clean: true, reproducible: true, scheme: 'MyApp')","title":"2 Examples"},{"location":"actions/sourcedocs/#parameters","text":"Key Description Default all_modules Generate documentation for all modules in a Swift package spm_module Generate documentation for Swift Package Manager module module_name Generate documentation for a Swift module link_beginning The text to begin links with link_ending The text to end links with (default: .md) output_folder Output directory to clean (default: Documentation/Reference) min_acl Access level to include in documentation [private, fileprivate, internal, public, open] (default: public) module_name_path Include the module name as part of the output folder path clean Delete output folder before generating documentation collapsible Put methods, properties and enum cases inside collapsible blocks table_of_contents Generate a table of contents with properties and methods for each type reproducible Generate documentation that is reproducible: only depends on the sources scheme Create documentation for specific scheme sdk_platform Create documentation for specific sdk platform * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/sourcedocs/#documentation","text":"To show the documentation in your terminal, run fastlane action sourcedocs","title":"Documentation"},{"location":"actions/sourcedocs/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sourcedocs To pass parameters, make use of the : symbol, for example fastlane run sourcedocs parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/sourcedocs/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/spaceship_logs/","text":"spaceship_logs Find, print, and copy Spaceship logs spaceship_logs Supported platforms ios, android, mac Author @joshdholtz Returns The array of Spaceship logs 5 Examples spaceship_logs spaceship_logs( copy_to_path: \"/tmp/artifacts\" ) spaceship_logs( copy_to_clipboard: true ) spaceship_logs( print_contents: true, print_paths: true ) spaceship_logs( latest: false, print_contents: true, print_paths: true ) Parameters Key Description Default latest Finds only the latest Spaceshop log file if set to true, otherwise returns all true print_contents Prints the contents of the found Spaceship log file(s) false print_paths Prints the paths of the found Spaceship log file(s) false copy_to_path Copies the found Spaceship log file(s) to a directory copy_to_clipboard Copies the contents of the found Spaceship log file(s) to the clipboard false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action spaceship_logs CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run spaceship_logs To pass parameters, make use of the : symbol, for example fastlane run spaceship_logs parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"spaceship_logs"},{"location":"actions/spaceship_logs/#spaceship_logs","text":"Find, print, and copy Spaceship logs spaceship_logs Supported platforms ios, android, mac Author @joshdholtz Returns The array of Spaceship logs","title":"spaceship_logs"},{"location":"actions/spaceship_logs/#5-examples","text":"spaceship_logs spaceship_logs( copy_to_path: \"/tmp/artifacts\" ) spaceship_logs( copy_to_clipboard: true ) spaceship_logs( print_contents: true, print_paths: true ) spaceship_logs( latest: false, print_contents: true, print_paths: true )","title":"5 Examples"},{"location":"actions/spaceship_logs/#parameters","text":"Key Description Default latest Finds only the latest Spaceshop log file if set to true, otherwise returns all true print_contents Prints the contents of the found Spaceship log file(s) false print_paths Prints the paths of the found Spaceship log file(s) false copy_to_path Copies the found Spaceship log file(s) to a directory copy_to_clipboard Copies the contents of the found Spaceship log file(s) to the clipboard false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/spaceship_logs/#documentation","text":"To show the documentation in your terminal, run fastlane action spaceship_logs","title":"Documentation"},{"location":"actions/spaceship_logs/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run spaceship_logs To pass parameters, make use of the : symbol, for example fastlane run spaceship_logs parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/spaceship_logs/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/spaceship_stats/","text":"spaceship_stats Print out Spaceship stats from this session (number of request to each domain) spaceship_stats Supported platforms ios, android, mac Author @joshdholtz 1 Example spaceship_stats Parameters Key Description Default print_request_logs Print all URLs requested false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action spaceship_stats CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run spaceship_stats To pass parameters, make use of the : symbol, for example fastlane run spaceship_stats parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"spaceship_stats"},{"location":"actions/spaceship_stats/#spaceship_stats","text":"Print out Spaceship stats from this session (number of request to each domain) spaceship_stats Supported platforms ios, android, mac Author @joshdholtz","title":"spaceship_stats"},{"location":"actions/spaceship_stats/#1-example","text":"spaceship_stats","title":"1 Example"},{"location":"actions/spaceship_stats/#parameters","text":"Key Description Default print_request_logs Print all URLs requested false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/spaceship_stats/#documentation","text":"To show the documentation in your terminal, run fastlane action spaceship_stats","title":"Documentation"},{"location":"actions/spaceship_stats/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run spaceship_stats To pass parameters, make use of the : symbol, for example fastlane run spaceship_stats parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/spaceship_stats/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/splunkmint/","text":"splunkmint Upload dSYM file to Splunk MINT splunkmint Supported platforms ios Author @xfreebird 1 Example splunkmint( dsym: \"My.app.dSYM.zip\", api_key: \"43564d3a\", api_token: \"e05456234c4869fb7e0b61\" ) Parameters Key Description Default dsym dSYM.zip file to upload to Splunk MINT api_key Splunk MINT App API key e.g. f57a57ca api_token Splunk MINT API token e.g. e05ba40754c4869fb7e0b61 verbose Make detailed output false upload_progress Show upload progress false proxy_username Proxy username proxy_password Proxy password proxy_address Proxy address proxy_port Proxy port * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action splunkmint CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run splunkmint To pass parameters, make use of the : symbol, for example fastlane run splunkmint parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"splunkmint"},{"location":"actions/splunkmint/#splunkmint","text":"Upload dSYM file to Splunk MINT splunkmint Supported platforms ios Author @xfreebird","title":"splunkmint"},{"location":"actions/splunkmint/#1-example","text":"splunkmint( dsym: \"My.app.dSYM.zip\", api_key: \"43564d3a\", api_token: \"e05456234c4869fb7e0b61\" )","title":"1 Example"},{"location":"actions/splunkmint/#parameters","text":"Key Description Default dsym dSYM.zip file to upload to Splunk MINT api_key Splunk MINT App API key e.g. f57a57ca api_token Splunk MINT API token e.g. e05ba40754c4869fb7e0b61 verbose Make detailed output false upload_progress Show upload progress false proxy_username Proxy username proxy_password Proxy password proxy_address Proxy address proxy_port Proxy port * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/splunkmint/#documentation","text":"To show the documentation in your terminal, run fastlane action splunkmint","title":"Documentation"},{"location":"actions/splunkmint/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run splunkmint To pass parameters, make use of the : symbol, for example fastlane run splunkmint parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/splunkmint/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/spm/","text":"spm Runs Swift Package Manager on your project spm Supported platforms ios, android, mac Author @fjcaetano, @nxtstep 3 Examples spm spm( command: \"build\", build_path: \"./build\", configuration: \"release\" ) spm( command: \"generate-xcodeproj\", xcconfig: \"Package.xcconfig\" ) Parameters Key Description Default command The swift command (one of: build, test, clean, reset, update, resolve, generate-xcodeproj, init) build enable_code_coverage Enables code coverage for the generated Xcode project when using the 'generate-xcodeproj' and the 'test' command build_path Specify build/cache directory [default: ./.build] package_path Change working directory before any other operation xcconfig Use xcconfig file to override swift package generate-xcodeproj defaults configuration Build with configuration (debug|release) [default: debug] disable_sandbox Disable using the sandbox when executing subprocesses false xcpretty_output Specifies the output type for xcpretty. eg. 'test', or 'simple' xcpretty_args Pass in xcpretty additional command line arguments (e.g. '--test --no-color' or '--tap --no-utf'), requires xcpretty_output to be specified also verbose Increase verbosity of informational output false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action spm CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run spm To pass parameters, make use of the : symbol, for example fastlane run spm parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"spm"},{"location":"actions/spm/#spm","text":"Runs Swift Package Manager on your project spm Supported platforms ios, android, mac Author @fjcaetano, @nxtstep","title":"spm"},{"location":"actions/spm/#3-examples","text":"spm spm( command: \"build\", build_path: \"./build\", configuration: \"release\" ) spm( command: \"generate-xcodeproj\", xcconfig: \"Package.xcconfig\" )","title":"3 Examples"},{"location":"actions/spm/#parameters","text":"Key Description Default command The swift command (one of: build, test, clean, reset, update, resolve, generate-xcodeproj, init) build enable_code_coverage Enables code coverage for the generated Xcode project when using the 'generate-xcodeproj' and the 'test' command build_path Specify build/cache directory [default: ./.build] package_path Change working directory before any other operation xcconfig Use xcconfig file to override swift package generate-xcodeproj defaults configuration Build with configuration (debug|release) [default: debug] disable_sandbox Disable using the sandbox when executing subprocesses false xcpretty_output Specifies the output type for xcpretty. eg. 'test', or 'simple' xcpretty_args Pass in xcpretty additional command line arguments (e.g. '--test --no-color' or '--tap --no-utf'), requires xcpretty_output to be specified also verbose Increase verbosity of informational output false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/spm/#documentation","text":"To show the documentation in your terminal, run fastlane action spm","title":"Documentation"},{"location":"actions/spm/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run spm To pass parameters, make use of the : symbol, for example fastlane run spm parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/spm/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/ssh/","text":"ssh Allows remote command execution using ssh Lets you execute remote commands via ssh using username/password or ssh-agent. If one of the commands in command-array returns non 0, it fails. ssh Supported platforms ios, android, mac Author @hjanuschka 1 Example ssh( host: \"dev.januschka.com\", username: \"root\", commands: [ \"date\", \"echo 1 > /tmp/file1\" ] ) Parameters Key Description Default username Username password Password host Hostname port Port 22 commands Commands log Log commands and output true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The ssh action generates the following Lane Variables: SharedValue Description SharedValues::SSH_STDOUT_VALUE Holds the standard output of all commands SharedValues::SSH_STDERR_VALUE Holds the standard error of all commands To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action ssh CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ssh To pass parameters, make use of the : symbol, for example fastlane run ssh parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"ssh"},{"location":"actions/ssh/#ssh","text":"Allows remote command execution using ssh Lets you execute remote commands via ssh using username/password or ssh-agent. If one of the commands in command-array returns non 0, it fails. ssh Supported platforms ios, android, mac Author @hjanuschka","title":"ssh"},{"location":"actions/ssh/#1-example","text":"ssh( host: \"dev.januschka.com\", username: \"root\", commands: [ \"date\", \"echo 1 > /tmp/file1\" ] )","title":"1 Example"},{"location":"actions/ssh/#parameters","text":"Key Description Default username Username password Password host Hostname port Port 22 commands Commands log Log commands and output true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/ssh/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The ssh action generates the following Lane Variables: SharedValue Description SharedValues::SSH_STDOUT_VALUE Holds the standard output of all commands SharedValues::SSH_STDERR_VALUE Holds the standard error of all commands To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/ssh/#documentation","text":"To show the documentation in your terminal, run fastlane action ssh","title":"Documentation"},{"location":"actions/ssh/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ssh To pass parameters, make use of the : symbol, for example fastlane run ssh parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/ssh/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/supply/","text":"supply Alias for the upload_to_play_store action Command line tool for updating Android apps and their metadata on the Google Play Store supply uploads app metadata, screenshots, binaries, and app bundles to Google Play. You can also select tracks for builds and promote builds to production. Features \u2022 Setup \u2022 Quick Start \u2022 Commands \u2022 Uploading an APK \u2022 Uploading an AAB \u2022 Images Features Update existing Android applications on Google Play via the command line Upload new builds (APKs and AABs) Retrieve and edit metadata, such as title and description, for multiple languages Upload the app icon, promo graphics and screenshots for multiple languages Have a local copy of the metadata in your git repository Retrieve version code numbers from existing Google Play tracks Setup Setup consists of setting up your Google Developers Service Account Tip: If you see Google Play Console or Google Developer Console in your local language, add &hl=en at the end of the URL (before any #... ) to switch to English. All the links below already have this to make it easier to find the correct buttons. Note: if you face issues when following these instructions, you might want to refer to the official documentation by Google . Open the Google Play Console Click Account Details , and note the Developer Account ID listed there Enable the Google Play Developer API by selecting an existing Google Cloud Project that fits your needs and pushing ENABLE If you don't have an existing project or prefer to have a dedicated one for fastlane , create a new one here and follow the instructions Open Service Accounts on Google Cloud and select the project you'd like to use Click the CREATE SERVICE ACCOUNT button at the top of the Google Cloud Platform Console page Verify that you are on the correct Google Cloud Platform Project by looking for the Developer Account ID from earlier within the light gray text in the second input, preceding .iam.gserviceaccount.com , or by checking the project name in the navigaton bar. If not, open the picker in the top navigation bar, and find the right one. Provide a Service account name (e.g. fastlane-supply) Copy the generated email address that is noted below the Service account-ID field for later use Click DONE (don't click CREATE AND CONTINUE as the optional steps such as granting access are not needed): Click on the Actions vertical three-dot icon of the service account you just created Select Manage keys on the menu Click ADD KEY \u2192 Create New Key Make sure JSON is selected as the Key type , and click CREATE Save the file on your computer when prompted and remember where it was saved at Open the Google Play Console and select Users and Permissions Click Invite new users Paste the email address you saved for later use into the email address field Click on Account Permissions Choose the permissions you'd like this account to have. We recommend Admin (all permissions) , but you may want to manually select all checkboxes and leave out some of the Releases permissions such as Release to production, exclude devices, and use Play App Signing Click on Invite User You can use fastlane run validate_play_store_json_key json_key:/path/to/your/downloaded/file.json to test the connection to Google Play Store with the downloaded private key. Once that works, add the path to the JSON file to your Appfile : json_key_file(\"path/to/your/play-store-credentials.json\") package_name(\"my.package.name\") The path is relative to where you normally run fastlane . Migrating Google credential format (from .p12 key file to .json) In previous versions of supply, credentials to your Play Console were stored as .p12 files. Since version 0.4.0, supply now supports the recommended .json key Service Account credential files. If you wish to upgrade: follow the Setup procedure once again to make sure you create the appropriate JSON file update your fastlane configuration or your command line invocation to use the appropriate argument if necessary. Note that you don't need to take note nor pass the issuer argument anymore. The previous p12 configuration is still currently supported. Quick Start Before using supply to connect to Google Play Store, you'll need to set up your app manually first by uploading at least one build to Google Play Store. See fastlane/fastlane#14686 for more info. cd [your_project_folder] fastlane supply init Make changes to the downloaded metadata, add images, screenshots and/or an APK fastlane supply Available Commands fastlane supply : update an app with metadata, a build, images and screenshots fastlane supply init : download metadata for an existing app to a local directory fastlane action supply : show information on available commands, arguments and environment variables You can either run supply on its own and use it interactively, or you can pass arguments or specify environment variables for all the options to skip the questions. Uploading an APK To upload a new binary to Google Play, simply run fastlane supply --apk path/to/app.apk This will also upload app metadata if you previously ran fastlane supply init . To gradually roll out a new build use fastlane supply --apk path/app.apk --track beta --rollout 0.5 To set the in-app update priority level for a release, set a valid update priority (an integer value from 0 to 5) using option in_app_update_priority fastlane supply --apk path/app.apk --track beta --in_app_update_priority 3 Expansion files ( .obb ) Expansion files (obbs) found under the same directory as your APK will also be uploaded together with your APK as long as: they are identified as type 'main' or 'patch' (by containing 'main' or 'patch' in their file name) you have at most one of each type If you only want to update the APK, but keep the expansion files from the previous version on Google Play use fastlane supply --apk path/app.apk --obb_main_references_version 21 --obb_main_file_size 666154207 or fastlane supply --apk path/app.apk --obb_patch_references_version 21 --obb_patch_file_size 666154207 Uploading an AAB To upload a new Android application bundle to Google Play, simply run fastlane supply --aab path/to/app.aab This will also upload app metadata if you previously ran fastlane supply init . To gradually roll out a new build use fastlane supply --aab path/app.aab --track beta --rollout 0.5 To set the in-app update priority level for a release, set a valid update priority (an integer value from 0 to 5) using option in_app_update_priority fastlane supply --aab path/app.aab --track beta --in_app_update_priority 3 Images and Screenshots After running fastlane supply init , you will have a metadata directory. This directory contains one or more locale directories (e.g. en-US, en-GB, etc.), and inside this directory are text files such as title.txt and short_description.txt . Inside of a given locale directory is a folder called images . Here you can supply images with the following file names (extension can be png, jpg or jpeg): featureGraphic icon promoGraphic tvBanner You can also supply screenshots by creating directories within the images directory with the following names, containing PNGs or JPEGs: phoneScreenshots/ sevenInchScreenshots/ (7-inch tablets) tenInchScreenshots/ (10-inch tablets) tvScreenshots/ wearScreenshots/ You may name images anything you like, but screenshots will appear in the Play Store in alphanumerical filename order. Note that these will replace the current images and screenshots on the play store listing, not add to them. Changelogs (What's new) You can add changelog files under the changelogs/ directory for each locale. The filename should exactly match the version code of the APK that it represents. You can also provide default notes that will be used if no files match the version code by adding a default.txt file. fastlane supply init will populate changelog files from existing data on Google Play if no metadata/ directory exists when it is run. \u2514\u2500\u2500 fastlane \u2514\u2500\u2500 metadata \u2514\u2500\u2500 android \u251c\u2500\u2500 en-US \u2502 \u2514\u2500\u2500 changelogs \u2502 \u251c\u2500\u2500 default.txt \u2502 \u251c\u2500\u2500 100000.txt \u2502 \u2514\u2500\u2500 100100.txt \u2514\u2500\u2500 fr-FR \u2514\u2500\u2500 changelogs \u251c\u2500\u2500 default.txt \u2514\u2500\u2500 100100.txt Track Promotion A common Play publishing scenario might involve uploading an APK version to a test track, testing it, and finally promoting that version to production. This can be done using the --track_promote_to parameter. The --track_promote_to parameter works with the --track parameter to command the Play API to promote existing Play track APK version(s) (those active on the track identified by the --track param value) to a new track ( --track_promote_to value). Retrieve Track Release Names & Version Codes Before performing a new APK upload you may want to check existing track version codes or release names, or you may simply want to provide an informational lane that displays the currently promoted version codes or release name for the production track. You can use the google_play_track_version_codes action to retrieve existing version codes for a package and track. You can use the google_play_track_release_names action to retrieve existing release names for a package and track. For more information, see the fastlane action google_play_track_version_codes and fastlane action google_play_track_release_names help output. Migration from AndroidPublisherV2 to AndroidPublisherV3 in fastlane 2.135.0 New Options :version_name Used when uploading with :apk_path , :apk_paths , :aab_path , and :aab_paths Can be any string such (example: \"October Release\" or \"Awesome New Feature\") Defaults to the version name in app/build.gradle or AndroidManifest.xml :release_status Used when uploading with :apk_path , :apk_paths , :aab_path , and :aab_paths Can set as \"draft\" to complete the release at some other time Defaults to \"completed\" :version_code Used for :update_rollout , :track_promote_to , and uploading of meta data and screenshots :skip_upload_changelogs Changelogs were previously included with the :skip_upload_metadata but is now its own option Deprecated Options :check_superseded_tracks Google Play will automatically remove releases that are superseded now :deactivate_on_promote Google Play will automatically deactivate a release from its previous track on promote : supply Supported platforms android Author @KrauseFx 2 Examples upload_to_play_store supply # alias for \"upload_to_play_store\" Parameters Key Description Default package_name The package name of the application to use * version_name Version name (used when uploading new apks/aabs) - defaults to 'versionName' in build.gradle or AndroidManifest.xml * version_code The versionCode for which to download the generated APK * release_status Release status (used when uploading new apks/aabs) - valid values are completed, draft, halted, inProgress * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production rollout The percentage of the user fraction when uploading to the rollout track (setting to 1 will complete the rollout) metadata_path Path to the directory containing the metadata files * key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * apk Path to the APK file to upload * apk_paths An array of paths to APK files to upload aab Path to the AAB file to upload * aab_paths An array of paths to AAB files to upload skip_upload_apk Whether to skip uploading APK false skip_upload_aab Whether to skip uploading AAB false skip_upload_metadata Whether to skip uploading metadata, changelogs not included false skip_upload_changelogs Whether to skip uploading changelogs false skip_upload_images Whether to skip uploading images, screenshots not included false skip_upload_screenshots Whether to skip uploading SCREENSHOTS false sync_image_upload Whether to use sha256 comparison to skip upload of images and screenshots that are already in Play Store false track_promote_to The track to promote to. The default available tracks are: production, beta, alpha, internal track_promote_release_status Promoted track release status (used when promoting a track) - valid values are completed, draft, halted, inProgress completed validate_only Only validate changes with Google Play rather than actually publish false mapping Path to the mapping file to upload (mapping.txt or native-debug-symbols.zip alike) mapping_paths An array of paths to mapping files to upload (mapping.txt or native-debug-symbols.zip alike) root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ check_superseded_tracks DEPRECATED! Google Play does this automatically now - Check the other tracks for superseded versions and disable them false timeout Timeout for read, open, and send (in seconds) 300 deactivate_on_promote DEPRECATED! Google Play does this automatically now - When promoting to a new track, deactivate the binary in the origin track true version_codes_to_retain An array of version codes to retain when publishing a new APK changes_not_sent_for_review Indicates that the changes in this edit will not be reviewed until they are explicitly sent for review from the Google Play Console UI false rescue_changes_not_sent_for_review Catches changes_not_sent_for_review errors when an edit is committed and retries with the configuration that the error message recommended true in_app_update_priority In-app update priority for all the newly added apks in the release. Can take values between [0,5] obb_main_references_version References version of 'main' expansion file obb_main_file_size Size of 'main' expansion file in bytes obb_patch_references_version References version of 'patch' expansion file obb_patch_file_size Size of 'patch' expansion file in bytes ack_bundle_installation_warning Must be set to true if the bundle installation may trigger a warning on user devices (e.g can only be downloaded over wifi). Typically this is required for bundles over 150MB false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action supply CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run supply To pass parameters, make use of the : symbol, for example fastlane run supply parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"supply"},{"location":"actions/supply/#supply","text":"Alias for the upload_to_play_store action","title":"supply"},{"location":"actions/supply/#features","text":"Update existing Android applications on Google Play via the command line Upload new builds (APKs and AABs) Retrieve and edit metadata, such as title and description, for multiple languages Upload the app icon, promo graphics and screenshots for multiple languages Have a local copy of the metadata in your git repository Retrieve version code numbers from existing Google Play tracks","title":"Features"},{"location":"actions/supply/#setup","text":"Setup consists of setting up your Google Developers Service Account Tip: If you see Google Play Console or Google Developer Console in your local language, add &hl=en at the end of the URL (before any #... ) to switch to English. All the links below already have this to make it easier to find the correct buttons. Note: if you face issues when following these instructions, you might want to refer to the official documentation by Google . Open the Google Play Console Click Account Details , and note the Developer Account ID listed there Enable the Google Play Developer API by selecting an existing Google Cloud Project that fits your needs and pushing ENABLE If you don't have an existing project or prefer to have a dedicated one for fastlane , create a new one here and follow the instructions Open Service Accounts on Google Cloud and select the project you'd like to use Click the CREATE SERVICE ACCOUNT button at the top of the Google Cloud Platform Console page Verify that you are on the correct Google Cloud Platform Project by looking for the Developer Account ID from earlier within the light gray text in the second input, preceding .iam.gserviceaccount.com , or by checking the project name in the navigaton bar. If not, open the picker in the top navigation bar, and find the right one. Provide a Service account name (e.g. fastlane-supply) Copy the generated email address that is noted below the Service account-ID field for later use Click DONE (don't click CREATE AND CONTINUE as the optional steps such as granting access are not needed): Click on the Actions vertical three-dot icon of the service account you just created Select Manage keys on the menu Click ADD KEY \u2192 Create New Key Make sure JSON is selected as the Key type , and click CREATE Save the file on your computer when prompted and remember where it was saved at Open the Google Play Console and select Users and Permissions Click Invite new users Paste the email address you saved for later use into the email address field Click on Account Permissions Choose the permissions you'd like this account to have. We recommend Admin (all permissions) , but you may want to manually select all checkboxes and leave out some of the Releases permissions such as Release to production, exclude devices, and use Play App Signing Click on Invite User You can use fastlane run validate_play_store_json_key json_key:/path/to/your/downloaded/file.json to test the connection to Google Play Store with the downloaded private key. Once that works, add the path to the JSON file to your Appfile : json_key_file(\"path/to/your/play-store-credentials.json\") package_name(\"my.package.name\") The path is relative to where you normally run fastlane .","title":"Setup"},{"location":"actions/supply/#quick-start","text":"Before using supply to connect to Google Play Store, you'll need to set up your app manually first by uploading at least one build to Google Play Store. See fastlane/fastlane#14686 for more info. cd [your_project_folder] fastlane supply init Make changes to the downloaded metadata, add images, screenshots and/or an APK fastlane supply","title":"Quick Start"},{"location":"actions/supply/#available-commands","text":"fastlane supply : update an app with metadata, a build, images and screenshots fastlane supply init : download metadata for an existing app to a local directory fastlane action supply : show information on available commands, arguments and environment variables You can either run supply on its own and use it interactively, or you can pass arguments or specify environment variables for all the options to skip the questions.","title":"Available Commands"},{"location":"actions/supply/#uploading-an-apk","text":"To upload a new binary to Google Play, simply run fastlane supply --apk path/to/app.apk This will also upload app metadata if you previously ran fastlane supply init . To gradually roll out a new build use fastlane supply --apk path/app.apk --track beta --rollout 0.5 To set the in-app update priority level for a release, set a valid update priority (an integer value from 0 to 5) using option in_app_update_priority fastlane supply --apk path/app.apk --track beta --in_app_update_priority 3","title":"Uploading an APK"},{"location":"actions/supply/#uploading-an-aab","text":"To upload a new Android application bundle to Google Play, simply run fastlane supply --aab path/to/app.aab This will also upload app metadata if you previously ran fastlane supply init . To gradually roll out a new build use fastlane supply --aab path/app.aab --track beta --rollout 0.5 To set the in-app update priority level for a release, set a valid update priority (an integer value from 0 to 5) using option in_app_update_priority fastlane supply --aab path/app.aab --track beta --in_app_update_priority 3","title":"Uploading an AAB"},{"location":"actions/supply/#images-and-screenshots","text":"After running fastlane supply init , you will have a metadata directory. This directory contains one or more locale directories (e.g. en-US, en-GB, etc.), and inside this directory are text files such as title.txt and short_description.txt . Inside of a given locale directory is a folder called images . Here you can supply images with the following file names (extension can be png, jpg or jpeg): featureGraphic icon promoGraphic tvBanner You can also supply screenshots by creating directories within the images directory with the following names, containing PNGs or JPEGs: phoneScreenshots/ sevenInchScreenshots/ (7-inch tablets) tenInchScreenshots/ (10-inch tablets) tvScreenshots/ wearScreenshots/ You may name images anything you like, but screenshots will appear in the Play Store in alphanumerical filename order. Note that these will replace the current images and screenshots on the play store listing, not add to them.","title":"Images and Screenshots"},{"location":"actions/supply/#changelogs-whats-new","text":"You can add changelog files under the changelogs/ directory for each locale. The filename should exactly match the version code of the APK that it represents. You can also provide default notes that will be used if no files match the version code by adding a default.txt file. fastlane supply init will populate changelog files from existing data on Google Play if no metadata/ directory exists when it is run. \u2514\u2500\u2500 fastlane \u2514\u2500\u2500 metadata \u2514\u2500\u2500 android \u251c\u2500\u2500 en-US \u2502 \u2514\u2500\u2500 changelogs \u2502 \u251c\u2500\u2500 default.txt \u2502 \u251c\u2500\u2500 100000.txt \u2502 \u2514\u2500\u2500 100100.txt \u2514\u2500\u2500 fr-FR \u2514\u2500\u2500 changelogs \u251c\u2500\u2500 default.txt \u2514\u2500\u2500 100100.txt","title":"Changelogs (What's new)"},{"location":"actions/supply/#track-promotion","text":"A common Play publishing scenario might involve uploading an APK version to a test track, testing it, and finally promoting that version to production. This can be done using the --track_promote_to parameter. The --track_promote_to parameter works with the --track parameter to command the Play API to promote existing Play track APK version(s) (those active on the track identified by the --track param value) to a new track ( --track_promote_to value).","title":"Track Promotion"},{"location":"actions/supply/#retrieve-track-release-names-version-codes","text":"Before performing a new APK upload you may want to check existing track version codes or release names, or you may simply want to provide an informational lane that displays the currently promoted version codes or release name for the production track. You can use the google_play_track_version_codes action to retrieve existing version codes for a package and track. You can use the google_play_track_release_names action to retrieve existing release names for a package and track. For more information, see the fastlane action google_play_track_version_codes and fastlane action google_play_track_release_names help output.","title":"Retrieve Track Release Names & Version Codes"},{"location":"actions/supply/#migration-from-androidpublisherv2-to-androidpublisherv3-in-fastlane-21350","text":"","title":"Migration from AndroidPublisherV2 to AndroidPublisherV3 in fastlane 2.135.0"},{"location":"actions/supply/#2-examples","text":"upload_to_play_store supply # alias for \"upload_to_play_store\"","title":"2 Examples"},{"location":"actions/supply/#parameters","text":"Key Description Default package_name The package name of the application to use * version_name Version name (used when uploading new apks/aabs) - defaults to 'versionName' in build.gradle or AndroidManifest.xml * version_code The versionCode for which to download the generated APK * release_status Release status (used when uploading new apks/aabs) - valid values are completed, draft, halted, inProgress * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production rollout The percentage of the user fraction when uploading to the rollout track (setting to 1 will complete the rollout) metadata_path Path to the directory containing the metadata files * key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * apk Path to the APK file to upload * apk_paths An array of paths to APK files to upload aab Path to the AAB file to upload * aab_paths An array of paths to AAB files to upload skip_upload_apk Whether to skip uploading APK false skip_upload_aab Whether to skip uploading AAB false skip_upload_metadata Whether to skip uploading metadata, changelogs not included false skip_upload_changelogs Whether to skip uploading changelogs false skip_upload_images Whether to skip uploading images, screenshots not included false skip_upload_screenshots Whether to skip uploading SCREENSHOTS false sync_image_upload Whether to use sha256 comparison to skip upload of images and screenshots that are already in Play Store false track_promote_to The track to promote to. The default available tracks are: production, beta, alpha, internal track_promote_release_status Promoted track release status (used when promoting a track) - valid values are completed, draft, halted, inProgress completed validate_only Only validate changes with Google Play rather than actually publish false mapping Path to the mapping file to upload (mapping.txt or native-debug-symbols.zip alike) mapping_paths An array of paths to mapping files to upload (mapping.txt or native-debug-symbols.zip alike) root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ check_superseded_tracks DEPRECATED! Google Play does this automatically now - Check the other tracks for superseded versions and disable them false timeout Timeout for read, open, and send (in seconds) 300 deactivate_on_promote DEPRECATED! Google Play does this automatically now - When promoting to a new track, deactivate the binary in the origin track true version_codes_to_retain An array of version codes to retain when publishing a new APK changes_not_sent_for_review Indicates that the changes in this edit will not be reviewed until they are explicitly sent for review from the Google Play Console UI false rescue_changes_not_sent_for_review Catches changes_not_sent_for_review errors when an edit is committed and retries with the configuration that the error message recommended true in_app_update_priority In-app update priority for all the newly added apks in the release. Can take values between [0,5] obb_main_references_version References version of 'main' expansion file obb_main_file_size Size of 'main' expansion file in bytes obb_patch_references_version References version of 'patch' expansion file obb_patch_file_size Size of 'patch' expansion file in bytes ack_bundle_installation_warning Must be set to true if the bundle installation may trigger a warning on user devices (e.g can only be downloaded over wifi). Typically this is required for bundles over 150MB false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/supply/#documentation","text":"To show the documentation in your terminal, run fastlane action supply","title":"Documentation"},{"location":"actions/supply/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run supply To pass parameters, make use of the : symbol, for example fastlane run supply parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/supply/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/swiftlint/","text":"swiftlint Run swift code validation using SwiftLint swiftlint Supported platforms ios, mac Author @KrauseFx 1 Example swiftlint( mode: :lint, # SwiftLint mode: :lint (default) or :autocorrect path: \"/path/to/lint\", # Specify path to lint (optional) output_file: \"swiftlint.result.json\", # The path of the output file (optional) config_file: \".swiftlint-ci.yml\", # The path of the configuration file (optional) files: [# List of files to process (optional) \"AppDelegate.swift\", \"path/to/project/Model.swift\" ], raise_if_swiftlint_error: true, # Allow fastlane to raise an error if swiftlint fails ignore_exit_status: true # Allow fastlane to continue even if SwiftLint returns a non-zero exit status ) Parameters Key Description Default mode SwiftLint mode: :lint, :fix, :autocorrect or :analyze :lint path Specify path to lint output_file Path to output SwiftLint result config_file Custom configuration file of SwiftLint strict Fail on warnings? (true/false) false files List of files to process ignore_exit_status Ignore the exit status of the SwiftLint command, so that serious violations don't fail the build (true/false) false raise_if_swiftlint_error Raises an error if swiftlint fails, so you can fail CI/CD jobs if necessary (true/false) false reporter Choose output reporter. Available: xcode, json, csv, checkstyle, codeclimate, junit, html, emoji, sonarqube, markdown, github-actions-logging quiet Don't print status logs like 'Linting ' & 'Done linting' false executable Path to the swiftlint executable on your machine format Format code when mode is :autocorrect false no_cache Ignore the cache when mode is :autocorrect or :lint false compiler_log_path Compiler log path when mode is :analyze * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action swiftlint CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run swiftlint To pass parameters, make use of the : symbol, for example fastlane run swiftlint parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"swiftlint"},{"location":"actions/swiftlint/#swiftlint","text":"Run swift code validation using SwiftLint swiftlint Supported platforms ios, mac Author @KrauseFx","title":"swiftlint"},{"location":"actions/swiftlint/#1-example","text":"swiftlint( mode: :lint, # SwiftLint mode: :lint (default) or :autocorrect path: \"/path/to/lint\", # Specify path to lint (optional) output_file: \"swiftlint.result.json\", # The path of the output file (optional) config_file: \".swiftlint-ci.yml\", # The path of the configuration file (optional) files: [# List of files to process (optional) \"AppDelegate.swift\", \"path/to/project/Model.swift\" ], raise_if_swiftlint_error: true, # Allow fastlane to raise an error if swiftlint fails ignore_exit_status: true # Allow fastlane to continue even if SwiftLint returns a non-zero exit status )","title":"1 Example"},{"location":"actions/swiftlint/#parameters","text":"Key Description Default mode SwiftLint mode: :lint, :fix, :autocorrect or :analyze :lint path Specify path to lint output_file Path to output SwiftLint result config_file Custom configuration file of SwiftLint strict Fail on warnings? (true/false) false files List of files to process ignore_exit_status Ignore the exit status of the SwiftLint command, so that serious violations don't fail the build (true/false) false raise_if_swiftlint_error Raises an error if swiftlint fails, so you can fail CI/CD jobs if necessary (true/false) false reporter Choose output reporter. Available: xcode, json, csv, checkstyle, codeclimate, junit, html, emoji, sonarqube, markdown, github-actions-logging quiet Don't print status logs like 'Linting ' & 'Done linting' false executable Path to the swiftlint executable on your machine format Format code when mode is :autocorrect false no_cache Ignore the cache when mode is :autocorrect or :lint false compiler_log_path Compiler log path when mode is :analyze * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/swiftlint/#documentation","text":"To show the documentation in your terminal, run fastlane action swiftlint","title":"Documentation"},{"location":"actions/swiftlint/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run swiftlint To pass parameters, make use of the : symbol, for example fastlane run swiftlint parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/swiftlint/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/sync_code_signing/","text":"sync_code_signing Easily sync your certificates and profiles across your team (via match ) Easily sync your certificates and profiles across your team A new approach to iOS and macOS code signing: Share one code signing identity across your development team to simplify your codesigning setup and prevent code signing issues. match is the implementation of the codesigning.guide concept . match creates all required certificates & provisioning profiles and stores them in a separate git repository, Google Cloud, or Amazon S3. Every team member with access to the selected storage can use those credentials for code signing. match also automatically repairs broken and expired credentials. It's the easiest way to share signing credentials across teams More information on how to get started with codesigning Why? \u2022 Usage \u2022 Is this secure? match is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Why match? Before starting to use match , make sure to read the codesigning.guide : When deploying an app to the App Store, beta testing service or even installing it on a device, most development teams have separate code signing identities for every member. This results in dozens of profiles including a lot of duplicates. You have to manually renew and download the latest set of provisioning profiles every time you add a new device or a certificate expires. Additionally this requires spending a lot of time when setting up a new machine that will build your app. A new approach Share one code signing identity across your development team to simplify your setup and prevent code signing issues. What if there was a central place where your code signing identity and profiles are kept, so anyone in the team can access them during the build process? For more information about the concept, visit codesigning.guide . Why not let Xcode handle all this? You have full control over what happens You have access to all the certificates and profiles, which are all securely stored in git You share one code signing identity across the team to have fewer certificates and profiles Xcode sometimes revokes certificates which breaks your setup causing failed builds More predictable builds by settings profiles in an explicit way instead of using the Automatic setting It just works\u2122 What does match do for you? match \ud83d\udd04 Automatically sync your iOS and macOS keys and profiles across all your team members using git \ud83d\udce6 Handle all the heavy lifting of creating and storing your certificates and profiles \ud83d\udcbb Setup codesigning on a new machine in under a minute \ud83c\udfaf Designed to work with apps with multiple targets and bundle identifiers \ud83d\udd12 You have full control over your files and Git repo, no third party service involved \u2728 Provisioning profile will always match the correct certificate \ud83d\udca5 Easily reset your existing profiles and certificates if your current account has expired or invalid profiles \u267b\ufe0f Automatically renew your provisioning profiles to include all your devices using the --force option \ud83d\udc65 Support for multiple Apple accounts and multiple teams \u2728 Tightly integrated with fastlane to work seamlessly with gym and other build tools Usage Setup Optional: Create a new, shared Apple Developer Portal account , something like office@company.com , that will be shared across your team from now on (for more information visit codesigning.guide ) Run the following in your project folder to start using match : fastlane match init You'll be asked if you want to store your code signing identities inside a Git repo , Google Cloud or Amazon S3 . Git Storage Use Git Storage to store all code signing identities in a private git repo, owned and operated by you. The files will be encrypted using OpenSSL. First, enter the URL to your private (!) Git repo (You can create one for free on e.g. GitHub or BitBucket ). The URL you enter can be either a https:// or a git URL. fastlane match init won't read or modify your certificates or profiles yet, and also won't validate your git URL. This will create a Matchfile in your current directory (or in your ./fastlane/ folder). Example content (for more advanced setups check out the fastlane section ): git_url(\"https://github.com/fastlane/certificates\") app_identifier(\"tools.fastlane.app\") username(\"user@fastlane.tools\") Git Storage on GitHub If your machine is currently using SSH to authenticate with GitHub, you'll want to use a git URL, otherwise, you may see an authentication error when you attempt to use match. Alternatively, you can set a basic authorization for match : Using parameter: match(git_basic_authorization: '') Using environment variable: ENV['MATCH_GIT_BASIC_AUTHORIZATION'] = '' match To generate your base64 key according to RFC 7617 , run this: echo -n your_github_username:your_personal_access_token | base64 You can find more information about GitHub basic authentication and personal token generation here: https://developer.github.com/v3/auth/#basic-authentication Git Storage on GitHub - Deploy keys If your machine does not have a private key set up for your certificates repository, you can give match a path for one: Using parameter: match(git_private_key: '') Using environment variable: ENV['MATCH_GIT_PRIVATE_KEY'] = '' match You can find more information about GitHub basic authentication and personal token generation here: https://developer.github.com/v3/auth/#basic-authentication Git Storage on Azure DevOps If you're running a pipeline on Azure DevOps and using git storage in a another repository on the same project, you might want to use bearer token authentication. Using parameter: match(git_bearer_authorization: '') Using environment variable: ENV['MATCH_GIT_BEARER_AUTHORIZATION'] = '' match You can find more information about this use case here: https://docs.microsoft.com/en-us/azure/devops/pipelines/repos/azure-repos-git?view=azure-devops&tabs=yaml#authorize-access-to-your-repositories Google Cloud Storage Use Google Cloud Storage for a fully hosted solution for your code signing identities. Certificates are stored on Google Cloud, encrypted using Google managed keys. Everything will be stored on your Google account, inside a storage bucket you provide. You can also directly access the files using the web console. This will create a Matchfile in your current directory (or in your ./fastlane/ folder). Example content (for more advanced setups check out the fastlane section ): google_cloud_bucket_name(\"major-key-certificates\") Amazon S3 Use Amazon S3 for a fully hosted solution for your code signing identities. Certificates are stored on S3, inside a storage bucket you provide. You can also directly access the files using the web console. This will create a Matchfile in your current directory (or in your ./fastlane/ folder). Example content (for more advanced setups check out the fastlane section ): s3_bucket(\"ios-certificates\") Multiple teams match can store the codesigning files for multiple development teams: Git Storage Use one git branch per team. match also supports storing certificates of multiple teams in one repo, by using separate git branches. If you work in multiple teams, make sure to set the git_branch parameter to a unique value per team. From there, match will automatically create and use the specified branch for you. match(git_branch: \"team1\", username: \"user@team1.com\") match(git_branch: \"team2\", username: \"user@team2.com\") Google Cloud or Amazon S3 Storage If you use Google Cloud or Amazon S3 Storage, you don't need to do anything manually. Just use Google Cloud or Amazon S3 Storage, and the top level folder will be the team ID. Run Before running match for the first time, you should consider clearing your existing profiles and certificates using the match nuke command . After running fastlane match init you can run the following to generate new certificates and profiles: fastlane match appstore fastlane match development This will create a new certificate and provisioning profile (if required) and store them in your selected storage. If you previously ran match with the configured storage it will automatically install the existing profiles from your storage. The provisioning profiles are installed in ~/Library/MobileDevice/Provisioning Profiles while the certificates and private keys are installed in your Keychain. To get a more detailed output of what match is doing use fastlane match --verbose For a list of all available options run fastlane action match Handle multiple targets match can use the same one Git repository, Google Cloud, or Amazon S3 Storage for all bundle identifiers. If you have several targets with different bundle identifiers, supply them as a comma-separated list: fastlane match appstore -a tools.fastlane.app,tools.fastlane.app.watchkitapp You can make this even easier using fastlane by creating a certificates lane like this: lane :certificates do match(app_identifier: [\"tools.fastlane.app\", \"tools.fastlane.app.watchkitapp\"]) end Then all your team has to do is run fastlane certificates and the keys, certificates and profiles for all targets will be synced. Handle multiple apps per developer/distribution certificate If you want to use a single developer and/or distribution certificate for multiple apps belonging to the same development team, you may use the same signing identities repository and branch to store the signing identities for your apps: Matchfile example for both App #1 and #2: git_url(\"https://github.com/example/example-repo.git\") git_branch(\"master\") match will reuse certificates and will create separate provisioning profiles for each app. Passphrase Git Repo storage only When running match for the first time on a new machine, it will ask you for the passphrase for the Git repository. This is an additional layer of security: each of the files will be encrypted using openssl . Make sure to remember the password, as you'll need it when you run match on a different machine. To set the passphrase to decrypt your profiles using an environment variable (and avoid the prompt) use MATCH_PASSWORD . Migrate from Git Repo to Google Cloud If you're already using a Git Repo, but would like to switch to using Google Cloud Storage, run the following command to automatically migrate all your existing code signing identities and provisioning profiles fastlane match migrate After a successful migration you can safely delete your Git repo. Google Cloud access control Google Cloud Storage only There are two cases for reading and writing certificates stored in a Google Cloud storage bucket: Continuous integration jobs. These will authenticate to your Google Cloud project via a service account, and use a gc_keys.json file as credentials. Developers on a local workstation. In this case, you should choose whether everyone on your team will create their own gc_keys.json file, or whether you want to manage access to the bucket directly using your developers' Google accounts. When running fastlane match init the first time, the setup process will give you the option to create your gc_keys.json file. This file contains the authentication credentials needed to access your Google Cloud storage bucket. Make sure to keep that file secret and never add it to version control. We recommend adding gc_keys.json to your .gitignore Managing developer access via keys If you want to manage developer access to your certificates via authentication keys, every developer should create their own gc_keys.json and add the file to all their work machines. This will give the admin full control over who has read/write access to the given Storage bucket. At the same time it allows your team to revoke a single key if a file gets compromised. Managing developer access via Google accounts If your developers already have Google accounts and access to your Google Cloud project, you can also manage access to the storage bucket via Cloud Identity and Access Management (IAM) . Just set up individual developer accounts or an entire Google Group containing your team as readers and writers on your storage bucket. You can then specify the Google Cloud project id containing your storage bucket in your Matchfile : storage_mode(\"google_cloud\") google_cloud_bucket_name(\"my-app-certificates\") google_cloud_project_id(\"my-app-project\") This lets developers on your team use Application Default Credentials when accessing your storage bucket. After installing the Google Cloud SDK , they only need to run the following command once: gcloud auth application-default login ... and log in with their Google account. Then, when they run fastlane match , match will use these credentials to read from and write to the storage bucket. New machine To set up the certificates and provisioning profiles on a new machine, you just run the same command using: fastlane match development You can also run match in a readonly mode to be sure it won't create any new certificates or profiles. fastlane match development --readonly We recommend to always use readonly mode when running fastlane on CI systems. This can be done using lane :beta do match(type: \"appstore\", readonly: is_ci) gym(scheme: \"Release\") end Access Control A benefit of using match is that it enables you to give the developers of your team access to the code signing certificates without having to give everyone access to the Developer Portal: Run match to store the certificates in a Git repo or Google Cloud Storage Grant access to the Git repo / Google Cloud Storage Bucket to your developers and give them the passphrase (for git storage) The developers can now run match which will install the latest code signing profiles so they can build and sign the application without having to have access to the Apple Developer Portal Every time you run match to update the profiles (e.g. add a new device), all your developers will automatically get the latest profiles when running match If you decide to run match without access to the Developer Portal, make sure to use the --readonly option so that the commands don't ask you for the password to the Developer Portal. The advantage of this approach is that no one in your team will revoke a certificate by mistake, while having all code signing secrets in one location. Folder structure After running match for the first time, your Git repo or Google Cloud bucket will contain 2 directories: The certs folder contains all certificates with their private keys The profiles folder contains all provisioning profiles Additionally, match creates a nice repo README.md for you, making it easy to onboard new team members: In the case of Google Cloud, the top level folder will be the team ID. fastlane Add match to your Fastfile to automatically fetch the latest code signing certificates with fastlane . match(type: \"appstore\") match(type: \"development\") match(type: \"adhoc\", app_identifier: \"tools.fastlane.app\") match(type: \"enterprise\", app_identifier: \"tools.fastlane.app\") # _match_ should be called before building the app with _gym_ gym # ... Registering new devices By using match , you'll save a lot of time every time you add new device to your Ad Hoc or Development profiles. Use match in combination with the register_devices action. lane :beta do register_devices(devices_file: \"./devices.txt\") match(type: \"adhoc\", force_for_new_devices: true) end By using the force_for_new_devices parameter, match will check if the (enabled) device count has changed since the last time you ran match , and automatically re-generate the provisioning profile if necessary. You can also use force: true to re-generate the provisioning profile on each run. Important: The force_for_new_devices parameter is ignored for App Store provisioning profiles since they don't contain any device information. If you're not using Fastfile , you can also use the force_for_new_devices option from the command line: fastlane match adhoc --force_for_new_devices Templates (aka: custom entitlements) match can generate profiles that contain custom entitlements by passing in the entitlement's name with the template_name parameter. match(type: \"development\", template_name: \"Apple Pay Pass Suppression Development\") Setup Xcode project Docs on how to set up your Xcode project To build from the command line using fastlane match automatically pre-fills environment variables with the UUIDs of the correct provisioning profiles, ready to be used in your Xcode project. More information about how to setup your Xcode project can be found here To build from Xcode manually This is useful when installing your application on your device using the Development profile. You can statically select the right provisioning profile in your Xcode project (the name will be match Development tools.fastlane.app ). Docs on how to set up your Xcode project Continuous Integration Git repo access There is one tricky part of setting up a CI system to work with match , which is enabling the CI to access the repo. Usually you'd just add your CI's public ssh key as a deploy key to your match repo, but since your CI will already likely be using its public ssh key to access the codebase repo, you won't be able to do that . Some repo hosts might allow you to use the same deploy key for different repos, but GitHub will not. If your host does, you don't need to worry about this, just add your CI's public ssh key as a deploy key for your match repo and scroll down to \" Encryption password \". There are a few ways around this: Create a new account on your repo host with read-only access to your match repo. Bitrise have a good description of this here . Some CIs allow you to upload your signing credentials manually, but obviously this means that you'll have to re-upload the profiles/keys/certs each time they change. Neither solution is pretty. It's one of those trade-off things. Do you care more about not having an extra account sitting around, or do you care more about having the :sparkles: of auto-syncing of credentials. Git repo encryption password Once you've decided which approach to take, all that's left to do is to set your encryption password as secret environment variable named MATCH_PASSWORD . match will pick this up when it's run. Google Cloud Storage access Accessing Google Cloud Storage from your CI system requires you to provide the gc_keys.json file as part of your build. How you implement this is your decision. You can inject that file during build time. Amazon S3 Storage access Accessing Amazon S3 Storage from your CI system requires you to provide the s3_region , s3_access_key , s3_secret_access_key and s3_bucket options (or environment variables), with keys that has read access to the bucket. Nuke If you never really cared about code signing and have a messy Apple Developer account with a lot of invalid, expired or Xcode managed profiles/certificates, you can use the match nuke command to revoke your certificates and provisioning profiles. Don't worry, apps that are already available in the App Store / TestFlight will still work. Builds distributed via Ad Hoc or Enterprise will be disabled after nuking your account, so you'll have to re-upload a new build. After clearing your account you'll start from a clean state, and you can run match to generate your certificates and profiles again. To revoke all certificates and provisioning profiles for a specific environment: fastlane match nuke development fastlane match nuke distribution fastlane match nuke enterprise You'll have to confirm a list of profiles / certificates that will be deleted. Advanced Git Storage features Change Password To change the password of your repo and therefore decrypting and encrypting all files run: fastlane match change_password You'll be asked for the new password on all your machines on the next run. Import To import and encrypt a certificate ( .cer ), the private key ( .p12 ) and the provisioning profiles ( .mobileprovision or .provisionprofile ) into the match repo run: fastlane match import You'll be prompted for the certificate ( .cer ), the private key ( .p12 ) and the provisioning profiles ( .mobileprovision or .provisionprofile ) paths. match will first validate the certificate ( .cer ) against the Developer Portal before importing the certificate, the private key and the provisioning profiles into the specified match repository. However if there is no access to the developer portal but there are certificates, private keys and profiles provided, you can use the skip_certificate_matching option to tell match not to verify the certificates. Like this: fastlane match import --skip_certificate_matching true This will skip login to Apple Developer Portal and will import the provided certificate, private key and profile directly to the certificates repo. Please be careful when using this option and ensure the certificates and profiles match the type (development, adhoc, appstore, enterprise, developer_id) and are not revoked or expired. Manual Decrypt If you want to manually decrypt a file you can. openssl aes-256-cbc -k \"\" -in \"\" -out \"\" -a -d -md [md5|sha256] Note: You may need to swap double quotes \" for single quotes ' if your match password contains an exclamation mark ! . Export Distribution Certificate and Private Key as Single .p12 File match stores the certificate ( .cer ) and the private key ( .p12 ) files separately. The following steps will repackage the separate certificate and private key into a single .p12 file. Decrypt your cert found in certs//.cer as a pem file: openssl aes-256-cbc -k \"\" -in \"certs//.cer\" -out \"cert.der\" -a -d -md [md5|sha256] openssl x509 -inform der -in cert.der -out cert.pem Decrypt your private key found in certs//.p12 as a pem file: openssl aes-256-cbc -k \"\" -in \"certs/distribution/.p12\" -out \"key.pem\" -a -d -md [md5|sha256] Generate an encrypted p12 file with the same or new password: openssl pkcs12 -export -out \"cert.p12\" -inkey \"key.pem\" -in \"cert.pem\" -password pass: Is this secure? Git Both your keys and provisioning profiles are encrypted using OpenSSL using a passphrase. Storing your private keys in a Git repo may sound off-putting at first. We did an analysis of potential security issues, see section below. Google Cloud Storage All your keys and provisioning profiles are encrypted using Google managed keys. What could happen if someone stole a private key? If attackers would have your certificate and provisioning profile, they could codesign an application with the same bundle identifier. What's the worst that could happen for each of the profile types? App Store Profiles An App Store profile can't be used for anything as long as it's not re-signed by Apple. The only way to get an app resigned is to submit an app for review which could take anywhere from 24 hours to a few days (checkout appreviewtimes.com for up-to-date expectations). Attackers could only submit an app for review, if they also got access to your App Store Connect credentials (which are not stored in git, but in your local keychain). Additionally you get an email notification every time a build gets uploaded to cancel the submission even before your app gets into the review stage. Development and Ad Hoc Profiles In general those profiles are harmless as they can only be used to install a signed application on a small subset of devices. To add new devices, the attacker would also need your Apple Developer Portal credentials (which are not stored in git, but in your local keychain). Enterprise Profiles Attackers could use an In-House profile to distribute signed application to a potentially unlimited number of devices. All this would run under your company name and it could eventually lead to Apple revoking your In-House account. However it is very easy to revoke a certificate to remotely break the app on all devices. Because of the potentially dangerous nature of In-House profiles please use match with enterprise profiles with caution, ensure your git repository is private and use a secure password. To sum up You have full control over the access list of your Git repo, no third party service involved Even if your certificates are leaked, they can't be used to cause any harm without your App Store Connect login credentials Use In-House enterprise profile with match with caution If you use GitHub or Bitbucket we encourage enabling 2 factor authentication for all accounts that have access to the certificates repo The complete source code of match is fully open source on GitHub sync_code_signing Supported platforms ios, mac Author @KrauseFx 4 Examples sync_code_signing(type: \"appstore\", app_identifier: \"tools.fastlane.app\") sync_code_signing(type: \"development\", readonly: true) sync_code_signing(app_identifier: [\"tools.fastlane.app\", \"tools.fastlane.sleepy\"]) match # alias for \"sync_code_signing\" Parameters Key Description Default type Define the profile type, can be appstore, adhoc, development, enterprise, developer_id, mac_installer_distribution, developer_id_installer development additional_cert_types Create additional cert types needed for macOS installers (valid values: mac_installer_distribution, developer_id_installer) readonly Only fetch existing certificates and profiles, don't generate new ones false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * skip_provisioning_profiles Skip syncing provisioning profiles false app_identifier The bundle identifier(s) of your app (comma-separated string or array of strings) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * storage_mode Define where you want to store your certificates git git_url URL to the git repo containing all the certificates git_branch Specific git branch to use master git_full_name git user full name to commit git_user_email git user email to commit shallow_clone Make a shallow clone of the repository (truncate the history to 1 revision) false clone_branch_directly Clone just the branch specified, instead of the whole repo. This requires that the branch already exists. Otherwise the command will fail false git_basic_authorization Use a basic authorization header to access the git repo (e.g.: access via HTTPS, GitHub Actions, etc), usually a string in Base64 git_bearer_authorization Use a bearer authorization header to access the git repo (e.g.: access to an Azure DevOps repository), usually a string in Base64 git_private_key Use a private key to access the git repo (e.g.: access to GitHub repository via Deploy keys), usually a id_rsa named file or the contents hereof google_cloud_bucket_name Name of the Google Cloud Storage bucket to use google_cloud_keys_file Path to the gc_keys.json file google_cloud_project_id ID of the Google Cloud project to use for authentication skip_google_cloud_account_confirmation Skips confirming to use the system google account false s3_region Name of the S3 region s3_access_key S3 access key s3_secret_access_key S3 secret access key s3_bucket Name of the S3 bucket s3_object_prefix Prefix to be used on all objects uploaded to S3 s3_skip_encryption Skip encryption of all objects uploaded to S3. WARNING: only enable this on S3 buckets with sufficiently restricted permissions and server-side encryption enabled. See https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html false gitlab_project GitLab Project Path (i.e. 'gitlab-org/gitlab') gitlab_host GitLab Host (i.e. 'https://gitlab.com') https://gitlab.com job_token GitLab CI_JOB_TOKEN private_token GitLab Access Token keychain_name Keychain the items should be imported to login.keychain keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password force Renew the provisioning profiles every time you run match false force_for_new_devices Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile types 'appstore' and 'developer_id' false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false force_for_new_certificates Renew the provisioning profiles if the certificate count on the developer portal has changed. Works only for the 'development' provisioning profile type. Requires 'include_all_certificates' option to be 'true' false skip_confirmation Disables confirmation prompts during nuke, answering them with yes false safe_remove_certs Remove certs from repository during nuke without revoking them on the developer portal false skip_docs Skip generation of a README.md for the created git repository false platform Set the provisioning profile's platform to work with (i.e. ios, tvos, macos, catalyst) * derive_catalyst_app_identifier Enable this if you have the Mac Catalyst capability enabled and your project was created with Xcode 11.3 or earlier. Prepends 'maccatalyst.' to the app identifier for the provisioning profile mapping false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") profile_name A custom name for the provisioning profile. This will replace the default provisioning profile name if specified fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false skip_certificate_matching Set to true if there is no access to Apple developer portal but there are certificates, keys and profiles provided. Only works with match import action false output_path Path in which to export certificates, key and profile skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false verbose Print out extra information and all commands false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The sync_code_signing action generates the following Lane Variables: SharedValue Description SharedValues::MATCH_PROVISIONING_PROFILE_MAPPING The match provisioning profile mapping SharedValues::SIGH_PROFILE_TYPE The profile type, can be app-store, ad-hoc, development, enterprise, can be used in build_app as a default value for export_method To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action sync_code_signing CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sync_code_signing To pass parameters, make use of the : symbol, for example fastlane run sync_code_signing parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"sync_code_signing"},{"location":"actions/sync_code_signing/#sync_code_signing","text":"Easily sync your certificates and profiles across your team (via match )","title":"sync_code_signing"},{"location":"actions/sync_code_signing/#why-match","text":"Before starting to use match , make sure to read the codesigning.guide : When deploying an app to the App Store, beta testing service or even installing it on a device, most development teams have separate code signing identities for every member. This results in dozens of profiles including a lot of duplicates. You have to manually renew and download the latest set of provisioning profiles every time you add a new device or a certificate expires. Additionally this requires spending a lot of time when setting up a new machine that will build your app. A new approach Share one code signing identity across your development team to simplify your setup and prevent code signing issues. What if there was a central place where your code signing identity and profiles are kept, so anyone in the team can access them during the build process? For more information about the concept, visit codesigning.guide .","title":"Why match?"},{"location":"actions/sync_code_signing/#usage","text":"","title":"Usage"},{"location":"actions/sync_code_signing/#advanced-git-storage-features","text":"","title":"Advanced Git Storage features"},{"location":"actions/sync_code_signing/#is-this-secure","text":"","title":"Is this secure?"},{"location":"actions/sync_code_signing/#4-examples","text":"sync_code_signing(type: \"appstore\", app_identifier: \"tools.fastlane.app\") sync_code_signing(type: \"development\", readonly: true) sync_code_signing(app_identifier: [\"tools.fastlane.app\", \"tools.fastlane.sleepy\"]) match # alias for \"sync_code_signing\"","title":"4 Examples"},{"location":"actions/sync_code_signing/#parameters","text":"Key Description Default type Define the profile type, can be appstore, adhoc, development, enterprise, developer_id, mac_installer_distribution, developer_id_installer development additional_cert_types Create additional cert types needed for macOS installers (valid values: mac_installer_distribution, developer_id_installer) readonly Only fetch existing certificates and profiles, don't generate new ones false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * skip_provisioning_profiles Skip syncing provisioning profiles false app_identifier The bundle identifier(s) of your app (comma-separated string or array of strings) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * storage_mode Define where you want to store your certificates git git_url URL to the git repo containing all the certificates git_branch Specific git branch to use master git_full_name git user full name to commit git_user_email git user email to commit shallow_clone Make a shallow clone of the repository (truncate the history to 1 revision) false clone_branch_directly Clone just the branch specified, instead of the whole repo. This requires that the branch already exists. Otherwise the command will fail false git_basic_authorization Use a basic authorization header to access the git repo (e.g.: access via HTTPS, GitHub Actions, etc), usually a string in Base64 git_bearer_authorization Use a bearer authorization header to access the git repo (e.g.: access to an Azure DevOps repository), usually a string in Base64 git_private_key Use a private key to access the git repo (e.g.: access to GitHub repository via Deploy keys), usually a id_rsa named file or the contents hereof google_cloud_bucket_name Name of the Google Cloud Storage bucket to use google_cloud_keys_file Path to the gc_keys.json file google_cloud_project_id ID of the Google Cloud project to use for authentication skip_google_cloud_account_confirmation Skips confirming to use the system google account false s3_region Name of the S3 region s3_access_key S3 access key s3_secret_access_key S3 secret access key s3_bucket Name of the S3 bucket s3_object_prefix Prefix to be used on all objects uploaded to S3 s3_skip_encryption Skip encryption of all objects uploaded to S3. WARNING: only enable this on S3 buckets with sufficiently restricted permissions and server-side encryption enabled. See https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html false gitlab_project GitLab Project Path (i.e. 'gitlab-org/gitlab') gitlab_host GitLab Host (i.e. 'https://gitlab.com') https://gitlab.com job_token GitLab CI_JOB_TOKEN private_token GitLab Access Token keychain_name Keychain the items should be imported to login.keychain keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password force Renew the provisioning profiles every time you run match false force_for_new_devices Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile types 'appstore' and 'developer_id' false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false force_for_new_certificates Renew the provisioning profiles if the certificate count on the developer portal has changed. Works only for the 'development' provisioning profile type. Requires 'include_all_certificates' option to be 'true' false skip_confirmation Disables confirmation prompts during nuke, answering them with yes false safe_remove_certs Remove certs from repository during nuke without revoking them on the developer portal false skip_docs Skip generation of a README.md for the created git repository false platform Set the provisioning profile's platform to work with (i.e. ios, tvos, macos, catalyst) * derive_catalyst_app_identifier Enable this if you have the Mac Catalyst capability enabled and your project was created with Xcode 11.3 or earlier. Prepends 'maccatalyst.' to the app identifier for the provisioning profile mapping false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") profile_name A custom name for the provisioning profile. This will replace the default provisioning profile name if specified fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false skip_certificate_matching Set to true if there is no access to Apple developer portal but there are certificates, keys and profiles provided. Only works with match import action false output_path Path in which to export certificates, key and profile skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false verbose Print out extra information and all commands false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/sync_code_signing/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The sync_code_signing action generates the following Lane Variables: SharedValue Description SharedValues::MATCH_PROVISIONING_PROFILE_MAPPING The match provisioning profile mapping SharedValues::SIGH_PROFILE_TYPE The profile type, can be app-store, ad-hoc, development, enterprise, can be used in build_app as a default value for export_method To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/sync_code_signing/#documentation","text":"To show the documentation in your terminal, run fastlane action sync_code_signing","title":"Documentation"},{"location":"actions/sync_code_signing/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sync_code_signing To pass parameters, make use of the : symbol, for example fastlane run sync_code_signing parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/sync_code_signing/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/team_id/","text":"team_id Specify the Team ID you want to use for the Apple Developer Portal team_id Supported platforms ios Author @KrauseFx 1 Example team_id(\"Q2CBPK58CA\") Documentation To show the documentation in your terminal, run fastlane action team_id CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run team_id To pass parameters, make use of the : symbol, for example fastlane run team_id parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"team_id"},{"location":"actions/team_id/#team_id","text":"Specify the Team ID you want to use for the Apple Developer Portal team_id Supported platforms ios Author @KrauseFx","title":"team_id"},{"location":"actions/team_id/#1-example","text":"team_id(\"Q2CBPK58CA\")","title":"1 Example"},{"location":"actions/team_id/#documentation","text":"To show the documentation in your terminal, run fastlane action team_id","title":"Documentation"},{"location":"actions/team_id/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run team_id To pass parameters, make use of the : symbol, for example fastlane run team_id parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/team_id/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/team_name/","text":"team_name Set a team to use by its name team_name Supported platforms ios Author @KrauseFx 1 Example team_name(\"Felix Krause\") Documentation To show the documentation in your terminal, run fastlane action team_name CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run team_name To pass parameters, make use of the : symbol, for example fastlane run team_name parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"team_name"},{"location":"actions/team_name/#team_name","text":"Set a team to use by its name team_name Supported platforms ios Author @KrauseFx","title":"team_name"},{"location":"actions/team_name/#1-example","text":"team_name(\"Felix Krause\")","title":"1 Example"},{"location":"actions/team_name/#documentation","text":"To show the documentation in your terminal, run fastlane action team_name","title":"Documentation"},{"location":"actions/team_name/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run team_name To pass parameters, make use of the : symbol, for example fastlane run team_name parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/team_name/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/testfairy/","text":"testfairy Upload a new build to TestFairy You can retrieve your API key on your settings page testfairy Supported platforms ios, android Author @taka0125, @tcurdt, @vijaysharm, @cdm2012 2 Examples testfairy( api_key: \"...\", ipa: \"./ipa_file.ipa\", comment: \"Build #{lane_context[SharedValues::BUILD_NUMBER]}\", ) testfairy( api_key: \"...\", apk: \"../build/app/outputs/apk/qa/release/app-qa-release.apk\", comment: \"Build #{lane_context[SharedValues::BUILD_NUMBER]}\", ) Parameters Key Description Default api_key API Key for TestFairy ipa Path to your IPA file for iOS * apk Path to your APK file for Android * symbols_file Symbols mapping file * upload_url API URL for TestFairy https://upload.testfairy.com testers_groups Array of tester groups to be notified [] metrics Array of metrics to record (cpu,memory,network,phone_signal,gps,battery,mic,wifi) [] comment Additional release notes for this upload. This text will be added to email notifications No comment provided auto_update Allows an easy upgrade of all users to the current version. To enable set to 'on' off notify Send email to testers off options Array of options (shake,video_only_wifi,anonymous) [] custom Array of custom options. Contact support@testfairy.com for more information '' timeout Request timeout in seconds * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The testfairy action generates the following Lane Variables: SharedValue Description SharedValues::TESTFAIRY_BUILD_URL URL for the sessions of the newly uploaded build SharedValues::TESTFAIRY_DOWNLOAD_URL URL directly to the newly uploaded build SharedValues::TESTFAIRY_LANDING_PAGE URL of the build's landing page To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action testfairy CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run testfairy To pass parameters, make use of the : symbol, for example fastlane run testfairy parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"testfairy"},{"location":"actions/testfairy/#testfairy","text":"Upload a new build to TestFairy You can retrieve your API key on your settings page testfairy Supported platforms ios, android Author @taka0125, @tcurdt, @vijaysharm, @cdm2012","title":"testfairy"},{"location":"actions/testfairy/#2-examples","text":"testfairy( api_key: \"...\", ipa: \"./ipa_file.ipa\", comment: \"Build #{lane_context[SharedValues::BUILD_NUMBER]}\", ) testfairy( api_key: \"...\", apk: \"../build/app/outputs/apk/qa/release/app-qa-release.apk\", comment: \"Build #{lane_context[SharedValues::BUILD_NUMBER]}\", )","title":"2 Examples"},{"location":"actions/testfairy/#parameters","text":"Key Description Default api_key API Key for TestFairy ipa Path to your IPA file for iOS * apk Path to your APK file for Android * symbols_file Symbols mapping file * upload_url API URL for TestFairy https://upload.testfairy.com testers_groups Array of tester groups to be notified [] metrics Array of metrics to record (cpu,memory,network,phone_signal,gps,battery,mic,wifi) [] comment Additional release notes for this upload. This text will be added to email notifications No comment provided auto_update Allows an easy upgrade of all users to the current version. To enable set to 'on' off notify Send email to testers off options Array of options (shake,video_only_wifi,anonymous) [] custom Array of custom options. Contact support@testfairy.com for more information '' timeout Request timeout in seconds * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/testfairy/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The testfairy action generates the following Lane Variables: SharedValue Description SharedValues::TESTFAIRY_BUILD_URL URL for the sessions of the newly uploaded build SharedValues::TESTFAIRY_DOWNLOAD_URL URL directly to the newly uploaded build SharedValues::TESTFAIRY_LANDING_PAGE URL of the build's landing page To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/testfairy/#documentation","text":"To show the documentation in your terminal, run fastlane action testfairy","title":"Documentation"},{"location":"actions/testfairy/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run testfairy To pass parameters, make use of the : symbol, for example fastlane run testfairy parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/testfairy/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/testflight/","text":"testflight Alias for the upload_to_testflight action The best way to manage your TestFlight testers and builds from your terminal pilot makes it easier to manage your app on Apple\u2019s TestFlight. You can: Upload & distribute builds Add & remove testers Retrieve information about testers & devices Import/export all available testers pilot uses spaceship.airforce to interact with App Store Connect \ud83d\ude80 Usage \u2022 Tips pilot is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Usage For all commands, you can either use an API Key or your Apple ID . App Store Connect API Key The App Store Connect API Key is the preferred authentication method (if you are able to use it). Uses official App Store Connect API No need for 2FA Better performance over Apple ID Specify the API key using --api_key_path ./path/to/api_key_info.json or --api_key \"{\\\"key_id\\\": \\\"D83848D23\\\", \\\"issuer_id\\\": \\\"227b0bbf-ada8-458c-9d62-3d8022b7d07f\\\", \\\"key_filepath\\\": \\\"D83848D23.p8\\\"}\" Go to Using App Store Connect API for information on obtaining an API key, the fastlane api_key_info.json format, and other API key usage. Apple ID Specify the Apple ID to use using -u felix@krausefx.com . If you execute pilot in a project already using fastlane the username and app identifier will automatically be determined. Uploading builds To upload a new build, just run fastlane pilot upload This will automatically look for an ipa in your current directory and tries to fetch the login credentials from your fastlane setup . You'll be asked for any missing information. Additionally, you can pass all kinds of parameters: fastlane action pilot You can pass a changelog using fastlane pilot upload --changelog \"Something that is new here\" You can also skip the submission of the binary, which means, the ipa file will only be uploaded and not distributed to testers: fastlane pilot upload --skip_submission pilot does all kinds of magic for you: Automatically detects the bundle identifier from your ipa file Automatically fetch the AppID of your app based on the bundle identifier pilot uses spaceship to submit the build metadata and the iTunes Transporter to upload the binary. Because iTunes Transporter's upload capability is only supported on OS X, pilot upload does not work on Linux, as described in this issue List builds To list all builds for specific application use fastlane pilot builds The result lists all active builds and processing builds: +-----------+---------+----------+ | Great App Builds | +-----------+---------+----------+ | Version # | Build # | Installs | +-----------+---------+----------+ | 0.9.13 | 1 | 0 | | 0.9.13 | 2 | 0 | | 0.9.20 | 3 | 0 | | 0.9.20 | 4 | 3 | +-----------+---------+----------+ Managing beta testers List of Testers This command will list all your testers, both internal and external. fastlane pilot list The output will look like this: +--------+--------+--------------------------+-----------+ | Internal Testers | +--------+--------+--------------------------+-----------+ | First | Last | Email | # Devices | +--------+--------+--------------------------+-----------+ | Felix | Krause | felix@krausefx.com | 2 | +--------+--------+--------------------------+-----------+ +-----------+---------+----------------------------+-----------+ | External Testers | +-----------+---------+----------------------------+-----------+ | First | Last | Email | # Devices | +-----------+---------+----------------------------+-----------+ | Max | Manfred | email@email.com | 0 | | Detlef | M\u00fcller | detlef@krausefx.com | 1 | +-----------+---------+----------------------------+-----------+ Add a new tester To add a new tester to your App Store Connect account and to associate it to at least one testing group of your app, use the pilot add command. This will create a new tester (if necessary) or add an existing tester to the app to test. fastlane pilot add email@invite.com -g group-1,group-2 Additionally you can specify the app identifier (if necessary): fastlane pilot add email@email.com -a com.krausefx.app -g group-1,group-2 Find a tester To find a specific tester use fastlane pilot find felix@krausefx.com The resulting output will look like this: +---------------------+---------------------+ | felix@krausefx.com | +---------------------+---------------------+ | First name | Felix | | Last name | Krause | | Email | felix@krausefx.com | | Latest Version | 0.9.14 (23 | | Latest Install Date | 03/28/15 19:00 | | 2 Devices | \u2022 iPhone 6, iOS 8.3 | | | \u2022 iPhone 5, iOS 7.0 | +---------------------+---------------------+ Remove a tester This command will remove beta tester from app (from all internal and external groups) fastlane pilot remove felix@krausefx.com You can also use groups option to remove the tester from the groups specified: fastlane pilot remove felix@krausefx.com -g group-1,group-2 Export testers To export all external testers to a CSV file. Useful if you need to import tester info to another system or a new account. fastlane pilot export Import testers Add external testers from a CSV file. Create a file (ex: testers.csv ) and fill it with the following format: John,Appleseed,appleseed_john@mac.com,group-1;group-2 fastlane pilot import You can also specify the directory using fastlane pilot export -c ~/Desktop/testers.csv fastlane pilot import -c ~/Desktop/testers.csv Tips Debug information If you run into any issues you can use the verbose mode to get a more detailed output: fastlane pilot upload --verbose Firewall Issues pilot uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol from the command line using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" pilot ... If you are using pilot via the fastlane action , add the following to your Fastfile ENV[\"DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS\"] = \"-t DAV\" pilot... Note, however, that Apple recommends you don\u2019t specify the -t transport and instead allow Transporter to use automatic transport discovery to determine the best transport mode for your packages. For this reason, if the t option is passed, we will raise a warning. Also note that -t is not the only additional parameter that can be used. The string specified in the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS environment variable will be forwarded to Transporter. For all the available options, check Apple's Transporter User Guide . Credentials Issues If your password contains special characters, pilot may throw a confusing error saying your \"Your Apple ID or password was entered incorrectly\". The easiest way to fix this error is to change your password to something that does not contains special characters. How is my password stored? pilot uses the CredentialsManager from fastlane . Provider Short Name If you are on multiple App Store Connect teams, iTunes Transporter may need a provider short name to know where to upload your binary. pilot will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option. Use an Application Specific Password to upload pilot / upload_to_testflight can use an Application Specific Password via the FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD environment variable to upload a binary if both the skip_waiting_for_build_processing and apple_id options are set. (If any of those are not set, it will use the normal Apple login process that might require 2FA authentication.) Role for App Store Connect User pilot / upload_to_testflight updates build information and testers after the build has finished processing. App Store Connect requires the \"App Manager\" or \"Admin\" role for your Apple account to update this information. The \"Developer\" role will allow builds to be uploaded but will not allow updating of build information and testers. testflight Supported platforms ios, mac Author @KrauseFx 7 Examples upload_to_testflight testflight # alias for \"upload_to_testflight\" pilot # alias for \"upload_to_testflight\" upload_to_testflight(skip_submission: true) # to only upload the build upload_to_testflight( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) upload_to_testflight( beta_app_feedback_email: \"email@email.com\", beta_app_description: \"This is a description of my app\", demo_account_required: true, notify_external_testers: false, changelog: \"This is my changelog of things that have changed in a log\" ) upload_to_testflight( beta_app_review_info: { contact_email: \"email@email.com\", contact_first_name: \"Connect\", contact_last_name: \"API\", contact_phone: \"5558675309\", demo_account_name: \"demo@email.com\", demo_account_password: \"connectapi\", notes: \"this is review note for the reviewer <3 thank you for reviewing\" }, localized_app_info: { \"default\": { feedback_email: \"default@email.com\", marketing_url: \"https://example.com/marketing-defafult\", privacy_policy_url: \"https://example.com/privacy-defafult\", description: \"Default description\", }, \"en-GB\": { feedback_email: \"en-gb@email.com\", marketing_url: \"https://example.com/marketing-en-gb\", privacy_policy_url: \"https://example.com/privacy-en-gb\", description: \"en-gb description\", } }, localized_build_info: { \"default\": { whats_new: \"Default changelog\", }, \"en-GB\": { whats_new: \"en-gb changelog\", } } ) Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of the app to upload or manage testers (optional) * app_platform The platform to use (optional) apple_id Apple ID property in the App Information section in App Store Connect * ipa Path to the ipa file to upload * pkg Path to your pkg file * demo_account_required Do you need a demo account when Apple does review? beta_app_review_info Beta app review information for contact info and demo account localized_app_info Localized beta app test info for description, feedback email, marketing url, and privacy policy beta_app_description Provide the 'Beta App Description' when uploading a new build beta_app_feedback_email Provide the beta app email when uploading a new build localized_build_info Localized beta app test info for what's new changelog Provide the 'What to Test' text when uploading a new build skip_submission Skip the distributing action of pilot and only upload the ipa file false skip_waiting_for_build_processing If set to true, the distribute_external option won't work and no build will be distributed to testers. (You might want to use this option if you are using this action on CI and have to pay for 'minutes used' on your CI plan). If set to true and a changelog is provided, it will partially wait for the build to appear on AppStore Connect so the changelog can be set, and skip the remaining processing steps false update_build_info_on_upload DEPRECATED! Update build info immediately after validation. This is deprecated and will be removed in a future release. App Store Connect no longer supports setting build info until after build processing has completed, which is when build info is updated by default false distribute_only Distribute a previously uploaded build (equivalent to the fastlane pilot distribute command) false uses_non_exempt_encryption Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist false distribute_external Should the build be distributed to external testers? If set to true, use of groups option is required false notify_external_testers Should notify external testers? (Not setting a value will use App Store Connect's default which is to notify) app_version The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed build_number The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed expire_previous_builds Should expire previous builds? false first_name The tester's first name last_name The tester's last name email The tester's email testers_file_path Path to a CSV file of testers ./testers.csv groups Associate tester to one group or more by group name / group id. E.g. -g \"Team 1\",\"Team 2\" This is required when distribute_external option is set to true or when we want to add a tester to one or more external testing groups team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your team in the developer portal, if you're in multiple teams. Different from your iTC team ID! * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column wait_processing_interval Interval in seconds to wait for App Store Connect processing 30 wait_processing_timeout_duration Timeout duration in seconds to wait for App Store Connect processing. If set, after exceeding timeout duration, this will force stop to wait for App Store Connect processing and exit with exception wait_for_uploaded_build DEPRECATED! No longer needed with the transition over to the App Store Connect API - Use version info from uploaded ipa file to determine what build to use for distribution. If set to false, latest processing or any latest build will be used false reject_build_waiting_for_review Expire previous if it's 'waiting for review' false submit_beta_review Send the build for a beta review true * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action testflight CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run testflight To pass parameters, make use of the : symbol, for example fastlane run testflight parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"testflight"},{"location":"actions/testflight/#testflight","text":"Alias for the upload_to_testflight action","title":"testflight"},{"location":"actions/testflight/#usage","text":"For all commands, you can either use an API Key or your Apple ID .","title":"Usage"},{"location":"actions/testflight/#uploading-builds","text":"To upload a new build, just run fastlane pilot upload This will automatically look for an ipa in your current directory and tries to fetch the login credentials from your fastlane setup . You'll be asked for any missing information. Additionally, you can pass all kinds of parameters: fastlane action pilot You can pass a changelog using fastlane pilot upload --changelog \"Something that is new here\" You can also skip the submission of the binary, which means, the ipa file will only be uploaded and not distributed to testers: fastlane pilot upload --skip_submission pilot does all kinds of magic for you: Automatically detects the bundle identifier from your ipa file Automatically fetch the AppID of your app based on the bundle identifier pilot uses spaceship to submit the build metadata and the iTunes Transporter to upload the binary. Because iTunes Transporter's upload capability is only supported on OS X, pilot upload does not work on Linux, as described in this issue","title":"Uploading builds"},{"location":"actions/testflight/#list-builds","text":"To list all builds for specific application use fastlane pilot builds The result lists all active builds and processing builds: +-----------+---------+----------+ | Great App Builds | +-----------+---------+----------+ | Version # | Build # | Installs | +-----------+---------+----------+ | 0.9.13 | 1 | 0 | | 0.9.13 | 2 | 0 | | 0.9.20 | 3 | 0 | | 0.9.20 | 4 | 3 | +-----------+---------+----------+","title":"List builds"},{"location":"actions/testflight/#managing-beta-testers","text":"","title":"Managing beta testers"},{"location":"actions/testflight/#tips","text":"","title":"Tips"},{"location":"actions/testflight/#debug-information","text":"If you run into any issues you can use the verbose mode to get a more detailed output: fastlane pilot upload --verbose","title":"Debug information"},{"location":"actions/testflight/#firewall-issues","text":"pilot uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol from the command line using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" pilot ... If you are using pilot via the fastlane action , add the following to your Fastfile ENV[\"DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS\"] = \"-t DAV\" pilot... Note, however, that Apple recommends you don\u2019t specify the -t transport and instead allow Transporter to use automatic transport discovery to determine the best transport mode for your packages. For this reason, if the t option is passed, we will raise a warning. Also note that -t is not the only additional parameter that can be used. The string specified in the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS environment variable will be forwarded to Transporter. For all the available options, check Apple's Transporter User Guide .","title":"Firewall Issues"},{"location":"actions/testflight/#credentials-issues","text":"If your password contains special characters, pilot may throw a confusing error saying your \"Your Apple ID or password was entered incorrectly\". The easiest way to fix this error is to change your password to something that does not contains special characters.","title":"Credentials Issues"},{"location":"actions/testflight/#how-is-my-password-stored","text":"pilot uses the CredentialsManager from fastlane .","title":"How is my password stored?"},{"location":"actions/testflight/#provider-short-name","text":"If you are on multiple App Store Connect teams, iTunes Transporter may need a provider short name to know where to upload your binary. pilot will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option.","title":"Provider Short Name"},{"location":"actions/testflight/#use-an-application-specific-password-to-upload","text":"pilot / upload_to_testflight can use an Application Specific Password via the FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD environment variable to upload a binary if both the skip_waiting_for_build_processing and apple_id options are set. (If any of those are not set, it will use the normal Apple login process that might require 2FA authentication.)","title":"Use an Application Specific Password to upload"},{"location":"actions/testflight/#role-for-app-store-connect-user","text":"pilot / upload_to_testflight updates build information and testers after the build has finished processing. App Store Connect requires the \"App Manager\" or \"Admin\" role for your Apple account to update this information. The \"Developer\" role will allow builds to be uploaded but will not allow updating of build information and testers. testflight Supported platforms ios, mac Author @KrauseFx","title":"Role for App Store Connect User"},{"location":"actions/testflight/#7-examples","text":"upload_to_testflight testflight # alias for \"upload_to_testflight\" pilot # alias for \"upload_to_testflight\" upload_to_testflight(skip_submission: true) # to only upload the build upload_to_testflight( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) upload_to_testflight( beta_app_feedback_email: \"email@email.com\", beta_app_description: \"This is a description of my app\", demo_account_required: true, notify_external_testers: false, changelog: \"This is my changelog of things that have changed in a log\" ) upload_to_testflight( beta_app_review_info: { contact_email: \"email@email.com\", contact_first_name: \"Connect\", contact_last_name: \"API\", contact_phone: \"5558675309\", demo_account_name: \"demo@email.com\", demo_account_password: \"connectapi\", notes: \"this is review note for the reviewer <3 thank you for reviewing\" }, localized_app_info: { \"default\": { feedback_email: \"default@email.com\", marketing_url: \"https://example.com/marketing-defafult\", privacy_policy_url: \"https://example.com/privacy-defafult\", description: \"Default description\", }, \"en-GB\": { feedback_email: \"en-gb@email.com\", marketing_url: \"https://example.com/marketing-en-gb\", privacy_policy_url: \"https://example.com/privacy-en-gb\", description: \"en-gb description\", } }, localized_build_info: { \"default\": { whats_new: \"Default changelog\", }, \"en-GB\": { whats_new: \"en-gb changelog\", } } )","title":"7 Examples"},{"location":"actions/testflight/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of the app to upload or manage testers (optional) * app_platform The platform to use (optional) apple_id Apple ID property in the App Information section in App Store Connect * ipa Path to the ipa file to upload * pkg Path to your pkg file * demo_account_required Do you need a demo account when Apple does review? beta_app_review_info Beta app review information for contact info and demo account localized_app_info Localized beta app test info for description, feedback email, marketing url, and privacy policy beta_app_description Provide the 'Beta App Description' when uploading a new build beta_app_feedback_email Provide the beta app email when uploading a new build localized_build_info Localized beta app test info for what's new changelog Provide the 'What to Test' text when uploading a new build skip_submission Skip the distributing action of pilot and only upload the ipa file false skip_waiting_for_build_processing If set to true, the distribute_external option won't work and no build will be distributed to testers. (You might want to use this option if you are using this action on CI and have to pay for 'minutes used' on your CI plan). If set to true and a changelog is provided, it will partially wait for the build to appear on AppStore Connect so the changelog can be set, and skip the remaining processing steps false update_build_info_on_upload DEPRECATED! Update build info immediately after validation. This is deprecated and will be removed in a future release. App Store Connect no longer supports setting build info until after build processing has completed, which is when build info is updated by default false distribute_only Distribute a previously uploaded build (equivalent to the fastlane pilot distribute command) false uses_non_exempt_encryption Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist false distribute_external Should the build be distributed to external testers? If set to true, use of groups option is required false notify_external_testers Should notify external testers? (Not setting a value will use App Store Connect's default which is to notify) app_version The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed build_number The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed expire_previous_builds Should expire previous builds? false first_name The tester's first name last_name The tester's last name email The tester's email testers_file_path Path to a CSV file of testers ./testers.csv groups Associate tester to one group or more by group name / group id. E.g. -g \"Team 1\",\"Team 2\" This is required when distribute_external option is set to true or when we want to add a tester to one or more external testing groups team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your team in the developer portal, if you're in multiple teams. Different from your iTC team ID! * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column wait_processing_interval Interval in seconds to wait for App Store Connect processing 30 wait_processing_timeout_duration Timeout duration in seconds to wait for App Store Connect processing. If set, after exceeding timeout duration, this will force stop to wait for App Store Connect processing and exit with exception wait_for_uploaded_build DEPRECATED! No longer needed with the transition over to the App Store Connect API - Use version info from uploaded ipa file to determine what build to use for distribution. If set to false, latest processing or any latest build will be used false reject_build_waiting_for_review Expire previous if it's 'waiting for review' false submit_beta_review Send the build for a beta review true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/testflight/#documentation","text":"To show the documentation in your terminal, run fastlane action testflight","title":"Documentation"},{"location":"actions/testflight/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run testflight To pass parameters, make use of the : symbol, for example fastlane run testflight parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/testflight/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/trainer/","text":"trainer Convert the Xcode plist log to a JUnit report trainer Supported platforms ios, mac Author @KrauseFx Returns A hash with the key being the path of the generated file, the value being if the tests were successful Parameters Key Description Default path Path to the directory that should be converted . extension The extension for the newly created file. Usually .xml or .junit .xml output_directory Directory in which the xml files should be written to. Same directory as source by default output_filename Filename the xml file should be written to. Defaults to name of input file. (Only works if one input file is used) fail_build Should this step stop the build if the tests fail? Set this to false if you're handling this with a test reporter true xcpretty_naming Produces class name and test name identical to xcpretty naming in junit file false silent Silences all output false output_remove_retry_attempts Doesn't include retry attempts in the output false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action trainer CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run trainer To pass parameters, make use of the : symbol, for example fastlane run trainer parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"trainer"},{"location":"actions/trainer/#trainer","text":"Convert the Xcode plist log to a JUnit report trainer Supported platforms ios, mac Author @KrauseFx Returns A hash with the key being the path of the generated file, the value being if the tests were successful","title":"trainer"},{"location":"actions/trainer/#parameters","text":"Key Description Default path Path to the directory that should be converted . extension The extension for the newly created file. Usually .xml or .junit .xml output_directory Directory in which the xml files should be written to. Same directory as source by default output_filename Filename the xml file should be written to. Defaults to name of input file. (Only works if one input file is used) fail_build Should this step stop the build if the tests fail? Set this to false if you're handling this with a test reporter true xcpretty_naming Produces class name and test name identical to xcpretty naming in junit file false silent Silences all output false output_remove_retry_attempts Doesn't include retry attempts in the output false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/trainer/#documentation","text":"To show the documentation in your terminal, run fastlane action trainer","title":"Documentation"},{"location":"actions/trainer/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run trainer To pass parameters, make use of the : symbol, for example fastlane run trainer parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/trainer/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/tryouts/","text":"tryouts Upload a new build to Tryouts More information: http://tryouts.readthedocs.org/en/latest/releases.html#create-release tryouts Supported platforms ios, android Author @alicertel 1 Example tryouts( api_token: \"...\", app_id: \"application-id\", build_file: \"test.ipa\", ) Parameters Key Description Default app_id Tryouts application hash api_token API Token (api_key:api_secret) for Tryouts Access build_file Path to your IPA or APK file. Optional if you use the gym or xcodebuild action * notes Release notes notes_path Release notes text file path. Overrides the :notes parameter notify Notify testers? 0 for no 1 status 2 to make your release public. Release will be distributed to available testers. 1 to make your release private. Release won't be distributed to testers. This also prevents release from showing up for SDK update 2 * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The tryouts action generates the following Lane Variables: SharedValue Description SharedValues::TRYOUTS_BUILD_INFORMATION Contains release info like :application_name, :download_url. See http://tryouts.readthedocs.org/en/latest/releases.html#create-release To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action tryouts CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run tryouts To pass parameters, make use of the : symbol, for example fastlane run tryouts parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"tryouts"},{"location":"actions/tryouts/#tryouts","text":"Upload a new build to Tryouts More information: http://tryouts.readthedocs.org/en/latest/releases.html#create-release tryouts Supported platforms ios, android Author @alicertel","title":"tryouts"},{"location":"actions/tryouts/#1-example","text":"tryouts( api_token: \"...\", app_id: \"application-id\", build_file: \"test.ipa\", )","title":"1 Example"},{"location":"actions/tryouts/#parameters","text":"Key Description Default app_id Tryouts application hash api_token API Token (api_key:api_secret) for Tryouts Access build_file Path to your IPA or APK file. Optional if you use the gym or xcodebuild action * notes Release notes notes_path Release notes text file path. Overrides the :notes parameter notify Notify testers? 0 for no 1 status 2 to make your release public. Release will be distributed to available testers. 1 to make your release private. Release won't be distributed to testers. This also prevents release from showing up for SDK update 2 * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/tryouts/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The tryouts action generates the following Lane Variables: SharedValue Description SharedValues::TRYOUTS_BUILD_INFORMATION Contains release info like :application_name, :download_url. See http://tryouts.readthedocs.org/en/latest/releases.html#create-release To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/tryouts/#documentation","text":"To show the documentation in your terminal, run fastlane action tryouts","title":"Documentation"},{"location":"actions/tryouts/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run tryouts To pass parameters, make use of the : symbol, for example fastlane run tryouts parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/tryouts/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/twitter/","text":"twitter Post a tweet on Twitter.com Post a tweet on Twitter. Requires you to setup an app on twitter.com and obtain consumer and access_token . twitter Supported platforms ios, android, mac Author @hjanuschka 1 Example twitter( access_token: \"XXXX\", access_token_secret: \"xxx\", consumer_key: \"xxx\", consumer_secret: \"xxx\", message: \"You rock!\" ) Parameters Key Description Default consumer_key Consumer Key consumer_secret Consumer Secret access_token Access Token access_token_secret Access Token Secret message The tweet * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action twitter CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run twitter To pass parameters, make use of the : symbol, for example fastlane run twitter parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"twitter"},{"location":"actions/twitter/#twitter","text":"Post a tweet on Twitter.com Post a tweet on Twitter. Requires you to setup an app on twitter.com and obtain consumer and access_token . twitter Supported platforms ios, android, mac Author @hjanuschka","title":"twitter"},{"location":"actions/twitter/#1-example","text":"twitter( access_token: \"XXXX\", access_token_secret: \"xxx\", consumer_key: \"xxx\", consumer_secret: \"xxx\", message: \"You rock!\" )","title":"1 Example"},{"location":"actions/twitter/#parameters","text":"Key Description Default consumer_key Consumer Key consumer_secret Consumer Secret access_token Access Token access_token_secret Access Token Secret message The tweet * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/twitter/#documentation","text":"To show the documentation in your terminal, run fastlane action twitter","title":"Documentation"},{"location":"actions/twitter/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run twitter To pass parameters, make use of the : symbol, for example fastlane run twitter parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/twitter/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/typetalk/","text":"typetalk Post a message to Typetalk typetalk Supported platforms ios, android, mac Author @Nulab Inc. 1 Example typetalk( message: \"App successfully released!\", note_path: \"ChangeLog.md\", topicId: 1, success: true, typetalk_token: \"Your Typetalk Token\" ) Documentation To show the documentation in your terminal, run fastlane action typetalk CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run typetalk To pass parameters, make use of the : symbol, for example fastlane run typetalk parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"typetalk"},{"location":"actions/typetalk/#typetalk","text":"Post a message to Typetalk typetalk Supported platforms ios, android, mac Author @Nulab Inc.","title":"typetalk"},{"location":"actions/typetalk/#1-example","text":"typetalk( message: \"App successfully released!\", note_path: \"ChangeLog.md\", topicId: 1, success: true, typetalk_token: \"Your Typetalk Token\" )","title":"1 Example"},{"location":"actions/typetalk/#documentation","text":"To show the documentation in your terminal, run fastlane action typetalk","title":"Documentation"},{"location":"actions/typetalk/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run typetalk To pass parameters, make use of the : symbol, for example fastlane run typetalk parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/typetalk/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/unlock_keychain/","text":"unlock_keychain Unlock a keychain Unlocks the given keychain file and adds it to the keychain search list. Keychains can be replaced with add_to_search_list: :replace . unlock_keychain Supported platforms ios, android, mac Author @xfreebird 4 Examples unlock_keychain( # Unlock an existing keychain and add it to the keychain search list path: \"/path/to/KeychainName.keychain\", password: \"mysecret\" ) unlock_keychain( # By default the keychain is added to the existing. To replace them with the selected keychain you may use `:replace` path: \"/path/to/KeychainName.keychain\", password: \"mysecret\", add_to_search_list: :replace # To only add a keychain use `true` or `:add`. ) unlock_keychain( # In addition, the keychain can be selected as a default keychain path: \"/path/to/KeychainName.keychain\", password: \"mysecret\", set_default: true ) unlock_keychain( # If the keychain file is located in the standard location `~/Library/Keychains`, then it is sufficient to provide the keychain file name, or file name with its suffix. path: \"KeychainName\", password: \"mysecret\" ) Parameters Key Description Default path Path to the keychain file login password Keychain password add_to_search_list Add to keychain search list, valid values are true, false, :add, and :replace true set_default Set as default keychain false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action unlock_keychain CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run unlock_keychain To pass parameters, make use of the : symbol, for example fastlane run unlock_keychain parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"unlock_keychain"},{"location":"actions/unlock_keychain/#unlock_keychain","text":"Unlock a keychain Unlocks the given keychain file and adds it to the keychain search list. Keychains can be replaced with add_to_search_list: :replace . unlock_keychain Supported platforms ios, android, mac Author @xfreebird","title":"unlock_keychain"},{"location":"actions/unlock_keychain/#4-examples","text":"unlock_keychain( # Unlock an existing keychain and add it to the keychain search list path: \"/path/to/KeychainName.keychain\", password: \"mysecret\" ) unlock_keychain( # By default the keychain is added to the existing. To replace them with the selected keychain you may use `:replace` path: \"/path/to/KeychainName.keychain\", password: \"mysecret\", add_to_search_list: :replace # To only add a keychain use `true` or `:add`. ) unlock_keychain( # In addition, the keychain can be selected as a default keychain path: \"/path/to/KeychainName.keychain\", password: \"mysecret\", set_default: true ) unlock_keychain( # If the keychain file is located in the standard location `~/Library/Keychains`, then it is sufficient to provide the keychain file name, or file name with its suffix. path: \"KeychainName\", password: \"mysecret\" )","title":"4 Examples"},{"location":"actions/unlock_keychain/#parameters","text":"Key Description Default path Path to the keychain file login password Keychain password add_to_search_list Add to keychain search list, valid values are true, false, :add, and :replace true set_default Set as default keychain false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/unlock_keychain/#documentation","text":"To show the documentation in your terminal, run fastlane action unlock_keychain","title":"Documentation"},{"location":"actions/unlock_keychain/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run unlock_keychain To pass parameters, make use of the : symbol, for example fastlane run unlock_keychain parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/unlock_keychain/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/update_app_group_identifiers/","text":"update_app_group_identifiers This action changes the app group identifiers in the entitlements file Updates the App Group Identifiers in the given Entitlements file, so you can have app groups for the app store build and app groups for an enterprise build. update_app_group_identifiers Supported platforms ios Author @mathiasAichinger 1 Example update_app_group_identifiers( entitlements_file: \"/path/to/entitlements_file.entitlements\", app_group_identifiers: [\"group.your.app.group.identifier\"] ) Parameters Key Description Default entitlements_file The path to the entitlement file which contains the app group identifiers app_group_identifiers An Array of unique identifiers for the app groups. Eg. ['group.com.test.testapp'] * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The update_app_group_identifiers action generates the following Lane Variables: SharedValue Description SharedValues::APP_GROUP_IDENTIFIERS The new App Group Identifiers To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action update_app_group_identifiers CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_app_group_identifiers To pass parameters, make use of the : symbol, for example fastlane run update_app_group_identifiers parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"update_app_group_identifiers"},{"location":"actions/update_app_group_identifiers/#update_app_group_identifiers","text":"This action changes the app group identifiers in the entitlements file Updates the App Group Identifiers in the given Entitlements file, so you can have app groups for the app store build and app groups for an enterprise build. update_app_group_identifiers Supported platforms ios Author @mathiasAichinger","title":"update_app_group_identifiers"},{"location":"actions/update_app_group_identifiers/#1-example","text":"update_app_group_identifiers( entitlements_file: \"/path/to/entitlements_file.entitlements\", app_group_identifiers: [\"group.your.app.group.identifier\"] )","title":"1 Example"},{"location":"actions/update_app_group_identifiers/#parameters","text":"Key Description Default entitlements_file The path to the entitlement file which contains the app group identifiers app_group_identifiers An Array of unique identifiers for the app groups. Eg. ['group.com.test.testapp'] * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/update_app_group_identifiers/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The update_app_group_identifiers action generates the following Lane Variables: SharedValue Description SharedValues::APP_GROUP_IDENTIFIERS The new App Group Identifiers To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/update_app_group_identifiers/#documentation","text":"To show the documentation in your terminal, run fastlane action update_app_group_identifiers","title":"Documentation"},{"location":"actions/update_app_group_identifiers/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_app_group_identifiers To pass parameters, make use of the : symbol, for example fastlane run update_app_group_identifiers parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/update_app_group_identifiers/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/update_app_identifier/","text":"update_app_identifier Update the project's bundle identifier Update an app identifier by either setting CFBundleIdentifier or PRODUCT_BUNDLE_IDENTIFIER , depending on which is already in use. update_app_identifier Supported platforms ios Author @squarefrog, @tobiasstrebitzer 1 Example update_app_identifier( xcodeproj: \"Example.xcodeproj\", # Optional path to xcodeproj, will use the first .xcodeproj if not set plist_path: \"Example/Info.plist\", # Path to info plist file, relative to xcodeproj app_identifier: \"com.test.example\" # The App Identifier ) Parameters Key Description Default xcodeproj Path to your Xcode project * plist_path Path to info plist, relative to your Xcode project app_identifier The app Identifier you want to set * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_app_identifier CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_app_identifier To pass parameters, make use of the : symbol, for example fastlane run update_app_identifier parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"update_app_identifier"},{"location":"actions/update_app_identifier/#update_app_identifier","text":"Update the project's bundle identifier Update an app identifier by either setting CFBundleIdentifier or PRODUCT_BUNDLE_IDENTIFIER , depending on which is already in use. update_app_identifier Supported platforms ios Author @squarefrog, @tobiasstrebitzer","title":"update_app_identifier"},{"location":"actions/update_app_identifier/#1-example","text":"update_app_identifier( xcodeproj: \"Example.xcodeproj\", # Optional path to xcodeproj, will use the first .xcodeproj if not set plist_path: \"Example/Info.plist\", # Path to info plist file, relative to xcodeproj app_identifier: \"com.test.example\" # The App Identifier )","title":"1 Example"},{"location":"actions/update_app_identifier/#parameters","text":"Key Description Default xcodeproj Path to your Xcode project * plist_path Path to info plist, relative to your Xcode project app_identifier The app Identifier you want to set * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/update_app_identifier/#documentation","text":"To show the documentation in your terminal, run fastlane action update_app_identifier","title":"Documentation"},{"location":"actions/update_app_identifier/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_app_identifier To pass parameters, make use of the : symbol, for example fastlane run update_app_identifier parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/update_app_identifier/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/update_code_signing_settings/","text":"update_code_signing_settings Configures Xcode's Codesigning options Configures Xcode's Codesigning options of all targets in the project update_code_signing_settings Supported platforms ios, mac Author @mathiasAichinger, @hjanuschka, @p4checo, @portellaa, @aeons, @att55, @abcdev Returns The current status (boolean) of codesigning after modification 3 Examples # manual code signing update_code_signing_settings( use_automatic_signing: false, path: \"demo-project/demo/demo.xcodeproj\" ) # automatic code signing update_code_signing_settings( use_automatic_signing: true, path: \"demo-project/demo/demo.xcodeproj\" ) # more advanced manual code signing update_code_signing_settings( use_automatic_signing: false, path: \"demo-project/demo/demo.xcodeproj\", team_id: \"QABC123DEV\", bundle_identifier: \"com.demoapp.QABC123DEV\", code_sign_identity: \"iPhone Distribution\", sdk: \"iphoneos*\", profile_name: \"Demo App Deployment Profile\", entitlements_file_path: \"Demo App/generated/New.entitlements\" ) Parameters Key Description Default path Path to your Xcode project * use_automatic_signing Defines if project should use automatic signing false sdk Build target SDKs (iphoneos , macosx , iphonesimulator*) team_id Team ID, is used when upgrading project targets Specify targets you want to toggle the signing mech. (default to all targets) build_configurations Specify build_configurations you want to toggle the signing mech. (default to all configurations) code_sign_identity Code signing identity type (iPhone Developer, iPhone Distribution) entitlements_file_path Path to your entitlements file profile_name Provisioning profile name to use for code signing profile_uuid Provisioning profile UUID to use for code signing bundle_identifier Application Product Bundle Identifier * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_code_signing_settings CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_code_signing_settings To pass parameters, make use of the : symbol, for example fastlane run update_code_signing_settings parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"update_code_signing_settings"},{"location":"actions/update_code_signing_settings/#update_code_signing_settings","text":"Configures Xcode's Codesigning options Configures Xcode's Codesigning options of all targets in the project update_code_signing_settings Supported platforms ios, mac Author @mathiasAichinger, @hjanuschka, @p4checo, @portellaa, @aeons, @att55, @abcdev Returns The current status (boolean) of codesigning after modification","title":"update_code_signing_settings"},{"location":"actions/update_code_signing_settings/#3-examples","text":"# manual code signing update_code_signing_settings( use_automatic_signing: false, path: \"demo-project/demo/demo.xcodeproj\" ) # automatic code signing update_code_signing_settings( use_automatic_signing: true, path: \"demo-project/demo/demo.xcodeproj\" ) # more advanced manual code signing update_code_signing_settings( use_automatic_signing: false, path: \"demo-project/demo/demo.xcodeproj\", team_id: \"QABC123DEV\", bundle_identifier: \"com.demoapp.QABC123DEV\", code_sign_identity: \"iPhone Distribution\", sdk: \"iphoneos*\", profile_name: \"Demo App Deployment Profile\", entitlements_file_path: \"Demo App/generated/New.entitlements\" )","title":"3 Examples"},{"location":"actions/update_code_signing_settings/#parameters","text":"Key Description Default path Path to your Xcode project * use_automatic_signing Defines if project should use automatic signing false sdk Build target SDKs (iphoneos , macosx , iphonesimulator*) team_id Team ID, is used when upgrading project targets Specify targets you want to toggle the signing mech. (default to all targets) build_configurations Specify build_configurations you want to toggle the signing mech. (default to all configurations) code_sign_identity Code signing identity type (iPhone Developer, iPhone Distribution) entitlements_file_path Path to your entitlements file profile_name Provisioning profile name to use for code signing profile_uuid Provisioning profile UUID to use for code signing bundle_identifier Application Product Bundle Identifier * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/update_code_signing_settings/#documentation","text":"To show the documentation in your terminal, run fastlane action update_code_signing_settings","title":"Documentation"},{"location":"actions/update_code_signing_settings/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_code_signing_settings To pass parameters, make use of the : symbol, for example fastlane run update_code_signing_settings parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/update_code_signing_settings/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/update_fastlane/","text":"update_fastlane Makes sure fastlane-tools are up-to-date when running fastlane This action will update fastlane to the most recent version - major version updates will not be performed automatically, as they might include breaking changes. If an update was performed, fastlane will be restarted before the run continues. If you are using rbenv or rvm, everything should be good to go. However, if you are using the system's default ruby, some additional setup is needed for this action to work correctly. In short, fastlane needs to be able to access your gem library without running in sudo mode. The simplest possible fix for this is putting the following lines into your ~/.bashrc or ~/.zshrc file: export GEM_HOME=~/.gems export PATH=$PATH:~/.gems/bin After the above changes, restart your terminal, then run mkdir $GEM_HOME to create the new gem directory. After this, you're good to go! Recommended usage of the update_fastlane action is at the top inside of the before_all block, before running any other action. update_fastlane Supported platforms ios, android, mac Author @milch, @KrauseFx 1 Example before_all do update_fastlane # ... end Parameters Key Description Default no_update Don't update during this run. This is used internally false nightly DEPRECATED! Nightly builds are no longer being made available - Opt-in to install and use nightly fastlane builds false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_fastlane CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_fastlane To pass parameters, make use of the : symbol, for example fastlane run update_fastlane parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"update_fastlane"},{"location":"actions/update_fastlane/#update_fastlane","text":"Makes sure fastlane-tools are up-to-date when running fastlane This action will update fastlane to the most recent version - major version updates will not be performed automatically, as they might include breaking changes. If an update was performed, fastlane will be restarted before the run continues. If you are using rbenv or rvm, everything should be good to go. However, if you are using the system's default ruby, some additional setup is needed for this action to work correctly. In short, fastlane needs to be able to access your gem library without running in sudo mode. The simplest possible fix for this is putting the following lines into your ~/.bashrc or ~/.zshrc file: export GEM_HOME=~/.gems export PATH=$PATH:~/.gems/bin After the above changes, restart your terminal, then run mkdir $GEM_HOME to create the new gem directory. After this, you're good to go! Recommended usage of the update_fastlane action is at the top inside of the before_all block, before running any other action. update_fastlane Supported platforms ios, android, mac Author @milch, @KrauseFx","title":"update_fastlane"},{"location":"actions/update_fastlane/#1-example","text":"before_all do update_fastlane # ... end","title":"1 Example"},{"location":"actions/update_fastlane/#parameters","text":"Key Description Default no_update Don't update during this run. This is used internally false nightly DEPRECATED! Nightly builds are no longer being made available - Opt-in to install and use nightly fastlane builds false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/update_fastlane/#documentation","text":"To show the documentation in your terminal, run fastlane action update_fastlane","title":"Documentation"},{"location":"actions/update_fastlane/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_fastlane To pass parameters, make use of the : symbol, for example fastlane run update_fastlane parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/update_fastlane/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/update_icloud_container_identifiers/","text":"update_icloud_container_identifiers This action changes the iCloud container identifiers in the entitlements file Updates the iCloud Container Identifiers in the given Entitlements file, so you can use different iCloud containers for different builds like Adhoc, App Store, etc. update_icloud_container_identifiers Supported platforms ios Author @JamesKuang 1 Example update_icloud_container_identifiers( entitlements_file: \"/path/to/entitlements_file.entitlements\", icloud_container_identifiers: [\"iCloud.com.companyname.appname\"] ) Parameters Key Description Default entitlements_file The path to the entitlement file which contains the iCloud container identifiers icloud_container_identifiers An Array of unique identifiers for the iCloud containers. Eg. ['iCloud.com.test.testapp'] * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The update_icloud_container_identifiers action generates the following Lane Variables: SharedValue Description SharedValues::UPDATE_ICLOUD_CONTAINER_IDENTIFIERS The new iCloud Container Identifiers To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action update_icloud_container_identifiers CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_icloud_container_identifiers To pass parameters, make use of the : symbol, for example fastlane run update_icloud_container_identifiers parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"update_icloud_container_identifiers"},{"location":"actions/update_icloud_container_identifiers/#update_icloud_container_identifiers","text":"This action changes the iCloud container identifiers in the entitlements file Updates the iCloud Container Identifiers in the given Entitlements file, so you can use different iCloud containers for different builds like Adhoc, App Store, etc. update_icloud_container_identifiers Supported platforms ios Author @JamesKuang","title":"update_icloud_container_identifiers"},{"location":"actions/update_icloud_container_identifiers/#1-example","text":"update_icloud_container_identifiers( entitlements_file: \"/path/to/entitlements_file.entitlements\", icloud_container_identifiers: [\"iCloud.com.companyname.appname\"] )","title":"1 Example"},{"location":"actions/update_icloud_container_identifiers/#parameters","text":"Key Description Default entitlements_file The path to the entitlement file which contains the iCloud container identifiers icloud_container_identifiers An Array of unique identifiers for the iCloud containers. Eg. ['iCloud.com.test.testapp'] * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/update_icloud_container_identifiers/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The update_icloud_container_identifiers action generates the following Lane Variables: SharedValue Description SharedValues::UPDATE_ICLOUD_CONTAINER_IDENTIFIERS The new iCloud Container Identifiers To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/update_icloud_container_identifiers/#documentation","text":"To show the documentation in your terminal, run fastlane action update_icloud_container_identifiers","title":"Documentation"},{"location":"actions/update_icloud_container_identifiers/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_icloud_container_identifiers To pass parameters, make use of the : symbol, for example fastlane run update_icloud_container_identifiers parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/update_icloud_container_identifiers/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/update_info_plist/","text":"update_info_plist Update a Info.plist file with bundle identifier and display name This action allows you to modify your Info.plist file before building. This may be useful if you want a separate build for alpha, beta or nightly builds, but don't want a separate target. update_info_plist Supported platforms ios Author @tobiasstrebitzer 4 Examples update_info_plist( # update app identifier string plist_path: \"path/to/Info.plist\", app_identifier: \"com.example.newappidentifier\" ) update_info_plist( # Change the Display Name of your app plist_path: \"path/to/Info.plist\", display_name: \"MyApp-Beta\" ) update_info_plist( # Target a specific `xcodeproj` rather than finding the first available one xcodeproj: \"path/to/Example.proj\", plist_path: \"path/to/Info.plist\", display_name: \"MyApp-Beta\" ) update_info_plist( # Advanced processing: find URL scheme for particular key and replace value xcodeproj: \"path/to/Example.proj\", plist_path: \"path/to/Info.plist\", block: proc do |plist| urlScheme = plist[\"CFBundleURLTypes\"].find{|scheme| scheme[\"CFBundleURLName\"] == \"com.acme.default-url-handler\"} urlScheme[:CFBundleURLSchemes] = [\"acme-production\"] end ) Parameters Key Description Default xcodeproj Path to your Xcode project plist_path Path to info plist scheme Scheme of info plist app_identifier The App Identifier of your app * display_name The Display Name of your app block A block to process plist with custom logic * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_info_plist CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_info_plist To pass parameters, make use of the : symbol, for example fastlane run update_info_plist parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"update_info_plist"},{"location":"actions/update_info_plist/#update_info_plist","text":"Update a Info.plist file with bundle identifier and display name This action allows you to modify your Info.plist file before building. This may be useful if you want a separate build for alpha, beta or nightly builds, but don't want a separate target. update_info_plist Supported platforms ios Author @tobiasstrebitzer","title":"update_info_plist"},{"location":"actions/update_info_plist/#4-examples","text":"update_info_plist( # update app identifier string plist_path: \"path/to/Info.plist\", app_identifier: \"com.example.newappidentifier\" ) update_info_plist( # Change the Display Name of your app plist_path: \"path/to/Info.plist\", display_name: \"MyApp-Beta\" ) update_info_plist( # Target a specific `xcodeproj` rather than finding the first available one xcodeproj: \"path/to/Example.proj\", plist_path: \"path/to/Info.plist\", display_name: \"MyApp-Beta\" ) update_info_plist( # Advanced processing: find URL scheme for particular key and replace value xcodeproj: \"path/to/Example.proj\", plist_path: \"path/to/Info.plist\", block: proc do |plist| urlScheme = plist[\"CFBundleURLTypes\"].find{|scheme| scheme[\"CFBundleURLName\"] == \"com.acme.default-url-handler\"} urlScheme[:CFBundleURLSchemes] = [\"acme-production\"] end )","title":"4 Examples"},{"location":"actions/update_info_plist/#parameters","text":"Key Description Default xcodeproj Path to your Xcode project plist_path Path to info plist scheme Scheme of info plist app_identifier The App Identifier of your app * display_name The Display Name of your app block A block to process plist with custom logic * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/update_info_plist/#documentation","text":"To show the documentation in your terminal, run fastlane action update_info_plist","title":"Documentation"},{"location":"actions/update_info_plist/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_info_plist To pass parameters, make use of the : symbol, for example fastlane run update_info_plist parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/update_info_plist/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/update_keychain_access_groups/","text":"update_keychain_access_groups This action changes the keychain access groups in the entitlements file Updates the Keychain Group Access Groups in the given Entitlements file, so you can have keychain access groups for the app store build and keychain access groups for an enterprise build. update_keychain_access_groups Supported platforms ios Author @yutae 1 Example update_keychain_access_groups( entitlements_file: \"/path/to/entitlements_file.entitlements\", identifiers: [\"your.keychain.access.groups.identifiers\"] ) Parameters Key Description Default entitlements_file The path to the entitlement file which contains the keychain access groups identifiers An Array of unique identifiers for the keychain access groups. Eg. ['your.keychain.access.groups.identifiers'] * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The update_keychain_access_groups action generates the following Lane Variables: SharedValue Description SharedValues::KEYCHAIN_ACCESS_GROUPS The new Keychain Access Groups To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action update_keychain_access_groups CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_keychain_access_groups To pass parameters, make use of the : symbol, for example fastlane run update_keychain_access_groups parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"update_keychain_access_groups"},{"location":"actions/update_keychain_access_groups/#update_keychain_access_groups","text":"This action changes the keychain access groups in the entitlements file Updates the Keychain Group Access Groups in the given Entitlements file, so you can have keychain access groups for the app store build and keychain access groups for an enterprise build. update_keychain_access_groups Supported platforms ios Author @yutae","title":"update_keychain_access_groups"},{"location":"actions/update_keychain_access_groups/#1-example","text":"update_keychain_access_groups( entitlements_file: \"/path/to/entitlements_file.entitlements\", identifiers: [\"your.keychain.access.groups.identifiers\"] )","title":"1 Example"},{"location":"actions/update_keychain_access_groups/#parameters","text":"Key Description Default entitlements_file The path to the entitlement file which contains the keychain access groups identifiers An Array of unique identifiers for the keychain access groups. Eg. ['your.keychain.access.groups.identifiers'] * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/update_keychain_access_groups/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The update_keychain_access_groups action generates the following Lane Variables: SharedValue Description SharedValues::KEYCHAIN_ACCESS_GROUPS The new Keychain Access Groups To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/update_keychain_access_groups/#documentation","text":"To show the documentation in your terminal, run fastlane action update_keychain_access_groups","title":"Documentation"},{"location":"actions/update_keychain_access_groups/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_keychain_access_groups To pass parameters, make use of the : symbol, for example fastlane run update_keychain_access_groups parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/update_keychain_access_groups/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/update_plist/","text":"update_plist Update a plist file This action allows you to modify any value inside any plist file. update_plist Supported platforms ios Author @rishabhtayal, @matthiaszarzecki 6 Examples update_plist( # Updates the CLIENT_ID and GOOGLE_APP_ID string entries in the plist-file plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| plist[:CLIENT_ID] = \"new_client_id\" plist[:GOOGLE_APP_ID] = \"new_google_app_id\" end ) update_plist( # Sets a boolean entry plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| plist[:boolean_entry] = true end ) update_plist( # Sets a number entry plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| plist[:number_entry] = 13 end ) update_plist( # Sets an array-entry with multiple sub-types plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| plist[:array_entry] = [\"entry_01\", true, 1243] end ) update_plist( # The block can contain logic too plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| if options[:environment] == \"production\" plist[:CLIENT_ID] = \"new_client_id_production\" else plist[:CLIENT_ID] = \"new_client_id_development\" end end ) update_plist( # Advanced processing: find URL scheme for particular key and replace value plist_path: \"path/to/Info.plist\", block: proc do |plist| urlScheme = plist[\"CFBundleURLTypes\"].find{|scheme| scheme[\"CFBundleURLName\"] == \"com.acme.default-url-handler\"} urlScheme[:CFBundleURLSchemes] = [\"acme-production\"] end ) Parameters Key Description Default plist_path Path to plist file block A block to process plist with custom logic * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_plist CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_plist To pass parameters, make use of the : symbol, for example fastlane run update_plist parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"update_plist"},{"location":"actions/update_plist/#update_plist","text":"Update a plist file This action allows you to modify any value inside any plist file. update_plist Supported platforms ios Author @rishabhtayal, @matthiaszarzecki","title":"update_plist"},{"location":"actions/update_plist/#6-examples","text":"update_plist( # Updates the CLIENT_ID and GOOGLE_APP_ID string entries in the plist-file plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| plist[:CLIENT_ID] = \"new_client_id\" plist[:GOOGLE_APP_ID] = \"new_google_app_id\" end ) update_plist( # Sets a boolean entry plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| plist[:boolean_entry] = true end ) update_plist( # Sets a number entry plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| plist[:number_entry] = 13 end ) update_plist( # Sets an array-entry with multiple sub-types plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| plist[:array_entry] = [\"entry_01\", true, 1243] end ) update_plist( # The block can contain logic too plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| if options[:environment] == \"production\" plist[:CLIENT_ID] = \"new_client_id_production\" else plist[:CLIENT_ID] = \"new_client_id_development\" end end ) update_plist( # Advanced processing: find URL scheme for particular key and replace value plist_path: \"path/to/Info.plist\", block: proc do |plist| urlScheme = plist[\"CFBundleURLTypes\"].find{|scheme| scheme[\"CFBundleURLName\"] == \"com.acme.default-url-handler\"} urlScheme[:CFBundleURLSchemes] = [\"acme-production\"] end )","title":"6 Examples"},{"location":"actions/update_plist/#parameters","text":"Key Description Default plist_path Path to plist file block A block to process plist with custom logic * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/update_plist/#documentation","text":"To show the documentation in your terminal, run fastlane action update_plist","title":"Documentation"},{"location":"actions/update_plist/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_plist To pass parameters, make use of the : symbol, for example fastlane run update_plist parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/update_plist/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/update_project_code_signing/","text":"update_project_code_signing Updated code signing settings from 'Automatic' to a specific profile You shouldn't use update_project_code_signing . Have you considered using the recommended way to do code signing: https://docs.fastlane.tools/codesigning/getting-started/ ? update_project_code_signing Supported platforms ios Author @KrauseFx Parameters Key Description Default path Path to your Xcode project udid DEPRECATED! Use :uuid instead * uuid The UUID of the provisioning profile you want to use * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_project_code_signing CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_project_code_signing To pass parameters, make use of the : symbol, for example fastlane run update_project_code_signing parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"update_project_code_signing"},{"location":"actions/update_project_code_signing/#update_project_code_signing","text":"Updated code signing settings from 'Automatic' to a specific profile You shouldn't use update_project_code_signing . Have you considered using the recommended way to do code signing: https://docs.fastlane.tools/codesigning/getting-started/ ? update_project_code_signing Supported platforms ios Author @KrauseFx","title":"update_project_code_signing"},{"location":"actions/update_project_code_signing/#parameters","text":"Key Description Default path Path to your Xcode project udid DEPRECATED! Use :uuid instead * uuid The UUID of the provisioning profile you want to use * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/update_project_code_signing/#documentation","text":"To show the documentation in your terminal, run fastlane action update_project_code_signing","title":"Documentation"},{"location":"actions/update_project_code_signing/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_project_code_signing To pass parameters, make use of the : symbol, for example fastlane run update_project_code_signing parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/update_project_code_signing/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/update_project_provisioning/","text":"update_project_provisioning Update projects code signing settings from your provisioning profile You should check out the code signing guide before using this action. This action retrieves a provisioning profile UUID from a provisioning profile ( .mobileprovision ) to set up the Xcode projects' code signing settings in *.xcodeproj/project.pbxproj . The :target_filter value can be used to only update code signing for the specified targets. The :build_configuration value can be used to only update code signing for the specified build configurations of the targets passing through the :target_filter . Example usage is the WatchKit Extension or WatchKit App, where you need separate provisioning profiles. Example: update_project_provisioning(xcodeproj: \"..\", target_filter: \".*WatchKit App.*\") . update_project_provisioning Supported platforms ios, mac Author @tobiasstrebitzer, @czechboy0 1 Example update_project_provisioning( xcodeproj: \"Project.xcodeproj\", profile: \"./watch_app_store.mobileprovision\", # optional if you use sigh target_filter: \".*WatchKit Extension.*\", # matches name or type of a target build_configuration: \"Release\", code_signing_identity: \"iPhone Development\" # optionally specify the codesigning identity ) Parameters Key Description Default xcodeproj Path to your Xcode project profile Path to provisioning profile (.mobileprovision) * target_filter A filter for the target name. Use a standard regex build_configuration_filter Legacy option, use 'target_filter' instead build_configuration A filter for the build configuration name. Use a standard regex. Applied to all configurations if not specified certificate Path to apple root certificate /tmp/AppleIncRootCertificate.cer code_signing_identity Code sign identity for build configuration * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_project_provisioning CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_project_provisioning To pass parameters, make use of the : symbol, for example fastlane run update_project_provisioning parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"update_project_provisioning"},{"location":"actions/update_project_provisioning/#update_project_provisioning","text":"Update projects code signing settings from your provisioning profile You should check out the code signing guide before using this action. This action retrieves a provisioning profile UUID from a provisioning profile ( .mobileprovision ) to set up the Xcode projects' code signing settings in *.xcodeproj/project.pbxproj . The :target_filter value can be used to only update code signing for the specified targets. The :build_configuration value can be used to only update code signing for the specified build configurations of the targets passing through the :target_filter . Example usage is the WatchKit Extension or WatchKit App, where you need separate provisioning profiles. Example: update_project_provisioning(xcodeproj: \"..\", target_filter: \".*WatchKit App.*\") . update_project_provisioning Supported platforms ios, mac Author @tobiasstrebitzer, @czechboy0","title":"update_project_provisioning"},{"location":"actions/update_project_provisioning/#1-example","text":"update_project_provisioning( xcodeproj: \"Project.xcodeproj\", profile: \"./watch_app_store.mobileprovision\", # optional if you use sigh target_filter: \".*WatchKit Extension.*\", # matches name or type of a target build_configuration: \"Release\", code_signing_identity: \"iPhone Development\" # optionally specify the codesigning identity )","title":"1 Example"},{"location":"actions/update_project_provisioning/#parameters","text":"Key Description Default xcodeproj Path to your Xcode project profile Path to provisioning profile (.mobileprovision) * target_filter A filter for the target name. Use a standard regex build_configuration_filter Legacy option, use 'target_filter' instead build_configuration A filter for the build configuration name. Use a standard regex. Applied to all configurations if not specified certificate Path to apple root certificate /tmp/AppleIncRootCertificate.cer code_signing_identity Code sign identity for build configuration * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/update_project_provisioning/#documentation","text":"To show the documentation in your terminal, run fastlane action update_project_provisioning","title":"Documentation"},{"location":"actions/update_project_provisioning/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_project_provisioning To pass parameters, make use of the : symbol, for example fastlane run update_project_provisioning parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/update_project_provisioning/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/update_project_team/","text":"update_project_team Update Xcode Development Team ID This action updates the Developer Team ID of your Xcode project. update_project_team Supported platforms ios, mac Author @lgaches 2 Examples update_project_team update_project_team( path: \"Example.xcodeproj\", teamid: \"A3ZZVJ7CNY\" ) Parameters Key Description Default path Path to your Xcode project * targets Name of the targets you want to update teamid The Team ID you want to use * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_project_team CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_project_team To pass parameters, make use of the : symbol, for example fastlane run update_project_team parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"update_project_team"},{"location":"actions/update_project_team/#update_project_team","text":"Update Xcode Development Team ID This action updates the Developer Team ID of your Xcode project. update_project_team Supported platforms ios, mac Author @lgaches","title":"update_project_team"},{"location":"actions/update_project_team/#2-examples","text":"update_project_team update_project_team( path: \"Example.xcodeproj\", teamid: \"A3ZZVJ7CNY\" )","title":"2 Examples"},{"location":"actions/update_project_team/#parameters","text":"Key Description Default path Path to your Xcode project * targets Name of the targets you want to update teamid The Team ID you want to use * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/update_project_team/#documentation","text":"To show the documentation in your terminal, run fastlane action update_project_team","title":"Documentation"},{"location":"actions/update_project_team/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_project_team To pass parameters, make use of the : symbol, for example fastlane run update_project_team parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/update_project_team/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/update_urban_airship_configuration/","text":"update_urban_airship_configuration Set Urban Airship plist configuration values This action updates the AirshipConfig.plist needed to configure the Urban Airship SDK at runtime, allowing keys and secrets to easily be set for the Enterprise and Production versions of the application. update_urban_airship_configuration Supported platforms ios Author @kcharwood 1 Example update_urban_airship_configuration( plist_path: \"AirshipConfig.plist\", production_app_key: \"PRODKEY\", production_app_secret: \"PRODSECRET\" ) Parameters Key Description Default plist_path Path to Urban Airship configuration Plist development_app_key The development app key development_app_secret The development app secret production_app_key The production app key production_app_secret The production app secret detect_provisioning_mode Automatically detect provisioning mode * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_urban_airship_configuration CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_urban_airship_configuration To pass parameters, make use of the : symbol, for example fastlane run update_urban_airship_configuration parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"update_urban_airship_configuration"},{"location":"actions/update_urban_airship_configuration/#update_urban_airship_configuration","text":"Set Urban Airship plist configuration values This action updates the AirshipConfig.plist needed to configure the Urban Airship SDK at runtime, allowing keys and secrets to easily be set for the Enterprise and Production versions of the application. update_urban_airship_configuration Supported platforms ios Author @kcharwood","title":"update_urban_airship_configuration"},{"location":"actions/update_urban_airship_configuration/#1-example","text":"update_urban_airship_configuration( plist_path: \"AirshipConfig.plist\", production_app_key: \"PRODKEY\", production_app_secret: \"PRODSECRET\" )","title":"1 Example"},{"location":"actions/update_urban_airship_configuration/#parameters","text":"Key Description Default plist_path Path to Urban Airship configuration Plist development_app_key The development app key development_app_secret The development app secret production_app_key The production app key production_app_secret The production app secret detect_provisioning_mode Automatically detect provisioning mode * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/update_urban_airship_configuration/#documentation","text":"To show the documentation in your terminal, run fastlane action update_urban_airship_configuration","title":"Documentation"},{"location":"actions/update_urban_airship_configuration/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_urban_airship_configuration To pass parameters, make use of the : symbol, for example fastlane run update_urban_airship_configuration parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/update_urban_airship_configuration/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/update_url_schemes/","text":"update_url_schemes Updates the URL schemes in the given Info.plist This action allows you to update the URL schemes of the app before building it. For example, you can use this to set a different URL scheme for the alpha or beta version of the app. update_url_schemes Supported platforms ios, mac Author @kmikael 2 Examples update_url_schemes( path: \"path/to/Info.plist\", url_schemes: [\"com.myapp\"] ) update_url_schemes( path: \"path/to/Info.plist\", update_url_schemes: proc do |schemes| schemes + [\"anotherscheme\"] end ) Parameters Key Description Default path The Plist file's path url_schemes The new URL schemes update_url_schemes Block that is called to update schemes with current schemes passed in as parameter * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_url_schemes CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_url_schemes To pass parameters, make use of the : symbol, for example fastlane run update_url_schemes parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"update_url_schemes"},{"location":"actions/update_url_schemes/#update_url_schemes","text":"Updates the URL schemes in the given Info.plist This action allows you to update the URL schemes of the app before building it. For example, you can use this to set a different URL scheme for the alpha or beta version of the app. update_url_schemes Supported platforms ios, mac Author @kmikael","title":"update_url_schemes"},{"location":"actions/update_url_schemes/#2-examples","text":"update_url_schemes( path: \"path/to/Info.plist\", url_schemes: [\"com.myapp\"] ) update_url_schemes( path: \"path/to/Info.plist\", update_url_schemes: proc do |schemes| schemes + [\"anotherscheme\"] end )","title":"2 Examples"},{"location":"actions/update_url_schemes/#parameters","text":"Key Description Default path The Plist file's path url_schemes The new URL schemes update_url_schemes Block that is called to update schemes with current schemes passed in as parameter * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/update_url_schemes/#documentation","text":"To show the documentation in your terminal, run fastlane action update_url_schemes","title":"Documentation"},{"location":"actions/update_url_schemes/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_url_schemes To pass parameters, make use of the : symbol, for example fastlane run update_url_schemes parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/update_url_schemes/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/upload_app_privacy_details_to_app_store/","text":"upload_app_privacy_details_to_app_store Upload App Privacy Details for an app in App Store Connect Upload App Privacy Details for an app in App Store Connect. For more detail information, view https://docs.fastlane.tools/uploading-app-privacy-details upload_app_privacy_details_to_app_store Supported platforms ios, mac Author @joshdholtz 2 Examples upload_app_privacy_details_to_app_store( username: \"your@email.com\", team_name: \"Your Team\", app_identifier: \"com.your.bundle\" ) upload_app_privacy_details_to_app_store( username: \"your@email.com\", team_name: \"Your Team\", app_identifier: \"com.your.bundle\", json_path: \"fastlane/app_data_usages.json\" ) Parameters Key Description Default username Your Apple ID Username for App Store Connect * app_identifier The bundle identifier of your app * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * json_path Path to the app usage data JSON output_json_path Path to the app usage data JSON file generated by interactive questions ./fastlane/app_privacy_details.json skip_json_file_saving Whether to skip the saving of the JSON file false skip_upload Whether to skip the upload and only create the JSON file with interactive questions false skip_publish Whether to skip the publishing false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action upload_app_privacy_details_to_app_store CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_app_privacy_details_to_app_store To pass parameters, make use of the : symbol, for example fastlane run upload_app_privacy_details_to_app_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"upload_app_privacy_details_to_app_store"},{"location":"actions/upload_app_privacy_details_to_app_store/#upload_app_privacy_details_to_app_store","text":"Upload App Privacy Details for an app in App Store Connect Upload App Privacy Details for an app in App Store Connect. For more detail information, view https://docs.fastlane.tools/uploading-app-privacy-details upload_app_privacy_details_to_app_store Supported platforms ios, mac Author @joshdholtz","title":"upload_app_privacy_details_to_app_store"},{"location":"actions/upload_app_privacy_details_to_app_store/#2-examples","text":"upload_app_privacy_details_to_app_store( username: \"your@email.com\", team_name: \"Your Team\", app_identifier: \"com.your.bundle\" ) upload_app_privacy_details_to_app_store( username: \"your@email.com\", team_name: \"Your Team\", app_identifier: \"com.your.bundle\", json_path: \"fastlane/app_data_usages.json\" )","title":"2 Examples"},{"location":"actions/upload_app_privacy_details_to_app_store/#parameters","text":"Key Description Default username Your Apple ID Username for App Store Connect * app_identifier The bundle identifier of your app * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * json_path Path to the app usage data JSON output_json_path Path to the app usage data JSON file generated by interactive questions ./fastlane/app_privacy_details.json skip_json_file_saving Whether to skip the saving of the JSON file false skip_upload Whether to skip the upload and only create the JSON file with interactive questions false skip_publish Whether to skip the publishing false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/upload_app_privacy_details_to_app_store/#documentation","text":"To show the documentation in your terminal, run fastlane action upload_app_privacy_details_to_app_store","title":"Documentation"},{"location":"actions/upload_app_privacy_details_to_app_store/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_app_privacy_details_to_app_store To pass parameters, make use of the : symbol, for example fastlane run upload_app_privacy_details_to_app_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/upload_app_privacy_details_to_app_store/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/upload_symbols_to_crashlytics/","text":"upload_symbols_to_crashlytics Upload dSYM symbolication files to Crashlytics This action allows you to upload symbolication files to Crashlytics. It's extra useful if you use it to download the latest dSYM files from Apple when you use Bitcode. This action will not fail the build if one of the uploads failed. The reason for that is that sometimes some of dSYM files are invalid, and we don't want them to fail the complete build. upload_symbols_to_crashlytics Supported platforms ios Author @KrauseFx 1 Example upload_symbols_to_crashlytics(dsym_path: \"./App.dSYM.zip\") Parameters Key Description Default dsym_path Path to the DSYM file or zip to upload * dsym_paths Paths to the DSYM files or zips to upload api_token Crashlytics API Key gsp_path Path to GoogleService-Info.plist app_id Firebase Crashlytics APP ID binary_path The path to the upload-symbols file of the Fabric app platform The platform of the app (ios, appletvos, mac) ios dsym_worker_threads The number of threads to use for simultaneous dSYM upload 1 debug Enable debug mode for upload-symbols false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action upload_symbols_to_crashlytics CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_symbols_to_crashlytics To pass parameters, make use of the : symbol, for example fastlane run upload_symbols_to_crashlytics parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"upload_symbols_to_crashlytics"},{"location":"actions/upload_symbols_to_crashlytics/#upload_symbols_to_crashlytics","text":"Upload dSYM symbolication files to Crashlytics This action allows you to upload symbolication files to Crashlytics. It's extra useful if you use it to download the latest dSYM files from Apple when you use Bitcode. This action will not fail the build if one of the uploads failed. The reason for that is that sometimes some of dSYM files are invalid, and we don't want them to fail the complete build. upload_symbols_to_crashlytics Supported platforms ios Author @KrauseFx","title":"upload_symbols_to_crashlytics"},{"location":"actions/upload_symbols_to_crashlytics/#1-example","text":"upload_symbols_to_crashlytics(dsym_path: \"./App.dSYM.zip\")","title":"1 Example"},{"location":"actions/upload_symbols_to_crashlytics/#parameters","text":"Key Description Default dsym_path Path to the DSYM file or zip to upload * dsym_paths Paths to the DSYM files or zips to upload api_token Crashlytics API Key gsp_path Path to GoogleService-Info.plist app_id Firebase Crashlytics APP ID binary_path The path to the upload-symbols file of the Fabric app platform The platform of the app (ios, appletvos, mac) ios dsym_worker_threads The number of threads to use for simultaneous dSYM upload 1 debug Enable debug mode for upload-symbols false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/upload_symbols_to_crashlytics/#documentation","text":"To show the documentation in your terminal, run fastlane action upload_symbols_to_crashlytics","title":"Documentation"},{"location":"actions/upload_symbols_to_crashlytics/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_symbols_to_crashlytics To pass parameters, make use of the : symbol, for example fastlane run upload_symbols_to_crashlytics parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/upload_symbols_to_crashlytics/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/upload_symbols_to_sentry/","text":"upload_symbols_to_sentry Upload dSYM symbolication files to Sentry Please use the sentry plugin instead. Install using fastlane add_plugin sentry . Replace upload_symbols_to_sentry(...) with sentry_upload_dsym(...) . This action allows you to upload symbolication files to Sentry. It's extra useful if you use it to download the latest dSYM files from Apple when you use Bitcode. upload_symbols_to_sentry Supported platforms ios Author @joshdholtz Returns The uploaded dSYM path(s) 1 Example upload_symbols_to_sentry( auth_token: \"...\", org_slug: \"...\", project_slug: \"...\", dsym_path: \"./App.dSYM.zip\" ) Parameters Key Description Default api_host API host url for Sentry https://app.getsentry.com/api/0 api_key API key for Sentry auth_token Authentication token for Sentry org_slug Organization slug for Sentry project project_slug Project slug for Sentry dsym_path Path to your symbols file. For iOS and Mac provide path to app.dSYM.zip * dsym_paths Path to an array of your symbols file. For iOS and Mac provide path to app.dSYM.zip * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action upload_symbols_to_sentry CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_symbols_to_sentry To pass parameters, make use of the : symbol, for example fastlane run upload_symbols_to_sentry parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"upload_symbols_to_sentry"},{"location":"actions/upload_symbols_to_sentry/#upload_symbols_to_sentry","text":"Upload dSYM symbolication files to Sentry Please use the sentry plugin instead. Install using fastlane add_plugin sentry . Replace upload_symbols_to_sentry(...) with sentry_upload_dsym(...) . This action allows you to upload symbolication files to Sentry. It's extra useful if you use it to download the latest dSYM files from Apple when you use Bitcode. upload_symbols_to_sentry Supported platforms ios Author @joshdholtz Returns The uploaded dSYM path(s)","title":"upload_symbols_to_sentry"},{"location":"actions/upload_symbols_to_sentry/#1-example","text":"upload_symbols_to_sentry( auth_token: \"...\", org_slug: \"...\", project_slug: \"...\", dsym_path: \"./App.dSYM.zip\" )","title":"1 Example"},{"location":"actions/upload_symbols_to_sentry/#parameters","text":"Key Description Default api_host API host url for Sentry https://app.getsentry.com/api/0 api_key API key for Sentry auth_token Authentication token for Sentry org_slug Organization slug for Sentry project project_slug Project slug for Sentry dsym_path Path to your symbols file. For iOS and Mac provide path to app.dSYM.zip * dsym_paths Path to an array of your symbols file. For iOS and Mac provide path to app.dSYM.zip * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/upload_symbols_to_sentry/#documentation","text":"To show the documentation in your terminal, run fastlane action upload_symbols_to_sentry","title":"Documentation"},{"location":"actions/upload_symbols_to_sentry/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_symbols_to_sentry To pass parameters, make use of the : symbol, for example fastlane run upload_symbols_to_sentry parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/upload_symbols_to_sentry/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/upload_to_app_store/","text":"upload_to_app_store Upload metadata and binary to App Store Connect (via deliver ) deliver uploads screenshots, metadata and binaries to App Store Connect. Use deliver to submit your app for App Store review. Features \u2022 Quick Start \u2022 Usage \u2022 Tips deliver is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Features Upload hundreds of localized screenshots completely automatically Upload a new ipa/pkg file to App Store Connect without Xcode from any Mac Maintain your app metadata locally and push changes back to App Store Connect Easily implement a real Continuous Deployment process using fastlane Store the configuration in git to easily deploy from any Mac, including your Continuous Integration server Get a HTML preview of the fetched metadata before uploading the app metadata and screenshots to iTC Automatically uses precheck to ensure your app has the highest chances of passing app review the first time To upload builds to TestFlight check out pilot . Quick Start The guide will create all the necessary files for you, using the existing app metadata from App Store Connect. cd [your_project_folder] fastlane deliver init Enter your App Store Connect credentials Enter your app identifier Enjoy a good drink, while the computer does all the work for you From now on, you can run fastlane deliver to deploy a new update, or just upload new app metadata and screenshots. Usage Check out your local ./fastlane/metadata and ./fastlane/screenshots folders (if you don't use fastlane it's ./metadata instead) You'll see your metadata from App Store Connect. Feel free to store the metadata in git (not the screenshots). You can now modify it locally and push the changes back to App Store Connect. Run fastlane deliver to upload the app metadata from your local machine fastlane deliver Provide the path to an ipa file to upload and submit your app for review: fastlane deliver --ipa \"App.ipa\" --submit_for_review or you can specify path to pkg file for macOS apps: fastlane deliver --pkg \"MacApp.pkg\" If you use fastlane you don't have to manually specify the path to your ipa / pkg file. This is just a small sub-set of what you can do with deliver , check out the full documentation in #more-options Download existing screenshots from App Store Connect fastlane deliver download_screenshots Download existing metadata from App Store Connect fastlane deliver download_metadata To get a list of available options run fastlane action deliver Use in a Fastfile deliver deliver( submit_for_review: true, force: true, metadata_path: \"./metadata\" ) More options View all available options and their valid values Available options All the options below can easily be added to your Deliverfile . The great thing: if you use fastlane you can use all these options from your Fastfile too, for example: deliver( submit_for_review: true, metadata_path: \"../folder\" ) app_identifier The bundle identifier (e.g. \"com.krausefx.app\") username Your Apple ID email address ipa A path to a signed ipa file, which will be uploaded. If you don't provide this value, only app metadata will be uploaded. If you want to submit the app for review make sure to either use fastlane deliver --submit_for_review or add submit_for_review true to your Deliverfile ipa(\"App.ipa\") if you use fastlane the ipa file will automatically be detected. pkg A path to a signed pkg file, which will be uploaded. Submission logic of ipa applies to pkg files. pkg(\"MacApp.pkg\") app_version Optional, as it is usually automatically detected. Specify the version that should be created / edited on App Store Connect: app_version(\"2.0\") skip_app_version_update In the case if deliver uploads your application to App Store Connect it will automatically update \"Prepare for submission\" app version (which could be found on App Store Connect->My Apps->App Store page) The option allows uploading your app without updating \"Prepare for submission\" version. This could be useful in the case if you are generating a lot of uploads while not submitting the latest build for Apple review. The default value is false. skip_app_version_update(true) submit_for_review Add this to your Deliverfile to automatically submit the app for review after uploading metadata/binary. This will select the latest build. submit_for_review(true) screenshots_path A path to a folder containing subfolders for each language. This will automatically detect the device type based on the image resolution. Also includes \uf8ff Watch Support. metadata_path Path to the metadata you want to use. The folder has to be structured like this If you run deliver init this will automatically be created for you. force force(true) If set to true , no HTML report will be generated before the actual upload. You can also pass --force when calling deliver . price_tier Pass the price tier as number. This will be active from the current day. price_tier 0 trade_representative_contact_information Trade Representative Contact information for Korean App Store. Available options: first_name , last_name , address_line1 , address_line2 , address_line3 , city_name , state , country , postal_code , phone_number , email_address , is_displayed_on_app_store . trade_representative_contact_information( first_name: \"Felix\", last_name: \"Krause\", address_line1: \"1 Infinite Loop\", address_line2: \"\", address_line3: null, city_name: \"Cupertino\", state: \"California\", country: \"United States\", postal_code: \"95014\", phone_number: \"+43 123123123\", email_address: \"github@krausefx.com\", ) You can also provide these values by creating files in a metadata/trade_representative_contact_information/ directory. The file names must match the pattern .txt (e.g. first_name.txt , address_line1.txt etc.). The contents of each file will be used as the value for the matching key. Values provided in the Deliverfile or Fastfile will be take priority over values from these files. is_displayed_on_app_store is the option on App Store Connect described as: Display Trade Representative Contact Information on the Korean App Store app_review_information Contact information for the app review team. Available options: first_name , last_name , phone_number , email_address , demo_user , demo_password , notes . app_review_information( first_name: \"Felix\", last_name: \"Krause\", phone_number: \"+43 123123123\", email_address: \"github@krausefx.com\", demo_user: \"demoUser\", demo_password: \"demoPass\", notes: \"such notes, very text\" ) You can also provide these values by creating files in a metadata/review_information/ directory. The file names must match the pattern .txt (e.g. first_name.txt , notes.txt etc.). The contents of each file will be used as the value for the matching key. Values provided in the Deliverfile or Fastfile will be take priority over values from these files. app_review_attachment_file You can provide additional information to the app review team as a file attachment. As of this writing, Apple supports following file attachment formats: .pdf, .doc, .docx, .rtf, .pages, .xls, .xlsx, .numbers, .zip, .rar, .plist, .crash, .jpg, .png, .mp4, or .avi. Provide an empty string (i.e. \"\", not null) to remove the existing attachment file (if any) from the review information being edited. app_review_attachment_file: \"./readme.txt\" submission_information Must be a hash. This is used as the last step for the deployment process, where you define if you use third party content or use encryption. A list of available options . submission_information({ add_id_info_serves_ads: true, ... }) automatic_release Should the app be released to all users once Apple approves it? If set to false , you'll have to manually release the update once it got approved. automatic_release(true) # or automatic_release(false) phased_release Enable or disable the phased releases feature of App Store Connect. If set to true , the update will be released over a 7 day period. Default behavior is to leave whatever you defined on App Store Connect. phased_release(true) # or phased_release(false) reset_ratings Reset your app's summary rating for all territories. If set to true , it will reset rating when this version is released. Default behavior is to keep existing rating. reset_ratings(true) # or reset_ratings(false) app_rating_config_path You can set the app age ratings using deliver . You'll have to create and store a JSON configuration file. Copy the template to your project folder and pass the path to the JSON file using the app_rating_config_path option. The keys/values on the top allow one of 3 strings: \"NONE\", \"INFREQUENT_OR_MILD\" or \"FREQUENT_OR_INTENSE\", and the items on the bottom allow false or true. More information in #reference . Metadata All options below are useful if you want to specify certain app metadata in your Deliverfile or Fastfile Localized Localized values should be set like this description({ 'en-US' => \"English Description here\", 'de-DE' => \"Deutsche Beschreibung hier\" }) name The title/name of the app subtitle Localized subtitle of the app subtitle( \"en-US\" => \"Awesome English subtitle here\", \"de-DE\" => \"Jetzt mit deutschen Untertiteln!\" ) description The description of the app release_notes The release_notes (What's new / Changelog) of the latest version support_url, marketing_url, privacy_url These URLs are shown in the AppStore keywords Keywords separated using a comma. keywords( \"en-US\" => \"Keyword1, Keyword2\" ) promotional_text Localized promotional text promotional_text( \"en-US\" => \"Hey, you should totally buy our app, it's the best\", \"de-DE\" => \"App kaufen bitte\" ) app_icon A path to a new app icon, which must be exactly 1024x1024px app_icon('./AppIcon.png') apple_watch_app_icon A path to a new app icon for the \uf8ff Watch, which must be exactly 1024x1024px apple_watch_app_icon('./AppleWatchAppIcon.png') platform The platform of your application (a.e. ios, osx). This option is optional. The default value is \"ios\" and deliver should be able to figure out the platform from your binary. However, in the case if multiple binaries present, you can specify a platform which you want to deliver explicitly. The available options: 'ios' 'appletvos' 'osx' Non-Localized copyright The up to date copyright information. copyright(\"#{Time.now.year} Felix Krause\") primary_category The english name of the category you want to set (e.g. Business , Books ) See #reference for a list of available categories secondary_category The english name of the secondary category you want to set primary_first_sub_category The english name of the primary first sub category you want to set primary_second_sub_category The english name of the primary second sub category you want to set secondary_first_sub_category The english name of the secondary first sub category you want to set secondary_second_sub_category The english name of the secondary second sub category you want to set Submit Build deliver allows you to promote an existing build to production. Below are examples to select a previously uploaded build and submit it for review. fastlane deliver submit_build --build_number 830 Submit build in a Fastfile lane :submit_review do deliver( build_number: '830', submit_for_review: true, automatic_release: true, force: true, # Skip HTMl report verification skip_metadata: true, skip_screenshots: true, skip_binary_upload: true ) end Omit build_number to let fastlane automatically select the latest build number for the current version being edited for release from App Store Connect. Compliance and IDFA settings Use the submission_information parameter for additional submission specifiers, including compliance and IDFA settings. Look at the Spaceship's app_submission.rb file for options. See this example . fastlane deliver submit_build --build_number 830 --submission_information \"{\\\"export_compliance_uses_encryption\\\": false, \\\"add_id_info_uses_idfa\\\": false }\" App Privacy Details Starting on December 8, 2020, Apple announced that developers are required to provide app privacy details that will help users understand an app's privacy practies. deliver does not allow for updating of this information but this can be done with the upload_app_privacy_details_to_app_store action. More information on Uploading App Privacy Details Credentials A detailed description about how your credentials are handled is available in a credentials_manager . How does this thing even work? Is magic involved? \ud83c\udfa9 Your password will be stored in the macOS keychain, but can also be passed using environment variables. (More information available on CredentialsManager ) Before actually uploading anything to iTunes, deliver will generate a HTML summary of the collected data. deliver uses the following techniques under the hood: The iTMSTransporter tool is used to upload the binary to App Store Connect. iTMSTransporter is a command line tool provided by Apple. For all metadata related actions deliver uses spaceship Tips Available language codes ar-SA, ca, cs, da, de-DE, el, en-AU, en-CA, en-GB, en-US, es-ES, es-MX, fi, fr-CA, fr-FR, he, hi, hr, hu, id, it, ja, ko, ms, nl-NL, no, pl, pt-BR, pt-PT, ro, ru, sk, sv, th, tr, uk, vi, zh-Hans, zh-Hant Available Metadata Folder Options deliver allows for metadata to be set through .txt files in the metadata folder. This metadata folder location is defaulted to ./fastlane/metadata but can be overridden through the metadata_path parameter. Below are all allowed metadata options. Non-Localized Metadata Key Editable While Live Directory Filename copyright Yes copyright.txt primary_category No primary_category.txt secondary_category No secondary_category.txt primary_first_sub_category No primary_first_sub_category.txt primary_second_sub_category No primary_second_sub_category.txt secondary_first_sub_category No secondary_first_sub_category.txt secondary_second_sub_category No secondary_second_sub_category.txt Localized Metadata Key Editable While Live Directory Filename name No // name.txt subtitle No // subtitle.txt privacy_url Yes // privacy_url.txt apple_tv_privacy_policy No // apple_tv_privacy_policy.txt description Yes // description.txt keywords No // keywords.txt release_notes Yes // release_notes.txt support_url Yes // support_url.txt marketing_url Yes // marketing_url.txt promotional_text Yes // promotional_text.txt Review Information Metadata Key Editable While Live Directory Filename Deprecated Filename first_name Yes /review_information first_name.txt review_first_name.txt last_name Yes /review_information last_name.txt review_last_name.txt phone_number Yes /review_information phone_number.txt review_phone_number.txt email_address Yes /review_information email_address.txt review_email.txt demo_user Yes /review_information demo_user.txt review_demo_user.txt demo_password Yes /review_information demo_password.txt review_demo_password.txt notes Yes /review_information notes.txt review_notes.txt Reference View all available categories, etc. Available Categories FOOD_AND_DRINK BUSINESS EDUCATION SOCIAL_NETWORKING BOOKS SPORTS FINANCE REFERENCE GRAPHICS_AND_DESIGN DEVELOPER_TOOLS HEALTH_AND_FITNESS MUSIC WEATHER TRAVEL ENTERTAINMENT STICKERS GAMES LIFESTYLE MEDICAL MAGAZINES_AND_NEWSPAPERS UTILITIES SHOPPING PRODUCTIVITY NEWS PHOTO_AND_VIDEO NAVIGATION Available Game Subcategories MZGenre.Action MZGenre.Adventure MZGenre.Arcade MZGenre.Board MZGenre.Card MZGenre.Casino MZGenre.Dice MZGenre.Educational MZGenre.Family MZGenre.Music MZGenre.Puzzle MZGenre.Racing MZGenre.RolePlaying MZGenre.Simulation MZGenre.Sports MZGenre.Strategy MZGenre.Trivia MZGenre.Word GAMES_SPORTS GAMES_WORD GAMES_MUSIC GAMES_ADVENTURE GAMES_ACTION GAMES_ROLE_PLAYING GAMES_CASUAL GAMES_BOARD GAMES_TRIVIA GAMES_CARD GAMES_PUZZLE GAMES_CASINO GAMES_STRATEGY GAMES_SIMULATION GAMES_RACING GAMES_FAMILY Available Stickers Subcategories STICKERS_PLACES_AND_OBJECTS STICKERS_EMOJI_AND_EXPRESSIONS STICKERS_CELEBRATIONS STICKERS_CELEBRITIES STICKERS_MOVIES_AND_TV STICKERS_SPORTS_AND_ACTIVITIES STICKERS_EATING_AND_DRINKING STICKERS_CHARACTERS STICKERS_ANIMALS STICKERS_FASHION STICKERS_ART STICKERS_GAMING STICKERS_KIDS_AND_FAMILY STICKERS_PEOPLE STICKERS_MUSIC Available age rating groups Non Boolean Values 0: None (Legacy value, use NONE instead) 1: Infrequent/Mild (Legacy value, use INFREQUENT_OR_MILD instead) 2: Frequent/Intense (Legacy value, use FREQUENT_OR_INTENSE instead) NONE INFREQUENT_OR_MILD FREQUENT_OR_INTENSE Keys 'alcoholTobaccoOrDrugUseOrReferences' 'contests' 'gamblingSimulated' 'medicalOrTreatmentInformation' 'profanityOrCrudeHumor' 'sexualContentGraphicAndNudity' 'sexualContentOrNudity' 'horrorOrFearThemes' 'matureOrSuggestiveThemes' 'unrestrictedWebAccess' 'violenceCartoonOrFantasy' 'violenceRealisticProlongedGraphicOrSadistic' 'violenceRealistic' 'kidsAgeBand' Boolean Keys gambling 'seventeenPlus' unrestrictedWebAccess Kids Age Values FIVE_AND_UNDER SIX_TO_EIGHT NINE_TO_ELEVEN null Keys kidsAgeBand Default values Deliver has a special default language code which allows you to provide values that are not localized, and which will be used as defaults when you don\u2019t provide a specific localized value. In order to use default , you will need to tell deliver which languages your app uses. You can do this in either of two ways: Create the folders named with the language in the metadata folder (i.e. fastlane/metadata/en-US or fastlane/metadata/de-DE) Add the following to your Deliverfile languages(['en-US','de-DE']) You can use this either in json within your Deliverfile and/or as folders in your metadata folder. deliver will take the union of both language sets from the Deliverfile and from the metadata folder and create on single set of languages which will be enabled. Imagine that you have localized data for the following language codes: en-US, de-DE, el, it You can set the following in your Deliverfile release_notes({ 'default' => \"Shiny and new\", 'de-DE' => \"glaenzend und neu\" }) Deliver will use \"Shiny and new\" for en-US, el and it. It will use \"glaenzend und neu\" for de-DE. You can do the same with folders default keywords.txt marketing_url.txt name.txt privacy_url.txt support_url.txt release_notes.txt en-US description.txt de-DE description.txt el description.txt it description.txt In this case, default values for keywords, urls, name and release notes are used in all localizations, but each language has a fully localized description Uploading screenshots for \"iPad Pro (12.9-inch) (3rd generation)\" Starting March 20, 2019 Apple's App Store requires 12.9-inch iPad Pro (3rd generation) screenshots additionally to the iPad Pro 2nd generation screenshots . As fastlane historically uses the screenshot dimensions to determine the \"display family\" of a screenshot, this poses a problem as both use the same dimensions and are recognized as the same device family. To solve this a screenshot of a 12.9-inch iPad Pro (3rd generation) must contain either the string iPad Pro (12.9-inch) (3rd generation) , IPAD_PRO_3GEN_129 , or ipadPro129 (Apple's internal naming of the display family for the 3rd generation iPad Pro) in its filename to be assigned the correct display family and to be uploaded to the correct screenshot slot in your app's metadata. Automatically create screenshots If you want to integrate deliver with snapshot , check out fastlane ! Jenkins integration Detailed instructions about how to set up deliver and fastlane in Jenkins can be found in the fastlane README . Firewall Issues deliver uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" fastlane deliver HTTP Proxy iTunes Transporter is a Java application bundled with Xcode. In addition to utilizing the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" , you need to configure the transporter application to use the proxy independently from the system proxy or any environment proxy settings. You can find the configuration file within Xcode: for Xcode11 and later TOOLS_PATH=$( xcode-select -p ) REL_PATH='../SharedFrameworks/ContentDeliveryServices.framework/Versions/A/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" for Xcode10 or earlier TOOLS_PATH=$( xcode-select -p ) REL_PATH='../Applications/Application Loader.app/Contents/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" Add necessary proxy configuration values to the net.properties according to Java Proxy Configuration . As an alternative to editing the properties files, proxy configuration can be specified on the command line directly: DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV -Dhttp.proxyHost=myproxy.com -Dhttp.proxyPort=8080\" Limit App Store Connect has a limit of 150 binary uploads per day. Editing the Deliverfile Change syntax highlighting to Ruby . Provider Short Name If you are on multiple App Store Connect teams, deliver needs a provider short name to know where to upload your binary. deliver will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option. upload_to_app_store Supported platforms ios, mac Author @KrauseFx 3 Examples upload_to_app_store( force: true, # Set to true to skip verification of HTML preview itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) deliver # alias for \"upload_to_app_store\" appstore # alias for \"upload_to_app_store\" Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of your app * app_version The version that should be edited or created ipa Path to your ipa file * pkg Path to your pkg file * build_number If set the given build number (already uploaded to iTC) will be used instead of the current built one platform The platform to use (optional) ios edit_live Modify live metadata, this option disables ipa upload and screenshot upload false use_live_version Force usage of live version rather than edit version false metadata_path Path to the folder containing the metadata files screenshots_path Path to the folder containing the screenshots skip_binary_upload Skip uploading an ipa or pkg to App Store Connect false skip_screenshots Don't upload the screenshots false skip_metadata Don't upload the metadata (e.g. title, description). This will still upload screenshots false skip_app_version_update Don\u2019t create or update the app version that is being prepared for submission false force Skip verification of HTML preview file false overwrite_screenshots Clear all previously uploaded screenshots before uploading the new ones false sync_screenshots Sync screenshots with local ones. This is currently beta option so set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well false submit_for_review Submit the new version for Review after uploading everything false verify_only Verifies archive with App Store Connect without uploading false reject_if_possible Rejects the previously submitted build if it's in a state where it's possible false automatic_release Should the app be automatically released once it's approved? (Can not be used together with auto_release_date ) auto_release_date Date in milliseconds for automatically releasing on pending approval (Can not be used together with automatic_release ) phased_release Enable the phased release feature of iTC false reset_ratings Reset the summary rating when you release a new version of the application false price_tier The price tier of this application app_rating_config_path Path to the app rating's config submission_information Extra information for the submission (e.g. compliance specifications, IDFA settings) team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your Developer Portal team, if you're in multiple teams. Different from your iTC team ID! * dev_portal_team_name The name of your Developer Portal team if you're in multiple teams * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column * run_precheck_before_submit Run precheck before submitting to app review true precheck_default_rule_level The default precheck rule level unless otherwise configured :warn individual_metadata_items DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - An array of localized metadata items to upload individually by language so that errors can be identified. E.g. ['name', 'keywords', 'description']. Note: slow app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the app icon apple_watch_app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the Apple Watch app icon copyright Metadata: The copyright notice primary_category Metadata: The english name of the primary category (e.g. Business , Books ) secondary_category Metadata: The english name of the secondary category (e.g. Business , Books ) primary_first_sub_category Metadata: The english name of the primary first sub category (e.g. Educational , Puzzle ) primary_second_sub_category Metadata: The english name of the primary second sub category (e.g. Educational , Puzzle ) secondary_first_sub_category Metadata: The english name of the secondary first sub category (e.g. Educational , Puzzle ) secondary_second_sub_category Metadata: The english name of the secondary second sub category (e.g. Educational , Puzzle ) trade_representative_contact_information DEPRECATED! This is no longer used by App Store Connect - Metadata: A hash containing the trade representative contact information app_review_information Metadata: A hash containing the review information app_review_attachment_file Metadata: Path to the app review attachment file description Metadata: The localised app description name Metadata: The localised app name subtitle Metadata: The localised app subtitle keywords Metadata: An array of localised keywords promotional_text Metadata: An array of localised promotional texts release_notes Metadata: Localised release notes for this version privacy_url Metadata: Localised privacy url apple_tv_privacy_policy Metadata: Localised Apple TV privacy policy text support_url Metadata: Localised support url marketing_url Metadata: Localised marketing url languages Metadata: List of languages to activate ignore_language_directory_validation Ignore errors when invalid languages are found in metadata and screenshot directories false precheck_include_in_app_purchases Should precheck check in-app purchases? true app The (spaceship) app ID of the app you want to use/modify * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action upload_to_app_store CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_to_app_store To pass parameters, make use of the : symbol, for example fastlane run upload_to_app_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"upload_to_app_store"},{"location":"actions/upload_to_app_store/#upload_to_app_store","text":"Upload metadata and binary to App Store Connect (via deliver ) deliver uploads screenshots, metadata and binaries to App Store Connect. Use deliver to submit your app for App Store review. Features \u2022 Quick Start \u2022 Usage \u2022 Tips","title":"upload_to_app_store"},{"location":"actions/upload_to_app_store/#features","text":"Upload hundreds of localized screenshots completely automatically Upload a new ipa/pkg file to App Store Connect without Xcode from any Mac Maintain your app metadata locally and push changes back to App Store Connect Easily implement a real Continuous Deployment process using fastlane Store the configuration in git to easily deploy from any Mac, including your Continuous Integration server Get a HTML preview of the fetched metadata before uploading the app metadata and screenshots to iTC Automatically uses precheck to ensure your app has the highest chances of passing app review the first time To upload builds to TestFlight check out pilot .","title":"Features"},{"location":"actions/upload_to_app_store/#quick-start","text":"The guide will create all the necessary files for you, using the existing app metadata from App Store Connect. cd [your_project_folder] fastlane deliver init Enter your App Store Connect credentials Enter your app identifier Enjoy a good drink, while the computer does all the work for you From now on, you can run fastlane deliver to deploy a new update, or just upload new app metadata and screenshots.","title":"Quick Start"},{"location":"actions/upload_to_app_store/#usage","text":"Check out your local ./fastlane/metadata and ./fastlane/screenshots folders (if you don't use fastlane it's ./metadata instead) You'll see your metadata from App Store Connect. Feel free to store the metadata in git (not the screenshots). You can now modify it locally and push the changes back to App Store Connect. Run fastlane deliver to upload the app metadata from your local machine fastlane deliver Provide the path to an ipa file to upload and submit your app for review: fastlane deliver --ipa \"App.ipa\" --submit_for_review or you can specify path to pkg file for macOS apps: fastlane deliver --pkg \"MacApp.pkg\" If you use fastlane you don't have to manually specify the path to your ipa / pkg file. This is just a small sub-set of what you can do with deliver , check out the full documentation in #more-options Download existing screenshots from App Store Connect fastlane deliver download_screenshots Download existing metadata from App Store Connect fastlane deliver download_metadata To get a list of available options run fastlane action deliver","title":"Usage"},{"location":"actions/upload_to_app_store/#more-options","text":"View all available options and their valid values","title":"More options"},{"location":"actions/upload_to_app_store/#available-options","text":"All the options below can easily be added to your Deliverfile . The great thing: if you use fastlane you can use all these options from your Fastfile too, for example: deliver( submit_for_review: true, metadata_path: \"../folder\" )","title":"Available options"},{"location":"actions/upload_to_app_store/#metadata","text":"All options below are useful if you want to specify certain app metadata in your Deliverfile or Fastfile","title":"Metadata"},{"location":"actions/upload_to_app_store/#submit-build","text":"deliver allows you to promote an existing build to production. Below are examples to select a previously uploaded build and submit it for review. fastlane deliver submit_build --build_number 830","title":"Submit Build"},{"location":"actions/upload_to_app_store/#credentials","text":"A detailed description about how your credentials are handled is available in a credentials_manager .","title":"Credentials"},{"location":"actions/upload_to_app_store/#tips","text":"","title":"Tips"},{"location":"actions/upload_to_app_store/#available-language-codes","text":"ar-SA, ca, cs, da, de-DE, el, en-AU, en-CA, en-GB, en-US, es-ES, es-MX, fi, fr-CA, fr-FR, he, hi, hr, hu, id, it, ja, ko, ms, nl-NL, no, pl, pt-BR, pt-PT, ro, ru, sk, sv, th, tr, uk, vi, zh-Hans, zh-Hant","title":"Available language codes"},{"location":"actions/upload_to_app_store/#available-metadata-folder-options","text":"deliver allows for metadata to be set through .txt files in the metadata folder. This metadata folder location is defaulted to ./fastlane/metadata but can be overridden through the metadata_path parameter. Below are all allowed metadata options.","title":"Available Metadata Folder Options"},{"location":"actions/upload_to_app_store/#reference","text":"View all available categories, etc.","title":"Reference"},{"location":"actions/upload_to_app_store/#default-values","text":"Deliver has a special default language code which allows you to provide values that are not localized, and which will be used as defaults when you don\u2019t provide a specific localized value. In order to use default , you will need to tell deliver which languages your app uses. You can do this in either of two ways: Create the folders named with the language in the metadata folder (i.e. fastlane/metadata/en-US or fastlane/metadata/de-DE) Add the following to your Deliverfile languages(['en-US','de-DE']) You can use this either in json within your Deliverfile and/or as folders in your metadata folder. deliver will take the union of both language sets from the Deliverfile and from the metadata folder and create on single set of languages which will be enabled. Imagine that you have localized data for the following language codes: en-US, de-DE, el, it You can set the following in your Deliverfile release_notes({ 'default' => \"Shiny and new\", 'de-DE' => \"glaenzend und neu\" }) Deliver will use \"Shiny and new\" for en-US, el and it. It will use \"glaenzend und neu\" for de-DE. You can do the same with folders default keywords.txt marketing_url.txt name.txt privacy_url.txt support_url.txt release_notes.txt en-US description.txt de-DE description.txt el description.txt it description.txt In this case, default values for keywords, urls, name and release notes are used in all localizations, but each language has a fully localized description","title":"Default values"},{"location":"actions/upload_to_app_store/#uploading-screenshots-for-ipad-pro-129-inch-3rd-generation","text":"Starting March 20, 2019 Apple's App Store requires 12.9-inch iPad Pro (3rd generation) screenshots additionally to the iPad Pro 2nd generation screenshots . As fastlane historically uses the screenshot dimensions to determine the \"display family\" of a screenshot, this poses a problem as both use the same dimensions and are recognized as the same device family. To solve this a screenshot of a 12.9-inch iPad Pro (3rd generation) must contain either the string iPad Pro (12.9-inch) (3rd generation) , IPAD_PRO_3GEN_129 , or ipadPro129 (Apple's internal naming of the display family for the 3rd generation iPad Pro) in its filename to be assigned the correct display family and to be uploaded to the correct screenshot slot in your app's metadata.","title":"Uploading screenshots for \"iPad Pro (12.9-inch) (3rd generation)\""},{"location":"actions/upload_to_app_store/#automatically-create-screenshots","text":"If you want to integrate deliver with snapshot , check out fastlane !","title":"Automatically create screenshots"},{"location":"actions/upload_to_app_store/#jenkins-integration","text":"Detailed instructions about how to set up deliver and fastlane in Jenkins can be found in the fastlane README .","title":"Jenkins integration"},{"location":"actions/upload_to_app_store/#firewall-issues","text":"deliver uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" fastlane deliver","title":"Firewall Issues"},{"location":"actions/upload_to_app_store/#http-proxy","text":"iTunes Transporter is a Java application bundled with Xcode. In addition to utilizing the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" , you need to configure the transporter application to use the proxy independently from the system proxy or any environment proxy settings. You can find the configuration file within Xcode: for Xcode11 and later TOOLS_PATH=$( xcode-select -p ) REL_PATH='../SharedFrameworks/ContentDeliveryServices.framework/Versions/A/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" for Xcode10 or earlier TOOLS_PATH=$( xcode-select -p ) REL_PATH='../Applications/Application Loader.app/Contents/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" Add necessary proxy configuration values to the net.properties according to Java Proxy Configuration . As an alternative to editing the properties files, proxy configuration can be specified on the command line directly: DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV -Dhttp.proxyHost=myproxy.com -Dhttp.proxyPort=8080\"","title":"HTTP Proxy"},{"location":"actions/upload_to_app_store/#limit","text":"App Store Connect has a limit of 150 binary uploads per day.","title":"Limit"},{"location":"actions/upload_to_app_store/#editing-the-deliverfile","text":"Change syntax highlighting to Ruby .","title":"Editing the Deliverfile"},{"location":"actions/upload_to_app_store/#provider-short-name","text":"If you are on multiple App Store Connect teams, deliver needs a provider short name to know where to upload your binary. deliver will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option. upload_to_app_store Supported platforms ios, mac Author @KrauseFx","title":"Provider Short Name"},{"location":"actions/upload_to_app_store/#3-examples","text":"upload_to_app_store( force: true, # Set to true to skip verification of HTML preview itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) deliver # alias for \"upload_to_app_store\" appstore # alias for \"upload_to_app_store\"","title":"3 Examples"},{"location":"actions/upload_to_app_store/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of your app * app_version The version that should be edited or created ipa Path to your ipa file * pkg Path to your pkg file * build_number If set the given build number (already uploaded to iTC) will be used instead of the current built one platform The platform to use (optional) ios edit_live Modify live metadata, this option disables ipa upload and screenshot upload false use_live_version Force usage of live version rather than edit version false metadata_path Path to the folder containing the metadata files screenshots_path Path to the folder containing the screenshots skip_binary_upload Skip uploading an ipa or pkg to App Store Connect false skip_screenshots Don't upload the screenshots false skip_metadata Don't upload the metadata (e.g. title, description). This will still upload screenshots false skip_app_version_update Don\u2019t create or update the app version that is being prepared for submission false force Skip verification of HTML preview file false overwrite_screenshots Clear all previously uploaded screenshots before uploading the new ones false sync_screenshots Sync screenshots with local ones. This is currently beta option so set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well false submit_for_review Submit the new version for Review after uploading everything false verify_only Verifies archive with App Store Connect without uploading false reject_if_possible Rejects the previously submitted build if it's in a state where it's possible false automatic_release Should the app be automatically released once it's approved? (Can not be used together with auto_release_date ) auto_release_date Date in milliseconds for automatically releasing on pending approval (Can not be used together with automatic_release ) phased_release Enable the phased release feature of iTC false reset_ratings Reset the summary rating when you release a new version of the application false price_tier The price tier of this application app_rating_config_path Path to the app rating's config submission_information Extra information for the submission (e.g. compliance specifications, IDFA settings) team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your Developer Portal team, if you're in multiple teams. Different from your iTC team ID! * dev_portal_team_name The name of your Developer Portal team if you're in multiple teams * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column * run_precheck_before_submit Run precheck before submitting to app review true precheck_default_rule_level The default precheck rule level unless otherwise configured :warn individual_metadata_items DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - An array of localized metadata items to upload individually by language so that errors can be identified. E.g. ['name', 'keywords', 'description']. Note: slow app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the app icon apple_watch_app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the Apple Watch app icon copyright Metadata: The copyright notice primary_category Metadata: The english name of the primary category (e.g. Business , Books ) secondary_category Metadata: The english name of the secondary category (e.g. Business , Books ) primary_first_sub_category Metadata: The english name of the primary first sub category (e.g. Educational , Puzzle ) primary_second_sub_category Metadata: The english name of the primary second sub category (e.g. Educational , Puzzle ) secondary_first_sub_category Metadata: The english name of the secondary first sub category (e.g. Educational , Puzzle ) secondary_second_sub_category Metadata: The english name of the secondary second sub category (e.g. Educational , Puzzle ) trade_representative_contact_information DEPRECATED! This is no longer used by App Store Connect - Metadata: A hash containing the trade representative contact information app_review_information Metadata: A hash containing the review information app_review_attachment_file Metadata: Path to the app review attachment file description Metadata: The localised app description name Metadata: The localised app name subtitle Metadata: The localised app subtitle keywords Metadata: An array of localised keywords promotional_text Metadata: An array of localised promotional texts release_notes Metadata: Localised release notes for this version privacy_url Metadata: Localised privacy url apple_tv_privacy_policy Metadata: Localised Apple TV privacy policy text support_url Metadata: Localised support url marketing_url Metadata: Localised marketing url languages Metadata: List of languages to activate ignore_language_directory_validation Ignore errors when invalid languages are found in metadata and screenshot directories false precheck_include_in_app_purchases Should precheck check in-app purchases? true app The (spaceship) app ID of the app you want to use/modify * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/upload_to_app_store/#documentation","text":"To show the documentation in your terminal, run fastlane action upload_to_app_store","title":"Documentation"},{"location":"actions/upload_to_app_store/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_to_app_store To pass parameters, make use of the : symbol, for example fastlane run upload_to_app_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/upload_to_app_store/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/upload_to_play_store/","text":"upload_to_play_store Upload metadata, screenshots and binaries to Google Play (via supply ) Command line tool for updating Android apps and their metadata on the Google Play Store supply uploads app metadata, screenshots, binaries, and app bundles to Google Play. You can also select tracks for builds and promote builds to production. Features \u2022 Setup \u2022 Quick Start \u2022 Commands \u2022 Uploading an APK \u2022 Uploading an AAB \u2022 Images Features Update existing Android applications on Google Play via the command line Upload new builds (APKs and AABs) Retrieve and edit metadata, such as title and description, for multiple languages Upload the app icon, promo graphics and screenshots for multiple languages Have a local copy of the metadata in your git repository Retrieve version code numbers from existing Google Play tracks Setup Setup consists of setting up your Google Developers Service Account Tip: If you see Google Play Console or Google Developer Console in your local language, add &hl=en at the end of the URL (before any #... ) to switch to English. All the links below already have this to make it easier to find the correct buttons. Note: if you face issues when following these instructions, you might want to refer to the official documentation by Google . Open the Google Play Console Click Account Details , and note the Developer Account ID listed there Enable the Google Play Developer API by selecting an existing Google Cloud Project that fits your needs and pushing ENABLE If you don't have an existing project or prefer to have a dedicated one for fastlane , create a new one here and follow the instructions Open Service Accounts on Google Cloud and select the project you'd like to use Click the CREATE SERVICE ACCOUNT button at the top of the Google Cloud Platform Console page Verify that you are on the correct Google Cloud Platform Project by looking for the Developer Account ID from earlier within the light gray text in the second input, preceding .iam.gserviceaccount.com , or by checking the project name in the navigaton bar. If not, open the picker in the top navigation bar, and find the right one. Provide a Service account name (e.g. fastlane-supply) Copy the generated email address that is noted below the Service account-ID field for later use Click DONE (don't click CREATE AND CONTINUE as the optional steps such as granting access are not needed): Click on the Actions vertical three-dot icon of the service account you just created Select Manage keys on the menu Click ADD KEY \u2192 Create New Key Make sure JSON is selected as the Key type , and click CREATE Save the file on your computer when prompted and remember where it was saved at Open the Google Play Console and select Users and Permissions Click Invite new users Paste the email address you saved for later use into the email address field Click on Account Permissions Choose the permissions you'd like this account to have. We recommend Admin (all permissions) , but you may want to manually select all checkboxes and leave out some of the Releases permissions such as Release to production, exclude devices, and use Play App Signing Click on Invite User You can use fastlane run validate_play_store_json_key json_key:/path/to/your/downloaded/file.json to test the connection to Google Play Store with the downloaded private key. Once that works, add the path to the JSON file to your Appfile : json_key_file(\"path/to/your/play-store-credentials.json\") package_name(\"my.package.name\") The path is relative to where you normally run fastlane . Migrating Google credential format (from .p12 key file to .json) In previous versions of supply, credentials to your Play Console were stored as .p12 files. Since version 0.4.0, supply now supports the recommended .json key Service Account credential files. If you wish to upgrade: follow the Setup procedure once again to make sure you create the appropriate JSON file update your fastlane configuration or your command line invocation to use the appropriate argument if necessary. Note that you don't need to take note nor pass the issuer argument anymore. The previous p12 configuration is still currently supported. Quick Start Before using supply to connect to Google Play Store, you'll need to set up your app manually first by uploading at least one build to Google Play Store. See fastlane/fastlane#14686 for more info. cd [your_project_folder] fastlane supply init Make changes to the downloaded metadata, add images, screenshots and/or an APK fastlane supply Available Commands fastlane supply : update an app with metadata, a build, images and screenshots fastlane supply init : download metadata for an existing app to a local directory fastlane action supply : show information on available commands, arguments and environment variables You can either run supply on its own and use it interactively, or you can pass arguments or specify environment variables for all the options to skip the questions. Uploading an APK To upload a new binary to Google Play, simply run fastlane supply --apk path/to/app.apk This will also upload app metadata if you previously ran fastlane supply init . To gradually roll out a new build use fastlane supply --apk path/app.apk --track beta --rollout 0.5 To set the in-app update priority level for a release, set a valid update priority (an integer value from 0 to 5) using option in_app_update_priority fastlane supply --apk path/app.apk --track beta --in_app_update_priority 3 Expansion files ( .obb ) Expansion files (obbs) found under the same directory as your APK will also be uploaded together with your APK as long as: they are identified as type 'main' or 'patch' (by containing 'main' or 'patch' in their file name) you have at most one of each type If you only want to update the APK, but keep the expansion files from the previous version on Google Play use fastlane supply --apk path/app.apk --obb_main_references_version 21 --obb_main_file_size 666154207 or fastlane supply --apk path/app.apk --obb_patch_references_version 21 --obb_patch_file_size 666154207 Uploading an AAB To upload a new Android application bundle to Google Play, simply run fastlane supply --aab path/to/app.aab This will also upload app metadata if you previously ran fastlane supply init . To gradually roll out a new build use fastlane supply --aab path/app.aab --track beta --rollout 0.5 To set the in-app update priority level for a release, set a valid update priority (an integer value from 0 to 5) using option in_app_update_priority fastlane supply --aab path/app.aab --track beta --in_app_update_priority 3 Images and Screenshots After running fastlane supply init , you will have a metadata directory. This directory contains one or more locale directories (e.g. en-US, en-GB, etc.), and inside this directory are text files such as title.txt and short_description.txt . Inside of a given locale directory is a folder called images . Here you can supply images with the following file names (extension can be png, jpg or jpeg): featureGraphic icon promoGraphic tvBanner You can also supply screenshots by creating directories within the images directory with the following names, containing PNGs or JPEGs: phoneScreenshots/ sevenInchScreenshots/ (7-inch tablets) tenInchScreenshots/ (10-inch tablets) tvScreenshots/ wearScreenshots/ You may name images anything you like, but screenshots will appear in the Play Store in alphanumerical filename order. Note that these will replace the current images and screenshots on the play store listing, not add to them. Changelogs (What's new) You can add changelog files under the changelogs/ directory for each locale. The filename should exactly match the version code of the APK that it represents. You can also provide default notes that will be used if no files match the version code by adding a default.txt file. fastlane supply init will populate changelog files from existing data on Google Play if no metadata/ directory exists when it is run. \u2514\u2500\u2500 fastlane \u2514\u2500\u2500 metadata \u2514\u2500\u2500 android \u251c\u2500\u2500 en-US \u2502 \u2514\u2500\u2500 changelogs \u2502 \u251c\u2500\u2500 default.txt \u2502 \u251c\u2500\u2500 100000.txt \u2502 \u2514\u2500\u2500 100100.txt \u2514\u2500\u2500 fr-FR \u2514\u2500\u2500 changelogs \u251c\u2500\u2500 default.txt \u2514\u2500\u2500 100100.txt Track Promotion A common Play publishing scenario might involve uploading an APK version to a test track, testing it, and finally promoting that version to production. This can be done using the --track_promote_to parameter. The --track_promote_to parameter works with the --track parameter to command the Play API to promote existing Play track APK version(s) (those active on the track identified by the --track param value) to a new track ( --track_promote_to value). Retrieve Track Release Names & Version Codes Before performing a new APK upload you may want to check existing track version codes or release names, or you may simply want to provide an informational lane that displays the currently promoted version codes or release name for the production track. You can use the google_play_track_version_codes action to retrieve existing version codes for a package and track. You can use the google_play_track_release_names action to retrieve existing release names for a package and track. For more information, see the fastlane action google_play_track_version_codes and fastlane action google_play_track_release_names help output. Migration from AndroidPublisherV2 to AndroidPublisherV3 in fastlane 2.135.0 New Options :version_name Used when uploading with :apk_path , :apk_paths , :aab_path , and :aab_paths Can be any string such (example: \"October Release\" or \"Awesome New Feature\") Defaults to the version name in app/build.gradle or AndroidManifest.xml :release_status Used when uploading with :apk_path , :apk_paths , :aab_path , and :aab_paths Can set as \"draft\" to complete the release at some other time Defaults to \"completed\" :version_code Used for :update_rollout , :track_promote_to , and uploading of meta data and screenshots :skip_upload_changelogs Changelogs were previously included with the :skip_upload_metadata but is now its own option Deprecated Options :check_superseded_tracks Google Play will automatically remove releases that are superseded now :deactivate_on_promote Google Play will automatically deactivate a release from its previous track on promote : upload_to_play_store Supported platforms android Author @KrauseFx 2 Examples upload_to_play_store supply # alias for \"upload_to_play_store\" Parameters Key Description Default package_name The package name of the application to use * version_name Version name (used when uploading new apks/aabs) - defaults to 'versionName' in build.gradle or AndroidManifest.xml * version_code The versionCode for which to download the generated APK * release_status Release status (used when uploading new apks/aabs) - valid values are completed, draft, halted, inProgress * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production rollout The percentage of the user fraction when uploading to the rollout track (setting to 1 will complete the rollout) metadata_path Path to the directory containing the metadata files * key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * apk Path to the APK file to upload * apk_paths An array of paths to APK files to upload aab Path to the AAB file to upload * aab_paths An array of paths to AAB files to upload skip_upload_apk Whether to skip uploading APK false skip_upload_aab Whether to skip uploading AAB false skip_upload_metadata Whether to skip uploading metadata, changelogs not included false skip_upload_changelogs Whether to skip uploading changelogs false skip_upload_images Whether to skip uploading images, screenshots not included false skip_upload_screenshots Whether to skip uploading SCREENSHOTS false sync_image_upload Whether to use sha256 comparison to skip upload of images and screenshots that are already in Play Store false track_promote_to The track to promote to. The default available tracks are: production, beta, alpha, internal track_promote_release_status Promoted track release status (used when promoting a track) - valid values are completed, draft, halted, inProgress completed validate_only Only validate changes with Google Play rather than actually publish false mapping Path to the mapping file to upload (mapping.txt or native-debug-symbols.zip alike) mapping_paths An array of paths to mapping files to upload (mapping.txt or native-debug-symbols.zip alike) root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ check_superseded_tracks DEPRECATED! Google Play does this automatically now - Check the other tracks for superseded versions and disable them false timeout Timeout for read, open, and send (in seconds) 300 deactivate_on_promote DEPRECATED! Google Play does this automatically now - When promoting to a new track, deactivate the binary in the origin track true version_codes_to_retain An array of version codes to retain when publishing a new APK changes_not_sent_for_review Indicates that the changes in this edit will not be reviewed until they are explicitly sent for review from the Google Play Console UI false rescue_changes_not_sent_for_review Catches changes_not_sent_for_review errors when an edit is committed and retries with the configuration that the error message recommended true in_app_update_priority In-app update priority for all the newly added apks in the release. Can take values between [0,5] obb_main_references_version References version of 'main' expansion file obb_main_file_size Size of 'main' expansion file in bytes obb_patch_references_version References version of 'patch' expansion file obb_patch_file_size Size of 'patch' expansion file in bytes ack_bundle_installation_warning Must be set to true if the bundle installation may trigger a warning on user devices (e.g can only be downloaded over wifi). Typically this is required for bundles over 150MB false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action upload_to_play_store CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_to_play_store To pass parameters, make use of the : symbol, for example fastlane run upload_to_play_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"upload_to_play_store"},{"location":"actions/upload_to_play_store/#upload_to_play_store","text":"Upload metadata, screenshots and binaries to Google Play (via supply )","title":"upload_to_play_store"},{"location":"actions/upload_to_play_store/#features","text":"Update existing Android applications on Google Play via the command line Upload new builds (APKs and AABs) Retrieve and edit metadata, such as title and description, for multiple languages Upload the app icon, promo graphics and screenshots for multiple languages Have a local copy of the metadata in your git repository Retrieve version code numbers from existing Google Play tracks","title":"Features"},{"location":"actions/upload_to_play_store/#setup","text":"Setup consists of setting up your Google Developers Service Account Tip: If you see Google Play Console or Google Developer Console in your local language, add &hl=en at the end of the URL (before any #... ) to switch to English. All the links below already have this to make it easier to find the correct buttons. Note: if you face issues when following these instructions, you might want to refer to the official documentation by Google . Open the Google Play Console Click Account Details , and note the Developer Account ID listed there Enable the Google Play Developer API by selecting an existing Google Cloud Project that fits your needs and pushing ENABLE If you don't have an existing project or prefer to have a dedicated one for fastlane , create a new one here and follow the instructions Open Service Accounts on Google Cloud and select the project you'd like to use Click the CREATE SERVICE ACCOUNT button at the top of the Google Cloud Platform Console page Verify that you are on the correct Google Cloud Platform Project by looking for the Developer Account ID from earlier within the light gray text in the second input, preceding .iam.gserviceaccount.com , or by checking the project name in the navigaton bar. If not, open the picker in the top navigation bar, and find the right one. Provide a Service account name (e.g. fastlane-supply) Copy the generated email address that is noted below the Service account-ID field for later use Click DONE (don't click CREATE AND CONTINUE as the optional steps such as granting access are not needed): Click on the Actions vertical three-dot icon of the service account you just created Select Manage keys on the menu Click ADD KEY \u2192 Create New Key Make sure JSON is selected as the Key type , and click CREATE Save the file on your computer when prompted and remember where it was saved at Open the Google Play Console and select Users and Permissions Click Invite new users Paste the email address you saved for later use into the email address field Click on Account Permissions Choose the permissions you'd like this account to have. We recommend Admin (all permissions) , but you may want to manually select all checkboxes and leave out some of the Releases permissions such as Release to production, exclude devices, and use Play App Signing Click on Invite User You can use fastlane run validate_play_store_json_key json_key:/path/to/your/downloaded/file.json to test the connection to Google Play Store with the downloaded private key. Once that works, add the path to the JSON file to your Appfile : json_key_file(\"path/to/your/play-store-credentials.json\") package_name(\"my.package.name\") The path is relative to where you normally run fastlane .","title":"Setup"},{"location":"actions/upload_to_play_store/#quick-start","text":"Before using supply to connect to Google Play Store, you'll need to set up your app manually first by uploading at least one build to Google Play Store. See fastlane/fastlane#14686 for more info. cd [your_project_folder] fastlane supply init Make changes to the downloaded metadata, add images, screenshots and/or an APK fastlane supply","title":"Quick Start"},{"location":"actions/upload_to_play_store/#available-commands","text":"fastlane supply : update an app with metadata, a build, images and screenshots fastlane supply init : download metadata for an existing app to a local directory fastlane action supply : show information on available commands, arguments and environment variables You can either run supply on its own and use it interactively, or you can pass arguments or specify environment variables for all the options to skip the questions.","title":"Available Commands"},{"location":"actions/upload_to_play_store/#uploading-an-apk","text":"To upload a new binary to Google Play, simply run fastlane supply --apk path/to/app.apk This will also upload app metadata if you previously ran fastlane supply init . To gradually roll out a new build use fastlane supply --apk path/app.apk --track beta --rollout 0.5 To set the in-app update priority level for a release, set a valid update priority (an integer value from 0 to 5) using option in_app_update_priority fastlane supply --apk path/app.apk --track beta --in_app_update_priority 3","title":"Uploading an APK"},{"location":"actions/upload_to_play_store/#uploading-an-aab","text":"To upload a new Android application bundle to Google Play, simply run fastlane supply --aab path/to/app.aab This will also upload app metadata if you previously ran fastlane supply init . To gradually roll out a new build use fastlane supply --aab path/app.aab --track beta --rollout 0.5 To set the in-app update priority level for a release, set a valid update priority (an integer value from 0 to 5) using option in_app_update_priority fastlane supply --aab path/app.aab --track beta --in_app_update_priority 3","title":"Uploading an AAB"},{"location":"actions/upload_to_play_store/#images-and-screenshots","text":"After running fastlane supply init , you will have a metadata directory. This directory contains one or more locale directories (e.g. en-US, en-GB, etc.), and inside this directory are text files such as title.txt and short_description.txt . Inside of a given locale directory is a folder called images . Here you can supply images with the following file names (extension can be png, jpg or jpeg): featureGraphic icon promoGraphic tvBanner You can also supply screenshots by creating directories within the images directory with the following names, containing PNGs or JPEGs: phoneScreenshots/ sevenInchScreenshots/ (7-inch tablets) tenInchScreenshots/ (10-inch tablets) tvScreenshots/ wearScreenshots/ You may name images anything you like, but screenshots will appear in the Play Store in alphanumerical filename order. Note that these will replace the current images and screenshots on the play store listing, not add to them.","title":"Images and Screenshots"},{"location":"actions/upload_to_play_store/#changelogs-whats-new","text":"You can add changelog files under the changelogs/ directory for each locale. The filename should exactly match the version code of the APK that it represents. You can also provide default notes that will be used if no files match the version code by adding a default.txt file. fastlane supply init will populate changelog files from existing data on Google Play if no metadata/ directory exists when it is run. \u2514\u2500\u2500 fastlane \u2514\u2500\u2500 metadata \u2514\u2500\u2500 android \u251c\u2500\u2500 en-US \u2502 \u2514\u2500\u2500 changelogs \u2502 \u251c\u2500\u2500 default.txt \u2502 \u251c\u2500\u2500 100000.txt \u2502 \u2514\u2500\u2500 100100.txt \u2514\u2500\u2500 fr-FR \u2514\u2500\u2500 changelogs \u251c\u2500\u2500 default.txt \u2514\u2500\u2500 100100.txt","title":"Changelogs (What's new)"},{"location":"actions/upload_to_play_store/#track-promotion","text":"A common Play publishing scenario might involve uploading an APK version to a test track, testing it, and finally promoting that version to production. This can be done using the --track_promote_to parameter. The --track_promote_to parameter works with the --track parameter to command the Play API to promote existing Play track APK version(s) (those active on the track identified by the --track param value) to a new track ( --track_promote_to value).","title":"Track Promotion"},{"location":"actions/upload_to_play_store/#retrieve-track-release-names-version-codes","text":"Before performing a new APK upload you may want to check existing track version codes or release names, or you may simply want to provide an informational lane that displays the currently promoted version codes or release name for the production track. You can use the google_play_track_version_codes action to retrieve existing version codes for a package and track. You can use the google_play_track_release_names action to retrieve existing release names for a package and track. For more information, see the fastlane action google_play_track_version_codes and fastlane action google_play_track_release_names help output.","title":"Retrieve Track Release Names & Version Codes"},{"location":"actions/upload_to_play_store/#migration-from-androidpublisherv2-to-androidpublisherv3-in-fastlane-21350","text":"","title":"Migration from AndroidPublisherV2 to AndroidPublisherV3 in fastlane 2.135.0"},{"location":"actions/upload_to_play_store/#2-examples","text":"upload_to_play_store supply # alias for \"upload_to_play_store\"","title":"2 Examples"},{"location":"actions/upload_to_play_store/#parameters","text":"Key Description Default package_name The package name of the application to use * version_name Version name (used when uploading new apks/aabs) - defaults to 'versionName' in build.gradle or AndroidManifest.xml * version_code The versionCode for which to download the generated APK * release_status Release status (used when uploading new apks/aabs) - valid values are completed, draft, halted, inProgress * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production rollout The percentage of the user fraction when uploading to the rollout track (setting to 1 will complete the rollout) metadata_path Path to the directory containing the metadata files * key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * apk Path to the APK file to upload * apk_paths An array of paths to APK files to upload aab Path to the AAB file to upload * aab_paths An array of paths to AAB files to upload skip_upload_apk Whether to skip uploading APK false skip_upload_aab Whether to skip uploading AAB false skip_upload_metadata Whether to skip uploading metadata, changelogs not included false skip_upload_changelogs Whether to skip uploading changelogs false skip_upload_images Whether to skip uploading images, screenshots not included false skip_upload_screenshots Whether to skip uploading SCREENSHOTS false sync_image_upload Whether to use sha256 comparison to skip upload of images and screenshots that are already in Play Store false track_promote_to The track to promote to. The default available tracks are: production, beta, alpha, internal track_promote_release_status Promoted track release status (used when promoting a track) - valid values are completed, draft, halted, inProgress completed validate_only Only validate changes with Google Play rather than actually publish false mapping Path to the mapping file to upload (mapping.txt or native-debug-symbols.zip alike) mapping_paths An array of paths to mapping files to upload (mapping.txt or native-debug-symbols.zip alike) root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ check_superseded_tracks DEPRECATED! Google Play does this automatically now - Check the other tracks for superseded versions and disable them false timeout Timeout for read, open, and send (in seconds) 300 deactivate_on_promote DEPRECATED! Google Play does this automatically now - When promoting to a new track, deactivate the binary in the origin track true version_codes_to_retain An array of version codes to retain when publishing a new APK changes_not_sent_for_review Indicates that the changes in this edit will not be reviewed until they are explicitly sent for review from the Google Play Console UI false rescue_changes_not_sent_for_review Catches changes_not_sent_for_review errors when an edit is committed and retries with the configuration that the error message recommended true in_app_update_priority In-app update priority for all the newly added apks in the release. Can take values between [0,5] obb_main_references_version References version of 'main' expansion file obb_main_file_size Size of 'main' expansion file in bytes obb_patch_references_version References version of 'patch' expansion file obb_patch_file_size Size of 'patch' expansion file in bytes ack_bundle_installation_warning Must be set to true if the bundle installation may trigger a warning on user devices (e.g can only be downloaded over wifi). Typically this is required for bundles over 150MB false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/upload_to_play_store/#documentation","text":"To show the documentation in your terminal, run fastlane action upload_to_play_store","title":"Documentation"},{"location":"actions/upload_to_play_store/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_to_play_store To pass parameters, make use of the : symbol, for example fastlane run upload_to_play_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/upload_to_play_store/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/upload_to_play_store_internal_app_sharing/","text":"upload_to_play_store_internal_app_sharing Upload binaries to Google Play Internal App Sharing (via supply ) More information: https://docs.fastlane.tools/actions/upload_to_play_store_internal_app_sharing/ upload_to_play_store_internal_app_sharing Supported platforms android Author @andrewhavens Returns Returns a string containing the download URL for the uploaded APK/AAB (or array of strings if multiple were uploaded). 1 Example upload_to_play_store_internal_app_sharing Parameters Key Description Default package_name The package name of the application to use * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * apk Path to the APK file to upload * apk_paths An array of paths to APK files to upload aab Path to the AAB file to upload * aab_paths An array of paths to AAB files to upload root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action upload_to_play_store_internal_app_sharing CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_to_play_store_internal_app_sharing To pass parameters, make use of the : symbol, for example fastlane run upload_to_play_store_internal_app_sharing parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"upload_to_play_store_internal_app_sharing"},{"location":"actions/upload_to_play_store_internal_app_sharing/#upload_to_play_store_internal_app_sharing","text":"Upload binaries to Google Play Internal App Sharing (via supply ) More information: https://docs.fastlane.tools/actions/upload_to_play_store_internal_app_sharing/ upload_to_play_store_internal_app_sharing Supported platforms android Author @andrewhavens Returns Returns a string containing the download URL for the uploaded APK/AAB (or array of strings if multiple were uploaded).","title":"upload_to_play_store_internal_app_sharing"},{"location":"actions/upload_to_play_store_internal_app_sharing/#1-example","text":"upload_to_play_store_internal_app_sharing","title":"1 Example"},{"location":"actions/upload_to_play_store_internal_app_sharing/#parameters","text":"Key Description Default package_name The package name of the application to use * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * apk Path to the APK file to upload * apk_paths An array of paths to APK files to upload aab Path to the AAB file to upload * aab_paths An array of paths to AAB files to upload root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/upload_to_play_store_internal_app_sharing/#documentation","text":"To show the documentation in your terminal, run fastlane action upload_to_play_store_internal_app_sharing","title":"Documentation"},{"location":"actions/upload_to_play_store_internal_app_sharing/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_to_play_store_internal_app_sharing To pass parameters, make use of the : symbol, for example fastlane run upload_to_play_store_internal_app_sharing parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/upload_to_play_store_internal_app_sharing/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/upload_to_testflight/","text":"upload_to_testflight Upload new binary to App Store Connect for TestFlight beta testing (via pilot ) The best way to manage your TestFlight testers and builds from your terminal pilot makes it easier to manage your app on Apple\u2019s TestFlight. You can: Upload & distribute builds Add & remove testers Retrieve information about testers & devices Import/export all available testers pilot uses spaceship.airforce to interact with App Store Connect \ud83d\ude80 Usage \u2022 Tips pilot is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Usage For all commands, you can either use an API Key or your Apple ID . App Store Connect API Key The App Store Connect API Key is the preferred authentication method (if you are able to use it). Uses official App Store Connect API No need for 2FA Better performance over Apple ID Specify the API key using --api_key_path ./path/to/api_key_info.json or --api_key \"{\\\"key_id\\\": \\\"D83848D23\\\", \\\"issuer_id\\\": \\\"227b0bbf-ada8-458c-9d62-3d8022b7d07f\\\", \\\"key_filepath\\\": \\\"D83848D23.p8\\\"}\" Go to Using App Store Connect API for information on obtaining an API key, the fastlane api_key_info.json format, and other API key usage. Apple ID Specify the Apple ID to use using -u felix@krausefx.com . If you execute pilot in a project already using fastlane the username and app identifier will automatically be determined. Uploading builds To upload a new build, just run fastlane pilot upload This will automatically look for an ipa in your current directory and tries to fetch the login credentials from your fastlane setup . You'll be asked for any missing information. Additionally, you can pass all kinds of parameters: fastlane action pilot You can pass a changelog using fastlane pilot upload --changelog \"Something that is new here\" You can also skip the submission of the binary, which means, the ipa file will only be uploaded and not distributed to testers: fastlane pilot upload --skip_submission pilot does all kinds of magic for you: Automatically detects the bundle identifier from your ipa file Automatically fetch the AppID of your app based on the bundle identifier pilot uses spaceship to submit the build metadata and the iTunes Transporter to upload the binary. Because iTunes Transporter's upload capability is only supported on OS X, pilot upload does not work on Linux, as described in this issue List builds To list all builds for specific application use fastlane pilot builds The result lists all active builds and processing builds: +-----------+---------+----------+ | Great App Builds | +-----------+---------+----------+ | Version # | Build # | Installs | +-----------+---------+----------+ | 0.9.13 | 1 | 0 | | 0.9.13 | 2 | 0 | | 0.9.20 | 3 | 0 | | 0.9.20 | 4 | 3 | +-----------+---------+----------+ Managing beta testers List of Testers This command will list all your testers, both internal and external. fastlane pilot list The output will look like this: +--------+--------+--------------------------+-----------+ | Internal Testers | +--------+--------+--------------------------+-----------+ | First | Last | Email | # Devices | +--------+--------+--------------------------+-----------+ | Felix | Krause | felix@krausefx.com | 2 | +--------+--------+--------------------------+-----------+ +-----------+---------+----------------------------+-----------+ | External Testers | +-----------+---------+----------------------------+-----------+ | First | Last | Email | # Devices | +-----------+---------+----------------------------+-----------+ | Max | Manfred | email@email.com | 0 | | Detlef | M\u00fcller | detlef@krausefx.com | 1 | +-----------+---------+----------------------------+-----------+ Add a new tester To add a new tester to your App Store Connect account and to associate it to at least one testing group of your app, use the pilot add command. This will create a new tester (if necessary) or add an existing tester to the app to test. fastlane pilot add email@invite.com -g group-1,group-2 Additionally you can specify the app identifier (if necessary): fastlane pilot add email@email.com -a com.krausefx.app -g group-1,group-2 Find a tester To find a specific tester use fastlane pilot find felix@krausefx.com The resulting output will look like this: +---------------------+---------------------+ | felix@krausefx.com | +---------------------+---------------------+ | First name | Felix | | Last name | Krause | | Email | felix@krausefx.com | | Latest Version | 0.9.14 (23 | | Latest Install Date | 03/28/15 19:00 | | 2 Devices | \u2022 iPhone 6, iOS 8.3 | | | \u2022 iPhone 5, iOS 7.0 | +---------------------+---------------------+ Remove a tester This command will remove beta tester from app (from all internal and external groups) fastlane pilot remove felix@krausefx.com You can also use groups option to remove the tester from the groups specified: fastlane pilot remove felix@krausefx.com -g group-1,group-2 Export testers To export all external testers to a CSV file. Useful if you need to import tester info to another system or a new account. fastlane pilot export Import testers Add external testers from a CSV file. Create a file (ex: testers.csv ) and fill it with the following format: John,Appleseed,appleseed_john@mac.com,group-1;group-2 fastlane pilot import You can also specify the directory using fastlane pilot export -c ~/Desktop/testers.csv fastlane pilot import -c ~/Desktop/testers.csv Tips Debug information If you run into any issues you can use the verbose mode to get a more detailed output: fastlane pilot upload --verbose Firewall Issues pilot uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol from the command line using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" pilot ... If you are using pilot via the fastlane action , add the following to your Fastfile ENV[\"DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS\"] = \"-t DAV\" pilot... Note, however, that Apple recommends you don\u2019t specify the -t transport and instead allow Transporter to use automatic transport discovery to determine the best transport mode for your packages. For this reason, if the t option is passed, we will raise a warning. Also note that -t is not the only additional parameter that can be used. The string specified in the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS environment variable will be forwarded to Transporter. For all the available options, check Apple's Transporter User Guide . Credentials Issues If your password contains special characters, pilot may throw a confusing error saying your \"Your Apple ID or password was entered incorrectly\". The easiest way to fix this error is to change your password to something that does not contains special characters. How is my password stored? pilot uses the CredentialsManager from fastlane . Provider Short Name If you are on multiple App Store Connect teams, iTunes Transporter may need a provider short name to know where to upload your binary. pilot will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option. Use an Application Specific Password to upload pilot / upload_to_testflight can use an Application Specific Password via the FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD environment variable to upload a binary if both the skip_waiting_for_build_processing and apple_id options are set. (If any of those are not set, it will use the normal Apple login process that might require 2FA authentication.) Role for App Store Connect User pilot / upload_to_testflight updates build information and testers after the build has finished processing. App Store Connect requires the \"App Manager\" or \"Admin\" role for your Apple account to update this information. The \"Developer\" role will allow builds to be uploaded but will not allow updating of build information and testers. upload_to_testflight Supported platforms ios, mac Author @KrauseFx 7 Examples upload_to_testflight testflight # alias for \"upload_to_testflight\" pilot # alias for \"upload_to_testflight\" upload_to_testflight(skip_submission: true) # to only upload the build upload_to_testflight( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) upload_to_testflight( beta_app_feedback_email: \"email@email.com\", beta_app_description: \"This is a description of my app\", demo_account_required: true, notify_external_testers: false, changelog: \"This is my changelog of things that have changed in a log\" ) upload_to_testflight( beta_app_review_info: { contact_email: \"email@email.com\", contact_first_name: \"Connect\", contact_last_name: \"API\", contact_phone: \"5558675309\", demo_account_name: \"demo@email.com\", demo_account_password: \"connectapi\", notes: \"this is review note for the reviewer <3 thank you for reviewing\" }, localized_app_info: { \"default\": { feedback_email: \"default@email.com\", marketing_url: \"https://example.com/marketing-defafult\", privacy_policy_url: \"https://example.com/privacy-defafult\", description: \"Default description\", }, \"en-GB\": { feedback_email: \"en-gb@email.com\", marketing_url: \"https://example.com/marketing-en-gb\", privacy_policy_url: \"https://example.com/privacy-en-gb\", description: \"en-gb description\", } }, localized_build_info: { \"default\": { whats_new: \"Default changelog\", }, \"en-GB\": { whats_new: \"en-gb changelog\", } } ) Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of the app to upload or manage testers (optional) * app_platform The platform to use (optional) apple_id Apple ID property in the App Information section in App Store Connect * ipa Path to the ipa file to upload * pkg Path to your pkg file * demo_account_required Do you need a demo account when Apple does review? beta_app_review_info Beta app review information for contact info and demo account localized_app_info Localized beta app test info for description, feedback email, marketing url, and privacy policy beta_app_description Provide the 'Beta App Description' when uploading a new build beta_app_feedback_email Provide the beta app email when uploading a new build localized_build_info Localized beta app test info for what's new changelog Provide the 'What to Test' text when uploading a new build skip_submission Skip the distributing action of pilot and only upload the ipa file false skip_waiting_for_build_processing If set to true, the distribute_external option won't work and no build will be distributed to testers. (You might want to use this option if you are using this action on CI and have to pay for 'minutes used' on your CI plan). If set to true and a changelog is provided, it will partially wait for the build to appear on AppStore Connect so the changelog can be set, and skip the remaining processing steps false update_build_info_on_upload DEPRECATED! Update build info immediately after validation. This is deprecated and will be removed in a future release. App Store Connect no longer supports setting build info until after build processing has completed, which is when build info is updated by default false distribute_only Distribute a previously uploaded build (equivalent to the fastlane pilot distribute command) false uses_non_exempt_encryption Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist false distribute_external Should the build be distributed to external testers? If set to true, use of groups option is required false notify_external_testers Should notify external testers? (Not setting a value will use App Store Connect's default which is to notify) app_version The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed build_number The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed expire_previous_builds Should expire previous builds? false first_name The tester's first name last_name The tester's last name email The tester's email testers_file_path Path to a CSV file of testers ./testers.csv groups Associate tester to one group or more by group name / group id. E.g. -g \"Team 1\",\"Team 2\" This is required when distribute_external option is set to true or when we want to add a tester to one or more external testing groups team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your team in the developer portal, if you're in multiple teams. Different from your iTC team ID! * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column wait_processing_interval Interval in seconds to wait for App Store Connect processing 30 wait_processing_timeout_duration Timeout duration in seconds to wait for App Store Connect processing. If set, after exceeding timeout duration, this will force stop to wait for App Store Connect processing and exit with exception wait_for_uploaded_build DEPRECATED! No longer needed with the transition over to the App Store Connect API - Use version info from uploaded ipa file to determine what build to use for distribution. If set to false, latest processing or any latest build will be used false reject_build_waiting_for_review Expire previous if it's 'waiting for review' false submit_beta_review Send the build for a beta review true * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action upload_to_testflight CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_to_testflight To pass parameters, make use of the : symbol, for example fastlane run upload_to_testflight parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"upload_to_testflight"},{"location":"actions/upload_to_testflight/#upload_to_testflight","text":"Upload new binary to App Store Connect for TestFlight beta testing (via pilot )","title":"upload_to_testflight"},{"location":"actions/upload_to_testflight/#usage","text":"For all commands, you can either use an API Key or your Apple ID .","title":"Usage"},{"location":"actions/upload_to_testflight/#uploading-builds","text":"To upload a new build, just run fastlane pilot upload This will automatically look for an ipa in your current directory and tries to fetch the login credentials from your fastlane setup . You'll be asked for any missing information. Additionally, you can pass all kinds of parameters: fastlane action pilot You can pass a changelog using fastlane pilot upload --changelog \"Something that is new here\" You can also skip the submission of the binary, which means, the ipa file will only be uploaded and not distributed to testers: fastlane pilot upload --skip_submission pilot does all kinds of magic for you: Automatically detects the bundle identifier from your ipa file Automatically fetch the AppID of your app based on the bundle identifier pilot uses spaceship to submit the build metadata and the iTunes Transporter to upload the binary. Because iTunes Transporter's upload capability is only supported on OS X, pilot upload does not work on Linux, as described in this issue","title":"Uploading builds"},{"location":"actions/upload_to_testflight/#list-builds","text":"To list all builds for specific application use fastlane pilot builds The result lists all active builds and processing builds: +-----------+---------+----------+ | Great App Builds | +-----------+---------+----------+ | Version # | Build # | Installs | +-----------+---------+----------+ | 0.9.13 | 1 | 0 | | 0.9.13 | 2 | 0 | | 0.9.20 | 3 | 0 | | 0.9.20 | 4 | 3 | +-----------+---------+----------+","title":"List builds"},{"location":"actions/upload_to_testflight/#managing-beta-testers","text":"","title":"Managing beta testers"},{"location":"actions/upload_to_testflight/#tips","text":"","title":"Tips"},{"location":"actions/upload_to_testflight/#debug-information","text":"If you run into any issues you can use the verbose mode to get a more detailed output: fastlane pilot upload --verbose","title":"Debug information"},{"location":"actions/upload_to_testflight/#firewall-issues","text":"pilot uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol from the command line using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" pilot ... If you are using pilot via the fastlane action , add the following to your Fastfile ENV[\"DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS\"] = \"-t DAV\" pilot... Note, however, that Apple recommends you don\u2019t specify the -t transport and instead allow Transporter to use automatic transport discovery to determine the best transport mode for your packages. For this reason, if the t option is passed, we will raise a warning. Also note that -t is not the only additional parameter that can be used. The string specified in the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS environment variable will be forwarded to Transporter. For all the available options, check Apple's Transporter User Guide .","title":"Firewall Issues"},{"location":"actions/upload_to_testflight/#credentials-issues","text":"If your password contains special characters, pilot may throw a confusing error saying your \"Your Apple ID or password was entered incorrectly\". The easiest way to fix this error is to change your password to something that does not contains special characters.","title":"Credentials Issues"},{"location":"actions/upload_to_testflight/#how-is-my-password-stored","text":"pilot uses the CredentialsManager from fastlane .","title":"How is my password stored?"},{"location":"actions/upload_to_testflight/#provider-short-name","text":"If you are on multiple App Store Connect teams, iTunes Transporter may need a provider short name to know where to upload your binary. pilot will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option.","title":"Provider Short Name"},{"location":"actions/upload_to_testflight/#use-an-application-specific-password-to-upload","text":"pilot / upload_to_testflight can use an Application Specific Password via the FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD environment variable to upload a binary if both the skip_waiting_for_build_processing and apple_id options are set. (If any of those are not set, it will use the normal Apple login process that might require 2FA authentication.)","title":"Use an Application Specific Password to upload"},{"location":"actions/upload_to_testflight/#role-for-app-store-connect-user","text":"pilot / upload_to_testflight updates build information and testers after the build has finished processing. App Store Connect requires the \"App Manager\" or \"Admin\" role for your Apple account to update this information. The \"Developer\" role will allow builds to be uploaded but will not allow updating of build information and testers. upload_to_testflight Supported platforms ios, mac Author @KrauseFx","title":"Role for App Store Connect User"},{"location":"actions/upload_to_testflight/#7-examples","text":"upload_to_testflight testflight # alias for \"upload_to_testflight\" pilot # alias for \"upload_to_testflight\" upload_to_testflight(skip_submission: true) # to only upload the build upload_to_testflight( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) upload_to_testflight( beta_app_feedback_email: \"email@email.com\", beta_app_description: \"This is a description of my app\", demo_account_required: true, notify_external_testers: false, changelog: \"This is my changelog of things that have changed in a log\" ) upload_to_testflight( beta_app_review_info: { contact_email: \"email@email.com\", contact_first_name: \"Connect\", contact_last_name: \"API\", contact_phone: \"5558675309\", demo_account_name: \"demo@email.com\", demo_account_password: \"connectapi\", notes: \"this is review note for the reviewer <3 thank you for reviewing\" }, localized_app_info: { \"default\": { feedback_email: \"default@email.com\", marketing_url: \"https://example.com/marketing-defafult\", privacy_policy_url: \"https://example.com/privacy-defafult\", description: \"Default description\", }, \"en-GB\": { feedback_email: \"en-gb@email.com\", marketing_url: \"https://example.com/marketing-en-gb\", privacy_policy_url: \"https://example.com/privacy-en-gb\", description: \"en-gb description\", } }, localized_build_info: { \"default\": { whats_new: \"Default changelog\", }, \"en-GB\": { whats_new: \"en-gb changelog\", } } )","title":"7 Examples"},{"location":"actions/upload_to_testflight/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of the app to upload or manage testers (optional) * app_platform The platform to use (optional) apple_id Apple ID property in the App Information section in App Store Connect * ipa Path to the ipa file to upload * pkg Path to your pkg file * demo_account_required Do you need a demo account when Apple does review? beta_app_review_info Beta app review information for contact info and demo account localized_app_info Localized beta app test info for description, feedback email, marketing url, and privacy policy beta_app_description Provide the 'Beta App Description' when uploading a new build beta_app_feedback_email Provide the beta app email when uploading a new build localized_build_info Localized beta app test info for what's new changelog Provide the 'What to Test' text when uploading a new build skip_submission Skip the distributing action of pilot and only upload the ipa file false skip_waiting_for_build_processing If set to true, the distribute_external option won't work and no build will be distributed to testers. (You might want to use this option if you are using this action on CI and have to pay for 'minutes used' on your CI plan). If set to true and a changelog is provided, it will partially wait for the build to appear on AppStore Connect so the changelog can be set, and skip the remaining processing steps false update_build_info_on_upload DEPRECATED! Update build info immediately after validation. This is deprecated and will be removed in a future release. App Store Connect no longer supports setting build info until after build processing has completed, which is when build info is updated by default false distribute_only Distribute a previously uploaded build (equivalent to the fastlane pilot distribute command) false uses_non_exempt_encryption Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist false distribute_external Should the build be distributed to external testers? If set to true, use of groups option is required false notify_external_testers Should notify external testers? (Not setting a value will use App Store Connect's default which is to notify) app_version The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed build_number The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed expire_previous_builds Should expire previous builds? false first_name The tester's first name last_name The tester's last name email The tester's email testers_file_path Path to a CSV file of testers ./testers.csv groups Associate tester to one group or more by group name / group id. E.g. -g \"Team 1\",\"Team 2\" This is required when distribute_external option is set to true or when we want to add a tester to one or more external testing groups team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your team in the developer portal, if you're in multiple teams. Different from your iTC team ID! * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column wait_processing_interval Interval in seconds to wait for App Store Connect processing 30 wait_processing_timeout_duration Timeout duration in seconds to wait for App Store Connect processing. If set, after exceeding timeout duration, this will force stop to wait for App Store Connect processing and exit with exception wait_for_uploaded_build DEPRECATED! No longer needed with the transition over to the App Store Connect API - Use version info from uploaded ipa file to determine what build to use for distribution. If set to false, latest processing or any latest build will be used false reject_build_waiting_for_review Expire previous if it's 'waiting for review' false submit_beta_review Send the build for a beta review true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/upload_to_testflight/#documentation","text":"To show the documentation in your terminal, run fastlane action upload_to_testflight","title":"Documentation"},{"location":"actions/upload_to_testflight/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_to_testflight To pass parameters, make use of the : symbol, for example fastlane run upload_to_testflight parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/upload_to_testflight/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/validate_play_store_json_key/","text":"validate_play_store_json_key Validate that the Google Play Store json_key works Use this action to test and validate your private key json key file used to connect and authenticate with the Google Play API validate_play_store_json_key Supported platforms android Author @janpio 1 Example validate_play_store_json_key( json_key: 'path/to/you/json/key/file' ) Parameters Key Description Default json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action validate_play_store_json_key CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run validate_play_store_json_key To pass parameters, make use of the : symbol, for example fastlane run validate_play_store_json_key parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"validate_play_store_json_key"},{"location":"actions/validate_play_store_json_key/#validate_play_store_json_key","text":"Validate that the Google Play Store json_key works Use this action to test and validate your private key json key file used to connect and authenticate with the Google Play API validate_play_store_json_key Supported platforms android Author @janpio","title":"validate_play_store_json_key"},{"location":"actions/validate_play_store_json_key/#1-example","text":"validate_play_store_json_key( json_key: 'path/to/you/json/key/file' )","title":"1 Example"},{"location":"actions/validate_play_store_json_key/#parameters","text":"Key Description Default json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/validate_play_store_json_key/#documentation","text":"To show the documentation in your terminal, run fastlane action validate_play_store_json_key","title":"Documentation"},{"location":"actions/validate_play_store_json_key/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run validate_play_store_json_key To pass parameters, make use of the : symbol, for example fastlane run validate_play_store_json_key parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/validate_play_store_json_key/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/verify_build/","text":"verify_build Able to verify various settings in ipa file Verifies that the built app was built using the expected build resources. This is relevant for people who build on machines that are used to build apps with different profiles, certificates and/or bundle identifiers to guard against configuration mistakes. verify_build Supported platforms ios Author @CodeReaper 1 Example verify_build( provisioning_type: \"distribution\", bundle_identifier: \"com.example.myapp\" ) Parameters Key Description Default provisioning_type Required type of provisioning provisioning_uuid Required UUID of provisioning profile team_identifier Required team identifier team_name Required team name app_name Required app name bundle_identifier Required bundle identifier ipa_path Explicitly set the ipa path build_path Explicitly set the ipa, app or xcarchive path * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action verify_build CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run verify_build To pass parameters, make use of the : symbol, for example fastlane run verify_build parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"verify_build"},{"location":"actions/verify_build/#verify_build","text":"Able to verify various settings in ipa file Verifies that the built app was built using the expected build resources. This is relevant for people who build on machines that are used to build apps with different profiles, certificates and/or bundle identifiers to guard against configuration mistakes. verify_build Supported platforms ios Author @CodeReaper","title":"verify_build"},{"location":"actions/verify_build/#1-example","text":"verify_build( provisioning_type: \"distribution\", bundle_identifier: \"com.example.myapp\" )","title":"1 Example"},{"location":"actions/verify_build/#parameters","text":"Key Description Default provisioning_type Required type of provisioning provisioning_uuid Required UUID of provisioning profile team_identifier Required team identifier team_name Required team name app_name Required app name bundle_identifier Required bundle identifier ipa_path Explicitly set the ipa path build_path Explicitly set the ipa, app or xcarchive path * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/verify_build/#documentation","text":"To show the documentation in your terminal, run fastlane action verify_build","title":"Documentation"},{"location":"actions/verify_build/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run verify_build To pass parameters, make use of the : symbol, for example fastlane run verify_build parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/verify_build/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/verify_pod_keys/","text":"verify_pod_keys Verifies all keys referenced from the Podfile are non-empty Runs a check against all keys specified in your Podfile to make sure they're more than a single character long. This is to ensure you don't deploy with stubbed keys. verify_pod_keys Supported platforms ios, mac Author @ashfurrow 1 Example verify_pod_keys Documentation To show the documentation in your terminal, run fastlane action verify_pod_keys CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run verify_pod_keys To pass parameters, make use of the : symbol, for example fastlane run verify_pod_keys parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"verify_pod_keys"},{"location":"actions/verify_pod_keys/#verify_pod_keys","text":"Verifies all keys referenced from the Podfile are non-empty Runs a check against all keys specified in your Podfile to make sure they're more than a single character long. This is to ensure you don't deploy with stubbed keys. verify_pod_keys Supported platforms ios, mac Author @ashfurrow","title":"verify_pod_keys"},{"location":"actions/verify_pod_keys/#1-example","text":"verify_pod_keys","title":"1 Example"},{"location":"actions/verify_pod_keys/#documentation","text":"To show the documentation in your terminal, run fastlane action verify_pod_keys","title":"Documentation"},{"location":"actions/verify_pod_keys/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run verify_pod_keys To pass parameters, make use of the : symbol, for example fastlane run verify_pod_keys parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/verify_pod_keys/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/verify_xcode/","text":"verify_xcode Verifies that the Xcode installation is properly signed by Apple This action was implemented after the recent Xcode attack to make sure you're not using a hacked Xcode installation . verify_xcode Supported platforms ios, mac Author @KrauseFx 2 Examples verify_xcode verify_xcode(xcode_path: \"/Applications/Xcode.app\") Parameters Key Description Default xcode_path The path to the Xcode installation to test * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action verify_xcode CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run verify_xcode To pass parameters, make use of the : symbol, for example fastlane run verify_xcode parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"verify_xcode"},{"location":"actions/verify_xcode/#verify_xcode","text":"Verifies that the Xcode installation is properly signed by Apple This action was implemented after the recent Xcode attack to make sure you're not using a hacked Xcode installation . verify_xcode Supported platforms ios, mac Author @KrauseFx","title":"verify_xcode"},{"location":"actions/verify_xcode/#2-examples","text":"verify_xcode verify_xcode(xcode_path: \"/Applications/Xcode.app\")","title":"2 Examples"},{"location":"actions/verify_xcode/#parameters","text":"Key Description Default xcode_path The path to the Xcode installation to test * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/verify_xcode/#documentation","text":"To show the documentation in your terminal, run fastlane action verify_xcode","title":"Documentation"},{"location":"actions/verify_xcode/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run verify_xcode To pass parameters, make use of the : symbol, for example fastlane run verify_xcode parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/verify_xcode/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/version_bump_podspec/","text":"version_bump_podspec Increment or set the version in a podspec file You can use this action to manipulate any 'version' variable contained in a ruby file. For example, you can use it to bump the version of a CocoaPods' podspec file. It also supports versions that are not semantic: 1.4.14.4.1 . For such versions, there is an option to change the appendix (e.g. 4.1 ). version_bump_podspec Supported platforms ios, mac Author @Liquidsoul, @KrauseFx 2 Examples version = version_bump_podspec(path: \"TSMessages.podspec\", bump_type: \"patch\") version = version_bump_podspec(path: \"TSMessages.podspec\", version_number: \"1.4\") Parameters Key Description Default path You must specify the path to the podspec file to update * bump_type The type of this version bump. Available: patch, minor, major patch version_number Change to a specific version. This will replace the bump type value version_appendix Change version appendix to a specific value. For example 1.4.14.4.1 -> 1.4.14.5 require_variable_prefix true by default, this is used for non CocoaPods version bumps only true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The version_bump_podspec action generates the following Lane Variables: SharedValue Description SharedValues::PODSPEC_VERSION_NUMBER The new podspec version number To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action version_bump_podspec CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run version_bump_podspec To pass parameters, make use of the : symbol, for example fastlane run version_bump_podspec parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"version_bump_podspec"},{"location":"actions/version_bump_podspec/#version_bump_podspec","text":"Increment or set the version in a podspec file You can use this action to manipulate any 'version' variable contained in a ruby file. For example, you can use it to bump the version of a CocoaPods' podspec file. It also supports versions that are not semantic: 1.4.14.4.1 . For such versions, there is an option to change the appendix (e.g. 4.1 ). version_bump_podspec Supported platforms ios, mac Author @Liquidsoul, @KrauseFx","title":"version_bump_podspec"},{"location":"actions/version_bump_podspec/#2-examples","text":"version = version_bump_podspec(path: \"TSMessages.podspec\", bump_type: \"patch\") version = version_bump_podspec(path: \"TSMessages.podspec\", version_number: \"1.4\")","title":"2 Examples"},{"location":"actions/version_bump_podspec/#parameters","text":"Key Description Default path You must specify the path to the podspec file to update * bump_type The type of this version bump. Available: patch, minor, major patch version_number Change to a specific version. This will replace the bump type value version_appendix Change version appendix to a specific value. For example 1.4.14.4.1 -> 1.4.14.5 require_variable_prefix true by default, this is used for non CocoaPods version bumps only true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/version_bump_podspec/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The version_bump_podspec action generates the following Lane Variables: SharedValue Description SharedValues::PODSPEC_VERSION_NUMBER The new podspec version number To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/version_bump_podspec/#documentation","text":"To show the documentation in your terminal, run fastlane action version_bump_podspec","title":"Documentation"},{"location":"actions/version_bump_podspec/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run version_bump_podspec To pass parameters, make use of the : symbol, for example fastlane run version_bump_podspec parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/version_bump_podspec/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/version_get_podspec/","text":"version_get_podspec Receive the version number from a podspec file version_get_podspec Supported platforms ios, mac Author @Liquidsoul, @KrauseFx 1 Example version = version_get_podspec(path: \"TSMessages.podspec\") Parameters Key Description Default path You must specify the path to the podspec file * require_variable_prefix true by default, this is used for non CocoaPods version bumps only true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The version_get_podspec action generates the following Lane Variables: SharedValue Description SharedValues::PODSPEC_VERSION_NUMBER The podspec version number To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action version_get_podspec CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run version_get_podspec To pass parameters, make use of the : symbol, for example fastlane run version_get_podspec parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"version_get_podspec"},{"location":"actions/version_get_podspec/#version_get_podspec","text":"Receive the version number from a podspec file version_get_podspec Supported platforms ios, mac Author @Liquidsoul, @KrauseFx","title":"version_get_podspec"},{"location":"actions/version_get_podspec/#1-example","text":"version = version_get_podspec(path: \"TSMessages.podspec\")","title":"1 Example"},{"location":"actions/version_get_podspec/#parameters","text":"Key Description Default path You must specify the path to the podspec file * require_variable_prefix true by default, this is used for non CocoaPods version bumps only true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/version_get_podspec/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The version_get_podspec action generates the following Lane Variables: SharedValue Description SharedValues::PODSPEC_VERSION_NUMBER The podspec version number To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/version_get_podspec/#documentation","text":"To show the documentation in your terminal, run fastlane action version_get_podspec","title":"Documentation"},{"location":"actions/version_get_podspec/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run version_get_podspec To pass parameters, make use of the : symbol, for example fastlane run version_get_podspec parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/version_get_podspec/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/xcarchive/","text":"xcarchive Archives the project using xcodebuild xcarchive Supported platforms ios, mac Author @dtrenz 1 Example xcarchive Documentation To show the documentation in your terminal, run fastlane action xcarchive CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcarchive To pass parameters, make use of the : symbol, for example fastlane run xcarchive parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"xcarchive"},{"location":"actions/xcarchive/#xcarchive","text":"Archives the project using xcodebuild xcarchive Supported platforms ios, mac Author @dtrenz","title":"xcarchive"},{"location":"actions/xcarchive/#1-example","text":"xcarchive","title":"1 Example"},{"location":"actions/xcarchive/#documentation","text":"To show the documentation in your terminal, run fastlane action xcarchive","title":"Documentation"},{"location":"actions/xcarchive/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcarchive To pass parameters, make use of the : symbol, for example fastlane run xcarchive parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/xcarchive/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/xcbuild/","text":"xcbuild Builds the project using xcodebuild xcbuild Supported platforms ios, mac Author @dtrenz 1 Example xcbuild Documentation To show the documentation in your terminal, run fastlane action xcbuild CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcbuild To pass parameters, make use of the : symbol, for example fastlane run xcbuild parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"xcbuild"},{"location":"actions/xcbuild/#xcbuild","text":"Builds the project using xcodebuild xcbuild Supported platforms ios, mac Author @dtrenz","title":"xcbuild"},{"location":"actions/xcbuild/#1-example","text":"xcbuild","title":"1 Example"},{"location":"actions/xcbuild/#documentation","text":"To show the documentation in your terminal, run fastlane action xcbuild","title":"Documentation"},{"location":"actions/xcbuild/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcbuild To pass parameters, make use of the : symbol, for example fastlane run xcbuild parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/xcbuild/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/xcclean/","text":"xcclean Cleans the project using xcodebuild xcclean Supported platforms ios, mac Author @dtrenz 1 Example xcclean Documentation To show the documentation in your terminal, run fastlane action xcclean CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcclean To pass parameters, make use of the : symbol, for example fastlane run xcclean parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"xcclean"},{"location":"actions/xcclean/#xcclean","text":"Cleans the project using xcodebuild xcclean Supported platforms ios, mac Author @dtrenz","title":"xcclean"},{"location":"actions/xcclean/#1-example","text":"xcclean","title":"1 Example"},{"location":"actions/xcclean/#documentation","text":"To show the documentation in your terminal, run fastlane action xcclean","title":"Documentation"},{"location":"actions/xcclean/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcclean To pass parameters, make use of the : symbol, for example fastlane run xcclean parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/xcclean/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/xcexport/","text":"xcexport Exports the project using xcodebuild xcexport Supported platforms ios, mac Author @dtrenz 1 Example xcexport Documentation To show the documentation in your terminal, run fastlane action xcexport CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcexport To pass parameters, make use of the : symbol, for example fastlane run xcexport parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"xcexport"},{"location":"actions/xcexport/#xcexport","text":"Exports the project using xcodebuild xcexport Supported platforms ios, mac Author @dtrenz","title":"xcexport"},{"location":"actions/xcexport/#1-example","text":"xcexport","title":"1 Example"},{"location":"actions/xcexport/#documentation","text":"To show the documentation in your terminal, run fastlane action xcexport","title":"Documentation"},{"location":"actions/xcexport/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcexport To pass parameters, make use of the : symbol, for example fastlane run xcexport parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/xcexport/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/xcode_install/","text":"xcode_install Make sure a certain version of Xcode is installed The xcode-install gem, which this action depends on, has been sunset. Please migrate to xcodes . You can find a migration guide here: xcpretty/xcode-install/MIGRATION.md Makes sure a specific version of Xcode is installed. If that's not the case, it will automatically be downloaded by the xcode_install gem. This will make sure to use the correct Xcode for later actions. xcode_install Supported platforms ios, mac Author @Krausefx Returns The path to the newly installed Xcode version 1 Example xcode_install(version: \"7.1\") Parameters Key Description Default version The version number of the version of Xcode to install username Your Apple ID Username * team_id The ID of your team if you're in multiple teams * download_retry_attempts Number of times the download will be retried in case of failure 3 * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The xcode_install action generates the following Lane Variables: SharedValue Description SharedValues::XCODE_INSTALL_XCODE_PATH The path to the newly installed Xcode To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action xcode_install CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcode_install To pass parameters, make use of the : symbol, for example fastlane run xcode_install parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"xcode_install"},{"location":"actions/xcode_install/#xcode_install","text":"Make sure a certain version of Xcode is installed The xcode-install gem, which this action depends on, has been sunset. Please migrate to xcodes . You can find a migration guide here: xcpretty/xcode-install/MIGRATION.md Makes sure a specific version of Xcode is installed. If that's not the case, it will automatically be downloaded by the xcode_install gem. This will make sure to use the correct Xcode for later actions. xcode_install Supported platforms ios, mac Author @Krausefx Returns The path to the newly installed Xcode version","title":"xcode_install"},{"location":"actions/xcode_install/#1-example","text":"xcode_install(version: \"7.1\")","title":"1 Example"},{"location":"actions/xcode_install/#parameters","text":"Key Description Default version The version number of the version of Xcode to install username Your Apple ID Username * team_id The ID of your team if you're in multiple teams * download_retry_attempts Number of times the download will be retried in case of failure 3 * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/xcode_install/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The xcode_install action generates the following Lane Variables: SharedValue Description SharedValues::XCODE_INSTALL_XCODE_PATH The path to the newly installed Xcode To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/xcode_install/#documentation","text":"To show the documentation in your terminal, run fastlane action xcode_install","title":"Documentation"},{"location":"actions/xcode_install/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcode_install To pass parameters, make use of the : symbol, for example fastlane run xcode_install parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/xcode_install/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/xcode_select/","text":"xcode_select Change the xcode-path to use. Useful for beta versions of Xcode Select and build with the Xcode installed at the provided path. Use the xcodes action if you want to select an Xcode: - Based on a version specifier or - You don't have known, stable paths, as may happen in a CI environment. xcode_select Supported platforms ios, mac Author @dtrenz 1 Example xcode_select(\"/Applications/Xcode-8.3.2.app\") Documentation To show the documentation in your terminal, run fastlane action xcode_select CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcode_select To pass parameters, make use of the : symbol, for example fastlane run xcode_select parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"xcode_select"},{"location":"actions/xcode_select/#xcode_select","text":"Change the xcode-path to use. Useful for beta versions of Xcode Select and build with the Xcode installed at the provided path. Use the xcodes action if you want to select an Xcode: - Based on a version specifier or - You don't have known, stable paths, as may happen in a CI environment. xcode_select Supported platforms ios, mac Author @dtrenz","title":"xcode_select"},{"location":"actions/xcode_select/#1-example","text":"xcode_select(\"/Applications/Xcode-8.3.2.app\")","title":"1 Example"},{"location":"actions/xcode_select/#documentation","text":"To show the documentation in your terminal, run fastlane action xcode_select","title":"Documentation"},{"location":"actions/xcode_select/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcode_select To pass parameters, make use of the : symbol, for example fastlane run xcode_select parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/xcode_select/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/xcode_server_get_assets/","text":"xcode_server_get_assets Downloads Xcode Bot assets like the .xcarchive and logs This action downloads assets from your Xcode Server Bot (works with Xcode Server using Xcode 6 and 7. By default, this action downloads all assets, unzips them and deletes everything except for the .xcarchive . If you'd like to keep all downloaded assets, pass keep_all_assets: true . This action returns the path to the downloaded assets folder and puts into shared values the paths to the asset folder and to the .xcarchive inside it. xcode_server_get_assets Supported platforms ios, mac Author @czechboy0 1 Example xcode_server_get_assets( host: \"10.99.0.59\", # Specify Xcode Server's Host or IP Address bot_name: \"release-1.3.4\" # Specify the particular Bot ) Parameters Key Description Default host IP Address/Hostname of Xcode Server bot_name Name of the Bot to pull assets from integration_number Optionally you can override which integration's assets should be downloaded. If not provided, the latest integration is used username Username for your Xcode Server '' password Password for your Xcode Server '' target_folder Relative path to a folder into which to download assets ./xcs_assets keep_all_assets Whether to keep all assets or let the script delete everything except for the .xcarchive false trust_self_signed_certs Whether to trust self-signed certs on your Xcode Server true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The xcode_server_get_assets action generates the following Lane Variables: SharedValue Description SharedValues::XCODE_SERVER_GET_ASSETS_PATH Absolute path to the downloaded assets folder SharedValues::XCODE_SERVER_GET_ASSETS_ARCHIVE_PATH Absolute path to the downloaded xcarchive file To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action xcode_server_get_assets CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcode_server_get_assets To pass parameters, make use of the : symbol, for example fastlane run xcode_server_get_assets parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"xcode_server_get_assets"},{"location":"actions/xcode_server_get_assets/#xcode_server_get_assets","text":"Downloads Xcode Bot assets like the .xcarchive and logs This action downloads assets from your Xcode Server Bot (works with Xcode Server using Xcode 6 and 7. By default, this action downloads all assets, unzips them and deletes everything except for the .xcarchive . If you'd like to keep all downloaded assets, pass keep_all_assets: true . This action returns the path to the downloaded assets folder and puts into shared values the paths to the asset folder and to the .xcarchive inside it. xcode_server_get_assets Supported platforms ios, mac Author @czechboy0","title":"xcode_server_get_assets"},{"location":"actions/xcode_server_get_assets/#1-example","text":"xcode_server_get_assets( host: \"10.99.0.59\", # Specify Xcode Server's Host or IP Address bot_name: \"release-1.3.4\" # Specify the particular Bot )","title":"1 Example"},{"location":"actions/xcode_server_get_assets/#parameters","text":"Key Description Default host IP Address/Hostname of Xcode Server bot_name Name of the Bot to pull assets from integration_number Optionally you can override which integration's assets should be downloaded. If not provided, the latest integration is used username Username for your Xcode Server '' password Password for your Xcode Server '' target_folder Relative path to a folder into which to download assets ./xcs_assets keep_all_assets Whether to keep all assets or let the script delete everything except for the .xcarchive false trust_self_signed_certs Whether to trust self-signed certs on your Xcode Server true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/xcode_server_get_assets/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The xcode_server_get_assets action generates the following Lane Variables: SharedValue Description SharedValues::XCODE_SERVER_GET_ASSETS_PATH Absolute path to the downloaded assets folder SharedValues::XCODE_SERVER_GET_ASSETS_ARCHIVE_PATH Absolute path to the downloaded xcarchive file To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/xcode_server_get_assets/#documentation","text":"To show the documentation in your terminal, run fastlane action xcode_server_get_assets","title":"Documentation"},{"location":"actions/xcode_server_get_assets/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcode_server_get_assets To pass parameters, make use of the : symbol, for example fastlane run xcode_server_get_assets parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/xcode_server_get_assets/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/xcodebuild/","text":"xcodebuild Use the xcodebuild command to build and sign your app Note : xcodebuild is a complex command, so it is recommended to use gym for building your ipa file and scan for testing your app instead. xcodebuild Supported platforms ios, mac Author @dtrenz 1 Example xcodebuild( archive: true, archive_path: \"./build-dir/MyApp.xcarchive\", scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\" ) Documentation To show the documentation in your terminal, run fastlane action xcodebuild CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcodebuild To pass parameters, make use of the : symbol, for example fastlane run xcodebuild parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"xcodebuild"},{"location":"actions/xcodebuild/#xcodebuild","text":"Use the xcodebuild command to build and sign your app Note : xcodebuild is a complex command, so it is recommended to use gym for building your ipa file and scan for testing your app instead. xcodebuild Supported platforms ios, mac Author @dtrenz","title":"xcodebuild"},{"location":"actions/xcodebuild/#1-example","text":"xcodebuild( archive: true, archive_path: \"./build-dir/MyApp.xcarchive\", scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\" )","title":"1 Example"},{"location":"actions/xcodebuild/#documentation","text":"To show the documentation in your terminal, run fastlane action xcodebuild","title":"Documentation"},{"location":"actions/xcodebuild/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcodebuild To pass parameters, make use of the : symbol, for example fastlane run xcodebuild parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/xcodebuild/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/xcodes/","text":"xcodes Make sure a certain version of Xcode is installed, installing it only if needed Makes sure a specific version of Xcode is installed. If that's not the case, it will automatically be downloaded by xcodes . This will make sure to use the correct Xcode version for later actions. Note that this action depends on xcodes CLI, so make sure you have it installed in your environment. For the installation guide, see: https://github.com/RobotsAndPencils/xcodes#installation xcodes Supported platforms ios, mac Author @rogerluan Returns The path to the newly installed Xcode version 2 Examples xcodes(version: \"14.1\") xcodes # When missing, the version value defaults to the value specified in the .xcode-version file Parameters Key Description Default version The version number of the version of Xcode to install. Defaults to the value specified in the .xcode-version file * update_list Whether the list of available Xcode versions should be updated before running the install command true select_for_current_build_only When true, it won't attempt to install an Xcode version, just find the installed Xcode version that best matches the passed version argument, and select it for the current build steps. It doesn't change the global Xcode version (e.g. via 'xcrun xcode-select'), which would require sudo permissions \u2014 when this option is true, this action doesn't require sudo permissions false binary_path Where the xcodes binary lives on your system (full path) * xcodes_args Pass in xcodes command line arguments directly. When present, other parameters are ignored and only this parameter is used to build the command to be executed * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The xcodes action generates the following Lane Variables: SharedValue Description SharedValues::XCODES_XCODE_PATH The path to the newly installed Xcode version To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action xcodes CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcodes To pass parameters, make use of the : symbol, for example fastlane run xcodes parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"xcodes"},{"location":"actions/xcodes/#xcodes","text":"Make sure a certain version of Xcode is installed, installing it only if needed Makes sure a specific version of Xcode is installed. If that's not the case, it will automatically be downloaded by xcodes . This will make sure to use the correct Xcode version for later actions. Note that this action depends on xcodes CLI, so make sure you have it installed in your environment. For the installation guide, see: https://github.com/RobotsAndPencils/xcodes#installation xcodes Supported platforms ios, mac Author @rogerluan Returns The path to the newly installed Xcode version","title":"xcodes"},{"location":"actions/xcodes/#2-examples","text":"xcodes(version: \"14.1\") xcodes # When missing, the version value defaults to the value specified in the .xcode-version file","title":"2 Examples"},{"location":"actions/xcodes/#parameters","text":"Key Description Default version The version number of the version of Xcode to install. Defaults to the value specified in the .xcode-version file * update_list Whether the list of available Xcode versions should be updated before running the install command true select_for_current_build_only When true, it won't attempt to install an Xcode version, just find the installed Xcode version that best matches the passed version argument, and select it for the current build steps. It doesn't change the global Xcode version (e.g. via 'xcrun xcode-select'), which would require sudo permissions \u2014 when this option is true, this action doesn't require sudo permissions false binary_path Where the xcodes binary lives on your system (full path) * xcodes_args Pass in xcodes command line arguments directly. When present, other parameters are ignored and only this parameter is used to build the command to be executed * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/xcodes/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The xcodes action generates the following Lane Variables: SharedValue Description SharedValues::XCODES_XCODE_PATH The path to the newly installed Xcode version To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/xcodes/#documentation","text":"To show the documentation in your terminal, run fastlane action xcodes","title":"Documentation"},{"location":"actions/xcodes/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcodes To pass parameters, make use of the : symbol, for example fastlane run xcodes parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/xcodes/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/xcov/","text":"xcov Nice code coverage reports without hassle Create nice code coverage reports and post coverage summaries on Slack (xcov gem is required) . More information: https://github.com/nakiostudio/xcov . xcov Supported platforms ios, mac Author @nakiostudio 1 Example xcov( workspace: \"YourWorkspace.xcworkspace\", scheme: \"YourScheme\", output_directory: \"xcov_output\" ) Parameters Key Description Default workspace Path the workspace file project Path the project file scheme The project's scheme. Make sure it's marked as Shared configuration The configuration used when building the app. Defaults to 'Release' source_directory The path to project's root directory derived_data_path The directory where build products and other derived data will go output_directory The directory in which all reports will be stored * html_report Produce an HTML report true markdown_report Produce a Markdown report false json_report Produce a JSON report false minimum_coverage_percentage Raise exception if overall coverage percentage is under this value (ie. 75) 0 slack_url Create an Incoming WebHook for your Slack group to post results there slack_channel #channel or @username skip_slack Don't publish to slack, even when an URL is given false slack_username The username which is used to publish to slack xcov slack_message The message which is published together with a successful report Your *xcov* coverage report ignore_file_path Relative or absolute path to the file containing the list of ignored files * include_test_targets Enables coverage reports for .xctest targets false exclude_targets Comma separated list of targets to exclude from coverage report include_targets Comma separated list of targets to include in coverage report. If specified then exlude_targets will be ignored only_project_targets Display the coverage only for main project targets (e.g. skip Pods targets) false disable_coveralls Add this flag to disable automatic submission to Coveralls false coveralls_service_name Name of the CI service compatible with Coveralls. i.e. travis-ci. This option must be defined along with coveralls_service_job_id coveralls_service_job_id Name of the current job running on a CI service compatible with Coveralls. This option must be defined along with coveralls_service_name coveralls_repo_token Repository token to be used by integrations not compatible with Coveralls xcconfig Use an extra XCCONFIG file to build your app ideFoundationPath Absolute path to the IDEFoundation.framework binary * legacy_support Whether xcov should parse a xccoverage file instead on xccovreport false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action xcov CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcov To pass parameters, make use of the : symbol, for example fastlane run xcov parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"xcov"},{"location":"actions/xcov/#xcov","text":"Nice code coverage reports without hassle Create nice code coverage reports and post coverage summaries on Slack (xcov gem is required) . More information: https://github.com/nakiostudio/xcov . xcov Supported platforms ios, mac Author @nakiostudio","title":"xcov"},{"location":"actions/xcov/#1-example","text":"xcov( workspace: \"YourWorkspace.xcworkspace\", scheme: \"YourScheme\", output_directory: \"xcov_output\" )","title":"1 Example"},{"location":"actions/xcov/#parameters","text":"Key Description Default workspace Path the workspace file project Path the project file scheme The project's scheme. Make sure it's marked as Shared configuration The configuration used when building the app. Defaults to 'Release' source_directory The path to project's root directory derived_data_path The directory where build products and other derived data will go output_directory The directory in which all reports will be stored * html_report Produce an HTML report true markdown_report Produce a Markdown report false json_report Produce a JSON report false minimum_coverage_percentage Raise exception if overall coverage percentage is under this value (ie. 75) 0 slack_url Create an Incoming WebHook for your Slack group to post results there slack_channel #channel or @username skip_slack Don't publish to slack, even when an URL is given false slack_username The username which is used to publish to slack xcov slack_message The message which is published together with a successful report Your *xcov* coverage report ignore_file_path Relative or absolute path to the file containing the list of ignored files * include_test_targets Enables coverage reports for .xctest targets false exclude_targets Comma separated list of targets to exclude from coverage report include_targets Comma separated list of targets to include in coverage report. If specified then exlude_targets will be ignored only_project_targets Display the coverage only for main project targets (e.g. skip Pods targets) false disable_coveralls Add this flag to disable automatic submission to Coveralls false coveralls_service_name Name of the CI service compatible with Coveralls. i.e. travis-ci. This option must be defined along with coveralls_service_job_id coveralls_service_job_id Name of the current job running on a CI service compatible with Coveralls. This option must be defined along with coveralls_service_name coveralls_repo_token Repository token to be used by integrations not compatible with Coveralls xcconfig Use an extra XCCONFIG file to build your app ideFoundationPath Absolute path to the IDEFoundation.framework binary * legacy_support Whether xcov should parse a xccoverage file instead on xccovreport false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/xcov/#documentation","text":"To show the documentation in your terminal, run fastlane action xcov","title":"Documentation"},{"location":"actions/xcov/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcov To pass parameters, make use of the : symbol, for example fastlane run xcov parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/xcov/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/xctest/","text":"xctest Runs tests on the given simulator xctest Supported platforms ios, mac Author @dtrenz 1 Example xctest( destination: \"name=iPhone 7s,OS=10.0\" ) Documentation To show the documentation in your terminal, run fastlane action xctest CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xctest To pass parameters, make use of the : symbol, for example fastlane run xctest parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"xctest"},{"location":"actions/xctest/#xctest","text":"Runs tests on the given simulator xctest Supported platforms ios, mac Author @dtrenz","title":"xctest"},{"location":"actions/xctest/#1-example","text":"xctest( destination: \"name=iPhone 7s,OS=10.0\" )","title":"1 Example"},{"location":"actions/xctest/#documentation","text":"To show the documentation in your terminal, run fastlane action xctest","title":"Documentation"},{"location":"actions/xctest/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xctest To pass parameters, make use of the : symbol, for example fastlane run xctest parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/xctest/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/xctool/","text":"xctool Run tests using xctool You can run any xctool action. This will require having xctool installed through Homebrew . It is recommended to store the build configuration in the .xctool-args file. More information: https://docs.fastlane.tools/actions/xctool/ . xctool Supported platforms ios, mac Author @KrauseFx 2 Examples xctool(:test) # If you prefer to have the build configuration stored in the `Fastfile`: xctool(:test, [ \"--workspace\", \"'AwesomeApp.xcworkspace'\", \"--scheme\", \"'Schema Name'\", \"--configuration\", \"Debug\", \"--sdk\", \"iphonesimulator\", \"--arch\", \"i386\" ].join(\" \")) Documentation To show the documentation in your terminal, run fastlane action xctool CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xctool To pass parameters, make use of the : symbol, for example fastlane run xctool parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"xctool"},{"location":"actions/xctool/#xctool","text":"Run tests using xctool You can run any xctool action. This will require having xctool installed through Homebrew . It is recommended to store the build configuration in the .xctool-args file. More information: https://docs.fastlane.tools/actions/xctool/ . xctool Supported platforms ios, mac Author @KrauseFx","title":"xctool"},{"location":"actions/xctool/#2-examples","text":"xctool(:test) # If you prefer to have the build configuration stored in the `Fastfile`: xctool(:test, [ \"--workspace\", \"'AwesomeApp.xcworkspace'\", \"--scheme\", \"'Schema Name'\", \"--configuration\", \"Debug\", \"--sdk\", \"iphonesimulator\", \"--arch\", \"i386\" ].join(\" \"))","title":"2 Examples"},{"location":"actions/xctool/#documentation","text":"To show the documentation in your terminal, run fastlane action xctool","title":"Documentation"},{"location":"actions/xctool/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xctool To pass parameters, make use of the : symbol, for example fastlane run xctool parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/xctool/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/xcversion/","text":"xcversion Select an Xcode to use by version specifier The xcode-install gem, which this action depends on, has been sunset. Please migrate to xcodes . You can find a migration guide here: xcpretty/xcode-install/MIGRATION.md Finds and selects a version of an installed Xcode that best matches the provided Gem::Version requirement specifier You can either manually provide a specific version using version: or you make use of the .xcode-version file. xcversion Supported platforms ios, mac Author @oysta, @rogerluan 3 Examples xcversion(version: \"8.1\") # Selects Xcode 8.1.0 xcversion(version: \"~> 8.1.0\") # Selects the latest installed version from the 8.1.x set xcversion # When missing, the version value defaults to the value specified in the .xcode-version file Parameters Key Description Default version The version of Xcode to select specified as a Gem::Version requirement string (e.g. '~> 7.1.0'). Defaults to the value specified in the .xcode-version file * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action xcversion CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcversion To pass parameters, make use of the : symbol, for example fastlane run xcversion parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"xcversion"},{"location":"actions/xcversion/#xcversion","text":"Select an Xcode to use by version specifier The xcode-install gem, which this action depends on, has been sunset. Please migrate to xcodes . You can find a migration guide here: xcpretty/xcode-install/MIGRATION.md Finds and selects a version of an installed Xcode that best matches the provided Gem::Version requirement specifier You can either manually provide a specific version using version: or you make use of the .xcode-version file. xcversion Supported platforms ios, mac Author @oysta, @rogerluan","title":"xcversion"},{"location":"actions/xcversion/#3-examples","text":"xcversion(version: \"8.1\") # Selects Xcode 8.1.0 xcversion(version: \"~> 8.1.0\") # Selects the latest installed version from the 8.1.x set xcversion # When missing, the version value defaults to the value specified in the .xcode-version file","title":"3 Examples"},{"location":"actions/xcversion/#parameters","text":"Key Description Default version The version of Xcode to select specified as a Gem::Version requirement string (e.g. '~> 7.1.0'). Defaults to the value specified in the .xcode-version file * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/xcversion/#documentation","text":"To show the documentation in your terminal, run fastlane action xcversion","title":"Documentation"},{"location":"actions/xcversion/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcversion To pass parameters, make use of the : symbol, for example fastlane run xcversion parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/xcversion/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/zip/","text":"zip Compress a file or folder to a zip zip Supported platforms ios, android, mac Author @KrauseFx Returns The path to the output zip file 6 Examples zip zip( path: \"MyApp.app\", output_path: \"Latest.app.zip\" ) zip( path: \"MyApp.app\", output_path: \"Latest.app.zip\", verbose: false ) zip( path: \"MyApp.app\", output_path: \"Latest.app.zip\", verbose: false, symlinks: true ) zip( path: \"./\", output_path: \"Source Code.zip\", exclude: [\".git/*\"] ) zip( path: \"./\", output_path: \"Swift Code.zip\", include: [\"**/*.swift\"], exclude: [\"Package.swift\", \"vendor/*\", \"Pods/*\"] ) Parameters Key Description Default path Path to the directory or file to be zipped output_path The name of the resulting zip file verbose Enable verbose output of zipped file true password Encrypt the contents of the zip archive using a password symlinks Store symbolic links as such in the zip archive false include Array of paths or patterns to include [] exclude Array of paths or patterns to exclude [] * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action zip CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run zip To pass parameters, make use of the : symbol, for example fastlane run zip parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"zip"},{"location":"actions/zip/#zip","text":"Compress a file or folder to a zip zip Supported platforms ios, android, mac Author @KrauseFx Returns The path to the output zip file","title":"zip"},{"location":"actions/zip/#6-examples","text":"zip zip( path: \"MyApp.app\", output_path: \"Latest.app.zip\" ) zip( path: \"MyApp.app\", output_path: \"Latest.app.zip\", verbose: false ) zip( path: \"MyApp.app\", output_path: \"Latest.app.zip\", verbose: false, symlinks: true ) zip( path: \"./\", output_path: \"Source Code.zip\", exclude: [\".git/*\"] ) zip( path: \"./\", output_path: \"Swift Code.zip\", include: [\"**/*.swift\"], exclude: [\"Package.swift\", \"vendor/*\", \"Pods/*\"] )","title":"6 Examples"},{"location":"actions/zip/#parameters","text":"Key Description Default path Path to the directory or file to be zipped output_path The name of the resulting zip file verbose Enable verbose output of zipped file true password Encrypt the contents of the zip archive using a password symlinks Store symbolic links as such in the zip archive false include Array of paths or patterns to include [] exclude Array of paths or patterns to exclude [] * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/zip/#documentation","text":"To show the documentation in your terminal, run fastlane action zip","title":"Documentation"},{"location":"actions/zip/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run zip To pass parameters, make use of the : symbol, for example fastlane run zip parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/zip/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"advanced/Appfile/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 Appfile The Appfile stores useful information that are used across all fastlane tools like your Apple ID or the application Bundle Identifier , to deploy your lanes faster and tailored on your project needs. The Appfile has to be inside your ./fastlane directory. By default an Appfile looks like: app_identifier \"net.sunapps.1\" # The bundle identifier of your app apple_id \"felix@krausefx.com\" # Your Apple email address # You can uncomment the lines below and add your own # team selection in case you're in multiple teams # team_name \"Felix Krause\" # team_id \"Q2CBPJ58CA\" # To select a team for App Store Connect use # itc_team_name \"Company Name\" # itc_team_id \"18742801\" If you have different credentials for App Store Connect and the Apple Developer Portal use the following code: app_identifier \"tools.fastlane.app\" # The bundle identifier of your app apple_dev_portal_id \"portal@company.com\" # Apple Developer Account itunes_connect_id \"tunes@company.com\" # App Store Connect Account team_id \"Q2CBPJ58CA\" # Developer Portal Team ID itc_team_id \"18742801\" # App Store Connect Team ID If your project has different bundle identifiers per environment (i.e. beta, app store), you can define that by using for_platform and/or for_lane block declaration. app_identifier \"net.sunapps.1\" apple_id \"felix@krausefx.com\" team_id \"Q2CBPJ58CC\" for_platform :ios do team_id '123' # for all iOS related things for_lane :test do app_identifier 'com.app.test' end end You only have to use for_platform if you're using platform [platform_name] do in your Fastfile . fastlane will always use the lane specific value if given, otherwise fall back to the value on the top of the file. Therefore, while driving the :test lane, this configuration is loaded: app_identifier \"com.app.test\" apple_id \"felix@krausefx.com\" team_id \"123\" Accessing from fastlane If you want to access those values from within your Fastfile use identifier = CredentialsManager::AppfileConfig.try_fetch_value(:app_identifier) team_id = CredentialsManager::AppfileConfig.try_fetch_value(:team_id)","title":"Appfile"},{"location":"advanced/Appfile/#appfile","text":"The Appfile stores useful information that are used across all fastlane tools like your Apple ID or the application Bundle Identifier , to deploy your lanes faster and tailored on your project needs. The Appfile has to be inside your ./fastlane directory. By default an Appfile looks like: app_identifier \"net.sunapps.1\" # The bundle identifier of your app apple_id \"felix@krausefx.com\" # Your Apple email address # You can uncomment the lines below and add your own # team selection in case you're in multiple teams # team_name \"Felix Krause\" # team_id \"Q2CBPJ58CA\" # To select a team for App Store Connect use # itc_team_name \"Company Name\" # itc_team_id \"18742801\" If you have different credentials for App Store Connect and the Apple Developer Portal use the following code: app_identifier \"tools.fastlane.app\" # The bundle identifier of your app apple_dev_portal_id \"portal@company.com\" # Apple Developer Account itunes_connect_id \"tunes@company.com\" # App Store Connect Account team_id \"Q2CBPJ58CA\" # Developer Portal Team ID itc_team_id \"18742801\" # App Store Connect Team ID If your project has different bundle identifiers per environment (i.e. beta, app store), you can define that by using for_platform and/or for_lane block declaration. app_identifier \"net.sunapps.1\" apple_id \"felix@krausefx.com\" team_id \"Q2CBPJ58CC\" for_platform :ios do team_id '123' # for all iOS related things for_lane :test do app_identifier 'com.app.test' end end You only have to use for_platform if you're using platform [platform_name] do in your Fastfile . fastlane will always use the lane specific value if given, otherwise fall back to the value on the top of the file. Therefore, while driving the :test lane, this configuration is loaded: app_identifier \"com.app.test\" apple_id \"felix@krausefx.com\" team_id \"123\"","title":"Appfile"},{"location":"advanced/Appfile/#accessing-from-fastlane","text":"If you want to access those values from within your Fastfile use identifier = CredentialsManager::AppfileConfig.try_fetch_value(:app_identifier) team_id = CredentialsManager::AppfileConfig.try_fetch_value(:team_id)","title":"Accessing from fastlane"},{"location":"advanced/Fastfile/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 Fastfile The Fastfile stores the automation configuration that can be run with fastlane . The Fastfile has to be inside your ./fastlane directory. The Fastfile is used to configure fastlane . Open it in your favourite text editor, using Ruby syntax highlighting. Defining lanes is easy. lane :my_lane do # Whatever actions you like go in here. end Make as many lanes as you like! before_all block This block will get executed before running the requested lane. It supports the same actions as lanes. before_all do |lane| cocoapods end after_all block This block will get executed after running the requested lane. It supports the same actions as lanes. It will only be called, if the selected lane was executed successfully . after_all do |lane| say(\"Successfully finished deployment (#{lane})!\") slack( message: \"Successfully submitted new App Update\" ) sh(\"./send_screenshots_to_team.sh\") # Example end error block This block will get executed when an error occurs, in any of the blocks ( before_all , the lane itself or after_all ). You can get more information about the error using the error_info property. error do |lane, exception| slack( message: \"Something went wrong with the deployment.\", success: false, payload: { \"Error Info\" => exception.error_info.to_s } ) end Extensions Why only use the default actions? Create your own to extend the functionality of fastlane . The build step you create will behave exactly like the built in actions. Just run fastlane new_action . Then enter the name of the action and edit the generated Ruby file in fastlane/actions/[action_name].rb . From then on, you can just start using your action in your Fastfile . If you think your extension can be used by other developers as well, let me know, and we can bundle it with fastlane . To call another action from within your action, just use the same code you would use in a Fastfile : other_action.deliver(text: \"Please input your password:\", key: 123) In general, think twice before you do this, most of the times, these action should be separate. Only call actions from within action if it makes sense. Importing another Fastfile Within your Fastfile you can import another Fastfile using 2 methods: import Import a Fastfile from a local path import \"../GeneralFastfile\" override_lane :from_general do # ... end import_from_git Import from another git repository, which you can use to have one git repo with a default Fastfile for all your project import_from_git(url: 'https://github.com/fastlane/fastlane') # or import_from_git(url: 'git@github.com:MyAwesomeRepo/MyAwesomeFastlaneStandardSetup.git', path: 'fastlane/Fastfile') lane :new_main_lane do # ... end This will also automatically import all the local actions from this repo. Note You should import the other Fastfile on the top above your lane declarations. When defining a new lane fastlane will make sure to not run into any name conflicts. If you want to overwrite an existing lane (from the imported one), use the override_lane keyword. Load own actions from external folder Add this to the top of your Fastfile . actions_path '../custom_actions_folder/' Using fastlane_require If you're using a third party gem in your Fastfile , it is recommended to use fastlane_require instead of require . fastlane_require will: Verify the gem is installed Show installation instructions if not installed Require the gem (like require does) Example fastlane_require 'hike' lane :release do # Do stuff with hike end","title":"Fastfile"},{"location":"advanced/Fastfile/#fastfile","text":"The Fastfile stores the automation configuration that can be run with fastlane . The Fastfile has to be inside your ./fastlane directory. The Fastfile is used to configure fastlane . Open it in your favourite text editor, using Ruby syntax highlighting. Defining lanes is easy. lane :my_lane do # Whatever actions you like go in here. end Make as many lanes as you like!","title":"Fastfile"},{"location":"advanced/Fastfile/#extensions","text":"Why only use the default actions? Create your own to extend the functionality of fastlane . The build step you create will behave exactly like the built in actions. Just run fastlane new_action . Then enter the name of the action and edit the generated Ruby file in fastlane/actions/[action_name].rb . From then on, you can just start using your action in your Fastfile . If you think your extension can be used by other developers as well, let me know, and we can bundle it with fastlane . To call another action from within your action, just use the same code you would use in a Fastfile : other_action.deliver(text: \"Please input your password:\", key: 123) In general, think twice before you do this, most of the times, these action should be separate. Only call actions from within action if it makes sense.","title":"Extensions"},{"location":"advanced/Fastfile/#importing-another-fastfile","text":"Within your Fastfile you can import another Fastfile using 2 methods:","title":"Importing another Fastfile"},{"location":"advanced/Fastfile/#import","text":"Import a Fastfile from a local path import \"../GeneralFastfile\" override_lane :from_general do # ... end","title":"import"},{"location":"advanced/Fastfile/#import_from_git","text":"Import from another git repository, which you can use to have one git repo with a default Fastfile for all your project import_from_git(url: 'https://github.com/fastlane/fastlane') # or import_from_git(url: 'git@github.com:MyAwesomeRepo/MyAwesomeFastlaneStandardSetup.git', path: 'fastlane/Fastfile') lane :new_main_lane do # ... end This will also automatically import all the local actions from this repo.","title":"import_from_git"},{"location":"advanced/Fastfile/#note","text":"You should import the other Fastfile on the top above your lane declarations. When defining a new lane fastlane will make sure to not run into any name conflicts. If you want to overwrite an existing lane (from the imported one), use the override_lane keyword.","title":"Note"},{"location":"advanced/Fastfile/#load-own-actions-from-external-folder","text":"Add this to the top of your Fastfile . actions_path '../custom_actions_folder/'","title":"Load own actions from external folder"},{"location":"advanced/Fastfile/#using-fastlane_require","text":"If you're using a third party gem in your Fastfile , it is recommended to use fastlane_require instead of require . fastlane_require will: Verify the gem is installed Show installation instructions if not installed Require the gem (like require does)","title":"Using fastlane_require"},{"location":"advanced/Fastfile/#example","text":"fastlane_require 'hike' lane :release do # Do stuff with hike end","title":"Example"},{"location":"advanced/actions/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 Actions Naming actions You can specify a \"step name\" for all actions (starting with fastlane 2.120.0 ) to disambiguate the use of some action several times, in different context. To do so, add the :step_name property to your arguments. For instance with the fastlane-plugin-yarn and the native sh: yarn(step_name: 'install_dependencies') yarn(command: 'build', step_name: 'building_project') yarn(command: 'test', step_name: 'testing_project') yarn(command: 'publish-coverage', step_name: 'publishing_project') These name will appear as the step description instead of generic yarn as you can see in the following output: [08:13:37]: --- Step: install_dependencies --- [08:13:37]: ---------------------------------- [08:13:37]: $ yarn [08:13:37]: \u25b8 yarn install v1.12.3 [08:13:37]: \u25b8 [1/4] Resolving packages... [08:13:37]: \u25b8 success Already up-to-date. [08:13:37]: \u25b8 Done in 0.04s. [08:13:37]: ------------------------------ [08:13:37]: --- Step: building_project --- [08:13:37]: ------------------------------ [08:13:37]: $ yarn build [08:13:37]: \u25b8 yarn run v1.12.3 [08:13:38]: \u25b8 $ sleep 22 && echo build the project [08:14:00]: \u25b8 build the project [08:14:00]: \u25b8 Done in 22.09s. [08:14:00]: ----------------------------- [08:14:00]: --- Step: testing_project --- [08:14:00]: ----------------------------- [08:14:00]: $ yarn test [08:14:00]: \u25b8 yarn run v1.12.3 [08:14:00]: \u25b8 $ sleep 30 && echo test all the things [08:14:30]: \u25b8 test all the things [08:14:30]: \u25b8 Done in 30.09s. [08:14:30]: ------------------ [08:14:30]: --- Step: yarn --- [08:14:30]: ------------------ [08:14:30]: $ yarn publish-coverage [08:14:30]: \u25b8 yarn run v1.12.3 [08:14:31]: \u25b8 $ sleep 12 && echo Covered all the things [08:14:43]: \u25b8 Covered all the things [08:14:43]: \u25b8 Done in 12.10s. +------+----------------------------+-------------+ | fastlane summary | +------+----------------------------+-------------+ | Step | Action | Time (in s) | +------+----------------------------+-------------+ | 1 | install_dependencies | 0 | | 2 | building_project | 22 | | 3 | testing_project | 30 | | 4 | yarn | 12 | +------+----------------------------+-------------+ Interacting with the user Instead of using puts , raise and gets , please use the helper class UI across all fastlane tools: UI.message \"Neutral message (usually white)\" UI.success \"Successfully finished processing (usually green)\" UI.error \"Wahaha, what's going on here! (usually red)\" UI.important \"Make sure to use Windows (usually yellow)\" UI.header \"Inputs\" # a big box name = UI.input(\"What's your name? \") if UI.confirm(\"Are you '#{name}'?\") UI.success \"Oh yeah\" else UI.error \"Wups, invalid\" end UI.password(\"Your password please: \") # password inputs are hidden ###### A \"Dropdown\" for the user project = UI.select(\"Select your project: \", [\"Test Project\", \"Test Workspace\"]) UI.success(\"Okay #{name}, you selected '#{project}'\") ###### To run a command use FastlaneCore::CommandExecutor.execute(command: \"ls\", print_all: true, error: proc do |error_output| # handle error here end) ###### or if you just want to receive a simple value use this only if the command doesn't take long diff = Helper.backticks(\"git diff\") ###### fastlane \"crash\" because of a user error everything that is caused by the user and is not unexpected UI.user_error!(\"You don't have a project in the current directory\") ###### an actual crash when something unexpected happened UI.crash!(\"Network timeout\") ###### a deprecation message UI.deprecated(\"The '--key' parameter is deprecated\") Run actions directly If you just want to try an action without adding them to your Fastfile yet, you can use fastlane run notification message:\"My Text\" title:\"The Title\" To get the available options for any action run fastlane action [action_name] . You might not be able to set some kind of parameters using this method. Shell values You can get value from shell commands: output = sh(\"pod update\") Building Actions Using FastlaneCore::Configuration Most actions accept one or more parameters to customize their behavior. Actions define their parameters in an available_options method. This method returns an array of FastlaneCore::ConfigItem objects to describe supported options. Each option is declared by creating a new ConfigItem , e.g.: FastlaneCore::ConfigItem.new( key: :file, env_name: \"MY_NEW_ACTION_FILE\", description: \"A file to operate on\", type: String, optional: false ) This declares a file option for use with the action in a Fastfile, e.g.: my_new_action(file: \"file.txt\") If the optional env_name is present, an environment variable with the specified name may also be used in place of an option in the Fastfile: MY_NEW_ACTION_FILE=file.txt fastlane run my_new_action The type argument to the FastlaneCore::ConfigItem initializer specifies the name of a Ruby class representing a standard data type. Supplied arguments will be coerced to the specified type. Some standard types support default conversions. Boolean parameters Ruby does not have a single class to represent a Boolean type. When specifying Boolean parameters, use is_string: false , without specifying a type , e.g.: FastlaneCore::ConfigItem.new( key: :commit, env_name: \"MY_NEW_ACTION_COMMIT\", description: \"Commit the results if true\", optional: true, default_value: false, is_string: false ) When passing a string value, e.g. from an environment variable, certain set string values are recognized: MY_NEW_ACTION_COMMIT=true MY_NEW_ACTION_COMMIT=false MY_NEW_ACTION_COMMIT=yes MY_NEW_ACTION_COMMIT=no These values may also be passed in all caps, e.g. MY_NEW_ACTION_COMMIT=YES . Array parameters If a parameter is declared with type: Array and a String argument is passed, an array will be produced by splitting the string using the comma character as a delimiter: FastlaneCore::ConfigItem.new( key: :files, env_name: \"MY_NEW_ACTION_FILES\", description: \"One or more files to operate on\", type: Array, optional: false ) my_new_action(files: \"file1.txt,file2.txt\") This is received by the action as [\"file1.txt\", \"file2.txt\"] . This also means a parameter that accepts an array may take a single string as an argument: my_new_action(files: \"file.txt\") This is received by the action as [\"file.txt\"] . Comma-separated lists are particularly useful when using environment variables: export MY_NEW_ACTION_FILES=file1.txt,file2.txt Polymorphic parameters To allow for different types to be passed to a parameter (beyond what is provided above), specify is_string: false without a type field. Use an optional verify_block argument (see below) or verify the argument within your action. If the block does not raise, the option is considered verified. The UI.user_error! method is a convenient way to handle verification failure. FastlaneCore::ConfigItem.new( key: :polymorphic_option, is_string: false, verify_block: ->(value) { verify_option(value) } ) def verify_option(value) case value when String @polymorphic_option = value when Array @polymorphic_option = value.join(\" \") when Hash @polymorphic_option = value.to_s else UI.user_error! \"Invalid option: #{value.inspect}\" end end Callback parameters If your action needs to provide a callback, specify Proc for the type field. FastlaneCore::ConfigItem.new( key: :callback, description: \"Optional callback argument\", optional: true, type: Proc ) To invoke the callback in your action, use the Proc#call method and pass any arguments: params[:callback].call(result) if params[:callback] To notify the user of success or failure, it's usually best just to return a value such as true or false from your action. Use a callback for contextual error handling. For example, the built-in sh action passes the entire command output to an optional error_callback : callback = lambda do |result| handle_missing_file if result =~ /file not found/i handle_auth_failure if result =~ /login failed/i end sh \"some_cmd\", error_callback: callback Note on Procs When passing a block as a parameter to an action or ConfigItem, use a Proc object. There are three ways to create an instance of Proc in Ruby. Using the lambda operator: verify_block = lambda do |value| ... end Using Proc.new : verify_block = Proc.new do |value| ... end Using the Proc literal notation: verify_block = ->(value) { ... } Note that you cannot pass a block literal as a Proc . Verify blocks Use a verify_block argument with your ConfigItem to provide special argument verification: verify_block = lambda do |value| # Has to be a String to get this far uri = URI(value) UI.error \"Invalid scheme #{uri.scheme}\" unless uri.scheme == \"http\" || uri.scheme == \"https\" end FastlaneCore::ConfigItem.new( key: :url, type: String, verify_block: verify_block ) The verify_block requires a Proc argument (see above). Conflicting options If your action includes multiple conflicting options, use conflicting_options in the ConfigItem for each. Make sure conflicting options are optional. FastlaneCore::ConfigItem.new( key: :text, type: String, optional: true, conflicting_options: [:text_file] ), FastlaneCore::ConfigItem.new( key: :text_file, type: String, optional: true, conflicting_options: [:text] ) You can also pass a conflict_block (a Proc , see above) if you want to implement special handling of conflicting options: conflict_block = Proc.new do |other| UI.user_error! \"Unexpected conflict with option #{other}\" unless [:text, :text_file].include?(other) UI.message \"Ignoring :text_file in favor of :text\" end FastlaneCore::ConfigItem.new( key: :text, type: String, optional: true, conflicting_options: [:text_file], conflict_block: conflict_block ), FastlaneCore::ConfigItem.new( key: :text_file, type: String, optional: true, conflicting_options: [:text], conflict_block: conflict_block ) Optional parameters Parameters with optional: true will be nil unless a default_value field is present. Make sure the default_value is reasonable unless it's acceptable for the key to be absent. FastlaneCore::ConfigItem.new( key: :build_configuration, description: \"Which build configuration to use\", type: String, optional: true, default_value: \"Release\" ), FastlaneCore::ConfigItem.new( key: :offset, description: \"Offset to start from\", type: Integer, optional: true, default_value: 0 ), FastlaneCore::ConfigItem.new( key: :workspace, description: \"Optional workspace path\", type: String, optional: true # Not every project has a workspace, so nil is a good default value here. ) Within the action params[:build_configuration] will never be nil. Specifying the default_value is preferable to something in code like: config = params[:build_configuration] || \"Release\" Default values are included in the documentation for action parameters. Configuration files Many built-in actions such as deliver , gym and scan support configuration files ( Deliverfile , Gymfile , Scanfile ). This is useful for actions with many options. To add support for a configuration file to a custom action, call load_configuration_file early, usually as the first line of run : def self.run(params) params.load_configuration_file(\"MyNewActionfile\") # ... This will load any parameters specified in MyNewActionfile . This method looks for the specified file in ./fastlane , ./.fastlane and . , in that order. The file is evaluated by the Ruby interpreter. You may specify they key from any FastlaneCore::ConfigItem as a method call in the configuration file: command \"ls -la\" files %w{file1.txt file2.txt} Resolution order Parameters are resolved from different sources in the following order: A parameter directly passed to an action using the key , usually from the Fastfile . An environment variable, if the env_name is set. A configuration file used in load_configuration_file . The default_value of the ConfigItem . If not explicitly set, this will be nil . User input and output The FastlaneCore::UI utility may be used to display output to the user and also request input from an action. UI includes a number of methods to customize the output for different purposes: UI.message \"Hello from my_new_action.\" UI.important \"Warning: This is a new action.\" UI.error \"Something unexpected happened in my_new_action. Attempting to continue.\" method description error Displays an error message in red important Displays a warning or other important message in yellow success Displays a success message in green message Displays a message in the default output color deprecated Displays a deprecation message in bold blue command Displays a command being executed in cyan command_output Displays command output in magenta verbose Displays verbose output in the default output color header Displays a message in a box for emphasis Methods ending in an exclamation point ( ! ) terminate execution of the current lane and report an error: UI.user_error! \"Could not open file #{file_path}\" method description crash! Report a catastrophic error user_error! Rescue an exception in your action and report a nice message to the user shell_error! Report failure of a shell command build_failure! Report a build failure test_failure! Report a test failure abort_with_message! Report a failure condition that prevents continuing Note that these methods raise exceptions that are rescued in the runner context for the lane. This terminates further lane execution, so it is not necessary to return. # No need for \"and return\" here UI.user_error!(\"Could not open file #{file_path}\") and return if file.nil? The following methods may be used to prompt the user for input. if UI.interactive? name = UI.input \"Please enter your name: \" is_correct = UI.confirm \"Is this correct? \" choice = UI.select \"Please choose from the following list:\", %w{alpha beta gamma} password = UI.password \"Please enter your password: \" end method description interactive? Indicates whether interactive input is possible input Prompt the user for string input confirm Ask the user a binary question select Prompt the user to select from a list of options password Prompt the user for a password (masks output) Invoking shell commands If your action needs to run a shell command, there are several methods. You can easily determine the exit status of the command and capture all terminal output from the command. Using Kernel#system Use the Ruby system method call to invoke a command string. This does not redirect stdin, stdout or stderr, so output formatting will be unaffected. It executes the command in a subshell. system \"cat fastlane/Fastfile\" Upon command completion, the method returns true or false to indicate completion status. The $? global variable will also indicate the exit status of the command. system \"cat fastlane/Fastfile\" UI.user_error! \"Could not execute command\" unless $?.exitstatus == 0 If the command to be executed is not found, system will return nil , and $?.exitstatus will be nonzero. Using backticks To capture the output of a command, enclose the command in backticks: pod_cmd = `which pod` UI.important \"'pod' command not found\" if pod_cmd.empty? Because you are capturing stdout, the command output will not appear at the terminal unless you log it using UI . Formatting may be lost when capturing command output. The entire output to stdout will be captured after the command returns. Output to stderr is not captured or redirected. The $? global variable will indicate the completion status of the command. If the command to be executed is not found, Errno::ENOENT is raised. Using the sh method You can also use the built-in sh method: sh \"pwd\" This is called the same way in an action as in a Fastfile. This provides consistent logging of command output. All output to stdout and stderr is logged via UI . The sh method can accept a block, which will receive the Process::Status returned by the command, the complete output of the command, and an equivalent shell command upon completion of the command. sh \"ls\", \"-la\" do |status, result, command| unless status.success? UI.error \"Command #{command} (pid #{status.pid}) failed with status #{status.exitstatus}\" end UI.message \"Output is #{result.inspect}\" end To be notified only when an error occurs, use the error_callback parameter (a Proc): success = true sh(\"pwd\", error_callback: ->(result) { success = false }) UI.user_error \"Command failed\" unless success The result argument to the error_callback is the entire string output of the command. If the command to be executed is not found, Errno::ENOENT is raised without calling the block or error_callback . If an error_callback or block is not provided, and the command executes and returns an error, an exception is raised, and lane execution is terminated unless the exception is rescued. The exit status of the command will be available in $? . It is also available as the first argument to a block. The return value of the method is the output of the command, unless a block is given. Then the output is available within the block, and the return value of sh is the return value of the block. This enables usage like: if sh command { |s| s.success? } UI.success \"Command succeeded\" else UI.error \"Command failed\" end Anywhere other than an action or a Fastfile (e.g. in helper code), you can invoke this method as Actions.sh . Escaping in shell commands Use shellwords to escape arguments to shell commands. `git commit -aqm #{Shellwords.escape commit_message}` system \"cat #{path.shellescape}\" When using system or sh , pass a list of arguments instead of shell-escaping individual arguments. sh \"git\", \"commit\", \"-aqm\", commit_message system \"cat\", path Calling other actions Some built-in utility actions, such as sh , may be used in custom actions (e.g., in plugins). It's not generally a good idea to call a complex action from another action. In particular: If you're calling one plugin action from another plugin action, you should probably refactor your plugin helper to be more easily called from all actions in the plugin. Avoid wrapping complex built-in actions like deliver and gym . There can be issues with one plugin depending on another plugin. Certain simple built-in utility actions may be used with other_action in your action, such as: other_action.git_add , other_action.git_commit . Think twice before calling an action from another action. There is often a better solution.","title":"Actions"},{"location":"advanced/actions/#actions","text":"","title":"Actions"},{"location":"advanced/actions/#naming-actions","text":"You can specify a \"step name\" for all actions (starting with fastlane 2.120.0 ) to disambiguate the use of some action several times, in different context. To do so, add the :step_name property to your arguments. For instance with the fastlane-plugin-yarn and the native sh: yarn(step_name: 'install_dependencies') yarn(command: 'build', step_name: 'building_project') yarn(command: 'test', step_name: 'testing_project') yarn(command: 'publish-coverage', step_name: 'publishing_project') These name will appear as the step description instead of generic yarn as you can see in the following output: [08:13:37]: --- Step: install_dependencies --- [08:13:37]: ---------------------------------- [08:13:37]: $ yarn [08:13:37]: \u25b8 yarn install v1.12.3 [08:13:37]: \u25b8 [1/4] Resolving packages... [08:13:37]: \u25b8 success Already up-to-date. [08:13:37]: \u25b8 Done in 0.04s. [08:13:37]: ------------------------------ [08:13:37]: --- Step: building_project --- [08:13:37]: ------------------------------ [08:13:37]: $ yarn build [08:13:37]: \u25b8 yarn run v1.12.3 [08:13:38]: \u25b8 $ sleep 22 && echo build the project [08:14:00]: \u25b8 build the project [08:14:00]: \u25b8 Done in 22.09s. [08:14:00]: ----------------------------- [08:14:00]: --- Step: testing_project --- [08:14:00]: ----------------------------- [08:14:00]: $ yarn test [08:14:00]: \u25b8 yarn run v1.12.3 [08:14:00]: \u25b8 $ sleep 30 && echo test all the things [08:14:30]: \u25b8 test all the things [08:14:30]: \u25b8 Done in 30.09s. [08:14:30]: ------------------ [08:14:30]: --- Step: yarn --- [08:14:30]: ------------------ [08:14:30]: $ yarn publish-coverage [08:14:30]: \u25b8 yarn run v1.12.3 [08:14:31]: \u25b8 $ sleep 12 && echo Covered all the things [08:14:43]: \u25b8 Covered all the things [08:14:43]: \u25b8 Done in 12.10s. +------+----------------------------+-------------+ | fastlane summary | +------+----------------------------+-------------+ | Step | Action | Time (in s) | +------+----------------------------+-------------+ | 1 | install_dependencies | 0 | | 2 | building_project | 22 | | 3 | testing_project | 30 | | 4 | yarn | 12 | +------+----------------------------+-------------+","title":"Naming actions"},{"location":"advanced/actions/#interacting-with-the-user","text":"Instead of using puts , raise and gets , please use the helper class UI across all fastlane tools: UI.message \"Neutral message (usually white)\" UI.success \"Successfully finished processing (usually green)\" UI.error \"Wahaha, what's going on here! (usually red)\" UI.important \"Make sure to use Windows (usually yellow)\" UI.header \"Inputs\" # a big box name = UI.input(\"What's your name? \") if UI.confirm(\"Are you '#{name}'?\") UI.success \"Oh yeah\" else UI.error \"Wups, invalid\" end UI.password(\"Your password please: \") # password inputs are hidden ###### A \"Dropdown\" for the user project = UI.select(\"Select your project: \", [\"Test Project\", \"Test Workspace\"]) UI.success(\"Okay #{name}, you selected '#{project}'\") ###### To run a command use FastlaneCore::CommandExecutor.execute(command: \"ls\", print_all: true, error: proc do |error_output| # handle error here end) ###### or if you just want to receive a simple value use this only if the command doesn't take long diff = Helper.backticks(\"git diff\") ###### fastlane \"crash\" because of a user error everything that is caused by the user and is not unexpected UI.user_error!(\"You don't have a project in the current directory\") ###### an actual crash when something unexpected happened UI.crash!(\"Network timeout\") ###### a deprecation message UI.deprecated(\"The '--key' parameter is deprecated\")","title":"Interacting with the user"},{"location":"advanced/actions/#run-actions-directly","text":"If you just want to try an action without adding them to your Fastfile yet, you can use fastlane run notification message:\"My Text\" title:\"The Title\" To get the available options for any action run fastlane action [action_name] . You might not be able to set some kind of parameters using this method.","title":"Run actions directly"},{"location":"advanced/actions/#shell-values","text":"You can get value from shell commands: output = sh(\"pod update\")","title":"Shell values"},{"location":"advanced/actions/#building-actions","text":"","title":"Building Actions"},{"location":"advanced/actions/#using-fastlanecoreconfiguration","text":"Most actions accept one or more parameters to customize their behavior. Actions define their parameters in an available_options method. This method returns an array of FastlaneCore::ConfigItem objects to describe supported options. Each option is declared by creating a new ConfigItem , e.g.: FastlaneCore::ConfigItem.new( key: :file, env_name: \"MY_NEW_ACTION_FILE\", description: \"A file to operate on\", type: String, optional: false ) This declares a file option for use with the action in a Fastfile, e.g.: my_new_action(file: \"file.txt\") If the optional env_name is present, an environment variable with the specified name may also be used in place of an option in the Fastfile: MY_NEW_ACTION_FILE=file.txt fastlane run my_new_action The type argument to the FastlaneCore::ConfigItem initializer specifies the name of a Ruby class representing a standard data type. Supplied arguments will be coerced to the specified type. Some standard types support default conversions.","title":"Using FastlaneCore::Configuration"},{"location":"advanced/actions/#user-input-and-output","text":"The FastlaneCore::UI utility may be used to display output to the user and also request input from an action. UI includes a number of methods to customize the output for different purposes: UI.message \"Hello from my_new_action.\" UI.important \"Warning: This is a new action.\" UI.error \"Something unexpected happened in my_new_action. Attempting to continue.\" method description error Displays an error message in red important Displays a warning or other important message in yellow success Displays a success message in green message Displays a message in the default output color deprecated Displays a deprecation message in bold blue command Displays a command being executed in cyan command_output Displays command output in magenta verbose Displays verbose output in the default output color header Displays a message in a box for emphasis Methods ending in an exclamation point ( ! ) terminate execution of the current lane and report an error: UI.user_error! \"Could not open file #{file_path}\" method description crash! Report a catastrophic error user_error! Rescue an exception in your action and report a nice message to the user shell_error! Report failure of a shell command build_failure! Report a build failure test_failure! Report a test failure abort_with_message! Report a failure condition that prevents continuing Note that these methods raise exceptions that are rescued in the runner context for the lane. This terminates further lane execution, so it is not necessary to return. # No need for \"and return\" here UI.user_error!(\"Could not open file #{file_path}\") and return if file.nil? The following methods may be used to prompt the user for input. if UI.interactive? name = UI.input \"Please enter your name: \" is_correct = UI.confirm \"Is this correct? \" choice = UI.select \"Please choose from the following list:\", %w{alpha beta gamma} password = UI.password \"Please enter your password: \" end method description interactive? Indicates whether interactive input is possible input Prompt the user for string input confirm Ask the user a binary question select Prompt the user to select from a list of options password Prompt the user for a password (masks output)","title":"User input and output"},{"location":"advanced/actions/#invoking-shell-commands","text":"If your action needs to run a shell command, there are several methods. You can easily determine the exit status of the command and capture all terminal output from the command.","title":"Invoking shell commands"},{"location":"advanced/actions/#calling-other-actions","text":"Some built-in utility actions, such as sh , may be used in custom actions (e.g., in plugins). It's not generally a good idea to call a complex action from another action. In particular: If you're calling one plugin action from another plugin action, you should probably refactor your plugin helper to be more easily called from all actions in the plugin. Avoid wrapping complex built-in actions like deliver and gym . There can be issues with one plugin depending on another plugin. Certain simple built-in utility actions may be used with other_action in your action, such as: other_action.git_add , other_action.git_commit . Think twice before calling an action from another action. There is often a better solution.","title":"Calling other actions"},{"location":"advanced/fastlane/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 Configuring fastlane Skip update check when launching fastlane You can set the environment variable FASTLANE_SKIP_UPDATE_CHECK to skip the update check. Hide changelog information at the end of running fastlane You can set the environment variable FASTLANE_HIDE_CHANGELOG to hide the detailed changelog information when new fastlane versions are available. Output environment variables To hide timestamps in each row, set the FASTLANE_HIDE_TIMESTAMP environment variable to true (overruled by --verbose ). To output the timezone in the timestamp, set the FASTLANE_SHOW_TIMEZONE environment variable to true. To disable output formatting, set the FASTLANE_DISABLE_OUTPUT_FORMAT environment variable to true. To disable warnings about startup time and Gemfile usage, set the SKIP_SLOW_FASTLANE_WARNING environment variable to true. To disable the plugins summary table printed at the beginning, set the FASTLANE_HIDE_PLUGINS_TABLE environment variable to true. To disable action summary table output, set the FASTLANE_SKIP_ACTION_SUMMARY environment variable to true. How fastlane works Priorities of parameters and options The order in which fastlane tools take their values from CLI parameter (e.g. gym --scheme Example ) or Fastfile (e.g. gym(scheme: 'Example') ) Environment variable (e.g. GYM_SCHEME ) Tool specific config file (e.g. Gymfile containing scheme 'Example' ) Default value (which might be taken from the Appfile , e.g. app_identifier from the Appfile ) If this value is required, you'll be asked for it (e.g. you have multiple schemes, you'll be asked for it) Directory behavior fastlane was designed in a way that you can run fastlane from both the root directory of the project, and from the ./fastlane sub-folder. Take this example Fastfile on the path fastlane/Fastfile sh \"pwd\" # => \"[root]/fastlane\" puts Dir.pwd # => \"[root]/fastlane\" lane :something do sh \"pwd\" # => \"[root]/fastlane\" puts Dir.pwd # => \"[root]/fastlane\" my_action end The implementation of my_action looks like this: def run(params) puts Dir.pwd # => \"[root]\" end Notice how every action and every plugin's code runs in the root of the project, while all user code from the Fastfile runs inside the ./fastlane directory. This is important to consider when migrating existing code from your Fastfile into your own action or plugin. To change the directory manually you can use standard Ruby blocks: Dir.chdir(\"..\") do # code here runs in the parent directory end This behavior isn't great, and has been like this since the very early days of fastlane . As much as we'd like to change it, there is no good way to do so, without breaking thousands of production setups, so we decided to keep it as is for now. Passing parameters to fastlane command line tools fastlane contains several command line tools, e.g. fastlane deliver or fastlane snapshot . To pass parameters to these tools, append the option names and values as you would for a normal shell command: fastlane [tool] --[option]=[value] fastlane deliver --skip_screenshots=true fastlane snapshot --screenshots_path=xxxxx --schema=xxxx","title":"fastlane"},{"location":"advanced/fastlane/#fastlane","text":"","title":"fastlane"},{"location":"advanced/fastlane/#configuring-fastlane","text":"","title":"Configuring fastlane"},{"location":"advanced/fastlane/#how-fastlane-works","text":"","title":"How fastlane works"},{"location":"advanced/fastlane/#passing-parameters-to-fastlane-command-line-tools","text":"fastlane contains several command line tools, e.g. fastlane deliver or fastlane snapshot . To pass parameters to these tools, append the option names and values as you would for a normal shell command: fastlane [tool] --[option]=[value] fastlane deliver --skip_screenshots=true fastlane snapshot --screenshots_path=xxxxx --schema=xxxx","title":"Passing parameters to fastlane command line tools"},{"location":"advanced/lanes/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 Lanes Passing Parameters To pass parameters from the command line to your lane, use the following syntax: fastlane [lane] key:value key2:value2 fastlane deploy submit:false build_number:24 To access those values, change your lane declaration to also include |options| before_all do |lane, options| # ... end before_each do |lane, options| # ... end lane :deploy do |options| # ... if options[:submit] # Only when submit is true end # ... increment_build_number(build_number: options[:build_number]) # ... end after_all do |lane, options| # ... end after_each do |lane, options| # ... end error do |lane, exception, options| if options[:debug] puts \"Hi :)\" end end Switching lanes To switch lanes while executing a lane, use the following code: lane :deploy do |options| # ... build(release: true) # that's the important bit hockey # ... end lane :staging do |options| # ... build # it also works when you don't pass parameters hockey # ... end lane :build do |options| build_config = (options[:release] ? \"Release\" : \"Staging\") build_ios_app(configuration: build_config) end fastlane takes care of all the magic for you. You can call lanes of the same platform or a general lane outside of the platform definition. Passing parameters is optional. Returning values Additionally, you can retrieve the return value. In Ruby, the last line of the lane definition is the return value. Here is an example: lane :deploy do |options| value = calculate(value: 3) puts value # => 5 end lane :calculate do |options| # ... 2 + options[:value] # the last line will always be the return value end Stop executing a lane early The next keyword can be used to stop executing a lane before it reaches the end. lane :build do |options| if cached_build_available? UI.important 'Skipping build because a cached build is available!' next # skip doing the rest of this lane end match gym end private_lane :cached_build_available? do |options| # ... true end When next is used during a lane switch, control returns to the previous lane that was executing. lane :first_lane do |options| puts \"If you run: `fastlane first_lane`\" puts \"You'll see this!\" second_lane puts \"As well as this!\" end private_lane :second_lane do |options| next puts \"This won't be shown\" end When you stop executing a lane early with next , any after_each and after_all blocks you have will still trigger as usual :+1: before_each and after_each blocks before_each blocks are called before any lane is called. This would include being called before each lane you've switched to. before_each do |lane, options| # ... end after_each blocks are called after any lane is called. This would include being called after each lane you've switched to. Just like after_all , after_each is not called if an error occurs. The error block should be used in this case. after_each do |lane, options| # ... end e.g. With this scenario, before_each and after_each would be called 4 times: before the deploy lane, before the switch to archive , sign , and upload , and after each of these lanes as well. lane :deploy do archive sign upload end lane :archive do # ... end lane :sign do # ... end lane :upload do # ... end Lane Context The different actions can communicate with each other using a shared hash. You can access this in your code (lanes, actions, plugins etc.): lane_context[SharedValues::VARIABLE_NAME_HERE] Here are some examples: lane_context[SharedValues::BUILD_NUMBER] # Generated by `increment_build_number` lane_context[SharedValues::VERSION_NUMBER] # Generated by `increment_version_number` lane_context[SharedValues::SNAPSHOT_SCREENSHOTS_PATH] # Generated by _snapshot_ lane_context[SharedValues::PRODUCE_APPLE_ID] # The Apple ID of the newly created app lane_context[SharedValues::IPA_OUTPUT_PATH] # Generated by _gym_ lane_context[SharedValues::DSYM_OUTPUT_PATH] # Generated by _gym_ lane_context[SharedValues::SIGH_PROFILE_PATH] # Generated by _sigh_ lane_context[SharedValues::SIGH_UDID] # The UDID of the generated provisioning profile lane_context[SharedValues::HOCKEY_DOWNLOAD_LINK] # Generated by `hockey` lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH] # Generated by `gradle` lane_context[SharedValues::GRADLE_ALL_APK_OUTPUT_PATHS] # Generated by `gradle` lane_context[SharedValues::GRADLE_FLAVOR] # Generated by `gradle` lane_context[SharedValues::GRADLE_BUILD_TYPE] # Generated by `gradle` To get information about available lane variables, run fastlane action [action_name] or look at the generated table in the action documentation. Lane Properties It can be useful to dynamically access some properties of the current lane. These are available in lane_context as well: lane_context[SharedValues::PLATFORM_NAME] # Platform name, e.g. `:ios`, `:android` or empty (for root level lanes) lane_context[SharedValues::LANE_NAME] # The name of the current lane preceded by the platform name (stays the same when switching lanes) lane_context[SharedValues::DEFAULT_PLATFORM] # Default platform They are also available as environment variables: ENV[\"FASTLANE_PLATFORM_NAME\"] ENV[\"FASTLANE_LANE_NAME\"] Private lanes Sometimes you might have a lane that is used from different lanes, for example: lane :production do # ... build(release: true) appstore # Deploy to the AppStore # ... end lane :beta do # ... build(release: false) crashlytics # Distribute to testers # ... end lane :build do |options| # ... ipa # ... end It probably doesn't make sense to execute the build lane directly using fastlane build . You can hide this lane using private_lane :build do |options| # ... end This will hide the lane from: fastlane lanes fastlane list fastlane docs And also, you can't call the private lane using fastlane build . The resulting private lane can only be called from another lane using the lane switching technology. Control configuration by lane and by platform In general, configuration files take only the first value given for a particular configuration item. That means that for an Appfile like the following: app_identifier \"com.used.id\" app_identifier \"com.ignored.id\" the app_identfier will be \"com.used.id\" and the second value will be ignored. The for_lane and for_platform configuration blocks provide a limited exception to this rule. All configuration files (Appfile, Matchfile, Screengrabfile, etc.) can use for_lane and for_platform blocks to control (and override) configuration values for those circumstances. for_lane blocks will be called when the name of lane invoked on the command line matches the one specified by the block. So, given a Screengrabfile like: locales ['en-US', 'fr-FR', 'ja-JP'] for_lane :screenshots_english_only do locales ['en-US'] end for_lane :screenshots_french_only do locales ['fr-FR'] end locales will have the values ['en-US', 'fr-FR', 'ja-JP'] by default, but will only have one value when running the fastlane screenshots_english_only or fastlane screenshots_french_only . for_platform gives you similar control based on the platform for which you have invoked fastlane . So, for an Appfile configured like: app_identifier \"com.default.id\" for_lane :enterprise do app_identifier \"com.forlane.enterprise\" end for_platform :mac do app_identifier \"com.forplatform.mac\" for_lane :release do app_identifier \"com.forplatform.mac.forlane.release\" end end you can expect the app_identifier to equal \"com.forplatform.mac.forlane.release\" when invoking fastlane mac release .","title":"Lanes"},{"location":"advanced/lanes/#lanes","text":"","title":"Lanes"},{"location":"advanced/lanes/#passing-parameters","text":"To pass parameters from the command line to your lane, use the following syntax: fastlane [lane] key:value key2:value2 fastlane deploy submit:false build_number:24 To access those values, change your lane declaration to also include |options| before_all do |lane, options| # ... end before_each do |lane, options| # ... end lane :deploy do |options| # ... if options[:submit] # Only when submit is true end # ... increment_build_number(build_number: options[:build_number]) # ... end after_all do |lane, options| # ... end after_each do |lane, options| # ... end error do |lane, exception, options| if options[:debug] puts \"Hi :)\" end end","title":"Passing Parameters"},{"location":"advanced/lanes/#switching-lanes","text":"To switch lanes while executing a lane, use the following code: lane :deploy do |options| # ... build(release: true) # that's the important bit hockey # ... end lane :staging do |options| # ... build # it also works when you don't pass parameters hockey # ... end lane :build do |options| build_config = (options[:release] ? \"Release\" : \"Staging\") build_ios_app(configuration: build_config) end fastlane takes care of all the magic for you. You can call lanes of the same platform or a general lane outside of the platform definition. Passing parameters is optional.","title":"Switching lanes"},{"location":"advanced/lanes/#returning-values","text":"Additionally, you can retrieve the return value. In Ruby, the last line of the lane definition is the return value. Here is an example: lane :deploy do |options| value = calculate(value: 3) puts value # => 5 end lane :calculate do |options| # ... 2 + options[:value] # the last line will always be the return value end","title":"Returning values"},{"location":"advanced/lanes/#stop-executing-a-lane-early","text":"The next keyword can be used to stop executing a lane before it reaches the end. lane :build do |options| if cached_build_available? UI.important 'Skipping build because a cached build is available!' next # skip doing the rest of this lane end match gym end private_lane :cached_build_available? do |options| # ... true end When next is used during a lane switch, control returns to the previous lane that was executing. lane :first_lane do |options| puts \"If you run: `fastlane first_lane`\" puts \"You'll see this!\" second_lane puts \"As well as this!\" end private_lane :second_lane do |options| next puts \"This won't be shown\" end When you stop executing a lane early with next , any after_each and after_all blocks you have will still trigger as usual :+1:","title":"Stop executing a lane early"},{"location":"advanced/lanes/#before_each-and-after_each-blocks","text":"before_each blocks are called before any lane is called. This would include being called before each lane you've switched to. before_each do |lane, options| # ... end after_each blocks are called after any lane is called. This would include being called after each lane you've switched to. Just like after_all , after_each is not called if an error occurs. The error block should be used in this case. after_each do |lane, options| # ... end e.g. With this scenario, before_each and after_each would be called 4 times: before the deploy lane, before the switch to archive , sign , and upload , and after each of these lanes as well. lane :deploy do archive sign upload end lane :archive do # ... end lane :sign do # ... end lane :upload do # ... end","title":"before_each and after_each blocks"},{"location":"advanced/lanes/#lane-context","text":"The different actions can communicate with each other using a shared hash. You can access this in your code (lanes, actions, plugins etc.): lane_context[SharedValues::VARIABLE_NAME_HERE] Here are some examples: lane_context[SharedValues::BUILD_NUMBER] # Generated by `increment_build_number` lane_context[SharedValues::VERSION_NUMBER] # Generated by `increment_version_number` lane_context[SharedValues::SNAPSHOT_SCREENSHOTS_PATH] # Generated by _snapshot_ lane_context[SharedValues::PRODUCE_APPLE_ID] # The Apple ID of the newly created app lane_context[SharedValues::IPA_OUTPUT_PATH] # Generated by _gym_ lane_context[SharedValues::DSYM_OUTPUT_PATH] # Generated by _gym_ lane_context[SharedValues::SIGH_PROFILE_PATH] # Generated by _sigh_ lane_context[SharedValues::SIGH_UDID] # The UDID of the generated provisioning profile lane_context[SharedValues::HOCKEY_DOWNLOAD_LINK] # Generated by `hockey` lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH] # Generated by `gradle` lane_context[SharedValues::GRADLE_ALL_APK_OUTPUT_PATHS] # Generated by `gradle` lane_context[SharedValues::GRADLE_FLAVOR] # Generated by `gradle` lane_context[SharedValues::GRADLE_BUILD_TYPE] # Generated by `gradle` To get information about available lane variables, run fastlane action [action_name] or look at the generated table in the action documentation.","title":"Lane Context"},{"location":"advanced/lanes/#lane-properties","text":"It can be useful to dynamically access some properties of the current lane. These are available in lane_context as well: lane_context[SharedValues::PLATFORM_NAME] # Platform name, e.g. `:ios`, `:android` or empty (for root level lanes) lane_context[SharedValues::LANE_NAME] # The name of the current lane preceded by the platform name (stays the same when switching lanes) lane_context[SharedValues::DEFAULT_PLATFORM] # Default platform They are also available as environment variables: ENV[\"FASTLANE_PLATFORM_NAME\"] ENV[\"FASTLANE_LANE_NAME\"]","title":"Lane Properties"},{"location":"advanced/lanes/#private-lanes","text":"Sometimes you might have a lane that is used from different lanes, for example: lane :production do # ... build(release: true) appstore # Deploy to the AppStore # ... end lane :beta do # ... build(release: false) crashlytics # Distribute to testers # ... end lane :build do |options| # ... ipa # ... end It probably doesn't make sense to execute the build lane directly using fastlane build . You can hide this lane using private_lane :build do |options| # ... end This will hide the lane from: fastlane lanes fastlane list fastlane docs And also, you can't call the private lane using fastlane build . The resulting private lane can only be called from another lane using the lane switching technology.","title":"Private lanes"},{"location":"advanced/lanes/#control-configuration-by-lane-and-by-platform","text":"In general, configuration files take only the first value given for a particular configuration item. That means that for an Appfile like the following: app_identifier \"com.used.id\" app_identifier \"com.ignored.id\" the app_identfier will be \"com.used.id\" and the second value will be ignored. The for_lane and for_platform configuration blocks provide a limited exception to this rule. All configuration files (Appfile, Matchfile, Screengrabfile, etc.) can use for_lane and for_platform blocks to control (and override) configuration values for those circumstances. for_lane blocks will be called when the name of lane invoked on the command line matches the one specified by the block. So, given a Screengrabfile like: locales ['en-US', 'fr-FR', 'ja-JP'] for_lane :screenshots_english_only do locales ['en-US'] end for_lane :screenshots_french_only do locales ['fr-FR'] end locales will have the values ['en-US', 'fr-FR', 'ja-JP'] by default, but will only have one value when running the fastlane screenshots_english_only or fastlane screenshots_french_only . for_platform gives you similar control based on the platform for which you have invoked fastlane . So, for an Appfile configured like: app_identifier \"com.default.id\" for_lane :enterprise do app_identifier \"com.forlane.enterprise\" end for_platform :mac do app_identifier \"com.forplatform.mac\" for_lane :release do app_identifier \"com.forplatform.mac.forlane.release\" end end you can expect the app_identifier to equal \"com.forplatform.mac.forlane.release\" when invoking fastlane mac release .","title":"Control configuration by lane and by platform"},{"location":"advanced/other/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 Other Other advanced topics that didn't fit anywhere else: Environment Variables You can define environment variables in a .env or .env.default file in the same directory as your Fastfile . Environment variables are loaded using dotenv . Here's an example: WORKSPACE=YourApp.xcworkspace HOCKEYAPP_API_TOKEN=your-hockey-api-token fastlane also has a --env option that allows loading of environment specific dotenv files. .env and .env.default will be loaded before environment specific dotenv files are loaded. The naming convention for environment specific dotenv files is .env. For example, fastlane --env development will load .env , .env.default , and .env.development Alternatively, as environment variables are not a fastlane specific thing, you can also use standard methods to set them: DELIVER_USER=\"felix@krausefx.com\" fastlane test or export DELIVER_USER=\"felix@krausefx.com\"; fastlane test Although it kind of defeats the purpose of using them in the first place (not to have their content in any files), you can also set them in your Fastfile : ENV[\"DELIVER_USER\"] = \"felix@krausefx.com\" Adding Credentials You can add credentials for use by fastlane to your keychain using the CredentialsManager command line interface. This is useful for situations like CI environments. Adding a Credential fastlane fastlane-credentials add --username felix@krausefx.com Password: ********* Credential felix@krausefx.com:********* added to keychain. Removing a Credential fastlane fastlane-credentials remove --username felix@krausefx.com password has been deleted. Manually manage the fastlane match Repo Most users can benefit from match 's automatic management of the repo that stores certificates and provisioning profiles. From time to time, it may be necessary to manually change the files in this repo. For example, fastlane requires admin access to the Apple Developer account to generate the appropriate files. If you are provided with an updated certificate or profile but do not have admin access, you can manually edit the repo. Warning: Manually editing your match repo can introduce unexpected behavior and is not recommended. Proceed with caution. Instructions Overview Because: fastlane encrypts the repo, and fastlane doesn't support manual edits to the repo it's necessary to manually decrypt, then modify, then encrypt, the repo to make any changes. These instructions presuppose you already have fastlane match configured correctly. \ud83d\udd13 Decryption Instructions The easiest way to decrypt the repo is to use the fastlane match Storage and Encryption classes. You can do this from an interactive Ruby console: $ bundle console irb(main):001:0> Then, require match and set the appropriate parameters: irb(main):001:0> require 'match' irb(main):002:0> git_url = 'https://github.com/fastlane/example-certificate-repo' => \"https://github.com/fastlane/example-certificate-repo\" irb(main):003:0> shallow_clone = false => false irb(main):004:0> ENV[\"MATCH_PASSWORD\"] = 'example-password' => \"example-password\" irb(main):005:0> branch = 'master' => \"master\" Now create an instance of Storage and Encryption . The download method on Storage will clone the repo and the decrypt_files method on Encryption will decrypt the repo for you. Assign the return values to storage and encrypt , which we'll need later when we re-encrypt: irb(main):006:0> storage = Match::Storage.from_params({storage_mode: \"git\", git_url: git_url, shallow_clone: shallow_clone, git_branch: branch, clone_branch_directly: false}) irb(main):007:0> storage.download irb(main):008:0> encryption = Match::Encryption.for_storage_mode(\"git\", { git_url: git_url, working_directory: storage.working_directory}) irb(main):009:0> encryption.decrypt_files [14:24:42]: \ud83d\udd13 Successfully decrypted certificates repo irb(main):010:0> storage.working_directory => \"/var/folders/ql/4rgq9x7j51n_971xb332w9lc0000gn/T/d20181105-65220-1oalh6v\" The above example checks out the master (which is the default branch that match uses). A common match pattern is to create a separate branch per each developer team (the name of the branch being the team identifier). The directory beginning with /var/folders contains the decrypted git repo. Modify it as needed. If you are updating a .p12 file, ensure it's exported from the keychain without a password, since match doesn't support importing private keys with a password. Warning: Do not commit your changes. Allow fastlane to do that for you. Once your changes are made, we'll need to encrypt the repo and push it. \ud83d\udd12 Encryption Instructions In the Ruby console, call encryption.encrypt_files and storage.save_changes! . For example: irb(main):010:0> encryption.encrypt_files irb(main):011:0> files_to_commit = Dir[File.join(storage.working_directory, \"**\", \"*.{cer,p12,mobileprovision}\")] irb(main):012:0> storage.save_changes!(files_to_commit: files_to_commit) Your changes will be encrypted, committed, and pushed. Note: If your keychain doesn't include the encryption passcode, you may be prompted for it. If so, just enter the same password you used to decrypt it.","title":"Other"},{"location":"advanced/other/#other","text":"Other advanced topics that didn't fit anywhere else:","title":"Other"},{"location":"advanced/other/#environment-variables","text":"You can define environment variables in a .env or .env.default file in the same directory as your Fastfile . Environment variables are loaded using dotenv . Here's an example: WORKSPACE=YourApp.xcworkspace HOCKEYAPP_API_TOKEN=your-hockey-api-token fastlane also has a --env option that allows loading of environment specific dotenv files. .env and .env.default will be loaded before environment specific dotenv files are loaded. The naming convention for environment specific dotenv files is .env. For example, fastlane --env development will load .env , .env.default , and .env.development Alternatively, as environment variables are not a fastlane specific thing, you can also use standard methods to set them: DELIVER_USER=\"felix@krausefx.com\" fastlane test or export DELIVER_USER=\"felix@krausefx.com\"; fastlane test Although it kind of defeats the purpose of using them in the first place (not to have their content in any files), you can also set them in your Fastfile : ENV[\"DELIVER_USER\"] = \"felix@krausefx.com\"","title":"Environment Variables"},{"location":"advanced/other/#adding-credentials","text":"You can add credentials for use by fastlane to your keychain using the CredentialsManager command line interface. This is useful for situations like CI environments. Adding a Credential fastlane fastlane-credentials add --username felix@krausefx.com Password: ********* Credential felix@krausefx.com:********* added to keychain. Removing a Credential fastlane fastlane-credentials remove --username felix@krausefx.com password has been deleted.","title":"Adding Credentials"},{"location":"advanced/other/#manually-manage-the-fastlane-match-repo","text":"Most users can benefit from match 's automatic management of the repo that stores certificates and provisioning profiles. From time to time, it may be necessary to manually change the files in this repo. For example, fastlane requires admin access to the Apple Developer account to generate the appropriate files. If you are provided with an updated certificate or profile but do not have admin access, you can manually edit the repo. Warning: Manually editing your match repo can introduce unexpected behavior and is not recommended. Proceed with caution. Instructions","title":"Manually manage the fastlane match Repo"},{"location":"best-practices/continuous-integration/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 Continuous Integration fastlane works very well in Continuous Integration setups. It for example automatically generates a JUnit report for you that allows Continuous Integration systems, like Jenkins , access the results of your deployment. Integrations Authentication with Apple services Environment variables to set Deploy Strategy Integrations Multiple CI products and services offer integrations with fastlane : Appcircle Azure DevOps (formerly known as: Visual Studio Team Services) Bamboo Bitrise CircleCI Codemagic GitHub Actions GitLab CI Jenkins Semaphore Travis Authenticating with Apple services Check out Authenticating with Apple services to learn the best ways to authenticate, catered for your specific use case. Environment variables to set Most setups will need the following environment variables FASTLANE_USER : Your App Store Connect / Apple Developer Portal user, if your fastlane setup accesses App Store Connect or the Apple Developer Portal (e.g. submit a TestFlight build, create a profile, ...) FASTLANE_PASSWORD : Your App Store Connect / Apple Developer Portal password, usually only needed if you also set the FASTLANE_USER variable MATCH_PASSWORD : You need to provide the password of your match encryption if you use match FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD : You need to provide an application specific password if you have 2-factor enabled and use pilot or deliver to upload a binary to App Store Connect FASTLANE_SESSION : You need to provide a pregenerated session via fastlane spaceauth if you have 2-factor authentication enabled and want to use any actions that communicates with App Store Connect. LANG and LC_ALL : These set up the locale your shell and all the commands you execute run at. fastlane needs these to be set to an UTF-8 locale to work correctly, for example en_US.UTF-8 . Many CI systems come with a locale that is unset or set to ASCII by default, so make sure to double-check whether yours is set correctly. SPACESHIP_ONLY_ALLOW_INTERACTIVE_2FA : Explicitly prevents being prompted for 2FA in non-interactive mode. Deploy Strategy You should not deploy a new App Store update after every commit, since you still have to wait 1-2 days for the review. Instead it is recommended that you use Git Tags, or custom triggers to deploy a new update. You can set up your own Release job, which is only triggered manually. Moved // Closure-wrapped for security. (function () { var anchorMap = { \"jenkins-integration\": \"/best-practices/continuous-integration/jenkins/\", \"circleci-integration\": \"/best-practices/continuous-integration/circle-ci/\", \"travis-integration\": \"/best-practices/continuous-integration/travis/\", \"bamboo-integration\": \"/best-practices/continuous-integration/bamboo/\", \"gitlab-ci-integration\": \"/best-practices/continuous-integration/gitlab/\", \"visual-studio-team-services\": \"/best-practices/continuous-integration/azure-devops/\", \"nevercode-integration\": \"/best-practices/continuous-integration/nevercode/\", } /* * Best practice for extracting hashes: * https://stackoverflow.com/a/10076097/151365 */ var hash = window.location.hash.substring(1); if (hash) { /* * Best practice for javascript redirects: * https://stackoverflow.com/a/506004/151365 */ if (anchorMap[hash]) { link = anchorMap[hash] + '#' + hash; window.location.replace(link); } } })(); The following tool- and service-specific content was moved: Jenkins Integration This content was moved and now lives here . CircleCI Integration This content was moved and now lives here . Travis Integration This content was moved and now lives here . Bamboo Integration This content was moved and now lives here . GitLab CI Integration This content was moved and now lives here . Visual Studio Team Services This content was moved and now lives here . Nevercode Integration This content was moved and now lives here .","title":"Continuous Integration"},{"location":"best-practices/continuous-integration/#continuous-integration","text":"fastlane works very well in Continuous Integration setups. It for example automatically generates a JUnit report for you that allows Continuous Integration systems, like Jenkins , access the results of your deployment. Integrations Authentication with Apple services Environment variables to set Deploy Strategy","title":"Continuous Integration"},{"location":"best-practices/continuous-integration/#integrations","text":"Multiple CI products and services offer integrations with fastlane : Appcircle Azure DevOps (formerly known as: Visual Studio Team Services) Bamboo Bitrise CircleCI Codemagic GitHub Actions GitLab CI Jenkins Semaphore Travis","title":"Integrations"},{"location":"best-practices/continuous-integration/#authenticating-with-apple-services","text":"Check out Authenticating with Apple services to learn the best ways to authenticate, catered for your specific use case.","title":"Authenticating with Apple services"},{"location":"best-practices/continuous-integration/#environment-variables-to-set","text":"Most setups will need the following environment variables FASTLANE_USER : Your App Store Connect / Apple Developer Portal user, if your fastlane setup accesses App Store Connect or the Apple Developer Portal (e.g. submit a TestFlight build, create a profile, ...) FASTLANE_PASSWORD : Your App Store Connect / Apple Developer Portal password, usually only needed if you also set the FASTLANE_USER variable MATCH_PASSWORD : You need to provide the password of your match encryption if you use match FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD : You need to provide an application specific password if you have 2-factor enabled and use pilot or deliver to upload a binary to App Store Connect FASTLANE_SESSION : You need to provide a pregenerated session via fastlane spaceauth if you have 2-factor authentication enabled and want to use any actions that communicates with App Store Connect. LANG and LC_ALL : These set up the locale your shell and all the commands you execute run at. fastlane needs these to be set to an UTF-8 locale to work correctly, for example en_US.UTF-8 . Many CI systems come with a locale that is unset or set to ASCII by default, so make sure to double-check whether yours is set correctly. SPACESHIP_ONLY_ALLOW_INTERACTIVE_2FA : Explicitly prevents being prompted for 2FA in non-interactive mode.","title":"Environment variables to set"},{"location":"best-practices/continuous-integration/#deploy-strategy","text":"You should not deploy a new App Store update after every commit, since you still have to wait 1-2 days for the review. Instead it is recommended that you use Git Tags, or custom triggers to deploy a new update. You can set up your own Release job, which is only triggered manually.","title":"Deploy Strategy"},{"location":"best-practices/keys/","text":"fastlane keys This guide will show you the best ways to store and use your keys and sensitive secrets for services like Crashlytics, Slack, etc. In your Fastfile lane :beta do crashlytics(api_token: \"123abc\", build_secret: \"secret_key\") end or if you want to only define the keys once and use it multiple times ENV[\"CRASHLYTICS_API_TOKEN\"] = \"123abc\" ENV[\"CRASHLYTICS_BUILD_SECRET\"] = \"secret_key\" lane :beta do crashlytics end This is the most straight forward and easiest solution, but might cause a few issues: If you ever decide to open source your application you'll have to make sure to remove the keys from your git history If your keys got invalidated for whatever reason and you decide to rollback your code base to an earlier stage the keys will also be rolled back To get the name of the available environment variables, run fastlane action [action_name] . Bash Profile To not store your keys in git , you can pass all parameters of all actions using environment variables. You can edit your ~/.bash_profile to include something like export SLACK_URL=\"https://hooks.slack.com/services/T03NA19Q5/...\" export CRASHLYTICS_API_TOKEN=\"123abc\" If you use a different shell (e.g. zshell ) you'll need to edit ~/.zshrc instead. After editing the .bash_profile you need to either re-open your terminal session or run source ~/.bash_profile . Disadvantages Every terminal tool you run gets access to your environment variables. You have to edit your bash profile on every computer you want to run fastlane from The bash profile isn't automatically loaded by some CI-systems like Jenkins To get the name of the available environment variables, run fastlane action [action_name] . dotenv dotenv is a system to store your environment in a file that is project specific. Basically you have a hidden file in your project containing all the environment variables for your project. You can store a default configuration in .env.default which will be loaded by fastlane automatically. SLACK_URL=\"https://hooks.slack.com/services/T03NA19Q5/...\" CRASHLYTICS_API_TOKEN=\"123abc\" You might want different configurations depending on your environment. fastlane beta --env development and store the configuration in .env.development with all keys for the development environment. Install [sudo] gem install dotenv or add dotenv to your Gemfile . More information about the recommended way to install gems . To get the name of the available environment variables, run fastlane action [action_name] .","title":"Keys"},{"location":"best-practices/keys/#fastlane-keys","text":"This guide will show you the best ways to store and use your keys and sensitive secrets for services like Crashlytics, Slack, etc.","title":"fastlane keys"},{"location":"best-practices/keys/#in-your-fastfile","text":"lane :beta do crashlytics(api_token: \"123abc\", build_secret: \"secret_key\") end or if you want to only define the keys once and use it multiple times ENV[\"CRASHLYTICS_API_TOKEN\"] = \"123abc\" ENV[\"CRASHLYTICS_BUILD_SECRET\"] = \"secret_key\" lane :beta do crashlytics end This is the most straight forward and easiest solution, but might cause a few issues: If you ever decide to open source your application you'll have to make sure to remove the keys from your git history If your keys got invalidated for whatever reason and you decide to rollback your code base to an earlier stage the keys will also be rolled back To get the name of the available environment variables, run fastlane action [action_name] .","title":"In your Fastfile"},{"location":"best-practices/keys/#bash-profile","text":"To not store your keys in git , you can pass all parameters of all actions using environment variables. You can edit your ~/.bash_profile to include something like export SLACK_URL=\"https://hooks.slack.com/services/T03NA19Q5/...\" export CRASHLYTICS_API_TOKEN=\"123abc\" If you use a different shell (e.g. zshell ) you'll need to edit ~/.zshrc instead. After editing the .bash_profile you need to either re-open your terminal session or run source ~/.bash_profile . Disadvantages Every terminal tool you run gets access to your environment variables. You have to edit your bash profile on every computer you want to run fastlane from The bash profile isn't automatically loaded by some CI-systems like Jenkins To get the name of the available environment variables, run fastlane action [action_name] .","title":"Bash Profile"},{"location":"best-practices/keys/#dotenv","text":"dotenv is a system to store your environment in a file that is project specific. Basically you have a hidden file in your project containing all the environment variables for your project. You can store a default configuration in .env.default which will be loaded by fastlane automatically. SLACK_URL=\"https://hooks.slack.com/services/T03NA19Q5/...\" CRASHLYTICS_API_TOKEN=\"123abc\" You might want different configurations depending on your environment. fastlane beta --env development and store the configuration in .env.development with all keys for the development environment. Install [sudo] gem install dotenv or add dotenv to your Gemfile . More information about the recommended way to install gems . To get the name of the available environment variables, run fastlane action [action_name] .","title":"dotenv"},{"location":"best-practices/source-control/","text":"Source Control It is recommended that you keep fastlane configuration files in the repository. You may want to add the following lines to the repository's .gitignore (Git) or .hgignore (Mercurial) file to exclude generated and temporary files: # fastlane specific **/fastlane/report.xml # deliver temporary files **/fastlane/Preview.html # snapshot generated screenshots **/fastlane/screenshots # scan temporary files **/fastlane/test_output It is also recommended that you avoid storing screenshots or other delivery artifacts in the repository. Instead, use fastlane to re-generate whenever needed.","title":"Source Control"},{"location":"best-practices/source-control/#source-control","text":"It is recommended that you keep fastlane configuration files in the repository. You may want to add the following lines to the repository's .gitignore (Git) or .hgignore (Mercurial) file to exclude generated and temporary files: # fastlane specific **/fastlane/report.xml # deliver temporary files **/fastlane/Preview.html # snapshot generated screenshots **/fastlane/screenshots # scan temporary files **/fastlane/test_output It is also recommended that you avoid storing screenshots or other delivery artifacts in the repository. Instead, use fastlane to re-generate whenever needed.","title":"Source Control"},{"location":"best-practices/xcodebuild-formatters/","text":"Xcodebuild Formatters fastlane uses formatters to make the output from xcodebuild easier to read. xcodebuild is used by scan , gym , and snapshot . The output of xcodebuild is piped into a formatter by fastlane . Below is an example of how fastlane uses formatters: $ xcodebuild [flags] | xcbeautify There are two main formatters the community is using. These are: xcbeautify (recommended) xcpretty Specifying formatter with fastlane 2.201.0 and above As of fastlane 2.201.0, scan , gym , and snapshot all offer a new xcodebuild_formatter option. This option will default to xcbeautify if it's installed; otherwise, it will fallback to xcpretty . However, scan , gym , and snapshot will end up using xcpretty if any options are set that customize it with xcpretty (e.g., xcpretty_args ). scan( xcodebuild_formatter: \"xcbeautify\" ) scan( xcodebuild_formatter: \"xcpretty\" ) # Specify a local installation of xcbeautify scan( xcodebuild_formatter: \"/custom/path/to/xcbeautify\" ) # Specifify your own custom formatter scan( xcodebuild_formatter: \"/custom/path/to/my_formatter\" ) fastlane has some custom logic if xcbeautify or xcpretty are specified but it will essentially run: $ xcodebuild [flags] | Formatters xcbeautify xcbeautify is now the recommended formatter to use. fastlane users are required to install xcbeautify themselves if they want to use it. $ brew install xcbeautify xcbeautify is the recommended because: Faster than xcpretty Supports Xcode's new build system output Supports Xcode's parallel testing output Supports formatting Swift Package Manager output xcpretty Historticaly, fastlane was tightly integrated with xcpretty . xcpretty is a RubyGem and a dependency of fastlane . This was the best option for fastlane as there were no extra steps for installing or using this formatter. xcpretty also did more than formatting. It used the xcodebuild output to: Generate a JUnit report Generate an HTML report Generate a JSON compilation database Before 2.201.0 , scan used xcpretty to generate these files and determine success/failure with xcpretty output As of 2.201.0 , scan will only generate these if xcodebuild_formatter is using xcpretty but now use trainer to parse test results to determine success/failure","title":"Xcodebuild Formatters"},{"location":"best-practices/xcodebuild-formatters/#xcodebuild-formatters","text":"fastlane uses formatters to make the output from xcodebuild easier to read. xcodebuild is used by scan , gym , and snapshot . The output of xcodebuild is piped into a formatter by fastlane . Below is an example of how fastlane uses formatters: $ xcodebuild [flags] | xcbeautify There are two main formatters the community is using. These are: xcbeautify (recommended) xcpretty","title":"Xcodebuild Formatters"},{"location":"best-practices/continuous-integration/appcircle/","text":"Appcircle Integration Appcircle is a mobile CI/CD platform that provides a fully automated environment to build and deploy apps, which also supports fastlane for build automation. With Appcircle, you can automate your build and signing processes with the flexible workflow structure and you can also use fastlane as a workflow step within the build workflows. To use fastlane , Appcircle expects the presence of a fastfile in your repository. Creating a Build Profile to Connect Your Repository with a Fastfile In Appcircle, a build profile contains the build workflows and the configuration of an app per target platform. (i.e. separate for iOS and Android). To create your first build profile, go to the \" Build Module \". (The first item on the left menu) and click on the orange \" Add New \" button on the top right of the screen. In the next screen, enter a name for your build profile and select the target operating system (iOS or Android) and the target platform (Obj-C/Swift, Java/Kotlin, React Native and Flutter projects are supported). If you have two different targets in your project for iOS and Android, you need to create two separate profiles. This allows you to manage separate build workflows for different operating systems. Once created, click on the build profile to connect your repository that contains a fastfile. You can connect private and public repositories on GitHub, Bitbucket and other compatible git providers. You can authorize Appcircle to connect to your cloud repository provider account. This will allow you to use auto-build your project with hooks. The build configuration has different flows for iOS and Android and the projects are configured on a branch basis. You can have different configurations for different branches and you can build any of your commits (assuming that they are compatible with the current configuration). You can use fastlane with the signing configuration defined in the lane or you can configure your build to use Appcircle centralized code signing as an alternative to fastlane match. Adding fastlane to the Appcircle Build Workflow as a Step A workflow in Appcircle is a ladder of steps taken to build your applications. Each step has a different purpose and the workflow can be customized by modifying step parameters and inputs, running custom scripts or re-ordering steps. To utilize fastlane in your builds, open the workflow editor and add the \" fastlane \" step after the \" Git Clone \" step. If you want to run a specific fastlane command, you can add a \" Custom Script \" step anywhere after the fastlane step. Once added, click on the fastlane step to configure it. Fastlane is easy to use with Appcircle just with two options. The \" Fastlane Directory \" option is used to specify the fastfile path . If you keep your fastfile in its default location, it is automatically used without the need to change this field. With the \" Fastlane Lane \" option, you can specify which lane to use. Once everything is set up, press Save to save your step configuration. Then you can configure and run your build just like any other app. Appcircle also supports building and signing the app independently with the \"Build\" and \"Sign\" steps in the workflow. These steps can be used in parallel with fastlane . Running the Build Workflow To run the build workflow that includes the fastlane step, you can start a manual build or trigger an automatic build . The full output of the fastlane execution can be viewed in the build log in real-time or after the build. Deploying the Build Output You can use fastlane to deploy the built apps to the supported third-party services or you can use the Appcircle Distribute module to share the app with the testers or send it to the public app stores. Further Documentation For more information, screenshots, and support, please refer to the Appcircle documentation .","title":"Appcircle"},{"location":"best-practices/continuous-integration/appcircle/#appcircle-integration","text":"Appcircle is a mobile CI/CD platform that provides a fully automated environment to build and deploy apps, which also supports fastlane for build automation. With Appcircle, you can automate your build and signing processes with the flexible workflow structure and you can also use fastlane as a workflow step within the build workflows. To use fastlane , Appcircle expects the presence of a fastfile in your repository.","title":"Appcircle Integration"},{"location":"best-practices/continuous-integration/appcircle/#creating-a-build-profile-to-connect-your-repository-with-a-fastfile","text":"In Appcircle, a build profile contains the build workflows and the configuration of an app per target platform. (i.e. separate for iOS and Android). To create your first build profile, go to the \" Build Module \". (The first item on the left menu) and click on the orange \" Add New \" button on the top right of the screen. In the next screen, enter a name for your build profile and select the target operating system (iOS or Android) and the target platform (Obj-C/Swift, Java/Kotlin, React Native and Flutter projects are supported). If you have two different targets in your project for iOS and Android, you need to create two separate profiles. This allows you to manage separate build workflows for different operating systems. Once created, click on the build profile to connect your repository that contains a fastfile. You can connect private and public repositories on GitHub, Bitbucket and other compatible git providers. You can authorize Appcircle to connect to your cloud repository provider account. This will allow you to use auto-build your project with hooks. The build configuration has different flows for iOS and Android and the projects are configured on a branch basis. You can have different configurations for different branches and you can build any of your commits (assuming that they are compatible with the current configuration). You can use fastlane with the signing configuration defined in the lane or you can configure your build to use Appcircle centralized code signing as an alternative to fastlane match.","title":"Creating a Build Profile to Connect Your Repository with a Fastfile"},{"location":"best-practices/continuous-integration/appcircle/#adding-fastlane-to-the-appcircle-build-workflow-as-a-step","text":"A workflow in Appcircle is a ladder of steps taken to build your applications. Each step has a different purpose and the workflow can be customized by modifying step parameters and inputs, running custom scripts or re-ordering steps. To utilize fastlane in your builds, open the workflow editor and add the \" fastlane \" step after the \" Git Clone \" step. If you want to run a specific fastlane command, you can add a \" Custom Script \" step anywhere after the fastlane step. Once added, click on the fastlane step to configure it. Fastlane is easy to use with Appcircle just with two options. The \" Fastlane Directory \" option is used to specify the fastfile path . If you keep your fastfile in its default location, it is automatically used without the need to change this field. With the \" Fastlane Lane \" option, you can specify which lane to use. Once everything is set up, press Save to save your step configuration. Then you can configure and run your build just like any other app. Appcircle also supports building and signing the app independently with the \"Build\" and \"Sign\" steps in the workflow. These steps can be used in parallel with fastlane .","title":"Adding fastlane to the Appcircle Build Workflow as a Step"},{"location":"best-practices/continuous-integration/appcircle/#running-the-build-workflow","text":"To run the build workflow that includes the fastlane step, you can start a manual build or trigger an automatic build . The full output of the fastlane execution can be viewed in the build log in real-time or after the build.","title":"Running the Build Workflow"},{"location":"best-practices/continuous-integration/appcircle/#deploying-the-build-output","text":"You can use fastlane to deploy the built apps to the supported third-party services or you can use the Appcircle Distribute module to share the app with the testers or send it to the public app stores.","title":"Deploying the Build Output"},{"location":"best-practices/continuous-integration/appcircle/#further-documentation","text":"For more information, screenshots, and support, please refer to the Appcircle documentation .","title":"Further Documentation"},{"location":"best-practices/continuous-integration/azure-devops/","text":"Azure DevOps (formerly known as: Visual Studio Team Services) Microsoft Visual Studio Team Services (VSTS) and Team Foundation Server (TFS) use fastlane in their Apple App Store extension. Getting Started Once you have created or retrieved credentials for your App Store account, then perform the following steps to automate releasing updates from a VSTS build or release definition: Install the App Store extension from the VSTS Marketplace Go to your VSTS or TFS project, click on the Build tab, and create a new build definition (the \"+\" icon) that is hooked up to your project's appropriate source repo Click Add build step... and select the necessary tasks to generate your release assets (e.g. Gulp, Cordova Build) Click Add build step... and select App Store Release from the Deploy category Configure the App Store Release task with the desired authentication method, the generated IPA file path, and the desired release track. Now when you build, your app will automatically be published to App Store Connect ! Configuring fastlane versions The extension can be configured to install the latest version of fastlane or a specific version of fastlane : In the Build for your project, click on the Apple App Store task (supported in both Apple App Store Release and Apple App Store Promote ), go to the Advanced section of the Task, click Install fastlane Optionally, select Specific Version from fastlane version , and enter a specific version of fastlane More Information For more documentation, see the Apple App Store in the Visual Studio Team Server marketplace.","title":"Azure DevOps"},{"location":"best-practices/continuous-integration/azure-devops/#azure-devops-formerly-known-as-visual-studio-team-services","text":"Microsoft Visual Studio Team Services (VSTS) and Team Foundation Server (TFS) use fastlane in their Apple App Store extension.","title":"Azure DevOps (formerly known as: Visual Studio Team Services)"},{"location":"best-practices/continuous-integration/azure-devops/#getting-started","text":"Once you have created or retrieved credentials for your App Store account, then perform the following steps to automate releasing updates from a VSTS build or release definition: Install the App Store extension from the VSTS Marketplace Go to your VSTS or TFS project, click on the Build tab, and create a new build definition (the \"+\" icon) that is hooked up to your project's appropriate source repo Click Add build step... and select the necessary tasks to generate your release assets (e.g. Gulp, Cordova Build) Click Add build step... and select App Store Release from the Deploy category Configure the App Store Release task with the desired authentication method, the generated IPA file path, and the desired release track. Now when you build, your app will automatically be published to App Store Connect !","title":"Getting Started"},{"location":"best-practices/continuous-integration/azure-devops/#configuring-fastlane-versions","text":"The extension can be configured to install the latest version of fastlane or a specific version of fastlane : In the Build for your project, click on the Apple App Store task (supported in both Apple App Store Release and Apple App Store Promote ), go to the Advanced section of the Task, click Install fastlane Optionally, select Specific Version from fastlane version , and enter a specific version of fastlane","title":"Configuring fastlane versions"},{"location":"best-practices/continuous-integration/azure-devops/#more-information","text":"For more documentation, see the Apple App Store in the Visual Studio Team Server marketplace.","title":"More Information"},{"location":"best-practices/continuous-integration/bamboo/","text":"Bamboo Integration Repository setup In bamboo under Linked Repositories (where you configure your git repo) under Advanced Settings is an option called Exclude changesets This dialog will allow you to enter a regular expression that if a commit matches, a build will not be triggered. For example, if your Fastfile is configured to make a commit message in the style of Build Version bump by fastlane to Version [0.3] Build [8] Then you could use the following regex to ignore these commits ^.*Build Version bump by fastlane.*$ Setting repository remote By default bamboo will do an anonymous shallow clone of the repo. This will not preserve the git remote information nor the list of tags. If you are using bamboo to create commits you may want to use a code block similar to the following: # In prep for eventually committing a version/build bump - set the git params sh('git config user.name \"\"') sh('git config user.email ') # Bamboo does an anonymous checkout so in order to update the build versions must set the git repo URL git_remote_cmd = 'git remote set-url origin ' + ENV['bamboo_repository_git_repositoryUrl'] sh(git_remote_cmd) Speeding up build times with carthage Carthage is a wonderful dependency manager but once you are start using a large number of frameworks, things can start to slow down, especially if your CI server has to run carthage EVERY time you check in a small line of code. One way to make build times faster is to break your work up into two separate build plans ( this can get even more funky if you start having multiple branches ) The general idea is to make a build plan: Project - Artifacts that builds the Carthage directory and stores it as a shared artifact. Then you create a second build plan Project - Fastlane that pulls down the Carthage directory and runs fastlane . Artifact Plan Use a simple setup to create this build plan. First off you want to make sure this plan is manually triggered only - because you only need to run it whenever the Cartfile changes as opposed to after ever single commit. It could also be on a nightly build perhaps if you desire. Stages / Jobs / Tasks This plan consists of 1 Job, 1 Stage and 2 Tasks Task 1: Source Code Checkout Task 2: Script ( carthage update ) Artifact definitions Create a shared artifact with the following info: Name: CarthageFolder Location: (leave blank) Copy Pattern: Carthage/Build/** Optional : You may want to automatically make the fastlane plan trigger whenever this plan is built fastlane plan When configuring fastlane to run in this setup you need to make sure that you are not calling either: reset_git_repo(force: true) or ensure_git_status_clean as these calls will either fail the build or delete the Carthage directory. Additionally you want to remove any carthage tasks from inside your Fastfile as carthage is now happening externally to the build. Build plan setup What this build plan does is it checks out the source code, then it downloads the entire Carthage/Build/ directory into your local project - which is exactly what would be created from carthage bootstrap and then it runs fastlane Task 1: Source Code Checkout Task 2: Artifact Download Task 3: fastlane","title":"Bamboo"},{"location":"best-practices/continuous-integration/bamboo/#bamboo-integration","text":"","title":"Bamboo Integration"},{"location":"best-practices/continuous-integration/bamboo/#repository-setup","text":"In bamboo under Linked Repositories (where you configure your git repo) under Advanced Settings is an option called Exclude changesets This dialog will allow you to enter a regular expression that if a commit matches, a build will not be triggered. For example, if your Fastfile is configured to make a commit message in the style of Build Version bump by fastlane to Version [0.3] Build [8] Then you could use the following regex to ignore these commits ^.*Build Version bump by fastlane.*$","title":"Repository setup"},{"location":"best-practices/continuous-integration/bamboo/#setting-repository-remote","text":"By default bamboo will do an anonymous shallow clone of the repo. This will not preserve the git remote information nor the list of tags. If you are using bamboo to create commits you may want to use a code block similar to the following: # In prep for eventually committing a version/build bump - set the git params sh('git config user.name \"\"') sh('git config user.email ') # Bamboo does an anonymous checkout so in order to update the build versions must set the git repo URL git_remote_cmd = 'git remote set-url origin ' + ENV['bamboo_repository_git_repositoryUrl'] sh(git_remote_cmd)","title":"Setting repository remote"},{"location":"best-practices/continuous-integration/bamboo/#speeding-up-build-times-with-carthage","text":"Carthage is a wonderful dependency manager but once you are start using a large number of frameworks, things can start to slow down, especially if your CI server has to run carthage EVERY time you check in a small line of code. One way to make build times faster is to break your work up into two separate build plans ( this can get even more funky if you start having multiple branches ) The general idea is to make a build plan: Project - Artifacts that builds the Carthage directory and stores it as a shared artifact. Then you create a second build plan Project - Fastlane that pulls down the Carthage directory and runs fastlane .","title":"Speeding up build times with carthage"},{"location":"best-practices/continuous-integration/bitrise/","text":"Integrating Fastlane into Bitrise Bitrise is a hosted CI/CD solution where you can run your fastlane lane with the same commands you would use locally. Bitrise\u2019s automated Steps provide extra functionality to your lane and speed up your builds. Here is how you can benefit from integrating fastlane into Bitrise. Bitrise has an automated Step , called Fastlane Match for the popular fastlane match tool , which takes care of code signing your project by cloning your private certificate/profile repository and registering the certificates and profiles in the keychain. On Bitrise you can run separate lanes for separate branches automatically. For example, you can run a lane for every code push onto the master branch to update screenshots and metadata on the App Store and to release the distribution version. You can run a separate lane for the develop branch to run your automated tests and deploy your test releases for your QA team. You can simply clone the Workflow multiple times, specify the lane to run for the given Workflow in a Workflow Specific Environment Variable, and use the Triggers feature to define which Workflow should be selected for this branch, tag or pull request. Before you start: Note that two-factor authentication (2FA) is mandatory for all Apple Developer Portal accounts. If, during your build, Bitrise needs to access your Apple Developer Portal account, it will have to go through 2FA. This applies even if you use fastlane . To make this work, connect your Apple Developer Account to Bitrise . This allows Bitrise to reuse your authentication sessions for 30 days, so you do not have to manually go through 2FA on every single occasion. If a Gemfile exists in your work_dir directory, fastlane will be used by calling bundle install then bundle exec . Fastfile is your configuration file that can be run with fastlane . Make sure you have it inside your ./fastlane directory . Setting up Fastlane on Bitrise Running fastlane on Bitrise is as simple as adding one Step to your Workflow and setting some options. Let\u2019s see how! Add the Fastlane Step to your Workflow by clicking the + sign. Make sure it is inserted right after the Git Clone Step. Since fastlane is pre-installed on all Bitrise\u2019s virtual machines, the Fastlane Step ensures that you can always use the required fastlane version. To code sign your project, you have a couple of options to choose from. Add one of Bitrise\u2019s code signing Steps to your Workflow such as Certificate and profile installer . iOS Auto Provision . Fastlane Match. Alternatively, use fastlane match inside your fastlane lane instead of a code signing Step. Make sure you either use the Fastlane Match Step or set up fastlane match in your lane but don\u2019t try to do both. Click the Fastlane Step to fill out the required fields. Add your lane in the fastlane lane input. Use Working directory field if the fastlane directory is not in your repository's root. The working directory should be the parent directory of your Fastfile 's directory. For example, if the Fastfile path is ./here/is/my/fastlane/Fastfile , then the Fastfile 's directory is ./here/is/my/fastlane , so the Working Directory should be ./here/is/my . The Should update fastlane gem before run? option will be skipped if you have a Gemfile in the work_dir directory. If you don't have a Gemfile and this option is enabled, then the Step tries to use and run the latest fastlane version. Set the Enable verbose logging? to yes if you wish to get more detailed logs on your failed builds. If the Enable collecting files to be included in build cache is set to yes, the Step adds the following cache items (if they exist): Pods -> Podfile.lock Carthage -> Cartfile.resolved Android dependencies That\u2019s it! Start running your build so that Bitrise can run your lane.","title":"Bitrise"},{"location":"best-practices/continuous-integration/bitrise/#integrating-fastlane-into-bitrise","text":"Bitrise is a hosted CI/CD solution where you can run your fastlane lane with the same commands you would use locally. Bitrise\u2019s automated Steps provide extra functionality to your lane and speed up your builds. Here is how you can benefit from integrating fastlane into Bitrise. Bitrise has an automated Step , called Fastlane Match for the popular fastlane match tool , which takes care of code signing your project by cloning your private certificate/profile repository and registering the certificates and profiles in the keychain. On Bitrise you can run separate lanes for separate branches automatically. For example, you can run a lane for every code push onto the master branch to update screenshots and metadata on the App Store and to release the distribution version. You can run a separate lane for the develop branch to run your automated tests and deploy your test releases for your QA team. You can simply clone the Workflow multiple times, specify the lane to run for the given Workflow in a Workflow Specific Environment Variable, and use the Triggers feature to define which Workflow should be selected for this branch, tag or pull request. Before you start: Note that two-factor authentication (2FA) is mandatory for all Apple Developer Portal accounts. If, during your build, Bitrise needs to access your Apple Developer Portal account, it will have to go through 2FA. This applies even if you use fastlane . To make this work, connect your Apple Developer Account to Bitrise . This allows Bitrise to reuse your authentication sessions for 30 days, so you do not have to manually go through 2FA on every single occasion. If a Gemfile exists in your work_dir directory, fastlane will be used by calling bundle install then bundle exec . Fastfile is your configuration file that can be run with fastlane . Make sure you have it inside your ./fastlane directory .","title":"Integrating Fastlane into Bitrise"},{"location":"best-practices/continuous-integration/bitrise/#setting-up-fastlane-on-bitrise","text":"Running fastlane on Bitrise is as simple as adding one Step to your Workflow and setting some options. Let\u2019s see how! Add the Fastlane Step to your Workflow by clicking the + sign. Make sure it is inserted right after the Git Clone Step. Since fastlane is pre-installed on all Bitrise\u2019s virtual machines, the Fastlane Step ensures that you can always use the required fastlane version. To code sign your project, you have a couple of options to choose from. Add one of Bitrise\u2019s code signing Steps to your Workflow such as Certificate and profile installer . iOS Auto Provision . Fastlane Match. Alternatively, use fastlane match inside your fastlane lane instead of a code signing Step. Make sure you either use the Fastlane Match Step or set up fastlane match in your lane but don\u2019t try to do both. Click the Fastlane Step to fill out the required fields. Add your lane in the fastlane lane input. Use Working directory field if the fastlane directory is not in your repository's root. The working directory should be the parent directory of your Fastfile 's directory. For example, if the Fastfile path is ./here/is/my/fastlane/Fastfile , then the Fastfile 's directory is ./here/is/my/fastlane , so the Working Directory should be ./here/is/my . The Should update fastlane gem before run? option will be skipped if you have a Gemfile in the work_dir directory. If you don't have a Gemfile and this option is enabled, then the Step tries to use and run the latest fastlane version. Set the Enable verbose logging? to yes if you wish to get more detailed logs on your failed builds. If the Enable collecting files to be included in build cache is set to yes, the Step adds the following cache items (if they exist): Pods -> Podfile.lock Carthage -> Cartfile.resolved Android dependencies That\u2019s it! Start running your build so that Bitrise can run your lane.","title":"Setting up Fastlane on Bitrise"},{"location":"best-practices/continuous-integration/circle-ci/","text":"CircleCI Integration To run fastlane on CircleCI, first create a Gemfile in the root of your project with the following content: # Gemfile source \"https://rubygems.org\" gem \"fastlane\" and run gem install bundler && bundle update This will create a Gemfile.lock that defines all Ruby dependencies. Make sure to commit both files to version control. Next, add the following to your Fastfile : # fastlane/Fastfile ... platform :ios do before_all do setup_circle_ci end ... end The setup_circle_ci fastlane action will perform the following actions: Create a new temporary keychain for use with match (see the CircleCI code signing doc for more details). Switch match to readonly mode to make sure CI does not create new code signing certificates or provisioning profiles. Set up log and test result paths to be easily collectible. Next, create a .circleci directory in your project and add a .circleci/config.yml with the following content: # .circleci/config.yml version: 2.1 orbs: ruby: circleci/ruby@1.2.0 jobs: build: macos: xcode: \"13.1.0\" working_directory: /Users/distiller/project environment: FL_OUTPUT_DIR: output FASTLANE_LANE: test shell: /bin/bash --login -o pipefail steps: - checkout - ruby/install-deps - run: name: fastlane command: bundle exec fastlane $FASTLANE_LANE - store_artifacts: path: output - store_test_results: path: output/scan This will do the following: Create and use a Ruby gems cache. Run the test lane on all pushes. Collect Junit test results and store log output in the Artifacts tab. Check out the CircleCI iOS doc for more detailed examples of using fastlane on CircleCI.","title":"CircleCI"},{"location":"best-practices/continuous-integration/circle-ci/#circleci-integration","text":"To run fastlane on CircleCI, first create a Gemfile in the root of your project with the following content: # Gemfile source \"https://rubygems.org\" gem \"fastlane\" and run gem install bundler && bundle update This will create a Gemfile.lock that defines all Ruby dependencies. Make sure to commit both files to version control. Next, add the following to your Fastfile : # fastlane/Fastfile ... platform :ios do before_all do setup_circle_ci end ... end The setup_circle_ci fastlane action will perform the following actions: Create a new temporary keychain for use with match (see the CircleCI code signing doc for more details). Switch match to readonly mode to make sure CI does not create new code signing certificates or provisioning profiles. Set up log and test result paths to be easily collectible. Next, create a .circleci directory in your project and add a .circleci/config.yml with the following content: # .circleci/config.yml version: 2.1 orbs: ruby: circleci/ruby@1.2.0 jobs: build: macos: xcode: \"13.1.0\" working_directory: /Users/distiller/project environment: FL_OUTPUT_DIR: output FASTLANE_LANE: test shell: /bin/bash --login -o pipefail steps: - checkout - ruby/install-deps - run: name: fastlane command: bundle exec fastlane $FASTLANE_LANE - store_artifacts: path: output - store_test_results: path: output/scan This will do the following: Create and use a Ruby gems cache. Run the test lane on all pushes. Collect Junit test results and store log output in the Artifacts tab. Check out the CircleCI iOS doc for more detailed examples of using fastlane on CircleCI.","title":"CircleCI Integration"},{"location":"best-practices/continuous-integration/codemagic/","text":"Codemagic Integration Codemagic is a cloud-based CI/CD tool for mobile applications that you can use for continuous integration and delivery together with fastlane . Codemagic has fastlane pre-installed, so you can easily run your fastlane scripts as part of the Codemagic build process. You only need a Fastfile in your repository to get started. You can find the version of pre-installed fastlane based on build machine type from here . Getting started For publishing iOS apps, it is recommended to create an App Store Connect API key so you don't have to use 2FA. This also offers better performance and increased reliability. More details can be found here . Adding environment variables The following environment variables need to be added to your workflow for fastlane integration. MATCH_PASSWORD - the password used to encrypt/decrypt the repository used to store your distribution certificates and provisioning profiles. MATCH_KEYCHAIN - an arbitrary name to use for the keychain on the Codemagic build server, e.g \"fastlane_keychain\" MATCH_SSH_KEY - an SSH private key used for cloning the Match repository that contains your distribution certificates and provisioning profiles. The public key should be added to your Github account. See here for more information about accessing Git dependencies with SSH keys. APP_STORE_CONNECT_PRIVATE_KEY - the App Store Connect API key. Copy the entire contents of the .p8 file and paste into the environment variable value field. APP_STORE_CONNECT_KEY_IDENTIFIER - the key identifier of your App Store Connect API key. APP_STORE_CONNECT_ISSUER_ID - the issuer of your App Store Connect API key. Environment variables can be added in the Codemagic web app using the 'Environment variables' tab. Save all the variables to the same variable group and make sure that the secure checkbox is checked to encrypt any sensitive values such as API keys or passwords. You can then import your variable group into your codemagic.yaml . For example, if you named your variable group 'fastlane', the group should be imported as follows: workflows: workflow-name: environment: groups: - fastlane Executing fastlane in your workflow It is recommended to run your fastlane lanes using the codemagic.yaml configuration file. You should install your depenpendencies with bundle install and then execute the fastlane lane with bundle exec fastlane as follows: scripts: - bundle install - bundle exec fastlane beta If you need to use a specific version of bundler as defined in the Gemfile.lock file, you should install it with gem install bundler: as follows: scripts: - gem install bundler:2.2.27 - bundle install - bundle exec fastlane beta CocoaPods If you are using dependencies from Cocoapods, it might be necessary to include the CocoaPods gem in your Gemfile to prevent scope conflict issues. gem \"fastlane\" gem \"cocoapods\" Starting your build You can start your build manually from within the Codemagic web app, or configure your builds to start on events such as pushing to your repository, creating or updating a pull request, adding a new tag, or even monitoring for file system changes. See more info in Codemagic docs .","title":"Codemagic"},{"location":"best-practices/continuous-integration/codemagic/#codemagic-integration","text":"Codemagic is a cloud-based CI/CD tool for mobile applications that you can use for continuous integration and delivery together with fastlane . Codemagic has fastlane pre-installed, so you can easily run your fastlane scripts as part of the Codemagic build process. You only need a Fastfile in your repository to get started. You can find the version of pre-installed fastlane based on build machine type from here .","title":"Codemagic Integration"},{"location":"best-practices/continuous-integration/codemagic/#getting-started","text":"For publishing iOS apps, it is recommended to create an App Store Connect API key so you don't have to use 2FA. This also offers better performance and increased reliability. More details can be found here .","title":"Getting started"},{"location":"best-practices/continuous-integration/codemagic/#adding-environment-variables","text":"The following environment variables need to be added to your workflow for fastlane integration. MATCH_PASSWORD - the password used to encrypt/decrypt the repository used to store your distribution certificates and provisioning profiles. MATCH_KEYCHAIN - an arbitrary name to use for the keychain on the Codemagic build server, e.g \"fastlane_keychain\" MATCH_SSH_KEY - an SSH private key used for cloning the Match repository that contains your distribution certificates and provisioning profiles. The public key should be added to your Github account. See here for more information about accessing Git dependencies with SSH keys. APP_STORE_CONNECT_PRIVATE_KEY - the App Store Connect API key. Copy the entire contents of the .p8 file and paste into the environment variable value field. APP_STORE_CONNECT_KEY_IDENTIFIER - the key identifier of your App Store Connect API key. APP_STORE_CONNECT_ISSUER_ID - the issuer of your App Store Connect API key. Environment variables can be added in the Codemagic web app using the 'Environment variables' tab. Save all the variables to the same variable group and make sure that the secure checkbox is checked to encrypt any sensitive values such as API keys or passwords. You can then import your variable group into your codemagic.yaml . For example, if you named your variable group 'fastlane', the group should be imported as follows: workflows: workflow-name: environment: groups: - fastlane","title":"Adding environment variables"},{"location":"best-practices/continuous-integration/codemagic/#executing-fastlane-in-your-workflow","text":"It is recommended to run your fastlane lanes using the codemagic.yaml configuration file. You should install your depenpendencies with bundle install and then execute the fastlane lane with bundle exec fastlane as follows: scripts: - bundle install - bundle exec fastlane beta If you need to use a specific version of bundler as defined in the Gemfile.lock file, you should install it with gem install bundler: as follows: scripts: - gem install bundler:2.2.27 - bundle install - bundle exec fastlane beta","title":"Executing fastlane in your workflow"},{"location":"best-practices/continuous-integration/codemagic/#cocoapods","text":"If you are using dependencies from Cocoapods, it might be necessary to include the CocoaPods gem in your Gemfile to prevent scope conflict issues. gem \"fastlane\" gem \"cocoapods\"","title":"CocoaPods"},{"location":"best-practices/continuous-integration/codemagic/#starting-your-build","text":"You can start your build manually from within the Codemagic web app, or configure your builds to start on events such as pushing to your repository, creating or updating a pull request, adding a new tag, or even monitoring for file system changes. See more info in Codemagic docs .","title":"Starting your build"},{"location":"best-practices/continuous-integration/github/","text":"GitHub Actions Integration Use GitHub Actions runner running on a macOS machine to build using fastlane . Repository setup First create a Gemfile in the root of your project with the following content: source 'https://rubygems.org' gem 'fastlane' Add a workflow yaml file to your repository. For example, if naming your workflow \"build-ios-app\", add .github/workflows/build-ios-app.yml with the following content: name: build-ios-app on: push: branches: - 'master' jobs: build: runs-on: macos-latest steps: - uses: actions/checkout@v2 - run: fastlane beta env: MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }} See Workflow syntax for GitHub Actions for more information on how this file works. Setting up the lanes Here's an example of a Fastfile with a lane that runs match , builds the app, and uploads to TestFlight: platform :ios do lane :beta do setup_ci if ENV['CI'] match(type: 'appstore') build_app upload_to_testflight(skip_waiting_for_build_processing: true) end end Note the usage of setup_ci : it creates a temporary keychain. Without this, the build could freeze and never finish.","title":"GitHub Actions"},{"location":"best-practices/continuous-integration/github/#github-actions-integration","text":"Use GitHub Actions runner running on a macOS machine to build using fastlane .","title":"GitHub Actions Integration"},{"location":"best-practices/continuous-integration/github/#repository-setup","text":"First create a Gemfile in the root of your project with the following content: source 'https://rubygems.org' gem 'fastlane' Add a workflow yaml file to your repository. For example, if naming your workflow \"build-ios-app\", add .github/workflows/build-ios-app.yml with the following content: name: build-ios-app on: push: branches: - 'master' jobs: build: runs-on: macos-latest steps: - uses: actions/checkout@v2 - run: fastlane beta env: MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }} See Workflow syntax for GitHub Actions for more information on how this file works.","title":"Repository setup"},{"location":"best-practices/continuous-integration/github/#setting-up-the-lanes","text":"Here's an example of a Fastfile with a lane that runs match , builds the app, and uploads to TestFlight: platform :ios do lane :beta do setup_ci if ENV['CI'] match(type: 'appstore') build_app upload_to_testflight(skip_waiting_for_build_processing: true) end end Note the usage of setup_ci : it creates a temporary keychain. Without this, the build could freeze and never finish.","title":"Setting up the lanes"},{"location":"best-practices/continuous-integration/gitlab/","text":"GitLab CI Integration Use GitLab Runner running on a macOS machine to build using fastlane. Repository setup First create a Gemfile in the root of your project with the following content: source \"https://rubygems.org\" gem \"fastlane\" Add a .gitlab-ci.yml file to trigger fastlane . stages: - unit_tests - test_flight variables: LC_ALL: \"en_US.UTF-8\" LANG: \"en_US.UTF-8\" before_script: - gem install bundler - bundle install unit_tests: dependencies: [] stage: unit_tests artifacts: paths: - fastlane/screenshots - fastlane/logs script: - fastlane tests tags: - ios test_flight_build: dependencies: [] stage: test_flight artifacts: paths: - fastlane/screenshots - fastlane/logs script: - fastlane beta tags: - ios only: - /^release-.*$/ - master See the .gitlab-ci.yml documentation for more information on how this file works. Setting up the lanes You should have a lane - in this example called beta - which should do the usual, match , gym , pilot , to distribute an updated Test Flight version, and one lane tests which calls scan to run UI Tests. Auto-incremented build number. To get an auto-incremented build number you can use something like the following lane: lane :increment_build_number do increment_build_number(build_number: ENV['CI_JOB_ID']) end Then the GitLab CI job ID (which iterates on each build) will be used.","title":"GitLab CI"},{"location":"best-practices/continuous-integration/gitlab/#gitlab-ci-integration","text":"Use GitLab Runner running on a macOS machine to build using fastlane.","title":"GitLab CI Integration"},{"location":"best-practices/continuous-integration/gitlab/#repository-setup","text":"First create a Gemfile in the root of your project with the following content: source \"https://rubygems.org\" gem \"fastlane\" Add a .gitlab-ci.yml file to trigger fastlane . stages: - unit_tests - test_flight variables: LC_ALL: \"en_US.UTF-8\" LANG: \"en_US.UTF-8\" before_script: - gem install bundler - bundle install unit_tests: dependencies: [] stage: unit_tests artifacts: paths: - fastlane/screenshots - fastlane/logs script: - fastlane tests tags: - ios test_flight_build: dependencies: [] stage: test_flight artifacts: paths: - fastlane/screenshots - fastlane/logs script: - fastlane beta tags: - ios only: - /^release-.*$/ - master See the .gitlab-ci.yml documentation for more information on how this file works.","title":"Repository setup"},{"location":"best-practices/continuous-integration/gitlab/#setting-up-the-lanes","text":"You should have a lane - in this example called beta - which should do the usual, match , gym , pilot , to distribute an updated Test Flight version, and one lane tests which calls scan to run UI Tests.","title":"Setting up the lanes"},{"location":"best-practices/continuous-integration/gitlab/#auto-incremented-build-number","text":"To get an auto-incremented build number you can use something like the following lane: lane :increment_build_number do increment_build_number(build_number: ENV['CI_JOB_ID']) end Then the GitLab CI job ID (which iterates on each build) will be used.","title":"Auto-incremented build number."},{"location":"best-practices/continuous-integration/jenkins/","text":"Jenkins Integration Installation The recommended way to install Jenkins on macOS is through homebrew : brew update && brew install jenkins-lts From now on start Jenkins by running: brew services start jenkins-lts To store the password in the Keychain of your remote machine, it is recommended that you run match or deliver using ssh or remote desktop at least once. Ruby Environment We recommend using rbenv for installing Ruby, though rvm and the version of Ruby that comes bundled on macOS are fine too. If using a Gemfile in your project, add an \"Execute shell\" step as your first build step and call bundle update . Plugins You'll find the following Jenkins plugins to be useful: (note: We do not recommend installing the Xcode plugin) HTML Publisher Plugin : Can be used to show the generated screenshots right inside Jenkins. AnsiColor Plugin : Used to show the coloured output of the fastlane tools. Don\u2019t forget to enable Color ANSI Console Output in the Build Environment or your project. Rebuild Plugin : This plugin will save you a lot of time. Keychains and Provisioning Profiles Plugin : Manages keychains across Jenkins installations. Build Step Add an \"Execute shell\" build step using your appropriate fastlane command per the example below: fastlane appstore Replace appstore with the lane you want to use. (note: if using a Gemfile, prefix that command with bundle exec ) setup_jenkins You can use setup_jenkins action which integrates well with the Keychains and Provisioning Profiles Plugin . Selected keychain will be automatically unlocked and the selected code signing identity will be used. Also all build results, like IPA files, archives, dSYMs and result bundles will be stored in the ./output folder in the job workspace. In additions setup_jenkins will create separate derived data folder for each job (in the ./derivedData ). Under the hood setup_jenkins configures other actions like: gym , scan , xcodebuild , backup_xcarchive and clear_derived_data . commit_version_bump || git_commit You can use commit_version_bump or git_commit action to commit changes to your repository in your fastlane setup. When you are using webhooks to trigger your build on a push this will cause an infinite loop of triggering builds. Gitlab When you are using Gitlab you will need the GitLab Plugin . Inside the job you want to configure you go to Build Triggers > Build when a change is pushed to GitLab > Enable [ci-skip] . When you include [ci-skip] in your build this commit won't trigger the build in jenkins at all. Example build_number = increment_build_number commit_version_bump(message:\"[ci-skip] Version Bump to #{build_number}\") git_commit(path:\"./CHANGELOG.md\", message:\"[ci-skip] Updated CHANGELOG for Build #{build_number}\") push_to_git_remote Test Results and Screenshots To show the deployment result right in Jenkins Add post-build action Publish JUnit test result report Test report XMLs : fastlane/report.xml To show the generated screenshots right in Jenkins Add post-build action Publish HTML reports HTML directory to archive : fastlane/screenshots Index page : screenshots.html Save and run. The result should look like this:","title":"Jenkins"},{"location":"best-practices/continuous-integration/jenkins/#jenkins-integration","text":"","title":"Jenkins Integration"},{"location":"best-practices/continuous-integration/jenkins/#installation","text":"The recommended way to install Jenkins on macOS is through homebrew : brew update && brew install jenkins-lts From now on start Jenkins by running: brew services start jenkins-lts To store the password in the Keychain of your remote machine, it is recommended that you run match or deliver using ssh or remote desktop at least once.","title":"Installation"},{"location":"best-practices/continuous-integration/jenkins/#ruby-environment","text":"We recommend using rbenv for installing Ruby, though rvm and the version of Ruby that comes bundled on macOS are fine too. If using a Gemfile in your project, add an \"Execute shell\" step as your first build step and call bundle update .","title":"Ruby Environment"},{"location":"best-practices/continuous-integration/jenkins/#plugins","text":"You'll find the following Jenkins plugins to be useful: (note: We do not recommend installing the Xcode plugin) HTML Publisher Plugin : Can be used to show the generated screenshots right inside Jenkins. AnsiColor Plugin : Used to show the coloured output of the fastlane tools. Don\u2019t forget to enable Color ANSI Console Output in the Build Environment or your project. Rebuild Plugin : This plugin will save you a lot of time. Keychains and Provisioning Profiles Plugin : Manages keychains across Jenkins installations.","title":"Plugins"},{"location":"best-practices/continuous-integration/jenkins/#build-step","text":"Add an \"Execute shell\" build step using your appropriate fastlane command per the example below: fastlane appstore Replace appstore with the lane you want to use. (note: if using a Gemfile, prefix that command with bundle exec )","title":"Build Step"},{"location":"best-practices/continuous-integration/jenkins/#test-results-and-screenshots","text":"To show the deployment result right in Jenkins Add post-build action Publish JUnit test result report Test report XMLs : fastlane/report.xml To show the generated screenshots right in Jenkins Add post-build action Publish HTML reports HTML directory to archive : fastlane/screenshots Index page : screenshots.html Save and run. The result should look like this:","title":"Test Results and Screenshots"},{"location":"best-practices/continuous-integration/semaphore/","text":"Semaphore CI Integration Semaphore provides simple, fast continuous integration and delivery for your iOS apps. All macOS machine images have fastlane pre-installed and getting up and running is quick and simple. Add the Semaphore fastlane plugin The Semaphore fastlane plugin creates a temporary keychain, sets match to read-only mode and (optionally) redirects log output from scan and gym . Install the plugin from your app's project directory: fastlane add_plugin semaphore Then, from your Fastfile : before_all do setup_semaphore end Configure a pipeline on Semaphore Configure continuous integration pipelines on Semaphore with a .semaphore/semaphore.yml file in your app's source repository. Then, add the repository to your Semaphore dashboard and your continuous integration will start. For full details of how pipelines work on Semaphore see the documentation , or the example project . Example Pipeline # Use the latest stable version of Semaphore 2.0 YML syntax: version: v1.0 # Name your pipeline. If you choose to connect multiple pipelines with # promotions, the pipeline name will help you differentiate between # them. For example, you might have a build phase and a delivery phase. # For more information on promotions, see: # https://docs.semaphoreci.com/article/67-deploying-with-promotions name: Tallest Towers # The agent defines the environment in which your CI runs. It is a combination # of a machine type and an operating system image. For a project built with # Xcode you must use one of the Apple machine types, coupled with a macOS image # running either Xcode 10 or Xcode 11. # See https://docs.semaphoreci.com/article/20-machine-types # https://docs.semaphoreci.com/article/161-macos-mojave-xcode-10-image and # https://docs.semaphoreci.com/article/162-macos-mojave-xcode-11-image agent: machine: type: a1-standard-4 os_image: macos-mojave-xcode11 # Blocks are the heart of a pipeline and are executed sequentially. Each block # has a task that defines one or more parallel jobs. Jobs define commands that # should be executed by the pipeline. # See https://docs.semaphoreci.com/article/62-concepts blocks: - name: Run tests task: # Set environment variables that your project requires. # See https://docs.semaphoreci.com/article/66-environment-variables-and-secrets env_vars: - name: LANG value: en_US.UTF-8 prologue: commands: # Download source code from GitHub. - checkout # Restore dependencies from cache. This command will not fail in # case of a cache miss. In case of a cache hit, bundle install will # complete in about a second. # See https://docs.semaphoreci.com/article/68-caching-dependencies - cache restore - bundle install --path vendor/bundle - cache store jobs: - name: Test commands: # Select an Xcode version. # See https://docs.semaphoreci.com/article/161-macos-mojave-xcode-10-image and # https://docs.semaphoreci.com/article/162-macos-mojave-xcode-11-image - bundle exec xcversion select 11.2.1 # Run tests of iOS and Mac app on a simulator or connected device. # See https://docs.fastlane.tools/actions/scan/ - bundle exec fastlane test - name: Build app task: env_vars: - name: LANG value: en_US.UTF-8 prologue: commands: - checkout - cache restore - bundle install --path vendor/bundle - cache store jobs: - name: Build commands: - bundle exec xcversion select 11.2.1 - bundle exec fastlane build - name: Take screenshots task: env_vars: - name: LANG value: en_US.UTF-8 prologue: commands: - checkout - cache restore - bundle install --path vendor/bundle - cache store jobs: - name: Screenshots commands: - bundle exec xcversion select 11.2.1 - bundle exec fastlane screenshots - artifact push project screenshots","title":"Semaphore"},{"location":"best-practices/continuous-integration/semaphore/#semaphore-ci-integration","text":"Semaphore provides simple, fast continuous integration and delivery for your iOS apps. All macOS machine images have fastlane pre-installed and getting up and running is quick and simple.","title":"Semaphore CI Integration"},{"location":"best-practices/continuous-integration/semaphore/#add-the-semaphore-fastlane-plugin","text":"The Semaphore fastlane plugin creates a temporary keychain, sets match to read-only mode and (optionally) redirects log output from scan and gym . Install the plugin from your app's project directory: fastlane add_plugin semaphore Then, from your Fastfile : before_all do setup_semaphore end","title":"Add the Semaphore fastlane plugin"},{"location":"best-practices/continuous-integration/semaphore/#configure-a-pipeline-on-semaphore","text":"Configure continuous integration pipelines on Semaphore with a .semaphore/semaphore.yml file in your app's source repository. Then, add the repository to your Semaphore dashboard and your continuous integration will start. For full details of how pipelines work on Semaphore see the documentation , or the example project .","title":"Configure a pipeline on Semaphore"},{"location":"best-practices/continuous-integration/semaphore/#example-pipeline","text":"# Use the latest stable version of Semaphore 2.0 YML syntax: version: v1.0 # Name your pipeline. If you choose to connect multiple pipelines with # promotions, the pipeline name will help you differentiate between # them. For example, you might have a build phase and a delivery phase. # For more information on promotions, see: # https://docs.semaphoreci.com/article/67-deploying-with-promotions name: Tallest Towers # The agent defines the environment in which your CI runs. It is a combination # of a machine type and an operating system image. For a project built with # Xcode you must use one of the Apple machine types, coupled with a macOS image # running either Xcode 10 or Xcode 11. # See https://docs.semaphoreci.com/article/20-machine-types # https://docs.semaphoreci.com/article/161-macos-mojave-xcode-10-image and # https://docs.semaphoreci.com/article/162-macos-mojave-xcode-11-image agent: machine: type: a1-standard-4 os_image: macos-mojave-xcode11 # Blocks are the heart of a pipeline and are executed sequentially. Each block # has a task that defines one or more parallel jobs. Jobs define commands that # should be executed by the pipeline. # See https://docs.semaphoreci.com/article/62-concepts blocks: - name: Run tests task: # Set environment variables that your project requires. # See https://docs.semaphoreci.com/article/66-environment-variables-and-secrets env_vars: - name: LANG value: en_US.UTF-8 prologue: commands: # Download source code from GitHub. - checkout # Restore dependencies from cache. This command will not fail in # case of a cache miss. In case of a cache hit, bundle install will # complete in about a second. # See https://docs.semaphoreci.com/article/68-caching-dependencies - cache restore - bundle install --path vendor/bundle - cache store jobs: - name: Test commands: # Select an Xcode version. # See https://docs.semaphoreci.com/article/161-macos-mojave-xcode-10-image and # https://docs.semaphoreci.com/article/162-macos-mojave-xcode-11-image - bundle exec xcversion select 11.2.1 # Run tests of iOS and Mac app on a simulator or connected device. # See https://docs.fastlane.tools/actions/scan/ - bundle exec fastlane test - name: Build app task: env_vars: - name: LANG value: en_US.UTF-8 prologue: commands: - checkout - cache restore - bundle install --path vendor/bundle - cache store jobs: - name: Build commands: - bundle exec xcversion select 11.2.1 - bundle exec fastlane build - name: Take screenshots task: env_vars: - name: LANG value: en_US.UTF-8 prologue: commands: - checkout - cache restore - bundle install --path vendor/bundle - cache store jobs: - name: Screenshots commands: - bundle exec xcversion select 11.2.1 - bundle exec fastlane screenshots - artifact push project screenshots","title":"Example Pipeline"},{"location":"best-practices/continuous-integration/travis/","text":"Travis Integration Update your .travis.yml to look like this: os: osx language: objective-c osx_image: xcode8.3 install: - bundle install script: - fastlane beta The above config files assume you have a Gemfile set up, if you don't have one yet, make sure to follow our Gemfile guide and run bundle update to make sure you're using the most recent fastlane release. Replace beta with the lane you want to run for your setup. If you want to build, sign and distribute builds from Travis, you'll need to add one more action to your Fastfile , as by default, the Travis keychain is locked. At the top of your Fastfile , add setup_travis which will setup the keychain to work well with match and gym . This action will also enable the readonly mode for match , so your CI doesn't create new certificates or provisioning profiles.","title":"Travis"},{"location":"best-practices/continuous-integration/travis/#travis-integration","text":"Update your .travis.yml to look like this: os: osx language: objective-c osx_image: xcode8.3 install: - bundle install script: - fastlane beta The above config files assume you have a Gemfile set up, if you don't have one yet, make sure to follow our Gemfile guide and run bundle update to make sure you're using the most recent fastlane release. Replace beta with the lane you want to run for your setup. If you want to build, sign and distribute builds from Travis, you'll need to add one more action to your Fastfile , as by default, the Travis keychain is locked. At the top of your Fastfile , add setup_travis which will setup the keychain to work well with match and gym . This action will also enable the readonly mode for match , so your CI doesn't create new certificates or provisioning profiles.","title":"Travis Integration"},{"location":"codesigning/common-issues/","text":"Common code signing issues Xcode errors Code Sign error: No matching provisioning profiles found: No provisioning profiles with a valid signing identity (i.e. certificate and private key pair) matching the bundle identifier \"X\" were found. The provisioning profile for the given app identifier \"X\" is not available on the local machine. Make sure you have a valid provisioning profile for the correct distribution type (App Store, Development or Ad Hoc) on the Apple Developer Portal, download and install it, and select the profile in the Xcode settings (See Setting up your Xcode Project ). You might have the provisioning profile installed locally, but miss the private key or certificate for it. No matching codesigning identity found: No codesigning identities (i.e. certificate and private key pairs) matching \"iPhone Distribution: X\" were found The code signing identity you specified in the Xcode project can't be found in your local keychain. Make sure to transfer the certificate and private key from another Mac (or wherever you store the private key), or to update the project file to use the correct code signing identity. Error Domain=IDEDistributionErrorDomain Code=1 \"The operation couldn\u2019t be completed. (IDEDistributionErrorDomain error 1.)\" This error can have a lot of reasons, some things you should try: Verify your Keychain is valid and you don't have an expired WWDR certificate using this guide Verify both your certificate and provisioning profile are valid in both your Keychain and on the Apple Developer Portal (Check out Debugging codesigning issues for more information) Follow the other steps of Debugging codesigning issues Provisioning profile does not match bundle identifier: The provisioning profile specified in your build settings (\"X\") has an AppID of \"Y\" which does not match your bundle identifier \"Z\" Your project defines a provisioning profile that doesn't match the bundle identifier of your app. There is mismatch between the bundle identifiers, this might happen if you specify the wrong provisioning profile in your target. Your build settings specify a provisioning profile with the UUID \"X\", however, no such provisioning profile was found. Your project defines a provisioning profile which doesn't exist on your local machine. Check out Setting up your Xcode Project for more information how to properly specify a provisioning profile to avoid hard coded UUIDs in your project. CodeSign Error: code signing is required for product type 'Application'... Make sure to have a valid code signing identity defined in your project targets. This might happen when you select Don't Code Sign as Code Signing Identity. fastlane errors User interaction is not allowed. Command /usr/bin/codesign failed with exit code 1 Make sure that codesign can access your signing private key. Open Keychain Access. Select your signing private key, right-click, choose Get Info, change to the Access Control tab and select the \"Allow all applications to access this item\". Could not find a matching code signing identity for type 'X' There are no certificates available on the Apple Developer Portal. This could either mean someone revoked a certificate, or you don't have access to it. Debugging steps for \"No applicable devices found.\" error It's not immediately obvious what this error is or what it's caused by, so hopefully these simple steps will help you find the root cause faster. Not just fastlane This error happens to all projects built with xcodebuild / xcrun , so it's likely not caused by fastlane . fastlane might help alleviate it with some env var unsetting / setting or other tricks, but this is an error from the new export APIs that Xcode uses. Legacy export API As of Xcode 8.3, the deprecated / legacy export api (e.g. use_legacy_build_api ) is removed, so you have to use the latest Xcode export API, which unfortunately still has some issues. Misleading errors The error message, \"No applicable devices found.\" , is actually misleading: it's not the real error. Something else is erroring out at a lower level so you'll need to dig in to find out what. The archive built successfully, but the export step failed Typically, your archive will build nicely, and with the correct provisioning profile; you can inspect the .xcarchive package to verify the embedded.mobileprovision file matches. What happens is the export step will possibly sign it with a different profile depending on which export_method you're choosing (with development being the default) and it is during this step that the process will fail. This allows you to isolate the error to the export step, under most circumstances. Dependency on other gems The export step sometimes fails due to not having these Ruby gems installed and caused many of the old instances of this problem. CFPropertyList sqlite3 digest You can use $ gem list to show which gems are installed Ruby version Many of the old instances of this problem were caused by not using system Ruby, but this likely won't impact many in the future since fastlane helps ensure your environment is set up properly now. Using RVM or newer versions of Ruby should work fine. If you have RVM installed and want to try reverting back to system Ruby just in case, you can set and check this using: $ rvm use system $ ruby -v ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin16] $ which ruby /usr/bin/ruby Check the Logs In many issues that were seen on the fastlane repo and across the web, this error was given during the bundling process. Luckily, that bundler creates a log file that you can access to see what error actually happened: 2017-03-30 21:47:09.855 xcodebuild[78957:9114437] [MT] IDEDistribution: -[IDEDistributionLogging _createLoggingBundleAtPath:]: Created bundle at path '/var/folders/s1/0h7d0scx6xqdthft328yfk0m0000gn/T/MyApp-Internal_2017-03-30_21-47-09.854.xcdistributionlogs'. 1.2.840.113635.100.1.61 1.2.840.113635.100.1.61 2017-03-30 21:47:14.702 xcodebuild[78957:9114437] [MT] IDEDistribution: Step failed: : Error Domain=IDEDistributionErrorDomain Code=14 \"No applicable devices found.\" UserInfo={NSLocalizedDescription=No applicable devices found.} error: exportArchive: No applicable devices found. If you look closely, you'll see the misleading error message and then just above it, there's a path to a log file ( *.xcdistributionlogs ). Opening that up, you'll see more detail. (Side note: you can also search for all logs via $ sudo find /private/var -name \"*.xcdistributionlogs\" ) In this case, it was because the export was built without bitcode, but there were static lib frameworks that were built with bitcode: # inside IDEDistribution.standard.log within the .xcdistributionlogs file 2017-03-31 16:49:06 +0000 Validating IPA structure... 2017-03-31 16:49:06 +0000 error: Failed to verify bitcode in opus.framework/opus: error: Bundle only contains bitcode-marker /var/folders/s1/0h7d0scx6xqdthft328yfk0m0000gn/T/IDEDistributionThinningStep.KRt/Payload/Viv.app/Frameworks/opus.framework/opus (armv7) When that framework was rebuilt without bitcode, it worked like a charm! \ud83d\ude05 Run commands yourself gym does a great job of showing which commands it's going to run. Inspect the files it generates and run these commands yourself, as many times as you need to, in order to isolate the problems. For example, here's the export command that gym shows: /usr/bin/xcrun /Users/rob/.fastlane/bin/bundle/lib/ruby/gems/2.2.0/gems/fastlane-2.24.0/gym/lib/assets/wrap_xcodebuild/xcbuild-safe.sh -exportArchive -exportOptionsPlist '/var/folders/s1/0h7d0scx6xqdthft328yfk0m0000gn/T/gym_config20170330-65021-1xbw0ov.plist' -archivePath /Users/rob/Library/Developer/Xcode/Archives/2017-03-30/MyApp\\ 2017-03-30\\ 21.12.02.xcarchive -exportPath '/var/folders/s1/0h7d0scx6xqdthft328yfk0m0000gn/T/gym_output20170330-65021-u80ojn' From that, you can see which exportOptionsPlist it's using, which had this in it: method development And you can see which .xcarchive it's using to check if it built that with the correct provisioning profile. Most importantly, you can keep running that entire command until you figure out why it's breaking (e.g. try installing these gems, try using system Ruby). Other Causes Keep in mind, this list could be infinite since this No applicable devices found error just manifests itself from underlying errors. Your best bet is to dig into the logs and see which error is actually being thrown. Using the wrong export_method or some other error in the generated exportPlist (e.g. using enterprise method when you're actually building for the app store and don't have the proper certificates) Root Apple WWDR certificate had expired; check the Keychain for expired certificates Env vars not being unset, relevant PR Including bitcode sometimes caused it (can use include_bitcode: false ) in your gym command and check if all frameworks match your bitcode requirements Provisioning profiles not matching capabilities and beta-reports-active flag on .entitlements file. Not having the gems ( CFPropertyList etc) we discussed earlier installed Apple Tech Notes If all else fails, use these tech notes to troubleshoot app thinning and bitcode: https://developer.apple.com/library/content/technotes/tn2432/_index.html https://stackoverflow.com/questions/34959767/whats-the-difference-between-fembed-bitcode-and-bitcode-generation-mode https://forums.developer.apple.com/thread/70583 Radar Feel free to duplicate the radar https://openradar.appspot.com/31389725 so the export APIs will return an accurate error message","title":"Common Issues"},{"location":"codesigning/common-issues/#common-code-signing-issues","text":"","title":"Common code signing issues"},{"location":"codesigning/common-issues/#xcode-errors","text":"Code Sign error: No matching provisioning profiles found: No provisioning profiles with a valid signing identity (i.e. certificate and private key pair) matching the bundle identifier \"X\" were found. The provisioning profile for the given app identifier \"X\" is not available on the local machine. Make sure you have a valid provisioning profile for the correct distribution type (App Store, Development or Ad Hoc) on the Apple Developer Portal, download and install it, and select the profile in the Xcode settings (See Setting up your Xcode Project ). You might have the provisioning profile installed locally, but miss the private key or certificate for it. No matching codesigning identity found: No codesigning identities (i.e. certificate and private key pairs) matching \"iPhone Distribution: X\" were found The code signing identity you specified in the Xcode project can't be found in your local keychain. Make sure to transfer the certificate and private key from another Mac (or wherever you store the private key), or to update the project file to use the correct code signing identity. Error Domain=IDEDistributionErrorDomain Code=1 \"The operation couldn\u2019t be completed. (IDEDistributionErrorDomain error 1.)\" This error can have a lot of reasons, some things you should try: Verify your Keychain is valid and you don't have an expired WWDR certificate using this guide Verify both your certificate and provisioning profile are valid in both your Keychain and on the Apple Developer Portal (Check out Debugging codesigning issues for more information) Follow the other steps of Debugging codesigning issues Provisioning profile does not match bundle identifier: The provisioning profile specified in your build settings (\"X\") has an AppID of \"Y\" which does not match your bundle identifier \"Z\" Your project defines a provisioning profile that doesn't match the bundle identifier of your app. There is mismatch between the bundle identifiers, this might happen if you specify the wrong provisioning profile in your target. Your build settings specify a provisioning profile with the UUID \"X\", however, no such provisioning profile was found. Your project defines a provisioning profile which doesn't exist on your local machine. Check out Setting up your Xcode Project for more information how to properly specify a provisioning profile to avoid hard coded UUIDs in your project. CodeSign Error: code signing is required for product type 'Application'... Make sure to have a valid code signing identity defined in your project targets. This might happen when you select Don't Code Sign as Code Signing Identity.","title":"Xcode errors"},{"location":"codesigning/common-issues/#fastlane-errors","text":"User interaction is not allowed. Command /usr/bin/codesign failed with exit code 1 Make sure that codesign can access your signing private key. Open Keychain Access. Select your signing private key, right-click, choose Get Info, change to the Access Control tab and select the \"Allow all applications to access this item\". Could not find a matching code signing identity for type 'X' There are no certificates available on the Apple Developer Portal. This could either mean someone revoked a certificate, or you don't have access to it.","title":"fastlane errors"},{"location":"codesigning/common-issues/#debugging-steps-for-no-applicable-devices-found-error","text":"It's not immediately obvious what this error is or what it's caused by, so hopefully these simple steps will help you find the root cause faster.","title":"Debugging steps for \"No applicable devices found.\" error"},{"location":"codesigning/common-issues/#not-just-fastlane","text":"This error happens to all projects built with xcodebuild / xcrun , so it's likely not caused by fastlane . fastlane might help alleviate it with some env var unsetting / setting or other tricks, but this is an error from the new export APIs that Xcode uses.","title":"Not just fastlane"},{"location":"codesigning/common-issues/#legacy-export-api","text":"As of Xcode 8.3, the deprecated / legacy export api (e.g. use_legacy_build_api ) is removed, so you have to use the latest Xcode export API, which unfortunately still has some issues.","title":"Legacy export API"},{"location":"codesigning/common-issues/#misleading-errors","text":"The error message, \"No applicable devices found.\" , is actually misleading: it's not the real error. Something else is erroring out at a lower level so you'll need to dig in to find out what.","title":"Misleading errors"},{"location":"codesigning/common-issues/#the-archive-built-successfully-but-the-export-step-failed","text":"Typically, your archive will build nicely, and with the correct provisioning profile; you can inspect the .xcarchive package to verify the embedded.mobileprovision file matches. What happens is the export step will possibly sign it with a different profile depending on which export_method you're choosing (with development being the default) and it is during this step that the process will fail. This allows you to isolate the error to the export step, under most circumstances.","title":"The archive built successfully, but the export step failed"},{"location":"codesigning/common-issues/#dependency-on-other-gems","text":"The export step sometimes fails due to not having these Ruby gems installed and caused many of the old instances of this problem. CFPropertyList sqlite3 digest You can use $ gem list to show which gems are installed","title":"Dependency on other gems"},{"location":"codesigning/common-issues/#ruby-version","text":"Many of the old instances of this problem were caused by not using system Ruby, but this likely won't impact many in the future since fastlane helps ensure your environment is set up properly now. Using RVM or newer versions of Ruby should work fine. If you have RVM installed and want to try reverting back to system Ruby just in case, you can set and check this using: $ rvm use system $ ruby -v ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin16] $ which ruby /usr/bin/ruby","title":"Ruby version"},{"location":"codesigning/common-issues/#check-the-logs","text":"In many issues that were seen on the fastlane repo and across the web, this error was given during the bundling process. Luckily, that bundler creates a log file that you can access to see what error actually happened: 2017-03-30 21:47:09.855 xcodebuild[78957:9114437] [MT] IDEDistribution: -[IDEDistributionLogging _createLoggingBundleAtPath:]: Created bundle at path '/var/folders/s1/0h7d0scx6xqdthft328yfk0m0000gn/T/MyApp-Internal_2017-03-30_21-47-09.854.xcdistributionlogs'. 1.2.840.113635.100.1.61 1.2.840.113635.100.1.61 2017-03-30 21:47:14.702 xcodebuild[78957:9114437] [MT] IDEDistribution: Step failed: : Error Domain=IDEDistributionErrorDomain Code=14 \"No applicable devices found.\" UserInfo={NSLocalizedDescription=No applicable devices found.} error: exportArchive: No applicable devices found. If you look closely, you'll see the misleading error message and then just above it, there's a path to a log file ( *.xcdistributionlogs ). Opening that up, you'll see more detail. (Side note: you can also search for all logs via $ sudo find /private/var -name \"*.xcdistributionlogs\" ) In this case, it was because the export was built without bitcode, but there were static lib frameworks that were built with bitcode: # inside IDEDistribution.standard.log within the .xcdistributionlogs file 2017-03-31 16:49:06 +0000 Validating IPA structure... 2017-03-31 16:49:06 +0000 error: Failed to verify bitcode in opus.framework/opus: error: Bundle only contains bitcode-marker /var/folders/s1/0h7d0scx6xqdthft328yfk0m0000gn/T/IDEDistributionThinningStep.KRt/Payload/Viv.app/Frameworks/opus.framework/opus (armv7) When that framework was rebuilt without bitcode, it worked like a charm! \ud83d\ude05","title":"Check the Logs"},{"location":"codesigning/common-issues/#run-commands-yourself","text":"gym does a great job of showing which commands it's going to run. Inspect the files it generates and run these commands yourself, as many times as you need to, in order to isolate the problems. For example, here's the export command that gym shows: /usr/bin/xcrun /Users/rob/.fastlane/bin/bundle/lib/ruby/gems/2.2.0/gems/fastlane-2.24.0/gym/lib/assets/wrap_xcodebuild/xcbuild-safe.sh -exportArchive -exportOptionsPlist '/var/folders/s1/0h7d0scx6xqdthft328yfk0m0000gn/T/gym_config20170330-65021-1xbw0ov.plist' -archivePath /Users/rob/Library/Developer/Xcode/Archives/2017-03-30/MyApp\\ 2017-03-30\\ 21.12.02.xcarchive -exportPath '/var/folders/s1/0h7d0scx6xqdthft328yfk0m0000gn/T/gym_output20170330-65021-u80ojn' From that, you can see which exportOptionsPlist it's using, which had this in it: method development And you can see which .xcarchive it's using to check if it built that with the correct provisioning profile. Most importantly, you can keep running that entire command until you figure out why it's breaking (e.g. try installing these gems, try using system Ruby).","title":"Run commands yourself"},{"location":"codesigning/common-issues/#other-causes","text":"Keep in mind, this list could be infinite since this No applicable devices found error just manifests itself from underlying errors. Your best bet is to dig into the logs and see which error is actually being thrown. Using the wrong export_method or some other error in the generated exportPlist (e.g. using enterprise method when you're actually building for the app store and don't have the proper certificates) Root Apple WWDR certificate had expired; check the Keychain for expired certificates Env vars not being unset, relevant PR Including bitcode sometimes caused it (can use include_bitcode: false ) in your gym command and check if all frameworks match your bitcode requirements Provisioning profiles not matching capabilities and beta-reports-active flag on .entitlements file. Not having the gems ( CFPropertyList etc) we discussed earlier installed","title":"Other Causes"},{"location":"codesigning/common-issues/#apple-tech-notes","text":"If all else fails, use these tech notes to troubleshoot app thinning and bitcode: https://developer.apple.com/library/content/technotes/tn2432/_index.html https://stackoverflow.com/questions/34959767/whats-the-difference-between-fembed-bitcode-and-bitcode-generation-mode https://forums.developer.apple.com/thread/70583","title":"Apple Tech Notes"},{"location":"codesigning/common-issues/#radar","text":"Feel free to duplicate the radar https://openradar.appspot.com/31389725 so the export APIs will return an accurate error message","title":"Radar"},{"location":"codesigning/getting-started/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 Codesigning concepts If you are just starting a new project, it's important to think about how you want to handle code signing. This guide will help you choose the best approach for you. For existing projects it might make sense to switch from a manual process to the match approach to make it easier for new team-members to onboard. If you are new to code signing, check out the WWDC session that describes the fundamentals of code signing in Xcode. Using match Using cert and sigh Using Xcode's code signing feature Manually Using match The concept of match is described in the codesigning guide . With match you store your private keys and certificates in a git repo to sync them across machines. This makes it easy to onboard new team-members and set up new Mac machines. This approach is secure and uses technology you already use. Getting started with match requires you to revoke your existing certificates. Make sure to follow Setting up your Xcode Project to set up your project properly. Using cert and sigh If you don't want to revoke your existing certificates, but still want an automated setup, cert and sigh are for you. cert will make sure you have a valid certificate and its private key installed on the local machine sigh will make sure you have a valid provisioning profile installed locally, that matches the installed certificate Add the following lines to your Fastfile lane :beta do get_certificates # invokes cert get_provisioning_profile # invokes sigh build_app end Make sure to follow Setting up your Xcode Project to set up your project properly. Using Xcode's code signing feature Occasionally the Automatic setting as the provisioning profile doesn't work reliably as it will just select the most recently updated provisioning profile, no matter if the certificate is installed. That's why it is recommended to specify a specific provisioning profile somehow: Xcode 8 and up The instructions below are more advanced, and take more time to setup than other approaches. Automatic & Manual Signing To simplify development workflow you could use Automatic code signing for development, and Manual for release builds. You have to configure your Xcode project to use automatic code signing, and on the release configuration specify the $() match env variable. e.g: in your Fastfile you then use a lane like this: lane :release do sync_code_signing disable_automatic_code_signing(path: \"my_project.xcodeproj\") build_app enable_automatic_code_signing(path: \"my_project.xcodeproj\") upload_to_testflight end this way you can profit off of the automatic code signing on development machines, and also stay in control on release builds to be sure the right cert/provisioning profiles are used. Xcode 7 and lower You should avoid clicking the Fix Issue button (There is an Xcode plugin that disables the button), as it sometimes revokes existing certificates, and with it the provisioning profiles. Unfortunately you can't specify the name of the provisioning profile in Xcode 7. Instead you can specify the UUID of the profile, which changes every time the profile gets re-generated (e.g. when you add a new device). To work around this issue, check out Setting up your Xcode Project on how to pass a provisioning profile to Xcode when building your app. Manually You can always manually create and manage your certificates and provisioning profiles using the Apple Developer Portal. Make sure to store the private key ( .p12 ) of your certificates in a safe place, as they can't be restored if you lose them. You can always download the certificate ( .cer ) and provisioning profile ( .mobileprovision ) from the Apple Developer Portal. Where to go from here Setting up your Xcode Project Debugging codesigning issues Common code signing issues Upgrading to Xcode 9","title":"Getting Started"},{"location":"codesigning/getting-started/#codesigning-concepts","text":"If you are just starting a new project, it's important to think about how you want to handle code signing. This guide will help you choose the best approach for you. For existing projects it might make sense to switch from a manual process to the match approach to make it easier for new team-members to onboard. If you are new to code signing, check out the WWDC session that describes the fundamentals of code signing in Xcode. Using match Using cert and sigh Using Xcode's code signing feature Manually","title":"Codesigning concepts"},{"location":"codesigning/getting-started/#using-match","text":"The concept of match is described in the codesigning guide . With match you store your private keys and certificates in a git repo to sync them across machines. This makes it easy to onboard new team-members and set up new Mac machines. This approach is secure and uses technology you already use. Getting started with match requires you to revoke your existing certificates. Make sure to follow Setting up your Xcode Project to set up your project properly.","title":"Using match"},{"location":"codesigning/getting-started/#using-cert-and-sigh","text":"If you don't want to revoke your existing certificates, but still want an automated setup, cert and sigh are for you. cert will make sure you have a valid certificate and its private key installed on the local machine sigh will make sure you have a valid provisioning profile installed locally, that matches the installed certificate Add the following lines to your Fastfile lane :beta do get_certificates # invokes cert get_provisioning_profile # invokes sigh build_app end Make sure to follow Setting up your Xcode Project to set up your project properly.","title":"Using cert and sigh"},{"location":"codesigning/getting-started/#using-xcodes-code-signing-feature","text":"Occasionally the Automatic setting as the provisioning profile doesn't work reliably as it will just select the most recently updated provisioning profile, no matter if the certificate is installed. That's why it is recommended to specify a specific provisioning profile somehow:","title":"Using Xcode's code signing feature"},{"location":"codesigning/getting-started/#manually","text":"You can always manually create and manage your certificates and provisioning profiles using the Apple Developer Portal. Make sure to store the private key ( .p12 ) of your certificates in a safe place, as they can't be restored if you lose them. You can always download the certificate ( .cer ) and provisioning profile ( .mobileprovision ) from the Apple Developer Portal.","title":"Manually"},{"location":"codesigning/getting-started/#where-to-go-from-here","text":"Setting up your Xcode Project Debugging codesigning issues Common code signing issues Upgrading to Xcode 9","title":"Where to go from here"},{"location":"codesigning/troubleshooting/","text":"Debugging codesigning issues This guide will help you resolve the most common code signing errors. In general, make sure to read the complete output when something goes wrong, in particular the very top and the very bottom of the build output. You'll always get access to the raw xcodebuild output, make sure to analyze it, as fastlane can only assist with helping you resolve problems. Error message Make sure to find the exact error message in your build output. Many times the error message actually tells you how to resolve the issue. To get even more details, try archiving using Xcode 8. Different machine Does code signing work on a different Mac, but not on yours? If so, chances are high you don't have the latest private key, the certificate or the provisioning profile. Also follow the Keychain part of this document to make sure you don't have any expired certificates installed. Xcode project Make sure to follow Setting up your Xcode Project to properly set up your project. A check list on what you should verify on your Xcode project Make sure to have consistent code signing settings across your targets Don't set any code signing settings on your project level, just on the target level Make sure the bundle identifier matches the one of your provisioning profile Make sure the code signing identity is set to iOS Distribution for Release builds Make sure to set a provisioning profile for all your targets, e.g. Watch, Today widget, ... Check your working copy in git - did you make any changes by mistake? Developer Portal If a certificate gets revoked, all connected provisioning profiles get invalidated. This however might not immediately show up in your local keychain. Open the Developer Portal Verify your certificates are valid, and didn't expire or get revoked Switch to the Provisioning Profiles and make sure the profiles you want to use are all still valid If your profile is invalid or expired, you can easily fix it: If you're using match , run match with force enabled If you're using sigh , run sigh with force enabled If you're doing manual code signing, edit the provisioning profile, and click on Generate on the bottom of the screen. Make sure to select the correct certificate, then download and open the new provisioning profile If your profile is valid, but you still have issues make sure that the certificate matches the certificate you have installed locally. You can view the used certificate by editing the profile (Don't click Generate , unless you want to re-generate the provisioning profile) that all devices you need are included (Development and Ad-Hoc only) that you are actually looking at the correct provisioning profile, that matches the bundle identifier of your app. You might have multiple provisioning profiles for the same app / certificate combination. By default Xcode will use the last modified one. Keychain Run security find-identity -v -p codesigning to get a list of locally installed code signing identities. Does yours show up? Open the Keychain Access app, switch to Certificates and find your iOS Developer or iOS Distribution entry and unfold the entry to verify the private key is locally installed: Make sure to have deleted all expired WWDR certificates, more information here . There might be 2 expired WWDR certificates, one in the login , and one in the system keychain Run security default-keychain to view the default keychain that is used by some fastlane actions if a keychain path is not explicitly provided. If it's the system keychain, make sure fastlane has access to write to it. You may want to reconfigure your environment so the default keychain is the login keychain, which is less prone to permissions errors. If you're using launchctl , see this link to change the default keychain to the login keychain . Have you tried turning it off and on again? As funny as it sounds, sometimes restarting your Mac helps. fastlane Run fastlane in verbose mode to get even more debug information: fastlane [lane] --verbose Common Issues Check out Common code signing issues for the most common code signing issues and how you can solve them.","title":"Troubleshooting"},{"location":"codesigning/troubleshooting/#debugging-codesigning-issues","text":"This guide will help you resolve the most common code signing errors. In general, make sure to read the complete output when something goes wrong, in particular the very top and the very bottom of the build output. You'll always get access to the raw xcodebuild output, make sure to analyze it, as fastlane can only assist with helping you resolve problems.","title":"Debugging codesigning issues"},{"location":"codesigning/troubleshooting/#error-message","text":"Make sure to find the exact error message in your build output. Many times the error message actually tells you how to resolve the issue. To get even more details, try archiving using Xcode 8.","title":"Error message"},{"location":"codesigning/troubleshooting/#different-machine","text":"Does code signing work on a different Mac, but not on yours? If so, chances are high you don't have the latest private key, the certificate or the provisioning profile. Also follow the Keychain part of this document to make sure you don't have any expired certificates installed.","title":"Different machine"},{"location":"codesigning/troubleshooting/#xcode-project","text":"Make sure to follow Setting up your Xcode Project to properly set up your project. A check list on what you should verify on your Xcode project Make sure to have consistent code signing settings across your targets Don't set any code signing settings on your project level, just on the target level Make sure the bundle identifier matches the one of your provisioning profile Make sure the code signing identity is set to iOS Distribution for Release builds Make sure to set a provisioning profile for all your targets, e.g. Watch, Today widget, ... Check your working copy in git - did you make any changes by mistake?","title":"Xcode project"},{"location":"codesigning/troubleshooting/#developer-portal","text":"If a certificate gets revoked, all connected provisioning profiles get invalidated. This however might not immediately show up in your local keychain. Open the Developer Portal Verify your certificates are valid, and didn't expire or get revoked Switch to the Provisioning Profiles and make sure the profiles you want to use are all still valid If your profile is invalid or expired, you can easily fix it: If you're using match , run match with force enabled If you're using sigh , run sigh with force enabled If you're doing manual code signing, edit the provisioning profile, and click on Generate on the bottom of the screen. Make sure to select the correct certificate, then download and open the new provisioning profile If your profile is valid, but you still have issues make sure that the certificate matches the certificate you have installed locally. You can view the used certificate by editing the profile (Don't click Generate , unless you want to re-generate the provisioning profile) that all devices you need are included (Development and Ad-Hoc only) that you are actually looking at the correct provisioning profile, that matches the bundle identifier of your app. You might have multiple provisioning profiles for the same app / certificate combination. By default Xcode will use the last modified one.","title":"Developer Portal"},{"location":"codesigning/troubleshooting/#keychain","text":"Run security find-identity -v -p codesigning to get a list of locally installed code signing identities. Does yours show up? Open the Keychain Access app, switch to Certificates and find your iOS Developer or iOS Distribution entry and unfold the entry to verify the private key is locally installed: Make sure to have deleted all expired WWDR certificates, more information here . There might be 2 expired WWDR certificates, one in the login , and one in the system keychain Run security default-keychain to view the default keychain that is used by some fastlane actions if a keychain path is not explicitly provided. If it's the system keychain, make sure fastlane has access to write to it. You may want to reconfigure your environment so the default keychain is the login keychain, which is less prone to permissions errors. If you're using launchctl , see this link to change the default keychain to the login keychain .","title":"Keychain"},{"location":"codesigning/troubleshooting/#have-you-tried-turning-it-off-and-on-again","text":"As funny as it sounds, sometimes restarting your Mac helps.","title":"Have you tried turning it off and on again?"},{"location":"codesigning/troubleshooting/#fastlane","text":"Run fastlane in verbose mode to get even more debug information: fastlane [lane] --verbose","title":"fastlane"},{"location":"codesigning/troubleshooting/#common-issues","text":"Check out Common code signing issues for the most common code signing issues and how you can solve them.","title":"Common Issues"},{"location":"codesigning/xcode-project/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 Setting up your Xcode Project Xcode 9 and up In most cases, fastlane will work out of the box with Xcode 9 and up if you selected manual code signing and choose a provisioning profile name for each of your targets . If you don't use match , we recommend defining a mapping of app target to provisioning profile in your Fastfile . By defining those profiles, you can guarantee reproducible builds every time you run it. lane :beta do build_app( export_method: \"app-store\", export_options: { provisioningProfiles: { \"com.example.bundleid\" => \"Provisioning Profile Name\", \"com.example.bundleid2\" => \"Provisioning Profile Name 2\" } } ) end You can also use Xcode\u2019s Automatically Manage Signing feature. By default, automatic signing via xcodebuild is disabled. To enable it, pass -allowProvisioningUpdates via the xcargs option: lane :beta do build_app(xcargs: \"-allowProvisioningUpdates\") end Specify provisioning profile name for each targets You can set a provisioning profile name for each of your targets. By doing so, Xcode automatically selects the latest provisioning profile matching its name. This way you don't have to update your Xcode project, every time you re-generate your provisioning profile (e.g. when adding a new device) You can now specify which provisioning profile to use in the General tab after disabling Automatically manage signing . Alternatively you can also specify the provisioning profile in the Build Settings tab. If your provisioning profile is not listed in the drop down, there might be a few reasons: It doesn't match the bundle identifier of the target The associated certificate or its private key is not installed on the local machine The provisioning profile is not installed on the local machine Check out Debugging codesigning issues for more information on how to debug signing issues. Build settings Specify the name of the provisioning profile using the PROVISIONING_PROFILE_SPECIFIER : DEVELOPMENT_TEAM = N8XAAASEU2; PROVISIONING_PROFILE_SPECIFIER = \"match AppStore me.themoji.app.release\"; It is recommended to select the provisioning profile in the General tab in your Xcode project, so Xcode will automatically set the values mentioned above for you. Set using environment variable You could pass the profile specifier via environment variables, but usually it's enough to define it statically in your project, per target, since usually neither your Team ID, nor the provisioning profile change. If you're using match the following environment variables are being set for you: +---------------------+------------------------------------------------+--------------------------------------+ | Installed Provisioning Profile | +---------------------+------------------------------------------------+--------------------------------------+ | Parameter | Environment Variable | Value | +---------------------+------------------------------------------------+--------------------------------------+ | App Identifier | | me.themoji.release | | Type | | appstore | | Profile UUID | sigh_me.themoji.beta_appstore | 22a19b3a-7cf6-4997-95f2-9cbb4d33fe7e | | Profile Name | sigh_me.themoji.beta_appstore_profile-name | match AppStore me.themoji.release | | Development Team ID | sigh_me.themoji.beta_appstore_team-id | N8XAAASEU2 | +---------------------+------------------------------------------------+--------------------------------------+ Using match development or Xcode Automatic Provisioning Apple's Automatic Provisioning will automatically generate a private key, development certificate, and managed development provisioning profile for each computer used to build a project. Since Xcode can auto-generate these for you, there is no need to share them between teammates' computers. As such, when using Xcode Automatic Provisioning, there is no need to use match development to keep development keys, certificates, and provisioning profiles in sync. If you are already using match to manage development code signing, Automatic Provisioning will use the match -generated key and certificate. However, Xcode will create and manage its own provisioning profile and will not use the match -generated profile. match appstore and Xcode Automatic Provisioning Xcode Automatic Provisioning doesn't sync your private keys across machines (if you have multiple computers or share them between teammates). To securely store your private key and have access to it from all your devices, use match appstore or match adhoc . This will sync your keys, certificates and provisioning profiles via git, encrypted using OpenSSL.","title":"Xcode Project"},{"location":"codesigning/xcode-project/#setting-up-your-xcode-project","text":"","title":"Setting up your Xcode Project"},{"location":"codesigning/xcode-project/#xcode-9-and-up","text":"In most cases, fastlane will work out of the box with Xcode 9 and up if you selected manual code signing and choose a provisioning profile name for each of your targets . If you don't use match , we recommend defining a mapping of app target to provisioning profile in your Fastfile . By defining those profiles, you can guarantee reproducible builds every time you run it. lane :beta do build_app( export_method: \"app-store\", export_options: { provisioningProfiles: { \"com.example.bundleid\" => \"Provisioning Profile Name\", \"com.example.bundleid2\" => \"Provisioning Profile Name 2\" } } ) end You can also use Xcode\u2019s Automatically Manage Signing feature. By default, automatic signing via xcodebuild is disabled. To enable it, pass -allowProvisioningUpdates via the xcargs option: lane :beta do build_app(xcargs: \"-allowProvisioningUpdates\") end","title":"Xcode 9 and up"},{"location":"codesigning/xcode-project/#specify-provisioning-profile-name-for-each-targets","text":"You can set a provisioning profile name for each of your targets. By doing so, Xcode automatically selects the latest provisioning profile matching its name. This way you don't have to update your Xcode project, every time you re-generate your provisioning profile (e.g. when adding a new device) You can now specify which provisioning profile to use in the General tab after disabling Automatically manage signing . Alternatively you can also specify the provisioning profile in the Build Settings tab. If your provisioning profile is not listed in the drop down, there might be a few reasons: It doesn't match the bundle identifier of the target The associated certificate or its private key is not installed on the local machine The provisioning profile is not installed on the local machine Check out Debugging codesigning issues for more information on how to debug signing issues.","title":"Specify provisioning profile name for each targets"},{"location":"generated/actions/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 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 build_mac_app Alias for the build_app action but only for macOS mac spm Runs Swift Package Manager on your project ios, android, mac build_ios_app Alias for the build_app action but only for iOS ios xcclean Cleans the project using xcodebuild ios, mac xcarchive Archives the project using xcodebuild ios, mac build_android_app Alias for the gradle action ios, android xcexport Exports the project using xcodebuild ios, mac build_app Easily build and sign your app (via gym ) ios, mac xcbuild Builds the project using xcodebuild ios, mac xctest Runs tests on the given simulator ios, mac xcodes Make sure a certain version of Xcode is installed, installing it only if needed ios, mac create_xcframework Package multiple build configs of a library/framework into a single xcframework ios, 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 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 capture_android_screenshots Automated localized screenshots of your Android app (via screengrab ) android 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 match_nuke Easily nuke your certificate and provisioning profiles (via match ) ios, mac get_provisioning_profile Generates a provisioning profile, saving it in the current folder (via sigh ) ios, mac sync_code_signing Easily sync your certificates and profiles across your team (via match ) ios, mac notarize Notarizes a macOS app mac get_certificates Create new iOS code signing certificates (via cert ) ios update_code_signing_settings Configures Xcode's Codesigning options ios, mac install_provisioning_profile Install provisioning profile from path 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 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_app_store Upload metadata and binary to App Store Connect (via deliver ) 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_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 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 commit_github_file This will commit a file directly on GitHub via the API 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 backuped 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 \ud83d\ude80 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 google_play_track_version_codes Retrieves version codes for a Google Play track android plugin_scores \u001b[31mNo description provided\u001b[0m ios, android, mac ruby_version Verifies the minimum ruby version required ios, android, mac setup_travis Setup the keychain and match to work with Travis CI ios, android, mac ensure_env_vars Raises an exception if the specified env vars are not set ios, android, mac google_play_track_release_names Retrieves release names for a Google Play track android opt_out_usage This will stop uploading the information which actions were run ios, android, mac environment_variable Sets/gets env vars for Fastlane.swift. Don't use in ruby, use ENV[key] = val ios, android, mac get_managed_play_store_publishing_rights Obtain publishing rights for custom apps on Managed Google Play Store android min_fastlane_version Verifies the minimum fastlane version required ios, android, mac println Alias for the puts action ios, android, mac create_app_on_managed_play_store Create Managed Google Play Apps android validate_play_store_json_key Validate that the Google Play Store json_key works android echo Alias for the puts action ios, android, mac setup_ci Setup the keychain and match to work with CI ios, mac setup_circle_ci Setup the keychain and match to work with CircleCI ios, android, mac ensure_bundle_exec Raises an exception if not using bundle exec to run fastlane ios, android, mac modify_services Modifies the services of the app created on Developer Portal ios 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 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","title":"Actions"},{"location":"generated/actions/#fastlane-actions","text":"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","title":"fastlane actions"},{"location":"generated/actions/#testing","text":"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","title":"Testing"},{"location":"generated/actions/#building","text":"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 build_mac_app Alias for the build_app action but only for macOS mac spm Runs Swift Package Manager on your project ios, android, mac build_ios_app Alias for the build_app action but only for iOS ios xcclean Cleans the project using xcodebuild ios, mac xcarchive Archives the project using xcodebuild ios, mac build_android_app Alias for the gradle action ios, android xcexport Exports the project using xcodebuild ios, mac build_app Easily build and sign your app (via gym ) ios, mac xcbuild Builds the project using xcodebuild ios, mac xctest Runs tests on the given simulator ios, mac xcodes Make sure a certain version of Xcode is installed, installing it only if needed ios, mac create_xcframework Package multiple build configs of a library/framework into a single xcframework ios, mac","title":"Building"},{"location":"generated/actions/#screenshots","text":"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 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 capture_android_screenshots Automated localized screenshots of your Android app (via screengrab ) android","title":"Screenshots"},{"location":"generated/actions/#project","text":"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","title":"Project"},{"location":"generated/actions/#code-signing","text":"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 match_nuke Easily nuke your certificate and provisioning profiles (via match ) ios, mac get_provisioning_profile Generates a provisioning profile, saving it in the current folder (via sigh ) ios, mac sync_code_signing Easily sync your certificates and profiles across your team (via match ) ios, mac notarize Notarizes a macOS app mac get_certificates Create new iOS code signing certificates (via cert ) ios update_code_signing_settings Configures Xcode's Codesigning options ios, mac install_provisioning_profile Install provisioning profile from path ios, mac","title":"Code Signing"},{"location":"generated/actions/#documentation","text":"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","title":"Documentation"},{"location":"generated/actions/#beta","text":"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","title":"Beta"},{"location":"generated/actions/#push","text":"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","title":"Push"},{"location":"generated/actions/#releasing-your-app","text":"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 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_app_store Upload metadata and binary to App Store Connect (via deliver ) 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_play_store Upload metadata, screenshots and binaries to Google Play (via supply ) android","title":"Releasing your app"},{"location":"generated/actions/#source-control","text":"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 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 commit_github_file This will commit a file directly on GitHub via the API ios, android, mac","title":"Source Control"},{"location":"generated/actions/#notifications","text":"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","title":"Notifications"},{"location":"generated/actions/#app-store-connect","text":"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","title":"App Store Connect"},{"location":"generated/actions/#misc","text":"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 backuped 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 \ud83d\ude80 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 google_play_track_version_codes Retrieves version codes for a Google Play track android plugin_scores \u001b[31mNo description provided\u001b[0m ios, android, mac ruby_version Verifies the minimum ruby version required ios, android, mac setup_travis Setup the keychain and match to work with Travis CI ios, android, mac ensure_env_vars Raises an exception if the specified env vars are not set ios, android, mac google_play_track_release_names Retrieves release names for a Google Play track android opt_out_usage This will stop uploading the information which actions were run ios, android, mac environment_variable Sets/gets env vars for Fastlane.swift. Don't use in ruby, use ENV[key] = val ios, android, mac get_managed_play_store_publishing_rights Obtain publishing rights for custom apps on Managed Google Play Store android min_fastlane_version Verifies the minimum fastlane version required ios, android, mac println Alias for the puts action ios, android, mac create_app_on_managed_play_store Create Managed Google Play Apps android validate_play_store_json_key Validate that the Google Play Store json_key works android echo Alias for the puts action ios, android, mac setup_ci Setup the keychain and match to work with CI ios, mac setup_circle_ci Setup the keychain and match to work with CircleCI ios, android, mac ensure_bundle_exec Raises an exception if not using bundle exec to run fastlane ios, android, mac modify_services Modifies the services of the app created on Developer Portal ios 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","title":"Misc"},{"location":"generated/actions/#deprecated","text":"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","title":"Deprecated"},{"location":"generated/available-plugins/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 Available Plugins 24830 appcenter via Microsoft Corporation Fastlane plugin for App Center Provided actions Name Category Description appcenter_fetch_version_number - Fetches the latest version number of an app or the last build number of a version from App Center appcenter_fetch_devices - Fetches a list of devices from App Center to distribute an iOS app to appcenter_upload - Distribute new release to App Center Score details Metric Points Description contributors 246 The more contributors a project has, the more likely it is it stays alive subscribers 51 More subscribers = more popular project stars 404 More stars = more popular project forks 515 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -49 Lots of open issues are not a good sign usually, unless the project is really popular downloads 23457 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 23982 firebase_app_distribution via Stefan Natchev, Manny Jimenez, Alonso Salas Infante Release your beta builds to Firebase App Distribution. https://firebase.google.com/docs/app-distribution Provided actions Name Category Description firebase_app_distribution_login - Authenticate with Firebase App Distribution using a Google account. firebase_app_distribution_add_testers - Create testers in bulk from a comma-separated list or a file firebase_app_distribution_get_udids - Download the UDIDs of your Firebase App Distribution testers firebase_app_distribution - Release your beta builds with Firebase App Distribution firebase_app_distribution_remove_testers - Delete testers in bulk from a comma-separated list or a file Score details Metric Points Description contributors 84 The more contributors a project has, the more likely it is it stays alive subscribers 36 More subscribers = more popular project stars 97 More stars = more popular project forks 60 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -13 Lots of open issues are not a good sign usually, unless the project is really popular downloads 23556 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 12769 badge via Daniel Griesser Add a badge overlay to your app icon Provided actions Name Category Description add_badge - Automatically add a badge to your app icon Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 175 More stars = more popular project forks 75 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12374 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 12537 versioning via Siarhei Fiedartsou, John Douglas Allows to set/get app version and build number directly to/from Info.plist Provided actions Name Category Description get_version_number_from_git_branch - Extract version number from git branch name increment_build_number_in_xcodeproj - Increment build number in xcodeproj get_version_number_from_plist - Get the version number of your project get_build_number_from_plist - Get the build number of your project ci_build_number building Detects current build number defined by CI system get_version_number_from_xcodeproj - Get the version number of your project increment_version_number_in_xcodeproj - Increment build number in xcodeproj increment_version_number_in_plist - Increment the version number of your project get_app_store_version_number - Get the version number of your app in the App Store get_info_plist_path - Get the version number of your project get_build_number_from_xcodeproj - Get the build number of your project increment_build_number_in_plist - Increment the build number of your project Score details Metric Points Description contributors 90 The more contributors a project has, the more likely it is it stays alive subscribers 18 More subscribers = more popular project stars 381 More stars = more popular project forks 220 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -8 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11655 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 7280 sentry via Sentry Upload symbols to Sentry Provided actions Name Category Description sentry_upload_dsym - Upload dSYM symbolication files to Sentry sentry_set_commits - Set commits of a release sentry_upload_sourcemap - Upload a sourcemap to a release of a project on Sentry sentry_finalize_release - Finalize a release for a project on Sentry sentry_upload_file - Upload files to a release of a project on Sentry sentry_create_deploy - Creates a new release deployment for a project on Sentry sentry_upload_proguard - Upload mapping to a project on Sentry sentry_create_release - Create new releases for a project on Sentry sentry_check_cli_installed - Checks that sentry-cli with the correct version is installed sentry_upload_dif - Upload debugging information files. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 51 More subscribers = more popular project stars 85 More stars = more popular project forks 210 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -17 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6740 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 6980 bugsnag via Delisa Mason Uploads dSYM files to Bugsnag Provided actions Name Category Description upload_symbols_to_bugsnag - Uploads dSYM debug symbol files to Bugsnag send_build_to_bugsnag building Notifies Bugsnag of a build dsym_magic - Sets the dsym path Score details Metric Points Description contributors 96 The more contributors a project has, the more likely it is it stays alive subscribers 63 More subscribers = more popular project stars 30 More stars = more popular project forks 40 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6625 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 6625 aws_s3 via Josh Holtz Upload IPA and APK to S3 Provided actions Name Category Description aws_s3 - Generates a plist file and uploads all to AWS S3 Score details Metric Points Description contributors 150 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 118 More stars = more popular project forks 275 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -17 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5944 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 6513 test_center via Lyndsey Ferguson \ud83c\udfaf Understand, tame, and train your iOS & Mac tests \ud83c\udf89 Provided actions Name Category Description suppressed_tests testing \ud83d\udddc Retrieves a list of tests that are suppressed in a specific or all Xcode Schemes in a project suppress_tests testing \ud83d\udddc Suppresses specific tests in a specific or all Xcode Schemes in a given project tests_from_xcresult testing \u2611\ufe0f Retrieves the failing, passing, and skipped tests as reported in a xcresult bundle suppress_tests_from_junit testing \ud83d\udddc Uses a junit xml report file to suppress either passing or failing tests in an Xcode Scheme tests_from_xctestrun testing \ufe0f\ufe0f\u2611\ufe0f Retrieves all of the tests from xctest bundles referenced by the xctestrun file quit_core_simulator_service testing \ud83d\udcf2 Force-quits the com.apple.CoreSimulator.CoreSimulatorService to fix mysterious iOS Simulator issues. collate_test_result_bundles testing \ud83d\udd38 Combines multiple test_result bundles into one test_result bundle tests_from_junit testing \u2611\ufe0f Retrieves the failing and passing tests as reported in a junit xml file multi_scan testing \u267b\ufe0f Uses scan to run Xcode tests a given number of times, with the option of batching and/or parallelizing them, only re-testing failing tests. test_options_from_testplan testing \u2611\ufe0f Gets test info from a given test plan collate_html_reports testing \ud83d\udd36 Combines multiple html report files into one html report file collate_junit_reports testing \ud83d\udd37 Combines multiple junit report files into one junit report file collate_json_reports testing \ud83d\udd39 Combines multiple json report files into one json report file testplans_from_scheme testing \u2611\ufe0fGets all the testplans that a Scheme references collate_xcresults - \ud83d\udd38 Combines multiple xcresult bundles into one xcresult bundle Score details Metric Points Description contributors 66 The more contributors a project has, the more likely it is it stays alive subscribers 33 More subscribers = more popular project stars 208 More stars = more popular project forks 195 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -14 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5822 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 6086 increment_version_code via Jems Increment the version code of your android project. Provided actions Name Category Description increment_version_code - Increment the version code of your android project. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 40 More stars = more popular project forks 35 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5916 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 5789 trainer via KrauseFx Convert xcodebuild plist files to JUnit reports Provided actions Name Category Description trainer - Convert the Xcode plist log to a JUnit report. This will raise an exception if the tests failed Score details Metric Points Description contributors 42 The more contributors a project has, the more likely it is it stays alive subscribers 18 More subscribers = more popular project stars 132 More stars = more popular project forks 110 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -8 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5370 More downloads = more users have been using the plugin for a while tests 24 The more tests a plugin has, the better Open on GitHub 4025 versioning_android via Igor Lamos Android Versioning Plugin for Fastlane Provided actions Name Category Description android_get_version_name - Get the Version Name of your Android project android_set_version_code - Set the Version Code of your Android project android_set_version_name - Set the Version Name of your Android project android_get_version_code - Get the Version Code of your Android project Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3911 More downloads = more users have been using the plugin for a while tests 36 The more tests a plugin has, the better Open on GitHub 3595 changelog via Pavel Prochazka Automate changes to your project CHANGELOG.md Provided actions Name Category Description read_changelog - Reads content of a section from your project CHANGELOG.md file update_changelog - Updates content of a section of your project CHANGELOG.md file emojify_changelog - Emojifies the output of read_changelog action stamp_changelog - Stamps the [Unreleased] section with provided identifier in your project CHANGELOG.md file Score details Metric Points Description contributors 60 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 176 More stars = more popular project forks 225 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2952 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 3291 appicon via Boris Bu\u0308gling, Felix Krause Generate required icon sizes and iconset from a master application icon. Provided actions Name Category Description android_appicon - Generate required icon sizes from a master application icon appicon - Generate required icon sizes and iconset from a master application icon Score details Metric Points Description contributors 120 The more contributors a project has, the more likely it is it stays alive subscribers 27 More subscribers = more popular project stars 295 More stars = more popular project forks 205 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -19 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2562 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 2572 load_json via Felix Krause Loads a local JSON file and parses it Provided actions Name Category Description load_json - Loads a local JSON file and parses it Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2489 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 2420 get_version_name via Jems Get the version name of an Android project. Provided actions Name Category Description get_version_name - Get the version name of an Android project. This action will return the version name of your project according to the one set in your build.gradle file Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 4 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2313 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 2197 yarn via Josh Lesch Execute Yarn commands from your Fastfile Provided actions Name Category Description yarn - Execute Yarn commands from your Fastfile Score details Metric Points Description contributors 24 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 16 More stars = more popular project forks 30 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1972 More downloads = more users have been using the plugin for a while tests 21 The more tests a plugin has, the better Open on GitHub 2038 browserstack via BrowserStack Uploads IPA and APK files to BrowserStack for automation and manual testing. Provided actions Name Category Description upload_to_browserstack_app_automate - Uploads IPA and APK files to BrowserStack AppAutomate for running automated tests. upload_to_browserstack_app_live - Uploads IPA and APK files to BrowserStack AppLive for running manual tests. Score details Metric Points Description contributors 24 The more contributors a project has, the more likely it is it stays alive subscribers 27 More subscribers = more popular project stars 10 More stars = more popular project forks 35 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 19 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1804 More downloads = more users have been using the plugin for a while tests 51 The more tests a plugin has, the better Open on GitHub 2022 xcconfig via Sergii Ovcharenko Adds 2 actions to fastlane to read and update xcconfig files. Provided actions Name Category Description update_xcconfig_value - Updates value of a setting in xcconfig file. set_xcconfig_value - Sets the value of a setting in xcconfig file. get_xcconfig_value - Reads a value of a setting from xcconfig file. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 6 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1847 More downloads = more users have been using the plugin for a while tests 30 The more tests a plugin has, the better Open on GitHub 1804 get_version_code via Jems Get the version code of anAndroid project. This action will return the version code of your project according to the one set in your build.gradle file Provided actions Name Category Description get_version_code - Get the version code of an Android project. This action will return the version code of your project according to the one set in your build.gradle file Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1697 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 1779 android_versioning via Manabu OHTAKE Allows to set/get app version name and version code directly to/from build.gradle Provided actions Name Category Description get_value_from_build - - increment_version_code - Increment the version code of your project set_value_in_build - Set the value of your project get_version_name - Get the version name of your project increment_version_name - Increment the version name of your project get_version_code - Get the version code of your project Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 41 More stars = more popular project forks 60 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1531 More downloads = more users have been using the plugin for a while tests 66 The more tests a plugin has, the better Open on GitHub 1760 slack_upload via Dawid Cieslak Uploads specified file to Slack Provided actions Name Category Description slack_upload - Uploads given file to Slack Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 19 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1668 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 1633 rome via Fran\u00e7ois Benaiteau, Tommaso Piazza A cache tool for Carthage Provided actions Name Category Description rome - An S3 cache tool for Carthage Score details Metric Points Description contributors 30 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 14 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1466 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 1552 semantic_release via Jir\u030ci\u0301 Ota\u0301hal Automated version managment and generator of release notes. Provided actions Name Category Description conventional_changelog - Uses conventional commits. It groups commits by their types and generates release notes in markdown or slack format. analyze_commits - Finds a tag of last release and determinates version of next release Score details Metric Points Description contributors 36 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 108 More stars = more popular project forks 130 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1081 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 1532 dropbox via Dominik Kapusta Uploads files to Dropbox Provided actions Name Category Description dropbox - Uploads files to Dropbox Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 3 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1369 More downloads = more users have been using the plugin for a while tests 30 The more tests a plugin has, the better Open on GitHub 1453 aws_device_farm via Helmut Januschka Run UI Tests on AWS Devicefarm Provided actions Name Category Description aws_device_farm - Upload the application to the AWS device farm aws_device_farm_package - Packages .app from deriveddata to an aws-compatible ipa Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 80 More stars = more popular project forks 170 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -5 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1091 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 1384 bundletool via Martin Gonzalez Extracts a universal apk from an .aab file Provided actions Name Category Description bundletool - Extracts an universal apk from an .aab file Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 14 More stars = more popular project forks 20 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1207 More downloads = more users have been using the plugin for a while tests 12 The more tests a plugin has, the better Open on GitHub 1380 update_provisioning_profile_specifier via Jordan Bondo Update the provisioning profile in the Xcode Project file for a specified target Provided actions Name Category Description update_provisioning_profile_specifier - Update the provisioning profile in the Xcode Project file for a specified target Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 20 More stars = more popular project forks 30 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1216 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 1332 cordova via Almouro Build your Cordova app Provided actions Name Category Description cordova building Build your Cordova app Score details Metric Points Description contributors 78 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 108 More stars = more popular project forks 160 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -19 Lots of open issues are not a good sign usually, unless the project is really popular downloads 856 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 1313 xchtmlreport via Titouan Van Belle Plugin for XCHTMLReport Provided actions Name Category Description xchtmlreport - Xcode-like HTML report for Unit and UI Tests Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1219 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 1311 automated_test_emulator_run via Kamil Krzyk Starts n AVDs based on JSON file config. AVDs are created and configured according to user liking before instrumentation test process (started either via shell command or gradle) and killed/deleted after test process finishes. Provided actions Name Category Description automated_test_emulator_run - Starts AVD, based on AVD_setup.json file, before test launch and kills it after testing is done. Score details Metric Points Description contributors 30 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 75 More stars = more popular project forks 85 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -5 Lots of open issues are not a good sign usually, unless the project is really popular downloads 983 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 1225 increment_version_name via fierysolid Increment the version name of your android project. Provided actions Name Category Description increment_version_name project Increment the version name of your android project. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1143 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 1217 commit_android_version_bump via jems This Android plugins allow you to commit every modification done in your build.gradle file during the execution of a lane. In fast, it do the same as the commit_version_bump action, but for Android Provided actions Name Category Description commit_android_version_bump - This Android plugins allow you to commit every modification done in your build.gradle file during the execution of a lane. In fast, it do the same as the commit_version_bump action, but for Android Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 20 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1103 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 1205 update_android_strings via bang Update Android res strings.xml Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1185 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 1174 synx via Afonso Gra\u00e7a Organise your Xcode project folder to match your Xcode groups. Provided actions Name Category Description synx - Organise your Xcode project folder to match your Xcode groups. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 26 More stars = more popular project forks 20 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1043 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 1170 lizard via Moses Liao Run swift code complexity analytics using Lizard Provided actions Name Category Description lizard - Run lizard code cyclomatic complexity analysis. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 19 More stars = more popular project forks 55 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 882 More downloads = more users have been using the plugin for a while tests 72 The more tests a plugin has, the better Open on GitHub 1142 tpa via The Perfect App TPA gives you advanced user behaviour analytics, app distribution, crash analytics and more Provided actions Name Category Description upload_to_tpa beta Upload app builds to The Perfect App (tpa.io) upload_symbols_to_tpa misc Upload dsym files downloaded from App Store Connect directly to TPA Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 9 More stars = more popular project forks 35 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 876 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 1099 xcake via James Campbell Create your Xcode projects automatically using a stupid simple DSL. Provided actions Name Category Description xcake - Runs `xcake` for the project Score details Metric Points Description contributors 114 The more contributors a project has, the more likely it is it stays alive subscribers 48 More subscribers = more popular project stars 464 More stars = more popular project forks 190 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 35 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -5 Lots of open issues are not a good sign usually, unless the project is really popular downloads 103 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 1059 teams via Morten B\u00f8gh Send a success/error message to your Microsoft Teams channel Provided actions Name Category Description teams notifications Send a message to your Microsoft Teams channel via the webhook connector Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 6 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 943 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 990 brew via Michael Ruhl Run Homebrew/Linuxbrew command Provided actions Name Category Description brew - Run Homebrew/Linuxbrew command Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 36 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 847 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 951 update_xcodeproj via Fumiya Nakamura Update Xcode projects Provided actions Name Category Description update_xcodeproj - Update Xcode projects Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 6 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 778 More downloads = more users have been using the plugin for a while tests 12 The more tests a plugin has, the better Open on GitHub 941 firebase_test_lab via Shihua Zheng Test your app with Firebase Test Lab with ease using fastlane Provided actions Name Category Description firebase_test_lab_ios_xctest - Submit an iOS XCTest job to Firebase Test Lab Score details Metric Points Description contributors 42 The more contributors a project has, the more likely it is it stays alive subscribers 39 More subscribers = more popular project stars 54 More stars = more popular project forks 105 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -8 Lots of open issues are not a good sign usually, unless the project is really popular downloads 591 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 941 download_github_release_asset via Anton Domashnev This action downloads a GitHub release's asset using the GitHub API and puts it in a destination path.\\nIf the file has been previously downloaded, it will be overrided. Provided actions Name Category Description download_github_release_asset - Downloads a GitHub release's asset Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 795 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 875 run_tests_firebase_testlab via Bruno Correia Runs Android tests in Firebase Test Lab. Provided actions Name Category Description run_tests_firebase_testlab - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 25 More stars = more popular project forks 40 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 633 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 862 carthage_cache via Thi Doan A Fastlane plugin that allows to cache Carthage/Build folder in Amazon S3. Provided actions Name Category Description carthage_cache_install - Download Carthage cache from Amazon S3 carthage_cache_publish - Upload Carthage cache to Amazon S3 carthage_cache_exist - Check if Carthage cache exists for Cartfile.resolved in Amazon S3 Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 10 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 736 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 856 xcodegen via Michael Ruhl Run xcodegen for the project Provided actions Name Category Description xcodegen - Runs `xcodegen` for the project Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 17 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 629 More downloads = more users have been using the plugin for a while tests 36 The more tests a plugin has, the better Open on GitHub 830 setup_fragile_tests_for_rescan via Lyndsey Ferguson Suppress stabile tests so that 'scan' can run the fragile tests again Provided actions Name Category Description setup_fragile_tests_for_rescan deprecated Suppress stabile tests so that 'scan' can run the fragile tests again Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 6 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 654 More downloads = more users have been using the plugin for a while tests 36 The more tests a plugin has, the better Open on GitHub 799 properties via Pavlo Pakholka Adds 4 actions to fastlane to read and update properties files. Provided actions Name Category Description increment_version_name_in_properties_file - Sets a value of a setting in .properties file. set_properties_value - Sets a value of a setting in .properties file. get_properties_value - Reads a value of a setting from .properties file. write_properties_file - Write any Hash-like structure as a properties file. This action won't create a new file. parse_properties_file - Load .properties file and returns it as a ruby hash-map. increment_version_code_in_properties_file - Increase version code inside .properties file. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 667 More downloads = more users have been using the plugin for a while tests 15 The more tests a plugin has, the better Open on GitHub 786 huawei_appgallery_connect via Shreejan Shrestha Huawei AppGallery Connect Plugin Provided actions Name Category Description huawei_appgallery_connect_submit_for_review - Huawei AppGallery Connect Plugin huawei_appgallery_connect - Huawei AppGallery Connect Plugin huawei_appgallery_connect_get_app_info - Huawei AppGallery Connect Plugin Score details Metric Points Description contributors 36 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 34 More stars = more popular project forks 50 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 549 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 786 android_change_package_identifier via MaximusMcCann Change the package identifier in the AndroidManifest.xml file. Can revert as well. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 766 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 760 settings_bundle via Jimmy Dee Fastlane plugin to update static settings in an iOS settings bundle Provided actions Name Category Description update_settings_bundle project actions. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 20 More stars = more popular project forks 40 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 486 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 734 property_file_read via United Classifieds Reads property file into dictionary Provided actions Name Category Description property_file_read - Reads property file into dictionary Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 625 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 708 prepare_build_resources via Jakob Jensen Prepares certificates and provisioning profiles for building and removes them afterwards. Provided actions Name Category Description prepare_build_resources - Prepares certificates and provisioning profiles for building and removes them afterwards. Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 6 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license -50 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 601 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 681 diawi via pacification Upload .ipa or .apk file to diawi.com Provided actions Name Category Description diawi - Upload .ipa/.apk file to diawi.com Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 32 More stars = more popular project forks 25 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 489 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 662 act via Richard Szalay Applies changes to plists and app icons inside a compiled IPA or xcarchive Provided actions Name Category Description act - Reconfigures .plists and icons inside a compiled IPA Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 20 More stars = more popular project forks 30 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 402 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 661 merge_junit_report via Derek Yang Merges multiple junit reports into one Provided actions Name Category Description merge_junit_report - Provides the ability to merge multiple junit reports into one Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 516 More downloads = more users have been using the plugin for a while tests 30 The more tests a plugin has, the better Open on GitHub 659 json via Martin Gonzalez actions related to json files Provided actions Name Category Description write_json - Write a json file from a hash at the provided path download_json - Downloads a json file and expose a hash with symbolized names as result merge_jsons - Merge a group of jsons files and expose a hash with symbolized names as result. Last json predominate over the rest read_json - Read a json file and expose a hash with symbolized names as result Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 504 More downloads = more users have been using the plugin for a while tests 45 The more tests a plugin has, the better Open on GitHub 658 google_drive via Bumsoo Kim Upload files to Google Drive Provided actions Name Category Description update_google_drive_file - Update a Google Drive file upload_to_google_drive - Upload files to Google Drive create_google_drive_folder - Create new folder on Google Drive Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 42 More stars = more popular project forks 50 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 399 More downloads = more users have been using the plugin for a while tests 57 The more tests a plugin has, the better Open on GitHub 604 codecov_reporter via BinaryBeard Uploads coverage report to Codecov.io Provided actions Name Category Description codecov_reporter - Uploads coverage report to Codecov.io Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 5 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 472 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 603 ionic via Jan Piotrowski Build your Ionic app Provided actions Name Category Description ionic building Build your Ionic app Score details Metric Points Description contributors 72 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 41 More stars = more popular project forks 55 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -23 Lots of open issues are not a good sign usually, unless the project is really popular downloads 345 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 602 upload_symbols_to_new_relic via Helmut Januschka Uploads dSym to New Relic Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 582 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 588 mango via Serghei Moret, Daniel Hartwich This plugin orchtestrates Android tasks on docker images Provided actions Name Category Description run_dockerized_task - Action that runs Android tasks on a specified Docker image Score details Metric Points Description contributors 30 The more contributors a project has, the more likely it is it stays alive subscribers 69 More subscribers = more popular project stars 48 More stars = more popular project forks 35 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 208 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 581 download_file via Massimo Oliviero This action downloads a file from an HTTP/HTTPS url (e.g. ZIP file) and puts it in a destination path Provided actions Name Category Description download_file - - Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 430 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 580 git_tags via Fernando Saragoca List git tags sorted by taggerdate Provided actions Name Category Description git_tags source_control List git tags Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 467 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 574 unzip via Massimo Oliviero Extract compressed files in a ZIP Provided actions Name Category Description unzip - Extract compressed files in a ZIP Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 429 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 565 simctl via Renzo Crisostomo Fastlane plugin to interact with xcrun simctl Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 545 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 560 danger-device_grid via Felix Krause, Boris Bu\u0308gling Danger plugin for the fastlane device grid. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 5 More stars = more popular project forks 20 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 407 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 545 semantic_release2 via William Lauze Fork for: Automated version managment and generator of release notes. Provided actions Name Category Description conventional_changelog - Uses conventional commits. It groups commits by their types and generates release notes in markdown or slack format. analyze_commits - Finds a tag of last release and determinates version of next release Score details Metric Points Description contributors 30 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 83 More stars = more popular project forks 120 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 113 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 529 mobile_center via Microsoft Corporation Fastlane plugin for Mobile Center Provided actions Name Category Description appcenter_upload - Distribute new release to App Center Score details Metric Points Description contributors 42 The more contributors a project has, the more likely it is it stays alive subscribers 33 More subscribers = more popular project stars 47 More stars = more popular project forks 45 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -11 Lots of open issues are not a good sign usually, unless the project is really popular downloads 197 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 483 remove_provisioning_profile via Anton Domashnev Remove provision profile from your local machine Provided actions Name Category Description remove_provisioning_profile - Remove the provisioning profile for the given app_identifier and type from local machine Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 7 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 258 More downloads = more users have been using the plugin for a while tests 60 The more tests a plugin has, the better Open on GitHub 467 jira_release_notes via Alexander Ignition Release notes from JIRA for version Provided actions Name Category Description jira_release_notes - Jira release notes Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 12 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 299 More downloads = more users have been using the plugin for a while tests 36 The more tests a plugin has, the better Open on GitHub 463 ruby via Felix Krause Useful fastlane actions for Ruby projects Provided actions Name Category Description rubocop - Runs the code style checks rspec - Run tests using rspec Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 4 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 32 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 335 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 463 gradle_properties via Ryo Sakaguchi Read properties in your Fastfile easily Provided actions Name Category Description gradle_properties - Read properties in your Fastfile easily Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 395 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 459 android_emulator via Michael Ruhl Creates and starts an Android Emulator (AVD) Provided actions Name Category Description android_emulator - Creates and starts an Android Emulator (AVD) Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 7 More stars = more popular project forks 60 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 240 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 456 flutter via Artem Sheremet Flutter actions plugin for Fastlane Provided actions Name Category Description flutter_bootstrap - Flutter SDK installation, upgrade and application bootstrap flutter - Run \"flutter\" binary with the specified arguments flutter_build building Run \"flutter build\" to build a Flutter application flutter_generate - (1) Run `flutter packages get`; (2) Run `build_runner build` if build_runner is in dev_dependencies; (3) According to `package:intl`, take `$strings_file` and generate `${strings_file.dirname}/arb/intl_messages.arb`, then take all files matching `${strings_file.dirname}/intl_*.arb`, fix them and generate .dart files from them. (4) Generate an empty test importing all files, which would be used to calculate correct full coverage numbers. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 20 More stars = more popular project forks 25 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 268 More downloads = more users have been using the plugin for a while tests 42 The more tests a plugin has, the better Open on GitHub 454 firebase_test_lab_android via wasabeef Test your app with Firebase Test Lab with ease using fastlane Provided actions Name Category Description firebase_test_lab_android - Runs Android tests in Firebase Test Lab. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 51 More subscribers = more popular project stars 25 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 247 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 451 google_cloud_storage via Fernando Saragoca Google Cloud Storage Provided actions Name Category Description google_cloud_storage_check_file - Check if file exists in Google Cloud Storage google_cloud_storage_download - Download a file from Google Cloud Storage google_cloud_storage_upload - Upload a file to Google Cloud Storage Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 348 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 445 upgrade_super_old_xcode_project via Jan Piotrowski Upgrades super old Xcode projects to Xcode 8 Provided actions Name Category Description upgrade_super_old_xcode_project - Upgrades super old Xcode projects to Xcode 8 Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 328 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 444 clean_testflight_testers via Felix Krause Automatically remove TestFlight testers that are not actually testing your app Provided actions Name Category Description clean_testflight_testers - Automatically remove TestFlight testers that are not actually testing your app Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 26 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 287 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 435 pgyer via rexshi distribute app to pgyer beta testing service Provided actions Name Category Description pgyer - distribute app to pgyer beta testing service Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 22 More stars = more popular project forks 35 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 274 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 433 cryptex via Helmut Januschka fastlane Crypt Store Git repo Provided actions Name Category Description cryptex - Secure Git-Backed Storage cryptex_generate_keystore - Generate a new Android Keystore Score details Metric Points Description contributors 36 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 26 More stars = more popular project forks 55 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 206 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 417 instabug_official via Instabug Plugin to upload DSYMs to Instabug Dashboard. Provided actions Name Category Description instabug_official - - Score details Metric Points Description contributors 48 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 4 More stars = more popular project forks 25 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 235 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 408 notarize via Zeplin, Inc. fastlane plugin to notarize a macOS app Provided actions Name Category Description notarize deprecated Notarizes a macOS app Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 60 More subscribers = more popular project stars 64 More stars = more popular project forks 35 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 136 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 404 icon_versioning via Iulian Onofrei Overlay build information on top of your app icon Provided actions Name Category Description version_icon - Overlay build information on top of your app icon. Based on original work by Krzysztof Zab\u0142ocki (https://github.com/krzysztofzablocki/Bootstrap). Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 48 More stars = more popular project forks 20 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 115 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 394 onesky via Daniel Kiedrowski Helps to update the translations of your app using the OneSky service. Provided actions Name Category Description onesky_upload - Upload a strings file to OneSky onesky_download - Download a translation file from OneSky Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 15 More stars = more popular project forks 65 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 201 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 385 code_push via Manuel Koch CodePush functionality for fastlane Provided actions Name Category Description code_push_promote - CodePush promote code_push_login - CodePush login with accessKey code_push_release_react - CodePush release-react functionality for fastlane code_push_release_cordova - CodePush release-cordova functionality for fastlane Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 23 More stars = more popular project forks 25 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 217 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 384 jira_versions via Sandy Chapman Manage your JIRA project's releases/versions with this plugin. Provided actions Name Category Description release_jira_version - Releases a version in your JIRA project create_jira_version - Creates a new version in your JIRA project get_jira_versions - Gets a list of all versions for a JIRA project Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 14 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 240 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 380 flutter_version via tianhaoz95 A plugin to retrieve versioning information for Flutter projects. Provided actions Name Category Description flutter_version - A plugin to retrieve versioning information for Flutter projects. Score details Metric Points Description contributors 36 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 44 More stars = more popular project forks 65 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 86 More downloads = more users have been using the plugin for a while tests 39 The more tests a plugin has, the better Open on GitHub 368 retry via gmgchow Retries failed XCUITest test cases Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 318 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 365 tunes via Boris Bu\u0308gling Play music using fastlane, because you can. Provided actions Name Category Description tunes - Play music using fastlane, because you can Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 8 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 229 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 355 s3_actions via Fernando Saragoca Download and upload files to AWS S3 Provided actions Name Category Description s3_download - Download a file from AWS S3 s3_check_file - Check if file exists in AWS S3 s3_upload - Upload a file to AWS S3 Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 241 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 351 dynatrace via Dynatrace LLC This action processes and uploads your symbol files to Dynatrace Provided actions Name Category Description dynatrace_process_symbols - This action processes and uploads your symbol files to Dynatrace. Score details Metric Points Description contributors 30 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 9 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 93 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 350 gs_deliver via \u0421\u0435\u0440\u0433\u0435\u0438\u0306 \u0412\u0435\u0441\u0435\u043b\u043e\u0432\u0441\u043a\u0438\u0438\u0306 Gradoservice plugin to rule apps releases Provided actions Name Category Description gs_move_to_ready_for_sale - Gradoservice plugin to rule apps releases gs_remove_from_testflight_review - Gradoservice plugin to rule apps releases gs_get_release_notes - Gradoservice plugin to rule apps releases gs_get_app_status - Gradoservice plugin to rule apps releases gs_move_rc_to_beta_review - Gradoservice plugin to rule apps releases gs_start_external_testing - Gradoservice plugin to rule apps releases gs_reject_latest_version - Gradoservice plugin to rule apps releases gs_execute_command - Gradoservice plugin to rule apps releases Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 270 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 348 rocket_chat via Thiago Felix Send message to Rocket.Chat right from fastlane Provided actions Name Category Description rocket_chat - Send a success/error message to your RocketChat group Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 6 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 234 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 346 wpmreleasetoolkit via Lorenzo Mattei GitHub helper functions Score details Metric Points Description contributors 54 The more contributors a project has, the more likely it is it stays alive subscribers 54 More subscribers = more popular project stars 21 More stars = more popular project forks 30 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 19 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -28 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 343 patch via Jimmy Dee Apply and revert pattern-based patches to any text file. Provided actions Name Category Description apply_patch deprecated Apply pattern-based patches to any text file. revert_patch deprecated Revert the action of apply_patch patch project Apply pattern-based patches to any text file. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 25 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 173 More downloads = more users have been using the plugin for a while tests 60 The more tests a plugin has, the better Open on GitHub 335 lokalise via Abbas Jaffery Sync metadata with Lokalise Provided actions Name Category Description add_keys_to_lokalise - Add keys to lokalise lokalise - Download Lokalise localization lokalise_metadata - Upload metadata to lokalise. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 213 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 331 android_change_string_app_name via MaximusMcCann Change the app_name in the strings.xml file & revert method Provided actions Name Category Description android_change_string_app_name - Change the app_name in the strings.xml file & revert method android_change_string_app_name_revert - Revert strings.xml app_name using ANDROID_CHANGE_STRING_APP_NAME_ORIGINAL_NAME Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 234 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 329 xcode_log_parser via KrauseFx Convert the Xcode plist log to a JUnit report Provided actions Name Category Description trainer - Convert the Xcode plist log to a JUnit report. This will raise an exception if the tests failed Score details Metric Points Description contributors 30 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 102 More stars = more popular project forks 60 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -5 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 24 The more tests a plugin has, the better Open on GitHub 327 waldo via J. G. Pusey Upload build to Waldo Provided actions Name Category Description waldo testing Upload a new build to [Waldo](https://www.waldo.io) Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 5 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 157 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 325 pretty_junit via GaryJohnson Pretty JUnit test results for your Android projects. Provided actions Name Category Description pretty_junit - Pretty JUnit test results for your Android projects. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 219 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 305 get_product_bundle_id via Lyndsey Ferguson Gets PRODUCT_BUNDLE_IDENTIFIER from the first buildable target in a given scheme Provided actions Name Category Description get_product_bundle_id - Gets PRODUCT_BUNDLE_IDENTIFIER from a buildable target in an Xcode project using a provided scheme Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 6 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 176 More downloads = more users have been using the plugin for a while tests 27 The more tests a plugin has, the better Open on GitHub 304 gmail via Alexander Ignition send mail from gmail Provided actions Name Category Description gmail - A short description with < = 80 characters of what this action does Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 7 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 166 More downloads = more users have been using the plugin for a while tests 18 The more tests a plugin has, the better Open on GitHub 303 clubmate via KrauseFx Print the Club Mate logo in your build output Provided actions Name Category Description clubmate - Print a Club Mate in your build output Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 8 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 32 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 166 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 300 latest_hockeyapp_version_number via Travis Palmer Easily fetch the most recent HockeyApp version number for your app Provided actions Name Category Description latest_hockeyapp_version_number - Easily fetch the most recent HockeyApp version number for your app Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 6 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 172 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 298 jira_set_fix_version via Tommy Sadiq Hinrichsen Tags all Jira issues mentioned in git changelog with with a fix version from parameter :name Provided actions Name Category Description jira_set_fix_version - Tags all Jira issues mentioned in git changelog with with a fix version from parameter :name Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 3 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 152 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 297 cerberus via Harry Singh Cerberus is a fastlane plugin for extracting Jira issues from commit messages and sharing information on its respective Jenkins job and HockeyApp upload. Provided actions Name Category Description find_commits - Extracts additional issues from the log jira_comment - This action adds comments on Jira issues with the current build number and url of that build find_tickets - Extracts the Jira issue keys between commits release_notes - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 57 More subscribers = more popular project stars 6 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 101 More downloads = more users have been using the plugin for a while tests 30 The more tests a plugin has, the better Open on GitHub 297 ci_changelog via icyleaf Automate generate changelog between previous build failed and the latest commit of scm in CI Provided actions Name Category Description ci_changelog - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 6 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 100 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 297 google_sheet_localize via Mario Hahn Creates .strings files for iOS and strings.xml files for Android Provided actions Name Category Description google_sheet_localize - Creates .strings files for iOS and strings.xml files for Android Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 16 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -5 Lots of open issues are not a good sign usually, unless the project is really popular downloads 168 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 296 applivery via Alejandro Jimenez Upload new build to Applivery Provided actions Name Category Description applivery beta Upload new iOS or Android build to Applivery Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 12 More stars = more popular project forks 20 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 121 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 296 gs_project_flow_ios via \u0421\u0435\u0440\u0433\u0435\u0438\u0306 \u0412\u0435\u0441\u0435\u043b\u043e\u0432\u0441\u043a\u0438\u0438\u0306 Plugin contains project flow code for code sharing between projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 276 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 294 cosigner via Andr\u00e9 Pacheco Neves, Lu\u00eds Portela Afonso A fastlane plugin to help you sign your iOS builds Provided actions Name Category Description cosigner - A fastlane plugin to help you sign your iOS builds Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 39 More subscribers = more popular project stars 21 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 90 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 289 versioning_ios via Igor Lamo\u0161 iOS Versioning Plugin for Fastlane Provided actions Name Category Description ios_set_build_number - Set the Build Number of your iOS project ios_get_build_number - Get the Build Number of your iOS project ios_set_version - Set the Version of your iOS project ios_get_version - Get the Version of your iOS project Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 158 More downloads = more users have been using the plugin for a while tests 51 The more tests a plugin has, the better Open on GitHub 280 uninow-sentry via Tom Krusch Upload symbols to Sentry Provided actions Name Category Description sentry_upload_sourcemap - Upload a sourcemap to a release of a project on Sentry sentry_finalize_release - Finalize a release for a project on Sentry sentry_create_release - Create new releases for a project on Sentry sentry_upload_file - Upload files to a release of a project on Sentry sentry_upload_dsym - Upload dSYM symbolication files to Sentry sentry_set_commits - Set commits of a release sentry_upload_proguard - Upload mapping to a project on Sentry Score details Metric Points Description contributors 66 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 279 framer via DrAL3X Create images combining app screenshots with templates to make nice pictures for the App Store Provided actions Name Category Description framer - Create images combining app screenshots to templates to make a nice \\'screenshot\\' to upload in App Store and Google Play Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 31 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 51 The more tests a plugin has, the better Open on GitHub 279 changelog_generator via Fernando Saragoca Changelog generation based on merged pull requests & tags Provided actions Name Category Description generate_changelog - Changelog generation based on merged pull requests & tags generate_release_changelog - Changelog generation based on merged pull requests & tags, filtered by one or two tags Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 8 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 158 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 278 branch via Branch, Jimmy Dee Adds Branch keys, custom URI schemes and domains to iOS and Android projects. Validates the Universal Link configuration for any Xcode project. Provided actions Name Category Description update_action_docs - Generate a standard action page for each action update_readme - Update the contents of the README in this repo branch_report project Generate a brief summary or a full build report for your project. setup_branch project configuration for Xcode projects. validate_universal_links project Validates Universal Link configuration for an Xcode project. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 24 More subscribers = more popular project stars 8 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 59 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 272 get_unprovisioned_devices_from_hockey via GaryJohnson Retrieves a list of unprovisioned devices from Hockey which can be passed directly into register_devices. Provided actions Name Category Description get_unprovisioned_devices_from_hockey - Retrieves a list of unprovisioned devices from Hockey which can be passed directly into register_devices. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 24 More subscribers = more popular project stars 6 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 117 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 272 airwatch_workspaceone via Ram Awadhesh Sharan The main purpose of this plugin is to upload an IPA or an APK file to an AirWatch or Workspace ONE enterprise instance/console. Provided actions Name Category Description add_or_update_assignments - The main purpose of this action is to add a new smart group assignment to an application or to update an existing smart group assignment of an application with a given dictionary of deployment/assignment parameters. If a smart group name is provided which does not exist yet on Console, assignment for that smart group is ignored. unretire_specific_version - The main purpose of this action is to unretire a specific version of an application. This action takes a string parameter where you can specify the version number to unretire. retire_previous_versions - The main purpose of this action is to retire previous active versions of an application. This action takes a string parameter where you can specify the number of latest versions to keep if you do not want to retire all the previous active versions. delete_specific_version - The main purpose of this action is to delete a specific version of an application. This action takes a string parameter where you can specify the version number to delete. latest_version - The main purpose of this action is to find the version number of the latest version of the app on the console and output the same. It also finds and outputs arrays of active app version numbers and retired app version numbers of the app. deploy_build - The main purpose of this action is to upload an IPA or an APK file to an AirWatch or Workspace ONE enterprise console. delete_previous_versions - The main purpose of this action is to delete versions of an application. This action takes a string parameter where you can specify the number of latest versions to keep if you do not want to delete all the versions. retire_specific_version - The main purpose of this action is to retire a specific version of an application. This action takes a string parameter where you can specify the version number to retire. unretire_all_versions - The main purpose of this action is to unretire all retired versions of an application. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 6 More stars = more popular project forks 25 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 13 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 119 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 267 latest_hockey_build_number via Sergii Stotskyi, Kirill Pahnev Gets latest version number of the app with the bundle id from HockeyApp Provided actions Name Category Description latest_hockey_build_number - Gets latest version number of the app with the bundle id from HockeyApp Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 146 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 266 android_sdk_update via Philipp Burgk, Michael Ruhl Install required Android-SDK packages Provided actions Name Category Description android_sdk_update - Install and update required Android-SDK packages Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 33 More subscribers = more popular project stars 10 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 74 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 264 telegram via sergpetrov Allows post messages to telegram channel Provided actions Name Category Description telegram - Allows post messages to telegram channel Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 10 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 167 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 262 swiftlint_codequality via Mads B\u00f8geskov Converts SwiftLint reports into GitLab support CodeQuality reports Provided actions Name Category Description swiftlint_codequality - Converts SwiftLint reports into GitLab support CodeQuality reports Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 144 More downloads = more users have been using the plugin for a while tests 24 The more tests a plugin has, the better Open on GitHub 257 sharethemeal via Helmut Januschka ShareTheMeal Provided actions Name Category Description sharethemeal - Donate food via ShareTheMeal Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 7 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 116 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 252 github_job_status via Justin Singer Post the status of your test jobs to your pull requests Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 220 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 250 polidea via Piotrek Dubiel Polidea's fastlane action Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 200 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 249 icon_banner via E\u0301mile Be\u0301lair IconBanner adds custom nice-looking banners over your mobile app icons Provided actions Name Category Description icon_banner_restore - Restores the original app icons (can be used after build to clean up the repository) icon_banner - Adds custom nice-looking banners over your mobile app icons Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 155 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 248 souyuz via Felix Rudat A fastlane component to make Xamarin builds a breeze Provided actions Name Category Description app_version - Easily set or print app version with `app_version` souyuz - Easily build and sign your app using `souyuz` Score details Metric Points Description contributors 24 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 32 More stars = more popular project forks 35 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 32 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 74 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 247 semaphore via Dmitry Bespalov Semaphore CI integration Provided actions Name Category Description setup_semaphore - Semaphore CI integration Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 132 More downloads = more users have been using the plugin for a while tests 21 The more tests a plugin has, the better Open on GitHub 245 ftp via Allan Vialatte Simple ftp upload and download for Fastlane Provided actions Name Category Description ftp - Upload and Download files via FTP Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 27 More stars = more popular project forks 50 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 61 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 243 firebase_management via Ackee Unofficial tool to access Firebase project settings Provided actions Name Category Description firebase_management_add_app - Add new app to Firebase project firebase_management_list - List all Firebase projects and their apps firebase_management_download_config - Download configuration file for Firebase app Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 8 More stars = more popular project forks 25 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 66 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 243 slack_train via Felix Krause Show a train of the fastlane progress Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 223 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 241 giffy via SiarheiFiedartsou Fastlane plugin for Giffy.com API Provided actions Name Category Description giffy_random_sticker_url - Allows to obtain URL to some random GIF sticker from Giffy.com giffy_random_gif_url - Allows to obtain URL to some random funny GIF from Giffy.com Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 5 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 104 More downloads = more users have been using the plugin for a while tests 12 The more tests a plugin has, the better Open on GitHub 240 create_xcframework via Boris Bielik, Alexey Alter-Pesotskiy Fastlane plugin that creates xcframework for given list of destinations. Provided actions Name Category Description create_xcframework building Fastlane plugin that creates xcframework for given list of destinations. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 11 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 109 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 239 fir_cli via atpking upload ipa or apk to fir.im Provided actions Name Category Description fir_cli - invoke fir-cli from fastlane plugin directly. \\nfir-cli: https://github.com/FIRHQ/fir-cli Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 27 More stars = more popular project forks 20 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 73 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 238 slack_bot via Manish Rathi A fastlane plugin to post slack message using bot api token. \ud83d\ude80 Provided actions Name Category Description file_upload_to_slack - Upload a file to slack channel post_to_slack - Post a slack message fetch_files_slack - List files of any #channel using Slack bot `files.list` api. update_slack_message - Update a slack message using time-stamp(ts) value Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 7 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 108 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 238 bugsee via Dmitry Fink Bugsee symbols uploader Provided actions Name Category Description upload_symbols_to_bugsee - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 103 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 237 automated_test_emulator_run_xing via Daniel Hartwich Starts n AVDs based on JSON file config. AVDs are created and configured according to user liking before instrumentation test process (started either via shell command or gradle) and killed/deleted after test process finishes. Provided actions Name Category Description automated_test_emulator_run_xing - Starts AVD, based on AVD_setup.json file, before test launch and kills it after testing is done. Score details Metric Points Description contributors 36 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 0 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 59 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 237 upload_folder_to_s3 via teriiehina Upload a folder to S3 Provided actions Name Category Description upload_folder_to_s3 - Upload a folder to S3 Score details Metric Points Description contributors 30 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 7 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 32 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 67 More downloads = more users have been using the plugin for a while tests 18 The more tests a plugin has, the better Open on GitHub 233 instrumented_tests via Silviu Paragina New action to run instrumented tests for android. This plugin creates and boots an emulator before running a gradle command so that you can run instrumented tests against that emulator. After the gradle command is executed, the avd gets shut down and deleted. This is really helpful on CI services, keeping them clean and always having a fresh avd for testing. Provided actions Name Category Description instrumented_tests - Run android instrumented tests via a gradle command againts a newly created avd Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 14 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 95 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 233 xcconfig_actions via Maksym Grebenets Adds actions to fastlane to work with xcconfig files Provided actions Name Category Description build_settings_to_flags building Map xcconfig build settings to compiler and linker build flags read_xcconfig building Read and resolve contents of xcconfig file and return as JSON validate_xcconfig linting Validate xcconfig file Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 6 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 232 jira_transition via Valerio Mazzeo Apply a JIRA transition to issues mentioned in the changelog Provided actions Name Category Description jira_transition - Apply a JIRA transition to issues mentioned in the changelog Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 12 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 129 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 228 forsis via Azadeh Bagheri This plugin produces generic test execution reports supported by SonarQube from JUnit test reports generated by fastlane. Provided actions Name Category Description forsis - This plugin produces generic test execution reports supported by SonarQube from JUnit test reports generated by fastlane Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 11 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 85 More downloads = more users have been using the plugin for a while tests 24 The more tests a plugin has, the better Open on GitHub 228 blackberry_mam via Lyndsey Ferguson A fastlane plugin that works with Blackberry Dynamics (formerly Good Dynamics) provides Mobile Application Management Provided actions Name Category Description update_info_plist_for_blackberry_mam - updates the plist so that the built application can be deployed and managed within BlackBerry's Good Dynamics Control Center for Enterprise Mobility Management. blackberry_mam_network_check - Checks to see if the required network ports for BlackBerry Dynamics are open on the network blackberry_mam_version - Checks the version of the installed Good framework Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 227 latest_appcenter_build_number via Jack Spargo Use AppCenter API to get the latest version and build number for an App Center app Provided actions Name Category Description latest_appcenter_build_number - Gets latest version number of the app from AppCenter Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 48 More downloads = more users have been using the plugin for a while tests 48 The more tests a plugin has, the better Open on GitHub 224 uninow_sentry via Tom Krusch Upload symbols to Sentry Provided actions Name Category Description sentry_upload_sourcemap - Upload a sourcemap to a release of a project on Sentry sentry_finalize_release - Finalize a release for a project on Sentry sentry_create_release - Create new releases for a project on Sentry sentry_upload_file - Upload files to a release of a project on Sentry sentry_upload_dsym - Upload dSYM symbolication files to Sentry sentry_set_commits - Set commits of a release sentry_upload_proguard - Upload mapping to a project on Sentry Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 223 hours via Rishabh Tayal Record total time saved by fastlane Provided actions Name Category Description hours - Record total time saved by fastlane Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 85 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 220 jira_issue_details via Zaim Ramlan Get the details for the given jira issue key(s) Provided actions Name Category Description get_jira_issue - Get the details for the given jira issue key(s). Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 110 More downloads = more users have been using the plugin for a while tests 21 The more tests a plugin has, the better Open on GitHub 220 sftp via Oliver Limberg Plugin to upload files via SFTP Provided actions Name Category Description sftp_download misc download files from a remote Server via SFTP sftp_upload misc upload files to a remote Server via SFTP Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 63 The more tests a plugin has, the better Open on GitHub 220 app_info via icyleaf Teardown tool for mobile app(ipa/apk), analysis metedata like version, name, icon etc. Provided actions Name Category Description app_info - Parse and dump mobile app(ipa/apk) metedata. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 68 More downloads = more users have been using the plugin for a while tests 39 The more tests a plugin has, the better Open on GitHub 220 git_info_extract via alexander sun Extract JIRA information from git merge Provided actions Name Category Description git_info_extract - Extract JIRA information from git merge Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 144 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 220 altool via Shashikant Jagtap Upload IPA to iTunes Connect using altool Provided actions Name Category Description altool - Upload IPA to iTunes Connect using altool Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 12 More stars = more popular project forks 30 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 48 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 219 codepush via Pranit Harekar Fastlane plugin for App Center CodePush actions \ud83d\ude80 Provided actions Name Category Description codepush_exists_deployment - CodePush check if deployment exists codepush_release_react - CodePush release-react action codepush_login - CodePush login action codepush_get_deployment_key - CodePush get deployment key given deployment name codepush_list_deployment - CodePush list deployment action codepush_remove_deployment - CodePush remove deployment action codepush_logout - CodePush logout action codepush_rename_deployment - CodePush rename deployment action codepush_add_deployment - CodePush add deployment action codepush_promote - CodePush promote action Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 10 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 100 More downloads = more users have been using the plugin for a while tests 18 The more tests a plugin has, the better Open on GitHub 219 localization via Viktor Malyi Export/import app localizations with help of xcodebuild -exportLocalizations/-importLocalizations tool Provided actions Name Category Description import_localizations - Import app localizations with help of xcodebuild -importLocalizations tool export_localizations - Export app localizations with help of xcodebuild -exportLocalizations tool Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 9 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 86 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 218 setup_app_feedback_sdk via Yahoo Japan Corporation Setup the Info.plist for App Feedback SDK Provided actions Name Category Description setup_app_feedback_sdk - Setup the Info.plist for App Feedback SDK Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 101 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 217 demo_mode via Florian Rauscha Sets your connected android devices to demo mode Provided actions Name Category Description demo_mode - Sets your device to demo mode Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 64 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 216 facelift via Richard Szalay Deprecated in favor of 'fastlane-plugin-act' Provided actions Name Category Description act - Reconfigures .plists and icons inside a compiled IPA Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 17 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 72 The more tests a plugin has, the better Open on GitHub 216 xamarin_build via punksta Build xamarin android\\ios projects Provided actions Name Category Description extract_certificate - Extract certificate public key from provision profile xamarin_update_configuration - Set properties of specific build configuration in Xamarin configuration file xamarin_build - Build xamarin android and ios projects Score details Metric Points Description contributors 24 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 7 More stars = more popular project forks 40 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 33 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 215 ciutils via Nicolae Ghimbovschi Various utilities for iOS CI Provided actions Name Category Description en_build_number - Get the value for build number from environment en_install_provisioning_profiles - Copies recursively all provisioning profiles from current folder to system Provisioning Profiles en_profile_name - A short description with < = 80 characters of what this action does en_remove_keychain - Removes the keychain setup by en_setup_keychain en_ci_utils_init - Sets env variables for gym, scan, swiftlint and lizard actions en_setup_project - Updates Xcode project, plist and entitlements file if config file is provided en_setup_keychain - Creates the keychain, and imports the provided certificate en_git_changelog - Creates a change log from git commits by filtering commits by a pattern (e.g. JIRA task prefix) en_close_simulator - Closes all simulator instances en_create_sonar_reports - Creates swiftlint, lizard and oclint reports and adjusts junit reports for sonarqube (with the open source swift/objc plugin) Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 5 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 102 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 213 msbuild via Jeff Ward Build a Xamarin.iOS or Xamarin.Android project using msbuild Provided actions Name Category Description msbuild - Build a Xamarin.iOS or Xamarin.Android project using msbuild assembly_info_poke_version - Set the version in an AssemblyInfo.cs file. Optionally only set the revision number nuget_pack - Package a nuspec nuspec_poke_version - Set the version in a Nuspec file. Optionally only set the revision number Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 27 More subscribers = more popular project stars 4 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 101 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 213 huawei_appgallery via Arne Kaiser Plugin to deploy an app to the Huawei AppGallery Provided actions Name Category Description huawei_appgallery - Plugin to deploy an app to the Huawei AppGallery Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 21 More stars = more popular project forks 55 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 211 android_version_manager via Jonathan Cardoso Machado Android's App Version Managment Provided actions Name Category Description android_base - - Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 3 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 26 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 211 git_status via Bruno Coelho Show the status of one or multiple files/directories Provided actions Name Category Description git_status - Show the status of one or multiple files/directories Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 95 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 211 find_replace_string via Jonathan Ritchie Find a string in a file and replace it with a new one. Provided actions Name Category Description find_replace_string - Find and replace a string in a project file Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 125 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 210 semantic_convention_release via Jir\u030ci\u0301 Ota\u0301hal, Sergio Fierro Automated version managment and generator of release notes. Provided actions Name Category Description conventional_changelog - Uses conventional commits. It groups commits by their types and generates release notes in markdown or slack format. analyze_commits - Finds a tag of last release and determinates version of next release Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 210 secret_keeper via Daniel Jankowski secret_keeper is a wrapped on keychain access. Provided actions Name Category Description remove_item_from_keychain - Removes the credentials from the keychain on behalf of the user add_item_to_keychain - Adds the credentials to the keychain on behalf of the user read_item_from_keychain - Reads the password from the keychain for a given item Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 87 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 207 ensure_xcode_build_version via Fumiya Nakamura Ensure Xcode Build Version for working with Beta, GM and Release Provided actions Name Category Description ensure_xcode_build_version - Ensure the selected Xcode Build version with xcode-select matches a value Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 51 More downloads = more users have been using the plugin for a while tests 15 The more tests a plugin has, the better Open on GitHub 206 aws_sns via Josh Holtz Creates AWS SNS platform applications Provided actions Name Category Description aws_sns - Creates AWS SNS platform applications Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 10 More stars = more popular project forks 35 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 80 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 206 semantic_release_workflow via Phong Nguyen Automated version managment, generator of release notes, create gitlab release then notify Provided actions Name Category Description conventional_changelog - Uses conventional commits. It groups commits by their types and generates release notes in markdown or slack format. create_release - Create Gitlab release analyze_commits - Finds a tag of last release and determinates version of next release Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 206 set_jira_fix_version via yuriy-tolstoguzov Adds fix version to specified JIRA issues. Creates version if needed Provided actions Name Category Description set_jira_fix_version misc Adds fix version to specified JIRA issues. Creates version if needed jira_issue_keys_from_changelog misc Gets list of JIRA issues kyes from git log starting from specified tag Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 86 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 206 instabug via Siarhei Fiedartsou Uploads dSYM to Instabug Provided actions Name Category Description instabug - - Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 64 More downloads = more users have been using the plugin for a while tests 21 The more tests a plugin has, the better Open on GitHub 205 jira_util via %q{Alexey Martynov} %q{Create JIRA issues and manage versions with this plugin} Provided actions Name Category Description release_jira_version - Releases a version in your JIRA project get_jira_release_report_link - Return link to JIRA release report. create_jira_issue - Creates a new issue in your JIRA project update_jira_version - Creates a new version in your JIRA project create_jira_version - Creates a new version in your JIRA project get_jira_version - Finds project version in your JIRA project by id or by name Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 99 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 204 google_chat via Narlei Am\u00e9rico Moreira Send messages to Google Chat Provided actions Name Category Description google_chat - Send messages to Google Chat Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 13 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 112 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 204 code_static_analyzer via Olga Kniazska Runs different Static Analyzers and generate report Provided actions Name Category Description ruby_analyzer - This analyzer detect warnings, errors and check syntax in ruby files. This is based on rubocop cpd_analyzer - This analyzer detect copy paste code (it uses PMD CPD) clang_analyzer - A short description with < = 80 characters of what this action does warning_analyzer - This analyzer detect warnings in Xcode projects. code_static_analyzer - - Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 5 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 89 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 202 android_versioning_kts via zmunm android versioning for gradle kotlin DSL Provided actions Name Category Description get_value_from_build - - increment_version_code - Increment the version code of your project set_value_in_build - Set the value of your project get_version_name - Get the version name of your project increment_version_name - Increment the version name of your project get_version_code - Get the version code of your project Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 57 More downloads = more users have been using the plugin for a while tests 66 The more tests a plugin has, the better Open on GitHub 201 simple_loco via Yves Delcoigne A simple implementation for exporting translations from Loco. Provided actions Name Category Description simple_loco - A simple implementation for exporting translations from Loco. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 70 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 199 xcov_report via Gianfranco Manganiello Generate custom HTML for coverage Provided actions Name Category Description xcov_report - Generate custom HTML for coverage Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 45 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 199 trigger_bitrise_build via Nick Hammond Trigger a Bitrise build from Fastlane Provided actions Name Category Description trigger_bitrise_build - Trigger a Bitrise build from Fastlane Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 53 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 198 get_android_version via MaximusMcCann gets the android versionName and versionCode from the AndroidManifest.xml file located in the provided apk Provided actions Name Category Description get_android_version - Gets the android versionName, versionCode and parsed appName (label) from AndroidManifest.xml file in provided apk Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 109 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 197 bitrise_automation via Mario Cecchi Trigger builds on Bitrise, check their status and download artifacts using Fastlane Provided actions Name Category Description bitrise_build_artifacts - Get the list or full contents of the artifacts produced by a build on Bitrise trigger_bitrise_workflow - Trigger a Bitrise workflow with the specified parameters, synchronously or asynchronously bitrise_build_status - Get the status of the Bitrise build Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 36 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license -50 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 74 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 196 automated_test_emulator_run_mik via Kamil Krzyk Starts n AVDs based on JSON file config. AVDs are created and configured according to user liking before instrumentation test process (started either via shell command or gradle) and killed/deleted after test process finishes. Provided actions Name Category Description automated_test_emulator_run - Starts AVD, based on AVD_setup.json file, before test launch and kills it after testing is done. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 59 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 196 transporter via Maksym Grebenets Manage Apple iTMSTransporter installation Provided actions Name Category Description configure_transporter - Configure Apple iTMSTransporter installation update_transporter_path - Configure Fastlane to use custom Transporter installation install_transporter - Install Apple iTMSTransporter Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 18 More downloads = more users have been using the plugin for a while tests 60 The more tests a plugin has, the better Open on GitHub 196 snapshot_test via Moyuru Aizawa Compare snapshots Provided actions Name Category Description take_screenshot - Take screenshots Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 60 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 38 More downloads = more users have been using the plugin for a while tests 12 The more tests a plugin has, the better Open on GitHub 193 poeditor_export via James Campbell Exports translations from POEditor.com Provided actions Name Category Description poeditor_export - Exports translations from POEditor.com Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 8 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 64 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 192 store_sizer via Marcelo Oliveira Estimates download and install sizes for your app, also checks if sizes fit the requirements Provided actions Name Category Description store_size_xcarchive_check - Checks if the size report fits the requirements store_size_xcarchive - Estimates download and install sizes for your app Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 11 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 25 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 32 More downloads = more users have been using the plugin for a while tests 39 The more tests a plugin has, the better Open on GitHub 192 perfecto via Perfecto This plugin allows you to automatically upload ipa/apk files to Perfecto for manual/automation testing Provided actions Name Category Description perfecto - This plugin allows you to automatically upload ipa/apk files to Perfecto for manual/automation testing Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 49 More downloads = more users have been using the plugin for a while tests 42 The more tests a plugin has, the better Open on GitHub 190 twine via Jonas Rottmann A fastlane plugin providing actions related to twine Provided actions Name Category Description twine_generate building Generates all localization files specified by the configuration file twine_check building Checks the source twine file against the localization file to make sure they are in sync twine_validate building Validates all twine files mentioned in the config file Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 36 The more tests a plugin has, the better Open on GitHub 189 humanable_build_number via icyleaf Automatic generate app build number unque and human readable friendly, like yymmHHMM. both support iOS and Android. Provided actions Name Category Description humanable_build_number - Automatic generate app build number unque and human readable friendly, like yymmHHMM. both support iOS and Android. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 75 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 188 download_circleci_artifacts via Manabu OHTAKE Downloads a Circle CI artifact's Provided actions Name Category Description show_builds - This action show recent builds a Circle CI artifact's using the Circle CI API get_recent_builds - This action recent builds a Circle CI artifact's using the Circle CI API download_circleci_artifacts - This action downloads a Circle CI artifact's using the Circle CI API and puts it in a destination path. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 107 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 184 github_status via Michael Furtak Provides the ability to display and act upon GitHub server status as part of your build Provided actions Name Category Description github_status - Provides the ability to check on GitHub server status as part of your build Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 8 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 21 More downloads = more users have been using the plugin for a while tests 48 The more tests a plugin has, the better Open on GitHub 181 file_manager via Jason Nam Copy and remove files Provided actions Name Category Description remove_files - Remove files copy_files - Copy files Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 87 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 180 xml_editor via Jonathan Ritchie Generic xml editor for iOS and Android projects. Provided actions Name Category Description xml_editor - Generic XML file editor xml_add - Generic XML file add content using XPath xml_remove - Generic XML file remover using XPath xml_set_attribute - Add XML attribute using XPath Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 90 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 180 upload_to_server via Maxim Toyberman Upload IPA and APK to your own server Provided actions Name Category Description upload_to_server - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 19 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 69 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 177 build_log_info via tarappo show build log info Provided actions Name Category Description build_log_info - build log information Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 82 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 176 xcodebuild_analyze via Meniga Run code analyzer using xcodebuild Provided actions Name Category Description xcodebuild_analyze building Run code analyzer using xcodebuild xcodebuild_analyze_and_ensure_no_results building Run code analyzer using xcodebuild and fail if any vulnerability is found ensure_no_results_from_xcodebuild_analyze building Check if the are any vulnerabilities under provided analyzer output path Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 45 The more tests a plugin has, the better Open on GitHub 174 jira_issue_link via Aleksey Novikov Plugin to add remote link to jira issue Provided actions Name Category Description jira_issue_link - Plugin to add remote link to jira issue Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 4 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 94 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 174 appbox via Vineet Choudhary Deploy Development, Ad-Hoc and In-house (Enterprise) iOS applications directly to the devices from your Dropbox account. Provided actions Name Category Description appbox - Deploy Development, Ad-Hoc and In-house (Enterprise) iOS applications directly to the devices from your Dropbox account. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 7 More stars = more popular project forks 25 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 174 replace_file via Jonathan Ritchie Replace any file in your mobile project. Provided actions Name Category Description replace_file - Replace any file in your mobile project Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 93 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 174 ionic_integration via Adrian Regan Integrating Fastlane with Ionic Generated Projects Provided actions Name Category Description ionic_ios_config_snapshot - Create a Sample iOS UI Unit Test to get started with in a generated Ionic/Cordova project ionic_ios_snapshot - Bridge between Ionic/Cordova Projects and Fastlane for Automated Snapshot Generation for iOS Projects Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 22 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 17 More downloads = more users have been using the plugin for a while tests 15 The more tests a plugin has, the better Open on GitHub 173 verify_ipa via Derek Yang Verify various aspects of iOS ipa file Provided actions Name Category Description verify_ipa_files - Verify files in ipa file verify_ipa_entitlements - Verify ipa entitlements Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 51 The more tests a plugin has, the better Open on GitHub 173 xcpretty_report via Fernando Saragoca Generate xcodebuild reports using xcpretty Provided actions Name Category Description xcpretty_report - xcpretty Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 63 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 170 menigit via Meniga Missing git actions Provided actions Name Category Description add_git_remote source_control This will add a remote repository remove_git_remote source_control This will remove a remote repository ensure_no_changes source_control Raises an exception if there are uncommitted git changes at path ensure_tag_not_exists source_control Checks if the git tag with the given name not exists in the current repo set_git_config_user source_control This will set git config user Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 33 The more tests a plugin has, the better Open on GitHub 170 upload_dsym_to_bugly via liubo upload_dsym_to_bugly Provided actions Name Category Description upload_dsym_to_bugly - upload_dsym_to_bugly Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 15 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 169 clang_format via Meniga Format your C/C++/Java/JavaScript/Objective-C/Protobuf/C code with clang-format Provided actions Name Category Description clang_format - A tool to format C/C++/Java/JavaScript/Objective-C/Protobuf/C run_clang_format - Run clang format python script: https://github.com/Sarcasm/run-clang-format Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 42 The more tests a plugin has, the better Open on GitHub 169 flurry via Akash Duseja Upload dSYM symbolication files to Flurry Provided actions Name Category Description flurry_upload_dsym misc Upload dSYM symbolication files to Flurry Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 30 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 21 More downloads = more users have been using the plugin for a while tests 12 The more tests a plugin has, the better Open on GitHub 169 android_keystore via Josh Holtz Generate an Android keystore file Provided actions Name Category Description android_keystore - Generate an Android keystore file Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 63 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 168 bugsnag_sourcemaps_upload via Evgrafov Denis Helps to upload sourcemaps to Bugsnag Provided actions Name Category Description bugsnag_sourcemaps_upload - - Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 4 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 53 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 167 compilation_time_report via Tinkoff.ru Generate custom HTML report compilation time of each Swift func Provided actions Name Category Description compilation_time_report - Generate custom HTML report compilation time of each Swift func Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 24 More subscribers = more popular project stars 5 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 167 create_merge_request via masashi mizuno This will create a new merge request on GitLab. Provided actions Name Category Description create_merge_request source_control This will create a new marge request on GitLab Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 1 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 50 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 167 bluepill via tbrand Fastlane plugin to use bluepill in fastlane Provided actions Name Category Description bluepill - Plugin to use bluepill in fastlane Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 13 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 167 release_helper via Artem Ivanov release heper Provided actions Name Category Description release_helper - release heper Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 13 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 94 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 167 remove_setting via Colin Harris Fastlane plugin to remove settings from an iOS settings bundle Provided actions Name Category Description remove_setting project Fastlane plugin action to remove settings in an iOS settings bundle Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 60 The more tests a plugin has, the better Open on GitHub 166 analyze_apk via kochavi-daniel Analyzes an apk to fetch: versionCode, versionName, apk size, etc. Provided actions Name Category Description analyze_apk - Analyzes an apk to fetch: versionCode, versionName, apk size, permissions, etc. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 5 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 25 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 61 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 165 install_provisioning_profiles via Dylan Gyesbreghs Install all the provisioning profiles located in you're project. Provided actions Name Category Description install_provisioning_profiles - Install all the provisioning profiles located in you're project. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 60 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 165 validate_app via Thi Validate your build before uploading to iTunes Connect Provided actions Name Category Description validate_app - Validate your ipa file Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 11 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 54 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 165 git_switch_branch via zhangqi switch to branch Provided actions Name Category Description git_switch_branch - switch to branch Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 25 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 82 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 163 raven via Marten Klitzke Plugin to manage Releases and upload JS Sourcemaps Provided actions Name Category Description raven - Create new Sentry/Raven Release and Upload Sourcemaps Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 30 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 35 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 163 translation via Jakob Jensen Handling translations from Google sheet. Provided actions Name Category Description create_translation - Create sheet for translations in Google sheets. translation - Output translations from Google sheet into templates. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 3 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 38 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 163 try_scan via Alexey Alter-Pesotskiy The easiest way to retry your fastlane scan action Provided actions Name Category Description try_scan testing Simple way to retry your scan action Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 7 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 43 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 161 clang_analyzer via Siarhei Fiedartsou Runs Clang Static Analyzer(http://clang-analyzer.llvm.org/) and generates report Provided actions Name Category Description clang_analyzer - Runs Clang Static Analyzer(http://clang-analyzer.llvm.org/) and generates report Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 5 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 26 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 161 wait_xcrun via Maksym Grebenets Wait for Xcode toolchain to come back online after switching Xcode versions. Provided actions Name Category Description wait_xcrun - Wait for Xcode toolchain to come back online after switching Xcode versions. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 21 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 159 delete_files via GaryJohnson Deletes a file, folder or multiple files using shell glob pattern. Provided actions Name Category Description delete_files - Deletes a file, folder or multiple files using shell glob pattern. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 54 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 159 docker via Manu Wallner fastlane Actions to support building images, logging into Docker Hub, and pushing those images to the Hub Provided actions Name Category Description docker_build - Build docker images in the current directory docker_login - Login to Docker Hub ensure_docker_machine_available - Makes sure a docker machine is created and available for us to use docker_compose - Define and run multi-container applications with Docker docker_push - Push a docker image to its' repository Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 6 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 27 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 157 repack_ios via Omer Duzyol Enables your build pipeline to repack your pre-built ipa with new assets without rebuilding the native code. Provided actions Name Category Description repack_ios - Enables your build pipeline to repack your pre-built ipa with new assets without rebuilding the native code. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 10 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 157 swiftformat via Felix Mau Run swift code formatting using SwiftFormat Provided actions Name Category Description swiftformat testing Run swift code formatting using SwiftFormat Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 39 More downloads = more users have been using the plugin for a while tests 30 The more tests a plugin has, the better Open on GitHub 157 coveralls via Atsushi Nagase Send coverage information to Coveralls Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 107 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 157 create_github_issue via Ryo Sakaguchi Create GitHub issue Provided actions Name Category Description create_github_issue - Create GitHub issue Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 92 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 157 resetsims via Lui\u0301s Esteves Makes an reset on xcode simulators Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 137 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 156 branding via Stefan Natchev Add some branding to your fastlane output Provided actions Name Category Description branding - Add some branding to your fastlane output Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 11 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 26 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 156 branding via Stefan Natchev Add some branding to your fastlane output Provided actions Name Category Description branding - Add some branding to your fastlane output Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 11 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 26 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 155 xcresult_to_junit via Shane Birdsall Produces junit xml files from Xcode 11+ xcresult files Provided actions Name Category Description xcresult_to_junit - Produces junit xml files from Xcode 11+ xcresult files Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 7 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 47 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 154 firebase via Tomas Kohout Unofficial tool to access Firebase project settings Provided actions Name Category Description firebase_delete_client - An unofficial tool to access Firebase firebase_add_client - An unofficial tool to access Firebase firebase_list - An unofficial tool to access Firebase firebase_download_config - An unofficial tool to access Firebase firebase_upload_certificate - An unofficial tool to access Firebase Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 23 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 154 number_of_swift_lines via Dennis Charmington Outputs the total number of swift lines and other useful statistics Provided actions Name Category Description number_of_swift_lines - Outputs the total number of lines of swift code, number of swift files, and a list of the largest swift files, and some other useful statistics Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 75 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 154 dmg via Alexey Dvoryanskiy Easily create dmg for your Mac app Provided actions Name Category Description dmg misc Create DMG for your Mac app Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 23 More downloads = more users have been using the plugin for a while tests 27 The more tests a plugin has, the better Open on GitHub 154 mackerel_api via yutailang0119 Call a Mackerel API endpoint and get the resulting JSON response Provided actions Name Category Description mackerel_api source_control Call a Mackerel API endpoint and get the resulting JSON response Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 33 More downloads = more users have been using the plugin for a while tests 39 The more tests a plugin has, the better Open on GitHub 151 apprepo via Matej Sychra Fastlane plugin SFTP/AppRepo uploader Provided actions Name Category Description download_manifest - Runs the Apprepo plugin apprepo - - init - Initializes Repofile run - Runs the default Apprepo action submit - Submits IPA to Apprepo Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 32 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 68 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 151 android_emulator_kami via Michael Ruhl Creates and starts an Android Emulator (AVD) Provided actions Name Category Description android_emulator_kami - Creates and starts an Android Emulator (AVD) Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 21 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 149 xcode_test_reporter via Taisuke Hori Generates JUnit or HTML report from Xcode plist test report files. Provided actions Name Category Description xcode_test_reporter - Generates JUnit or HTML report from Xcode `plist` test report files Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 23 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 149 provisioning via Pawel Jankowski Helps provision your app in the CI environment Provided actions Name Category Description set_key_partition_list - Sets key partition list (required by macOS Sierra) install_profiles - Install profiles from specified directory Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 148 ipa_info via tarappo show ipa info Provided actions Name Category Description ipa_info - Show information of an ipa file. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 19 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 46 More downloads = more users have been using the plugin for a while tests 12 The more tests a plugin has, the better Open on GitHub 147 napp_distribution via Mads M\u00f8ller Upload IPA AND APK builds to Napp Distribution Provided actions Name Category Description napp_distribution - Upload builds to Napp Distribution Center Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 146 android_emulator-kami via Michael Ruhl Creates and starts an Android Emulator (AVD) Provided actions Name Category Description android_emulator_kami - Creates and starts an Android Emulator (AVD) Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 146 accessibility_test via Takeshi Tsukamoto Accessibility test with Firebase Test Lab for Android. Provided actions Name Category Description accessibility_test - Accessibility test with Firebase Test Lab for Android. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 5 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 63 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 146 ascii_art via Boris Bu\u0308gling Add some fun to your fastlane output. Provided actions Name Category Description ascii_art - Add some fun to your fastlane output. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 20 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 32 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 145 teak via Pat Wilson Fastlane plugins for the Teak SDK Provided actions Name Category Description teak_extensions - Add App Extension teak_sdk - Download the Teak SDK teak - Fastlane plugins for the Teak SDK Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 38 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 144 gitlab_release via Andrea Del Fante Fastlane wrapper of gitlab-release-tools Provided actions Name Category Description gitlab_release_changelog - - gitlab_release_close - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 56 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 144 elux_actions via Dennis Granath Plugin including actions for releasing the android SDK Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 94 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 143 moronepo via Meniga Run dart pub moronepo with fastlane! Provided actions Name Category Description moronepo_update_flutter_sdk building Runs command for all subprojects or a specified project moronepo_run building Runs command for all subprojects or a specified project moronepo_activate building Run flutter pub global activate moronepo Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 21 The more tests a plugin has, the better Open on GitHub 142 retry_tests via Gloria Chow This fastlane plugin includes the following actions: 1) multi_scan: uses scan to run Xcode tests, optionally in batches, a given number of times: only re-testing failing tests. 2) suppress_tests_from_junit: uses a junit xml report file to suppress either passing or failing tests in an Xcode Scheme. 3) suppress_tests: suppresses specific tests in a specific or all Xcode Schemes in a given project. 4) suppressed_tests: retrieves a list of tests that are suppressed in a specific or all Xcode Schemes in a project. 5) tests_from_junit: retrieves the failing and passing tests as reported in a junit xml file. 6) tests_from_xctestrun: retrieves all of the tests from xctest bundles referenced by the xctestrun file 7) collate_junit_reports: collects and correctly organizes junit reports from multiple test passes. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 80 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 141 no_u via Boris Bu\u0308gling no u Provided actions Name Category Description no_u - no u Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 5 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 17 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 141 discord_notifier via Nikos Theodosis Discord Notifier Provided actions Name Category Description discord_notifier - Discord Webhook Notifier Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 8 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 50 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 141 taiwan_number_one via andrew54068 approve or reject first if status is Pending Developer Release. Provided actions Name Category Description taiwan_number_one - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 8 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 24 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 141 emerge via Emerge Tools, Inc Fastlane plugin for Emerge Provided actions Name Category Description emerge - Fastlane plugin for Emerge Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 4 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 54 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 141 testdroid_runner via josepmc Allows to run BitBar tests on fastlane Provided actions Name Category Description testdroid_runner - BitBar Test Runner upload_testdroid - Uploads a file to bitbar Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 140 remove_git_tag via Marker Digital This will remove a specific tag from your remote branch Provided actions Name Category Description remove_git_tag source_control This will remove a tag from the remote repository Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 59 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 138 influxdb via giginet Post values to InfluxDB Provided actions Name Category Description influxdb - Post values to IndluxDB Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 137 auth0_shipper via Hernan Zalazar OSS libraries release process for Auth0 Provided actions Name Category Description perform_release - Performs the release for an Auth0 OSS library publish_release - Performs a pending release represented by the latest tag prepare_release - Prepares the release for an Auth0 OSS library Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 52 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 137 set_sonar_properties via Paldom Load and edit sonar-project.properties files Provided actions Name Category Description set_sonar_properties - Load and edit sonar properties file Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 12 The more tests a plugin has, the better Open on GitHub 136 ad_licenselint via Pierre Felgines Lint the licenses for iOS projects Provided actions Name Category Description ad_licenselint - Lint the licenses for iOS projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 21 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 136 hockey_devices via Viktoras Laukevi\u010dius Retrieves a list of devices from Hockey which can then be used with Match Provided actions Name Category Description hockey_devices - Retrieves a list of devices from Hockey which can then be used with Match Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 21 The more tests a plugin has, the better Open on GitHub 135 get_application_id_flavor via Helder Pinhal Get the applicationId of an Android project. Provided actions Name Category Description get_application_id_flavor - Get the applicationId of an Android project. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 49 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 134 property_file_write via Jan Meier writes property files Provided actions Name Category Description property_file_write - Writes value into properties file Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 29 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 134 upload_symbols_to_hockey via Justin Williams Upload dSYM symbolication files to Hockey Provided actions Name Category Description upload_symbols_to_hockey - Upload dSYM symbolication files to Hockey Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 134 ya_tu_sabes via Boris Bu\u0308gling Ya tu sabes. Provided actions Name Category Description ya_tu_sabes - Ya tu sabes. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 8 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 133 device_image_selector via Mario Zimmermann Takes the screenshots from devices which match the specified names and puts them in a new directory for frameit to process. The screenshot files can then be cleaned up after the device images are created. Provided actions Name Category Description device_image_selector - Selects screenshots with specified names for processing with frameit device_image_selector_cleanup - Cleanup screenshot files after frameit Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 133 ti_build_app via Adam Armstrong Build Axway Appcelerator Mobile Applications from within fastlane Provided actions Name Category Description ti_build_app - Build Axway Appcelerator Mobile Applications from within fastlane Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 6 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 132 napp_notifications via Mads M\u00f8ller Napp Notifications Provided actions Name Category Description napp_notifications push Napp Notifications Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 132 oclint_json_compilation_database via Meniga Run OCLint validation with oclint-json-compilation-database and fastlane :dart: :rocket: Provided actions Name Category Description oclint_json_compilation_database testing - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 39 The more tests a plugin has, the better Open on GitHub 132 certificate_expirydate via Lyndsey Ferguson Retrieves the expiry date of the given p12 certificate file Provided actions Name Category Description certificate_expirydate - Retrieves the expiry date of the given p12 certificate file Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 12 The more tests a plugin has, the better Open on GitHub 132 wechat via xiongzenghui this is a wechat api wrapper Provided actions Name Category Description wechat - this is a wechat api wrapper Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 39 The more tests a plugin has, the better Open on GitHub 131 shuttle via Shuttle Project Publish your builds on Shuttle.tools Provided actions Name Category Description shuttle - Publish your builds on [Shuttle.tools](https://www.shuttle.tools) Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 24 More subscribers = more popular project stars 6 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 19 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 131 unity_exporter via ar:met Plugin for 'fastlane' that defines an action to export iOS and Android projects via Unity3d. This allows Unity3d to more easily integrate with 'fastlane'. Provided actions Name Category Description unity_commit_version_bump - Commits a version bump, if there is any. unity_export - Exports a Unity project. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 27 The more tests a plugin has, the better Open on GitHub 131 connected via Abgier Avraha Fastlane plugin that allows you to use your App Store Connect API key to download certificates and upload apps to TestFlight Provided actions Name Category Description connected_certs - App Store Connect API Certificates Module connected_upload - App Store Connect API Uploader Module connected_auth - App Store Connect API Authentication Module Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 19 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 130 unity via safu9 Fastlane plugin for Unity Provided actions Name Category Description unity - Fastlane plugin for Unity Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 5 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 130 swift_doc via Joshua Kaplan Generate documentation, documentation coverage, or a class diagram using SwiftDoc Provided actions Name Category Description swift_doc documentation Generate documentation, documentation coverage, or a class diagram using SwiftDoc Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 2 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 42 The more tests a plugin has, the better Open on GitHub 130 match_keystore via Christopher NEY Easily sync your Android keystores across your team Provided actions Name Category Description match_keystore - Easily sync your Android keystores across your team Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 20 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -5 Lots of open issues are not a good sign usually, unless the project is really popular downloads 40 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 130 appmetrica via Yandex, LLC Upload dSYM symbolication files to AppMetrica Provided actions Name Category Description upload_symbols_to_appmetrica - Upload dSYM symbolication files to AppMetrica Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 27 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license -50 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 86 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 129 verify_two_step_session via Takashi Hasegawa Verifies the session cookie for 'Two-Step verification for Apple ID' Provided actions Name Category Description verify_two_step_session misc Verifies the session cookie for 'Two-Factor authentication/Two-Step verification for Apple ID' Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 21 The more tests a plugin has, the better Open on GitHub 129 create_bitbucket_pull_request via Issarapong Poesua This lane creates create bitbucket pull request Provided actions Name Category Description create_bitbucket_pull_request - This lane creates create bitbucket pull request Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 38 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 129 github_action via Josh Holtz Helper to setup GitHub actions for fastlane and match Provided actions Name Category Description github_action - Helper to setup GitHub actions for fastlane and match Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 129 bitbucket_auth via rlestesr Generate a OAuth Token for Bitbucket API Access. Provided actions Name Category Description bitbucket_auth - Generate a OAuth Token for Bitbucket API Access. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 15 The more tests a plugin has, the better Open on GitHub 128 firim via whlsxl firim Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 96 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 127 killsimulator via Lui\u0301s Esteves Kill all the open simulatores Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 107 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 126 build_cache via Fernando Saragoca Helper for caching builds when using 'build for testing' & 'test without building' Provided actions Name Category Description clean_build_cache_workspace - Cleans workspace by removing old builds, using last access time for comparison archive_derived_data - Archives derived data folder in a zip file for later use check_build_cache_workspace - Check if cache for current build is avaiable unarchive_derived_data - Unarchives derived data folder from a zip file Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 18 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 126 appdynamics via Artur Rybak Upload dSYM files to AppDynamics Provided actions Name Category Description appdynamics - Upload dSYM symbolication files to AppDynamics Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 1 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 35 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 125 dependency_check_ios_analyzer via Alexey Alter-Pesotskiy Fastlane wrapper around the OWASP dependency-check iOS analyzers (Swift Package Manager and CocoaPods). Provided actions Name Category Description dependency_check_ios_analyzer testing Fastlane wrapper around the OWASP dependency-check iOS analyzers (Swift Package Manager and CocoaPods). Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 2 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 17 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 125 bearychat via dvlprliu send messages to a bearychat channal Provided actions Name Category Description bearychat - send messages to a bearychat channal Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 124 find_firebase_app_id via Tigran Hambardzumyan Helper plugin which will allow to find Firebase App ID from GoogleService-Info.plist [iOS] or google-services.json [Android]. Provided actions Name Category Description find_firebase_app_id - Helper plugin which will allow to find Firebase App ID from GoogleService-Info.plist [iOS] or google-services.json [Android]. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 12 The more tests a plugin has, the better Open on GitHub 124 cordova_screenshots via Jan Piotrowski Take screenshots of your Cordova/Ionic app with fastlane Provided actions Name Category Description init_cordova_screenshots_ios - Creates an iOS UI Unit Tests in '#{CordovaScreenshots::CORDOVA_SCREENSHOTS_IOS_CONFIG_PATH}' retrofit_cordova_screenshots_android - Retrofit test into Android project retrofit_cordova_screenshots_ios - Retrofit test into iOS Xcode project init_cordova_screenshots_android - Creates an Android UI test in '#{CordovaScreenshots::CORDOVA_SCREENSHOTS_ANDROID_CONFIG_PATH}' Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 1 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -10 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 15 The more tests a plugin has, the better Open on GitHub 123 flutter_version_manager via Davor Maric Manages app versioning of Flutter project Provided actions Name Category Description flutter_version_manager - Manages app versioning of a Flutter project. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 123 msi via Paul Niezborala Create Windows Installer Provided actions Name Category Description msi - Create Windows Installer Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 123 fir via dongorigin Upload a new build to fir.im Provided actions Name Category Description fir beta Upload a new build to fir.im Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 123 localize via Wolfgang Lutz Searches the code for extractable strings and allows interactive extraction to .strings file. Provided actions Name Category Description localize - Searches the code for extractable strings and allows interactive extraction to .strings file. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 4 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 123 plural_converter via Benoit Deldicque Convert Android plural XML resource file to iOS stringsdict file. Provided actions Name Category Description plural_converter - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 30 The more tests a plugin has, the better Open on GitHub 123 queue via Josh Holtz Queue up fastlane jobs Provided actions Name Category Description queue_stop - Stops web server and worker for queueing fastlane jobs queue_start - Starts web server and worker for queueing fastlane jobs queue - Adds fastlane jobs to a queue Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 8 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 122 update_jenkins_build via icyleaf Update Description of Build Provided actions Name Category Description update_jenkins_build - Update build's description of jenkins Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 18 The more tests a plugin has, the better Open on GitHub 122 static_assets via Jakob Jensen Generate code for buildtime-safe assignments of assets. Provided actions Name Category Description unused_images - - static_images - Generate code for buildtime-safe assignments of images. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 122 supply_aptoide via wschurman Upload metadata, screenshots and binaries to Aptoide Provided actions Name Category Description supply_aptoide - Upload metadata, screenshots and binaries to Aptoide. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 122 ios_dependency_parser via kochavi-daniel Analyzes results of 'pod outdated' in a structured manner Provided actions Name Category Description parse_pod_dependencies - Analyzes 'pod outdated' results and structures it for further usage. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 121 analyze_ios_linkmap via xiongzenghui iOS parse linkmap.txt to ruby Hash Provided actions Name Category Description analyze_ios_linkmap - iOS parse linkmap.txt to ruby Hash or JSON Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 45 The more tests a plugin has, the better Open on GitHub 119 teams_bot via Hugo EXTRAT Easily alert a Microsoft Teams channel Provided actions Name Category Description teams_bot - Easily send a message to a Microsoft Teams channel through the Webhook connector Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 119 sparkplugg via Boris Bu\u0308gling Quickly try out fastlane plugins. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 32 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 119 updateplistfromstrings via Jonas Schmid Allow to take values from the localization.strings and put them into Info.plist Provided actions Name Category Description updateplistfromstrings - Update InfoPlist.strings from translation file Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 118 imessage via Alexander Ignition send imessage Provided actions Name Category Description imessage notifications send imessage Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 18 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 118 rollbar via Evgrafov Denis Helps to upload sourcemaps/dsyms/proguard mapping/deploy report to Rollbar Provided actions Name Category Description rollbar_proguard_upload - Helps to upload Proguard mappings to Rollbar rollbar_dsym_upload - Helps to upload Dsym to Rollbar rollbar_report_deploy - Helps to report deploy to Rollbar rollbar_sourcemaps_upload - Helps to upload sourcemaps to Rollbar Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 6 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 28 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 117 trello via Oscar De Moya Fastlane plugin for moving a trello card to a given list Provided actions Name Category Description trello_comment - Adds a comment to a given Trello card trello_move_card - Moves a Trello card to a given list Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 117 farol via Felipe Plets Enable your app to use Farol Platform services Provided actions Name Category Description farol_api - Integrate your app with the Farol Platform using services like push notifications farol_get_version - Enable your app to use Farol Platform services farol - Enable your app to use Farol Platform services farol_set_version - Integrate your app with the Farol Platform using services like push notifications Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 31 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 116 xcresult_actions via yutailang0119 fastlane actions for .xcresult Provided actions Name Category Description summarize_xcresult_report - Summarize about test coverage rate from `.xcresult` file Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 27 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 116 androidmanifest_editor via \u4efb\u798f\u65b0 edit meta-data in AndroidManifest.xml Provided actions Name Category Description modify_meta_data - edit meta-data in AndroidManifest.xml modify_intent_scheme - edit scheme data of intent-filter in AndroidManifest.xml androidmanifest_editor - edit meta-data in AndroidManifest.xml Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 49 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 116 analyze_ios_ipa via xiongzenghui analysis iOS app/ipa multiple data. eg: 1) ipa basic info 2) Size occupied by each component = code + resource Provided actions Name Category Description analyze_ios_ipa - analysis iOS app/ipa multiple data. eg: 1) ipa basic info 2) Size occupied by each component = code + resource Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 116 ios_readme_generate via Erik Flores Create readme for ios projects Provided actions Name Category Description ios_readme_generate - Create readme for ios projects :D Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 116 gradle_manager via Helder Pinhal Exposes some Android configurations from the gradle file. Provided actions Name Category Description get_version_name - Get the parsed Gradle file of an Android project. get_version_code - Get the parsed Gradle file of an Android project. get_gradle_data - Get the parsed Gradle file of an Android project. get_application_id - Get the parsed Gradle file of an Android project. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 115 google_analytics via Helmut Januschka Fire universal Analytics Provided actions Name Category Description google_analytics - Fire universal Analytics Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 115 xclogparser via Josh Lesch Parse Xcode or xcodebuild build and test logs with XCLogParser Provided actions Name Category Description xclogparser - Parse Xcode or xcodebuild build and test logs with XCLogParser Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 30 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 115 jira_transitions via Ostap Taran Runs transitions for specified JIRA tickets Provided actions Name Category Description jira_transitions - Runs transitions for specified JIRA tickets Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 22 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 115 bitrise via Robin AUTHIAT Fastlane plugin to trigger a bitrise build with some options Provided actions Name Category Description bitrise - Trigger a bitrise build Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 115 write_changelog_from_commits via Lewis Bright Writes a changelog by pattern matching on git commits since the last tag. Organises these into sections and creates a changelog with the same name as the current version code Provided actions Name Category Description write_changelog_from_commits - Writes a changelog file by pattern matching on git commits since the last tag. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 4 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 21 The more tests a plugin has, the better Open on GitHub 115 csv_translation via Manish Rathi A fastlane plugin to manage translation using a CSV file under git repository. \ud83d\ude80 Provided actions Name Category Description create_csv_feature_branch - Create a csv feature branch. delete_csv_translation_request - Delete a translation request based on identifier value. fetch_csv_branch - Fetch a csv file branch. create_csv_translation_request - Create a csv translation request. rebase_csv_translation_request - Rebase a translation request based on identifier value. get_csv_translation_requests - Get CSV translation requests info Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 115 yafirim via wd Yet another fastlane fir.im plugin Provided actions Name Category Description yafirim - Yet another fastlane fir.im plugin Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 114 android_version_manage via futabooo Manage Android App Versioning Provided actions Name Category Description android_set_version_code - Set the Version Code of your Android project android_commit_version_bump - This action is like a commit_version_bump action for Android android_set_version_name - Set the Version Name of your Android project Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 29 More downloads = more users have been using the plugin for a while tests 27 The more tests a plugin has, the better Open on GitHub 114 test_report via Naylin Medina customized template for iOS test reports\u001b Provided actions Name Category Description test_report - Create customized HTML template for test reports Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 113 zealot via icyleaf Upload IPA/APK/dSYM/Proguard files to Zealot which it provides a self-host Over The Air Server for deployment of Android and iOS apps. Provided actions Name Category Description zealot_version_check - Check app version exists from Zealot zealot_sync_devices - Check app version exists from Zealot zealot_debug_file - Upload dSYM/Proguard files to Zealot which it provides a self-host Over The Air Server for deployment of Android and iOS apps. zealot - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 113 mattermost via cpfriend1721994 Fastlane plugin for push messages to Mattermost Provided actions Name Category Description mattermost - Fastlane plugin for push messages to Mattermost Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 19 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 113 testfairy via Josh Holtz Upload IPA to TestFairy Provided actions Name Category Description testfairy - Upload an IPA to TestFairy Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 112 souyuz-ventaapps via Felix Rudat A fastlane component to make Xamarin builds a breeze Provided actions Name Category Description app_version - Easily set or print app version with `app_version` souyuz - Easily build and sign your app using `souyuz` Score details Metric Points Description contributors 30 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 32 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 112 upload_to_onesky via joshrlesch Upload a strings file to OneSky Provided actions Name Category Description upload_to_onesky - Upload a strings file to OneSky Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 112 twitter via rb_de0 A simple twitter plugin Provided actions Name Category Description tweet - Tweet a message specified in the parameter Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 112 podspec_dependency_versioning via Cole Dunsby Edit the versions of your podspec dependencies Provided actions Name Category Description change_podspec_dependency_version - This action will modify the version of a dependency in your podspec. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 19 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 17 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 112 download_hockey_ipa via horimislime A fastlane plugin that helps downloading .ipa from HockeyApp Provided actions Name Category Description download_hockey_ipa - A fastlane plugin that helps downloading .ipa from HockeyApp Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 25 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 111 dingtalk_robot via InfiniteReverse webhook for dingtalk robot Provided actions Name Category Description dingtalk_robot - webhook for dingtalk robot Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 111 alioss via woodwu upload ipa/apk to aliyun oos server, and scan QRcode to install app on mobile phone. Provided actions Name Category Description alioss - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -6 Lots of open issues are not a good sign usually, unless the project is really popular downloads 37 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 110 try_adb_test via Alexey Alter-Pesotskiy The easiest way to retry your Android Instrumented Tests Provided actions Name Category Description try_adb_test - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 2 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 110 version via Jason Nam Set version Provided actions Name Category Description set_version - Set version Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 110 git_commit_changelog_to_markdown via Fernando Berrios This plugin will take the output of the changelog_from_git_commits plugin and convert it into markdown Provided actions Name Category Description git_commit_changelog_to_markdown - This plugin will take the output of the 'changelog_from_git_commits' plugin and convert it into markdown Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 33 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 109 jira_build_number via Tom Elrod Insert build number into related jira issues Provided actions Name Category Description jira_build_number - Adds build number from CI as comment to associated jira issue. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 109 android_change_app_name via MaximusMcCann Changes the manifest's label attribute (appName). Stores the original name for revertinng. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 89 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 108 update_team_identifier via Jordan Bondo Updates the Team Identifier for a given target Provided actions Name Category Description update_team_identifier - Updates the Team Identifier for a given target Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 108 app_store_build_info via Rishabh Tayal Get build info from App Store Connect Provided actions Name Category Description app_store_build_info - Get build info from App Store Connect Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 22 More downloads = more users have been using the plugin for a while tests 18 The more tests a plugin has, the better Open on GitHub 108 submit_to_beta_app_review via Dan Loewenherz Submits an already processed build to Beta App Review. Provided actions Name Category Description submit_to_beta_app_review - Submits an already processed build to Beta App Review. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 108 jira_issues_release_notes via Erick Martins It generates a release note based on the issues keys and descriptions found in the commits Provided actions Name Category Description jira_release_changelog - It generates a release note based on the issues keys and descriptions found in the commits jira_comment - It generates a release note based on the issues keys found in branch name and descriptions found in the commits jira_versions - It generates a release note based on the issues keys found in branch name and descriptions found in the commits jira_issues_keys_from_commits - It generates a release note based on the issues keys found in branch name and descriptions found in the commits jira_feature_validation - It generates a release note based on the issues keys found in branch name and descriptions found in the commits jira_release_validation - It generates a release note based on the issues keys and descriptions found in the commits Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 107 run_lane via Jonathan Ritchie Run a specified fastlane lane in your project. Provided actions Name Category Description run_lane - Run a specified fastlane lane in your project Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 26 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 106 ixguard via Evgeniy Kubyshin ixguard plugin Provided actions Name Category Description ixguard - iXGuard build plugin Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 32 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 106 mocha_run_tests via Adam T Armstrong Run Mocha Tests from within fastlane Provided actions Name Category Description mocha_run_tests - Run Mocha Tests from within fastlane Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 106 git_build_versioning via Mikko Va\u0308lima\u0308ki Store build numbers in git tags for distributed sequential builds Provided actions Name Category Description reserve_git_build_number - Use git for tagging your builds for unique distributed sequential build numbers get_git_build_number - Use git for tagging your builds for unique distributed sequential build numbers Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 23 More downloads = more users have been using the plugin for a while tests 18 The more tests a plugin has, the better Open on GitHub 105 droidicon via @chrhsmt Generate required icon sizes and iconset from a master application icon Provided actions Name Category Description droidicon - Generate required icon sizes and iconset from a master application icon Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 104 update_provisioning_profile via Duy Nguyen This action will update xcodeproj with values extracted from your provisioning profile. Provided actions Name Category Description update_provisioning_profile - This action will update xcodeproj with values extracted from your provisioning profile. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 104 deploy_file_provider via Kamil Krzyk, Przemys\u0142aw Wo\u015bko Prepares metadata files with structure ready for AppStore, PlayStore deploy Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 84 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 104 au_auto_close_upload via Emil Upload artifacts to AppUnite's auto-close service Provided actions Name Category Description au_auto_close_upload - Upload artifacts to AppUnite's auto-close service Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 104 ding_talk via gaoxiang Auto send the pgyer app qr code to the ding talk. Provided actions Name Category Description ding_talk - Send the packaging information to the ding talk. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 104 react_native_release via Chris Ball Simplify releases for React Native apps. Provided actions Name Category Description create_fastlane_session - Simplify 2FA authentication for App Store Connect react_native_release - Simplify releases for React Native apps encrypt_fastlane_vars - Encrypt fastlane vars for CI decrypt_google_play_credentials - Decrypts app env vars and sets the values in the root .env file read_fastlane_session - Simplify 2FA authentication for App Store Connect create_changelog - Determines if a release should happen based on conventional commits. generate_android_keystore - Decrypts app env vars and sets the values in the root .env file accept_android_sdk_licenses - Accepts Android sdk licenses add_fastlane_var - Adds a single ENV var for fastlane to the encrypted repository encrypt_google_play_credentials - Encrypts credentials from Google Play and stores in the context repo. tag_release - Tags a release based on a prefix, version, and build numbers encrypt_app_vars - Encrypts app env vars and stores them in the context repo. determine_release_from_commits - Determines if a release should happen based on conventional commits. decrypt_android_keystore - Decrypts app env vars and sets the values in the root .env file decrypt_fastlane_vars - Decrypts fastlane ENV vars from the encrypted repo. Optionally sets them in ENV. add_app_var - Adds a single ENV var to the encrypted repository decrypt_app_vars - Decrypts app env vars and sets the values in the root .env file Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 6 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -13 Lots of open issues are not a good sign usually, unless the project is really popular downloads 26 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 103 transifex via junjie basic transifex wrapper Provided actions Name Category Description transifex - basic transifex wrapper Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 25 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 17 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 103 release via Cole Dunsby Automates the steps to create a new release for a project. Provided actions Name Category Description make_release - Automates the steps to create a new release for a framework. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 19 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 103 send_e_mail via huangj a tool to sendmail Provided actions Name Category Description send_e_mail - a tool to sendmail Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 103 apphoster via JerryFans A simple plugin to upload your ipa file to AppHost Server in fastlane. Provided actions Name Category Description apphoster - A simple plugin to upload your ipa file to AppHost Server in fastlane. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 102 phraseapp via Issarapong Poesua a phraseapp-cli tool wrapper Provided actions Name Category Description phraseapp - a phraseapp-cli tool wrapper Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 102 xliff_en_gen via alexander sun gen Localizable.strings file from xliff Provided actions Name Category Description export_xliff - export xliff for an xcode project xliff_en_gen - Overwrite project Localizable.strings file from English version xliff Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 26 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 102 ipa_install_plist_generate via xiongzenghui iOS ipa enterprise install plist generate plugn Provided actions Name Category Description ipa_install_plist_generate - iOS ipa enterprise install plist generate plugn Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 101 gitlab_changelog via Z\u030cilvinas Sebeika Get changelog using GitLab API Provided actions Name Category Description gitlab_changelog - - Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 101 buildnumber via Nick Griffith Generates unique build numbers for iOS projects. Provided actions Name Category Description buildnumber - Generates unique build numbers for iOS projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 30 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 101 kuhverij via Morten B\u00f8gh Simplified Code Coverage Provided actions Name Category Description kuhverij testing Simplified Code Coverage Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 13 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 33 The more tests a plugin has, the better Open on GitHub 100 mobileiron via Roman Ivannikov Release your builds to Mobileiron In-Hause instance. https://www.mobileiron.com Provided actions Name Category Description mobileiron - Release your app with Mobileiron Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 21 The more tests a plugin has, the better Open on GitHub 100 summonbin via Jason Nam Execute command with summonbin Provided actions Name Category Description summonbin - Execute command with summonbin Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 100 update_build_settings_key via ungacy Updated code signing settings from 'Automatic' to a specific profile Provided actions Name Category Description update_build_settings_key - Updates build settings key to a new value Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 17 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 99 unsetinfoplistvalue via David Cordero Unsets value to Info.plist of your project as native Ruby data structures Provided actions Name Category Description unset_info_plist_value project Unsets value to Info.plist of your project as native Ruby data structures Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 99 line_notify via AKKHARAWAT CHAYAPIWAT To be able to send message to Line Notify Provided actions Name Category Description line_notify - You can use this action to send message via Line Notify Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 19 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 29 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 99 android_change_package_name via yeppao Change the package name in the AndroidManifest.xml file Provided actions Name Category Description android_change_package_name - Change the package identifier in the AndroidManifest.xml file Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 31 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 99 redmine_upload via Mattia Salvetti A fastlane plugin to upload file contents to Redmine Provided actions Name Category Description redmine_file_post - Uploads a file in a Redmine Files section of a given Redmine project redmine_upload - A fastlane plugin to upload file contents to Redmine Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 98 coreos via Oliver Letterer Deploy docker services to CoreOS hosts Provided actions Name Category Description coreos_deploy - Deploy docker services to CoreOS hosts Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 17 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 98 unity3d via fuzhongqing fastlane for unity3d engine Provided actions Name Category Description unity3d building fastlane plugin for unity3d engine Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 4 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 17 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 98 analyze_ios_framework via xiongzenghui analysis ios framework in buildout or pods dir Provided actions Name Category Description analyze_ios_framework - analysis ios framework in buildout or pods dir Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 17 More downloads = more users have been using the plugin for a while tests 15 The more tests a plugin has, the better Open on GitHub 97 last_fabric_version_code via Andr\u00e9s Hern\u00e1ndez Get the last Fabric version code for your Android app Provided actions Name Category Description last_fabric_version_code - Get the last Fabric version code for your Android app Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 97 debug_file via icyleaf Compress iOS/macApp dSYM or Android Proguard(mapping/R/AndroidManifest) to zip file Provided actions Name Category Description list_dsym misc Find and generate iOS/MacOS dSYM file(s) to zip file proguard misc Find and generate Android proguard file(s) to zip file dsym misc Find and generate iOS/MacOS dSYM file(s) to zip file Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 96 clear_archived_data via Onur Y\u0131ld\u0131r\u0131m Deletes the archive file located at SharedValues::XCODEBUILD_ARCHIVE. Provided actions Name Category Description clear_archived_data - Deletes the archive file located at SharedValues::XCODEBUILD_ARCHIVE. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 96 copy via Jason Nam Copy file Provided actions Name Category Description copy - Copy file Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 96 bomb_emoji via Josh Holtz \ud83d\udca3\ud83d\udca5 No more emojis Provided actions Name Category Description bomb_emoji - No more emojis Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 96 get_last_circleci_build_number via Dawid van der Hoven fetches the last build number from circleci. Provided actions Name Category Description get_last_circleci_build_number - fetches the last build number from circleci. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 96 buddybuild via Jorge Revuelta This plugin allows the communication with the Buddybuild API. Provided actions Name Category Description buddybuild_list_apps - Retrieves all the applications for a given account in Buddybuild. buddybuild_get_latest_build_number - Retrieves the latest build number for a given Application Identifier. buddybuild_show_latest_build - Retrieves the latest build for a given Application Identifier. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 95 match_import via Serhii Batsevych Match repository custom import Provided actions Name Category Description match_export_apns - Match repository apns certs export match_export - Match repository custom export match_import - Match repository custom import match_import_apns - Match repository apns certs import match_remove_invalid_apns - Match repository apns certs remove invalid match_remove - Match repository custom export Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 95 get_application_id via Helder Pinhal Get the applicationId of an Android project. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 63 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 95 lastpass via Antoine Lamy Easily sync your Apple ID credentials stored in LastPass with your keychain using CredentialManager Provided actions Name Category Description lastpass - Easily sync your Apple ID credentials stored in LastPass with your keychain using CredentialManager Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 19 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 95 transifex_tool via maydin Transifex tool that pulls translations using transifex rest api Provided actions Name Category Description rest_pull - Transifex plugin for pull and push translations cli_pull - Transifex tool that pulls translations using transifex cli client cli_push - Transifex tool that push translations using transifex cli client Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 94 sous via Jonathan Nogueira A tool to help create and sync keystores, as well as sign apks and aabs for the play store Provided actions Name Category Description plate - This action signs apks using an existing keystore pass - This action retrieves existing keystores for the android build system Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 94 dingtalk via Kim Huang a fastlane plugin for dingtalk robot Provided actions Name Category Description dingtalk - a fastlane plugin for dingtalk. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 94 fabric_beta_unregistered_devices via Slava Kornienko SHORT Provided actions Name Category Description fabric_beta_unregistered_devices - Get unregistered devices from Fabric Beta. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 94 promo_code via marumemomo promo_code Provided actions Name Category Description promo_code - promo_code Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 93 aws_device_farm_upload via Takuma Homma Uploads specified file to AWS Device Farm project Provided actions Name Category Description aws_device_farm_upload - Uploads specified file to AWS Device Farm project Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 93 xbluepill via UladzimirKisialiou It is a fastlane plugin that allows to use bluepill (linkedin library) as a fastlane command Provided actions Name Category Description xbluepill - Fastlane plugin that allows to use bluepill (linkedin library) as a fastlane command Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 5 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 93 source_env_from_file via xiongzenghui set ENV[\"key\"]=value from file like key=value Provided actions Name Category Description source_env_from_file - set ENV['key']=value from file like key=value Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 93 check_good_version via Lyndsey Ferguson Checks the version of the installed Good framework Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 31 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 93 flint via Jyrno Ader Easily sync your keystores across your team using git Provided actions Name Category Description flint - DESCRIPTION Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 93 react_native_util via Jimmy Dee Community utilities for React Native projects Provided actions Name Category Description react_pod - Community utilities for React Native projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 93 increment_version_code_android via SimoneCorsini Increment the version code of your android project, supporting different product flavors. Provided actions Name Category Description increment_version_code_android - Increment the version code of your android project, supporting different flavors. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 92 poesie via Patrik Potoc\u030cek Exports translations from POEditor using poesie tool. Provided actions Name Category Description poesie - Exports translations from POEditor using poesie tool. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 28 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 92 apperian via Tomi Blank Allows to upload your IPA file to Apperian Provided actions Name Category Description apperian - Allows to upload your app file to Apperian Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 91 wexlane via Chris River Common tools for CI Provided actions Name Category Description android_get_version - Common tools for CI ios_get_version - Common tools for CI Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 91 xamarin via Thomas Charriere Build Xamarin Android + iOS projects Provided actions Name Category Description msbuild - Build Solutions with msbuild nuget_restore - Nuget xamarin_android - Build Xamarin Android + iOS projects xamarin_ios - Build Xamarin Android + iOS projects nuget_install - Nuget clean - Clean artifacts Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 23 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 91 android_update_package_identifier via Jonathan Nogueira Changes the applicationId inside of your build.gradle file Provided actions Name Category Description android_update_package_identifier - Changes the applicationId inside of your build.gradle file. Does not change the AndroidManifest Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 90 sunny_project via ericmartineau Sunny flutter projects Provided actions Name Category Description rename_assets - Renames assets, generates an assets.dart file to reference them. pubspec_doctor - Modify pubspec for local or git development sunny_release - - increase_version - Increment version number in pubspec.yaml file sunny_build_runner - Cleans and runs flutter build_runner sunny_build_web - Builds a web project local_packages - Checks out local dart packages finalize_version - Commit version tags release_notes - Get or retrieve release notes from git generate_icons - Generates a flutter icon set as a font dart_package_status - - curr_semver - Gets the current version from the project's pubspec.yaml file pub_release - Releases a dart package pub_publish - Executes pub publish command Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 31 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 90 copy_screenshots via yosshi4486 Copy screenshots with a specified device name. Provided actions Name Category Description copy_screenshots screenshots Copy screenshots with a specified device name. This action should be executed after `capture_ios_screenshots` action. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 2 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 90 update_app_associated_domains via Nicolas TRUTET [iOS] Replace associated domains array for the key in the entitlement file. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 58 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 89 git_authors via Viktor Rutberg List authors of a Git repository Provided actions Name Category Description git_authors - List all authors of a Git repository Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 89 google_chat_message via Douglas Garcia Send simple text messages to Google Chat Provided actions Name Category Description google_chat_message - Send simple text messages to Google Chat Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 89 aws_sns_topic via Levi Bostian Fastlane plugin to public message to SNS topic. Provided actions Name Category Description aws_sns_topic - Public a message to a AWS SNS topic. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 88 docc via Kukurijek Automate docc - documentation for swift frameworks and packages Provided actions Name Category Description docc - Automate docc - documentation for swift frameworks and packages Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 1 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 88 poeditor via Kostia Myts Upload strings to POEditor Provided actions Name Category Description upload_strings_to_poeditor - Upload strings to POEditor Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 88 goodify_info_plist via Lyndsey Ferguson This plugin will update the plist so that the built application can be deployed and managed within BlackBerry's Good Dynamics Control Center for Enterprise Mobility Management. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 56 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 88 unreleased_changelog via Manish Rathi A fastlane plugin to manage unreleased changelog using a YAML file. \ud83d\ude80 Provided actions Name Category Description get_unreleased_changelog - Get the unreleased changelog add_unreleased_changelog - Add a new entry in unreleased changelog delete_unreleased_changelog - Delete changelog entry from unreleased changelog stamp_unreleased_changelog - Stamp unreleased changelog ensure_unreleased_changelog - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 88 verify_ipa_with_app_store_connect via Onno Bergob Uses iTMSTransporter to verify an ipa with App Store Connect. Provided actions Name Category Description verify_ipa_with_app_store_connect - Uses the command line tool iTMSTransporter provided with Xcode to verify the ipa. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 1 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 30 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 88 svn_commit via cleexiang svn plugin with fastlane Provided actions Name Category Description svn_commit - Commit to svn repos with fastlane Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 88 postmark via Levi Bostian Fastlane plugin to public message to SNS topic. Provided actions Name Category Description postmark - Send emails via Postmark in fastlane! Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 88 danger_result via marumemomo Get danger data plugin. Provided actions Name Category Description danger_result - Get danger data plugin. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 87 android_reporter via Yazan Tarifi Open Android Emeulators Then Generate Report File From Tests then Upload the File To Slack Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 55 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 87 hello_test via Gianfranco Manganiello test Provided actions Name Category Description hello_test - test Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 87 ios_flavors via Zachary Davison Create multiple build flavors of an iOS .ipa file using a directory of .plist files. Provided actions Name Category Description create_ipa_flavors - Create multiple build flavors of an iOS .ipa file using a directory of .plist files create_sim_flavors - Create multiple build flavors of an iOS .app (for the simulator) using a directory of .plist files Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 87 maintenance via Jimmy Dee Maintenance actions for plugin repos. Provided actions Name Category Description rake - General-purpose rake action to invoke tasks from a Rakefile or elsewhere. update_rubocop - Automatically updates RuboCop to the latest version. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 87 fetch_version_code via CoorpAcademy Fetch (and increment) version code for given platform Provided actions Name Category Description fetch_version_code - Fetch (and increment) version code for given platform Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 18 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license -50 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 51 The more tests a plugin has, the better Open on GitHub 87 xcode_tools_select via Vincent HO-SUNE Sets the DEVELOPER_DIR environment, used by fastlane to run Xcode command line tools, to a specific Xcode version found on the current system. Provided actions Name Category Description xcode_tools_select building Set the [version] of the default Xcode Command Line Tools path to use. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 86 simulator_add_root_cert via Nico Richard Add a root cert to your simulators with Fastlane Provided actions Name Category Description simulator_add_root_cert - Easily add a root cert to your simulators with Fastlane Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 2 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 86 user_default_get via zhangqi get value like ios userDefault Provided actions Name Category Description user_default_get - get value like ios userDefault Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 25 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 86 git_status_clean via zhangqi clean git status Provided actions Name Category Description git_status_clean - clean git status Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 25 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 86 flutter_build via viniciusmo Build your flutter project directly from your lane. Provided actions Name Category Description flutter_build - Build our project directly from your lane. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 18 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 86 download_hocky_build via Anton Morozov Download newest build from HockeyApp (iOS & Android) Provided actions Name Category Description download_hocky_build - Download newest build from HockeyApp (iOS & Android) Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 86 allure_zephyr via Nikita Ianenko Publish Allure results to Zephyr Provided actions Name Category Description allure_zephyr - Publish Allure results to Zephyr Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 1 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 86 user_default_set via zhangqi fastlane save user default like ios userDefault Provided actions Name Category Description user_default_set - fastlane save user default like ios userDefault Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 25 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 85 buggly via zhuyunlong \u4e0a\u4f20Bugly Provided actions Name Category Description buggly - Upload the dSYM file to Buggly crash analyze system. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 85 discord via Matheus Gambati Discord integration with Fastlane Provided actions Name Category Description discord - Discord integration with Fastlane Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 85 pgyer_v2 via nice2m pgyer for v2 suppor Provided actions Name Category Description pgyer - distribute app to pgyer beta testing service Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 85 simplemdm via Shannon Hicks Fastlane plugin for uploading iOS builds to SimpleMDM Provided actions Name Category Description upload_to_simplemdm - Upload IPA to Simple MDM Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 0 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 84 xamversion via Jake Barnby Read and manipulate Android and iOS app versions. Provided actions Name Category Description xamversion - Read and manipulate Android and iOS app versions. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 4 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 84 generate_xliff via Kostia Myts Generates XLIFF file Provided actions Name Category Description generate_xliff - Generates XLIFF file remove_xliff_artifacts - Generates XLIFF file Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 84 schedule via marumemomo Run lane from current time Provided actions Name Category Description get_lane - Run lane from current time Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 84 testbm via Bemobile A Test plugin Provided actions Name Category Description testbm - A Test plugin bmversion - TODO bmdistribution - Distributes an app version via firebase, testflight, browsertack or the play store. bmbuild - TODO salutation - Returns hello world bminfo - TODO bmslack - Sends a message to a Slack chat specified in the SLACK_URL environment variable Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 30 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 83 flutter_dart_version_manager via Marvin Moeltgen A version manager for flutter Provided actions Name Category Description flutter_dart_version_manager - A version manager for flutter flutter_set_version - A version manager for flutter Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 83 enumerated_translations via Mads B\u00f8geskov Converts a strings file to an enum, to make it more safe to access translations. Provided actions Name Category Description enumerated_translations - Converts a strings file to an enum, to make it more safe to access translations. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 82 dependency_manager_outdated via matsuda Fastlane plugin to check project's outdated dependencies Provided actions Name Category Description cocoapods_outdated - Check outdated CocoaPods dependencies dependency_manager_outdated - Fastlane plugin to check project's outdated dependencies carthage_outdated - Check outdated Carthage dependencies Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 82 creator via David Ackerman Mobile build framework for rust-lang Provided actions Name Category Description creator_build_android - Builds apk file from rust project creator_build_ios - Builds ipa file from rust project Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 82 gitlab_tag_release via Erick Martins Simple plugin to manage gitlab releases Provided actions Name Category Description gitlab_get_release - - gitlab_create_release - - gitlab_collect_release_evidence - - gitlab_list_releases - - gitlab_delete_tag - - gitlab_update_release - - gitlab_delete_release - - Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 0 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 82 lock_keychain via Alex Antonyuk Plugin for locking unlocked keychain Provided actions Name Category Description lock_keychain - Plugin for locking unlocked keychain Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 82 xambuild via Jake Barnby Fastlane plugin to make Xamarin builds easy Provided actions Name Category Description xambuild - Easily build and sign your Xamarin iOS or Android app using `xambuild` Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 4 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 81 managed_google_play via Jan Piotrowski Create Managed Google Play Apps Provided actions Name Category Description get_managed_play_store_publishing_rights - Obtain publishing rights for custom apps on Managed Google Play Store managed_google_play - Create Managed Google Play Apps create_app_on_managed_play_store - Create Managed Google Play Apps Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -5 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 81 publish_dropbox via Tommyvanvliet This plugin publishes artifacts over to Dropbox via a generated api token from Dropbox Developer API. Provided actions Name Category Description publish_dropbox - This plugin publishes artifacts over to Dropbox via a generated api token from Dropbox Developer API. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 81 bitrise_bcsymbolmaps via Oleksandr Skrypnyk Download BCSymbolMaps from Bitrise Provided actions Name Category Description bitrise_download_bcsymbolmaps - Downloads BCSymbolMaps from Bitrise before uploading them to a crash reporting tool. bitrise_clean_bcsymbolmaps - Cleans up downloaded artifacts. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 81 upload_dsym via xiongzenghui upload dsym to your specify server Provided actions Name Category Description upload_dsym - upload dsym to your specify server Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 13 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 19 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 80 line_message via Wasith Theerapattrathamrong Use to send message to Line chat Provided actions Name Category Description line_message notifications Use to send message to Line chat Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 80 periphery via Liam Nichols Identifies unused code in Swift projects using Periphery Provided actions Name Category Description periphery - - Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 24 The more tests a plugin has, the better Open on GitHub 80 gitlab_get_max_version_branch via xiongzenghui get a max version branch from a gitlab project, like: master_5.11.9 Provided actions Name Category Description gitlab_get_max_version_branch - get a max version branch from a gitlab project, like: master_5.11.9 Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 80 depman via Andrey Shapovalov Invokes depman-scanner to programmatically run Depman analysis Provided actions Name Category Description depman testing Arcsinus Dependency manager Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 1 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 80 git_clone via xiongzenghui a wrapper for git clone command Provided actions Name Category Description git_clone source_control this is a wrapper for git clone command Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 13 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 79 build_app_for_simulator via Alexey Alter-Pesotskiy This plugin builds apps exclusively for iOS, tvOS or watchOS Simulators. Provided actions Name Category Description build_app_for_simulator building This plugin builds apps exclusively for iOS, tvOS or watchOS Simulators. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 1 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 78 download_object_from_s3 via aomathwift Download objects from AWS S3 Provided actions Name Category Description download_object_from_s3 - Download objects from AWS S3 Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 15 The more tests a plugin has, the better Open on GitHub 78 ding_talk_msg_push via asynclog dingTalk robot msg push tool Provided actions Name Category Description ding_talk_msg_push - dingTalk robot msg push tool Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 77 git_pull_branch via Bhuvanesh BS pull code from different branch Provided actions Name Category Description git_pull_branch - pull code from different branch Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 76 rename_android_package via Josh Holtz Renames Android package Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 56 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 76 release_version via Leon Keijzer This plugin makes it possible to release an already approved version in AppStore Connect Provided actions Name Category Description reject_version - This action makes it possible to reject a binary in AppStore Connect release_version - This plugin makes it possible to release an already approved version in AppStore Connect Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 76 fivethree_ionic via Marc Stammerjohann Fastlane plugin for Ionic v4 Projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 56 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 76 dropbox_upload via jason upload files to dropbox Provided actions Name Category Description dropbox_upload - upload files to dropbox Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 75 git_add_tag via xiongzenghui git add tag wrapper Provided actions Name Category Description git_add_tag source_control git add tag wrapper Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 75 sequenia_gitflow via Semen Kologrivov Script for communicating with sequenia's git repos Provided actions Name Category Description fetch_merged_tasks - Fetch merged into current branch feature tasks after last release tag Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 18 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 75 secrets via Cyril Cermak, Jo\u0308rg Nestele Securely store secrets in source code. Provided actions Name Category Description decrypt_secrets - Securely store secrets in source code encrypt_secrets - Securely store secrets in source code Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 75 import_from_url via Doruk Kangal Import another Fastfile from given url to use its lanes Provided actions Name Category Description import_from_url - Import another Fastfile from given url to use its lanes Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 75 bitwarden via Ilija Boshkov Bitwarden CLI warpper plugin Provided actions Name Category Description bitwarden_login - You can use this action to login to BitWarden and unlock the vault. bitwarden_unlock_vault - You can use this action to download an item's attachment from BitWarden. bitwarden_get_object - You can use this action to download an item's attachment from BitWarden. bitwarden_download_attachment - You can use this action to download an item's attachment from BitWarden. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 74 logme via Lui\u0301s Esteves Provides a simple way to get logs from two delta commits Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 54 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 74 gitlab_branch_diff via xiongzenghui gitlab compare two branch to get diffs Provided actions Name Category Description gitlab_branch_diff - gitlab compare two branch to get diffs Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 73 speculid via Leo Dion Use speculid to easily manage graphics in Xcode projects Provided actions Name Category Description speculid - Use speculid to Easily Manage Graphics in Xcode Projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 73 gsheet_metadata via Kevin Morais Generate metadata from Google Spreadsheet Provided actions Name Category Description gsheet_metadata - Generate metadata from Google Spreadsheet Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 73 make via xiongzenghui Linux GNU Makefile make wrapper Provided actions Name Category Description make building Linux GNU Makefile make wrapper Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 73 pgyer_jvtd via \u9648\u78ca\u7684MacBook Pro \u84b2\u516c\u82f1\u805a\u901a\u8fbe\u63d2\u4ef6 Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 53 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 73 jira_set_feature_build via Tommy Sadiq Hinrichsen Tags passed in Jira issue with a feature build url from parameter :url Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 73 resize_screenshots via Levi Bostian Resize screenshots taken from your simulator to use for Frameit. Provided actions Name Category Description resize_screenshots - Resize screenshots taken from your simulator to use for Frameit. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 73 android_channels via icyleaf Package unsign apk with channels Provided actions Name Category Description android_channels building Package apk file with channels Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 72 bugtags via wliu6 Upload symbols to Bugtags Provided actions Name Category Description bugtags - Upload symbols to Bugtags Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 72 deploy_aws_s3_cloudfront via Hector Deploy local directory to AWS S3 bucket and invalidate CloudFront Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 22 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 72 report via Bruno Migue\u0302ns After an action, like scan for instance, you're able to generate a report file. This fastlane plugin gives you a way to upload and share your report using Slack. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 40 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 72 acknowledgements via Simon Rice, Christophe Knage Use Fastlane to give credit where it's rightfully due Provided actions Name Category Description acknowledgements - Use Fastlane to give credit where it's rightfully due. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license -50 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 72 goyuyun via vincentwu08 \u4e00\u952e\u53d1\u5e03\u81f3\u4e70\u597d\u4e91 Provided actions Name Category Description goyuyun - \u4e00\u952e\u53d1\u5e03\u81f3\u4e70\u597d\u4e91 Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 72 sns_http_subscribe via mnk98 Subscribe to sns topic using http/https endpoint Provided actions Name Category Description sns_http_subscribe - - Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 71 mailjet via thibaut noah plugin to send mail notifications for build release Provided actions Name Category Description mailjet - Send a custom message to an email group with mailjet Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 13 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 71 rm_derived_data via xiongzenghui de Provided actions Name Category Description rm_derived_data building after build finish remove xx.xcworkspace/xx.xcodeproj specify DerivedDatagst/* Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 70 upload_symbols_to_shake via Shake Team Upload dSYM to Shake Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 70 app_previews via Fausto Upload app previews to the App Store Connect Provided actions Name Category Description upload_app_previews - Upload app previews to the App Store Connect Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 70 s3_cert via Josh Lesch Store and install encrypted Certs from s3 Provided actions Name Category Description s3_upload_certs - Upload encrypted certs to s3 s3_cert - Pull Certs from s3 and install them into keychain. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 70 appsigner via Valeriy Makarshin AppSigner Provided actions Name Category Description appsigner - AppSigner Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 69 get_derived_data_path via Rajiv Shah Retrieves the path of a workspace in DerivedData Provided actions Name Category Description get_derived_data_path - Retrieves the path of a workspace in DerivedData Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 69 checkbuild via Johannes Steudle This plugin will check any binary library for unwanted symbols and architectures Provided actions Name Category Description checkbuild - This plugin will check any binary library for unwanted symbols and architectures. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 69 ci_apps via JiaqiangSong Config multiple apps of CI Provided actions Name Category Description get_extensions - A short description with < = 80 characters of what this action does ci_apps - Config multiple apps of CI get_ci_apps - A short description with < = 80 characters of what this action does get_ci_app_value - A short description with < = 80 characters of what this action does get_ci_app - A short description with < = 80 characters of what this action does get_emtitlements_plist_file_path - A short description with < = 80 characters of what this action does get_target_type - A short description with < = 80 characters of what this action does get_info_plist_file_path - A short description with < = 80 characters of what this action does Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 69 appcenter_get_recent_release_version via Kitti Pariyaakkarakul Get recent release version from appcenter Provided actions Name Category Description appcenter_get_recent_release_version - Get recent release version from appcenter Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 68 gitlab_merge_request_add_note via xiongzenghui add merge request note for gitlab server api Provided actions Name Category Description gitlab_merge_request_add_note - add merge request note for gitlab server api Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 68 gitlab_merge_request_participants via xiongzenghui Get a list of merge request participants Provided actions Name Category Description gitlab_merge_request_participants - Get a list of merge request participants Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 68 redpill via omniprojects Fastlane plugin to use bluepill in fastlane Provided actions Name Category Description redpill - Plugin to use bluepill in fastlane Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license -50 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 68 avd_emulator via Guillaume Elloy This plugin is listing available android avd emulators, allowing you to start the selected one. Provided actions Name Category Description start_avd_emulator - This plugin is listing available android avd emulators, allowing you to start the selected one. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 13 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 68 cuttly_api via Yalan fastlane plugin for cuttly. Provided actions Name Category Description cuttly_api - fastlane plugin for cuttly. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 68 load_erb_config via Joaomon7eiro Fastlane plugin to read erb configuration file Provided actions Name Category Description load_erb_config - Fastlane plugin to load configuration object from yml file Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 68 git_remove_tag via xiongzenghui remove git origin and remote repo tag Provided actions Name Category Description git_remove_tag source_control remove git origin and remote repo tag Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 67 fetch_metadata_from_google_sheets via kurarararara Get App Store metadata from Google Sheets. Provided actions Name Category Description fetch_metadata_from_google_sheets - Get App Store metadata from Google Sheets. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 67 bugly via chaosky Upload dSYM to bugly. Provided actions Name Category Description bugly - Upload dSYM to bugly. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 13 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 67 bowl via Benjamin Wulff Handles uploads to BOWL backend Provided actions Name Category Description bowl - Handles uploads to BOWL backend get_gradle_property - - set_gradle_property - Set the value of your project Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 67 work_wechat via DevZhang work wecaht webhook Provided actions Name Category Description work_wechat - work wecaht webhook Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 66 microsft_teams_message_card via Dorian Cheignon Send a message card to your Microsoft teams channel Provided actions Name Category Description microsft_teams_message_card notifications Send a message card to your Microsoft teams channel Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 65 u3d via Jerome Lacoste Fastgame's u3d (a Unity3d CLI) integration Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 33 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 65 gitlab_increate_line_notes via xiongzenghui filter gitlab merge request changes files & swiftlint json, last add line code with gitlab discussion Provided actions Name Category Description gitlab_increate_line_notes - filter gitlab merge request changes files & swiftlint json, last add line code with gitlab discussion Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 65 circle_ci via Manish Rathi A fastlane plugin for Circle CI. \ud83d\ude80 Provided actions Name Category Description download_circle_ci_artifact - Download the CircleCI artifact file. trigger_circle_ci_job - Triggers a new CircleCI Job get_circle_ci_build_status - CircleCI build status get_circle_ci_artifacts - List the CircleCI artifacts. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 65 deploy_module_bintray via Bruno Oliveira Gradle action to deploy a Module from an Android project Provided actions Name Category Description deploy_module_bintray - Gradle actions to deploy a module from an Android project Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 65 gitter via Andrew Havens A Fastlane plugin for sending a message to a Gitter room. Provided actions Name Category Description gitter - Send a message to a Gitter room. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 64 google_chat_v2 via \u201cmao-karrostech\u201d google chat v2 Provided actions Name Category Description google_chat_v2 - Send message to google chat v2 Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 64 moss via Shaggon du Moss is a tool that allows developers on Apple platforms to use any frameworks as a shared cache for frameworks built with Carthage. Provided actions Name Category Description moss - moss is a tool that allows developers on Apple platforms to use any frameworks as a shared cache for frameworks built with Carthage. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 64 azuredevops_envvars via Star Leasing Company A Fastlane plugin that provides passthrough access to AzureDevOps environment variables Provided actions Name Category Description azuredevops_envvars - A Fastlane plugin that provides passthrough access to AzureDevOps environment variables Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 62 jira_ticket via Dorian Cheignon get ticket in jira board Provided actions Name Category Description jira_ticket - get ticket in jira board Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 62 jira_link via David Brooks This plugin allows you to link two tickets together in JIRA Provided actions Name Category Description jira_link misc This plugin allows you to link two tickets together in JIRA Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 62 codemagic via Mikhail Matsera Fastlane plugin to trigger a Codemagic build with some options Provided actions Name Category Description codemagic - Fastlane plugin to trigger a Codemagic build with some options Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 62 appcenter_get_version via Markus Kramm get the latest build version from the app center Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 42 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 61 retrieve_devices via Lachlan Young, BuiltByProxy retrieve all devices registered to your apple certrificate Provided actions Name Category Description retrieve_devices misc This action will retrieve a list of each device registered with Apple Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 60 app47 via Shannon Hicks Fastlane plugin for uploading builds to App47 Provided actions Name Category Description upload_to_app47 - Upload IPA to Simple MDM Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 0 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 60 asana_task via respecu asana task plugin Provided actions Name Category Description asana_task - asana task plugin Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 2 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 60 fabulove via carry \"fabulove\" distribution system fastlane plugin Provided actions Name Category Description fabulove - 'fabulove' distribution system fastlane plugin Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 59 git_import via Dmitry Frishbuter Import all required fastlane dependencies from the git repository and keep your Fastfile simple! Provided actions Name Category Description git_import - Import all required fastlane dependencies from the git repository and keep your Fastfile simple! Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 59 npm via Erick Martins A very simple plugin to run npm scripts Provided actions Name Category Description npm_test - A very simple plugin to run npm scripts npm_run - A very simple plugin to run npm scripts npm_post_install - A very simple plugin to run npm scripts npm_install - A very simple plugin to run npm scripts upgrade_package_json_version - A very simple plugin to run npm scripts npm_lint - Runs lint script Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 59 aliyunoss via yigua upload package to aliyunoss Provided actions Name Category Description aliyunoss - - Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 58 teams_message_card via Dorian Cheignon Send a message card to your Microsoft teams channel Provided actions Name Category Description teams_message_card notifications Send a message card to your Microsoft teams channel Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 56 clean_xcarchive via matsuda Fastlane plugin to remove xcarchive created when build & archive Provided actions Name Category Description clean_xcarchive - Delete the archive created at build Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 56 pgyer_cl via chenlei pgyer_cl Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 52 dingtalk_msg via fuzhongqing dingtalk robot Provided actions Name Category Description dingtalk_msg - dingtalk robot Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 52 bw_open_finder via xubowen this is tool for mac osx to open finder Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 51 open_finder via xiongzenghui this is tool for mac os x to open finder Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 51 fiv_increment_build_no via Fivethree fastlane plugin for ionic 4 Provided actions Name Category Description fivethree_ionic - Fastlane plugin for Ionic v4 Projects fiv_update_version_and_build_no - Fastlane plugin for Ionic v4 Projects fiv_update_version - A short description with < = 80 characters of what this action does fiv_increment_build_no - fastlane plugin for ionic 4 fiv_build_ionic_android - A short description with < = 80 characters of what this action does fiv_add_transparent_statusbar - You can use this action to do cool things... Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 50 itargetchecker via Catalin Prata Checks the xcode proj file for targets and points out which files from the project are not present in a certain target. Provided actions Name Category Description itargetchecker - Checks the xcodeproj file for targets and points out which files from the project are not present in a certain target. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license -50 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 47 emoji_fetcher via Felix Krause Fetch the emoji font file and copy it to a local directory Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 47 update_device_name via huyanping update device name Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 45 au_danger_gitlab via Emil Allows to use Danger on GitLab Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 45 fetch_itc_versions via Bennett Rogers Returns a listing of all app versions and their latest builds from iTunes Connect. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 45 discord_webhook_notifier via Samuel B Bispo Notify a Discord channel easuly when a build breake Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 45 jandi_webhook via respecu webhook for jandi Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 44 imagesgoldenrun via Lui\u0301s Esteves this allows comparing images from a golden run with the actual results Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 24 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 41 pixie via Piotrek Dubiel Show your build status on PIXIE! Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 21 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 40 match_android_keystore via izzis92 Get android keystores from github Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 40 pgyer-password via Kila2 distribute app to pgyer beta testing service Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 39 version_from_last_tag via Jeff Stein Perform a regex on last (latest) git tag and perform a regex to extract a version number such as Release 1.2.3 Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 19 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 39 transifex_api via alexander sun basic transifex api wrapper Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 38 profile_expiration_info via Steven Chung Returns if the provisioning profile has expired and the DateTime it expires Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 38 testin via rudy.li testin Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 37 rescan_flaky_tests via Ichiko Moro Re-run scan action for each failed test cases. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 37 appcenter_releases via Qutaibah Esa Get app releases information from AppCenter Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 37 xcode8_srgb_workaround via Siarhei Fiedartsou Converts PNGs and JPEGs in your project to sRGB format to avoid crashes when building with Xcode 8 for iOS 8 and earlier deployment target Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 37 gen_dev_workspace via Andrew Breckenridge Configures an xcworkspace with specified xcodeprojs Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 36 parse_json via Felix Krause Parse a JSON file Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 36 install_certificates via Dylan Gyesbreghs Install all the certificates located in you're project. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 36 ipa_scale via Danilo Caetano \"Checks the size of your built .ipa and warns you if you you are near the given threshold.\" Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 35 carthage_cache_res via Thi Doan A Fastlane plugin that allows to cache Carthage/Build folder in Amazon S3. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 35 test_demo via StephenCurry30 A test demo of fastlane plugin Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 35 parse_configurations via Melki It is used to parse json configration Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 35 bluepillar via Shashikant86 Fastlane Plugin to Run XCUITests in Parallel using Bluepill. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 35 carthage_cache_ftps via Wolfgang Lutz Allows to publish or install the carthage builds via ftps to avoid recompilation Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 35 bluepillarx via jterhorst Fastlane Plugin to Run XCUITests in Parallel using Bluepill. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 34 google_cloud_storage_update via Jeroen Stoker Google Cloud Storage Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 34 linear_api via Vini\u0301cius Provide an interface to access the Linear API Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 33 scipio via evandcoleman A fastlane plugin for Scipio - A caching tool for Swift Package Manager Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 33 hello_gem_kimjg via kimjg hello gem kimjg Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 33 sxc_aliyun_oss via JimmyDaddy sxc aliyun oss uploader Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 32 screenshot_notifier via Moyuru Aizawa Post screenshots to a pull request Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 32 flutter_build_increment via Matthias Seiderer Increments pubspec.yaml build version number i.e. 1.0.0+1 to 1.0.0+2 Provided actions Name Category Description flutter_build_increment - Increments pubspec.yaml build version number i.e. 1.0.0+1 to 1.0.0+2 Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 0 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 32 box via Wesley Sui library for the Box Content API Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 32 intentconfirmation via Kamil Krzyk Halts the lane invocation, asks user to confirm if he wants to continue, may require password or key. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 32 ensure_swift_version via Shashikant86 This plugin ensure version of Swift language used for project Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 31 manage_android_versions via Bruno Correia An easy way to manage your Android App versions. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 31 playship via Helmut Januschka Interact with Google Play Api Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 30 git_commit_lzx via zhenxingliu git commit all add change to git Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 29 yalantis_ci via Dima Vorona Set of utilities and useful actions to help setup CI for Yalantis projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 29 install_provisioning_profile via Alexey Martynov This plugin installs provisioning profile to Xcode Provisioning Profiles directory Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 29 jenkins_job_config via Jerome Lacoste Generate the config for a Jenkins job Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 27 figlet via Jeff Stein Wrapper around figlet which makes large ascii text words Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 27 covfefe via Jakob Jensen A templating engine for generating common file structures. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 27 devicelab_bot via Almouro Automatically install your app on your devicelab with the devicelab bot Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 26 bitly via Thang Nguyen create bit.ly short link from url Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 25 add_fix_version via Dmitry Krasulia Create and makr tickets with fix version Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 25 gitlab_increate_swiftlint via xiongzenghui Incremental Code Check using swiftlint for swift language files on gitlab platform ! Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 25 update_app_name via huyanping update app name Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 24 mobile_common via Alexander Semenov Collection of common CI actions for Android, iOS and MacOSX projects - like unit tests, app publishing, version increment, screenshots, etc. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 24 bump_android_version via Sea\u0301n Labastille Bump Android Manifest Version Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 24 current_datetime via Melki To get current date and time as string Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 24 devresponse via Helmut Januschka Enables Spaceship to deal with developer response Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 24 ram_disk via icyleaf Use a temporary ram disk to do anything else Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 24 mynewplu via lingshijun new plugin Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 24 asciii via Danielle Tomlinson Add ascii text to your fastlane output Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 23 xcodebuildonlytesting via Lu\u00eds Esteves Creates a array of tests from a junit to feed the xcodebuild only-testing Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 23 incloud_xamarin_build via punksta, torben.carstens@incloud.de Build xamarin android\\ios projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 23 xamarin_build_switch via punksta Build xamarin android\\ios projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 22 ms_teams via Thang Nguyen Send a success/error message to your Microsoft Teams channel Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 22 teamify via Ron June Valdoz MS Teams message card fastlane plugin Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 22 switchmedia_xamarin_build via punksta Build xamarin android\\ios projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 22 unp via Xu Zhen \u6d4b\u8bd5 Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 22 binary via huanglei \u7528\u4e8e\u6253iOS\u4e8c\u8fdb\u5236\u5305 Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 22 my via lujun10446 Hello fastlane plugin demo Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 21 rocket via \u4e09\u5757 rocket \u652f\u6301app\u6253\u5305\u3001\u7ec4\u4ef6\u6253\u5305\u7b49\u529f\u80fd Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 21 aomi via lihaijian this is fastlane plugin for aomi Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 21 youtrack via Semen Kologrivov Use for communicating with YouTrack (fetching issue's info, adding comments and tags etc.) Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 21 opendir via majianjie open dir Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 21 upload_to_bugly via fisherman \u5feb\u901f\u4e0a\u4f20 .dSYM \u5230 bugly Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 21 android_unpack via yejinxin Fastlane Android Unpack Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 20 feishu_bot via cook A fastlane plugin to customize your automation workflow(s) with a Feishu Bot Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 0 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 20 common_fastfile via Pawel Szymanski Gets the requested file, saves it into ./fastlane/imports and return the path Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 0 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) -10 clang_tools via squirrel-explorer A series of clang-based tools for CI/CD, including clang analyzer. Provided actions Name Category Description clang_analyzer - Analyze source codes with clang analyzer Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license -50 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub -12 retry_failed_tests via Gloria Chow Retries failed iOS tests Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license -50 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec)","title":"Available plugins"},{"location":"generated/available-plugins/#available-plugins","text":"24830","title":"Available Plugins"},{"location":"generated/actions/adb/","text":"adb Run ADB Actions see adb --help for more details adb Supported platforms android Author @hjanuschka Returns The output of the adb command 1 Example adb( command: \"shell ls\" ) Parameters Key Description Default serial Android serial of the device to use for this command '' command All commands you want to pass to the adb command, e.g. kill-server adb_path The path to your adb binary (can be left blank if the ANDROID_SDK_ROOT, ANDROID_HOME or ANDROID_SDK environment variable is set) adb * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action adb CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run adb To pass parameters, make use of the : symbol, for example fastlane run adb parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Adb"},{"location":"generated/actions/adb/#adb","text":"Run ADB Actions see adb --help for more details adb Supported platforms android Author @hjanuschka Returns The output of the adb command","title":"adb"},{"location":"generated/actions/adb/#1-example","text":"adb( command: \"shell ls\" )","title":"1 Example"},{"location":"generated/actions/adb/#parameters","text":"Key Description Default serial Android serial of the device to use for this command '' command All commands you want to pass to the adb command, e.g. kill-server adb_path The path to your adb binary (can be left blank if the ANDROID_SDK_ROOT, ANDROID_HOME or ANDROID_SDK environment variable is set) adb * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/adb/#documentation","text":"To show the documentation in your terminal, run fastlane action adb","title":"Documentation"},{"location":"generated/actions/adb/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run adb To pass parameters, make use of the : symbol, for example fastlane run adb parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/adb/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/adb_devices/","text":"adb_devices Get an array of Connected android device serials Fetches device list via adb, e.g. run an adb command on all connected devices. adb_devices Supported platforms android Author @hjanuschka Returns Returns an array of all currently connected android devices 1 Example adb_devices.each do |device| model = adb(command: \"shell getprop ro.product.model\", serial: device.serial).strip puts \"Model #{model} is connected\" end Parameters Key Description Default adb_path The path to your adb binary (can be left blank if the ANDROID_SDK_ROOT environment variable is set) adb * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action adb_devices CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run adb_devices To pass parameters, make use of the : symbol, for example fastlane run adb_devices parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Adb devices"},{"location":"generated/actions/adb_devices/#adb_devices","text":"Get an array of Connected android device serials Fetches device list via adb, e.g. run an adb command on all connected devices. adb_devices Supported platforms android Author @hjanuschka Returns Returns an array of all currently connected android devices","title":"adb_devices"},{"location":"generated/actions/adb_devices/#1-example","text":"adb_devices.each do |device| model = adb(command: \"shell getprop ro.product.model\", serial: device.serial).strip puts \"Model #{model} is connected\" end","title":"1 Example"},{"location":"generated/actions/adb_devices/#parameters","text":"Key Description Default adb_path The path to your adb binary (can be left blank if the ANDROID_SDK_ROOT environment variable is set) adb * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/adb_devices/#documentation","text":"To show the documentation in your terminal, run fastlane action adb_devices","title":"Documentation"},{"location":"generated/actions/adb_devices/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run adb_devices To pass parameters, make use of the : symbol, for example fastlane run adb_devices parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/adb_devices/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/add_extra_platforms/","text":"add_extra_platforms Modify the default list of supported platforms add_extra_platforms Supported platforms ios, android, mac Author @lacostej 1 Example add_extra_platforms( platforms: [:windows, :neogeo] ) Parameters Key Description Default platforms The optional extra platforms to support '' * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action add_extra_platforms CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run add_extra_platforms To pass parameters, make use of the : symbol, for example fastlane run add_extra_platforms parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Add extra platforms"},{"location":"generated/actions/add_extra_platforms/#add_extra_platforms","text":"Modify the default list of supported platforms add_extra_platforms Supported platforms ios, android, mac Author @lacostej","title":"add_extra_platforms"},{"location":"generated/actions/add_extra_platforms/#1-example","text":"add_extra_platforms( platforms: [:windows, :neogeo] )","title":"1 Example"},{"location":"generated/actions/add_extra_platforms/#parameters","text":"Key Description Default platforms The optional extra platforms to support '' * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/add_extra_platforms/#documentation","text":"To show the documentation in your terminal, run fastlane action add_extra_platforms","title":"Documentation"},{"location":"generated/actions/add_extra_platforms/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run add_extra_platforms To pass parameters, make use of the : symbol, for example fastlane run add_extra_platforms parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/add_extra_platforms/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/add_git_tag/","text":"add_git_tag This will add an annotated git tag to the current branch This will automatically tag your build with the following format: // , where: grouping is just to keep your tags organised under one 'folder', defaults to 'builds' lane is the name of the current fastlane lane, if chosen to be included via 'includes_lane' option, which defaults to 'true' prefix is anything you want to stick in front of the version number, e.g. 'v' postfix is anything you want to stick at the end of the version number, e.g. '-RC1' build_number is the build number, which defaults to the value emitted by the increment_build_number action For example, for build 1234 in the 'appstore' lane, it will tag the commit with builds/appstore/1234 . add_git_tag Supported platforms ios, android, mac Author @lmirosevic, @maschall 3 Examples add_git_tag # simple tag with default values add_git_tag( grouping: \"fastlane-builds\", includes_lane: true, prefix: \"v\", postfix: \"-RC1\", build_number: 123 ) # Alternatively, you can specify your own tag. Note that if you do specify a tag, all other arguments are ignored. add_git_tag( tag: \"my_custom_tag\" ) Parameters Key Description Default tag Define your own tag text. This will replace all other parameters grouping Is used to keep your tags organised under one 'folder' builds includes_lane Whether the current lane should be included in the tag and message composition, e.g. ' / / ' true prefix Anything you want to put in front of the version number (e.g. 'v') '' postfix Anything you want to put at the end of the version number (e.g. '-RC1') '' build_number The build number. Defaults to the result of increment_build_number if you're using it * message The tag message. Defaults to the tag's name * commit The commit or object where the tag will be set. Defaults to the current HEAD * force Force adding the tag false sign Make a GPG-signed tag, using the default e-mail address's key false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action add_git_tag CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run add_git_tag To pass parameters, make use of the : symbol, for example fastlane run add_git_tag parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Add git tag"},{"location":"generated/actions/add_git_tag/#add_git_tag","text":"This will add an annotated git tag to the current branch This will automatically tag your build with the following format: // , where: grouping is just to keep your tags organised under one 'folder', defaults to 'builds' lane is the name of the current fastlane lane, if chosen to be included via 'includes_lane' option, which defaults to 'true' prefix is anything you want to stick in front of the version number, e.g. 'v' postfix is anything you want to stick at the end of the version number, e.g. '-RC1' build_number is the build number, which defaults to the value emitted by the increment_build_number action For example, for build 1234 in the 'appstore' lane, it will tag the commit with builds/appstore/1234 . add_git_tag Supported platforms ios, android, mac Author @lmirosevic, @maschall","title":"add_git_tag"},{"location":"generated/actions/add_git_tag/#3-examples","text":"add_git_tag # simple tag with default values add_git_tag( grouping: \"fastlane-builds\", includes_lane: true, prefix: \"v\", postfix: \"-RC1\", build_number: 123 ) # Alternatively, you can specify your own tag. Note that if you do specify a tag, all other arguments are ignored. add_git_tag( tag: \"my_custom_tag\" )","title":"3 Examples"},{"location":"generated/actions/add_git_tag/#parameters","text":"Key Description Default tag Define your own tag text. This will replace all other parameters grouping Is used to keep your tags organised under one 'folder' builds includes_lane Whether the current lane should be included in the tag and message composition, e.g. ' / / ' true prefix Anything you want to put in front of the version number (e.g. 'v') '' postfix Anything you want to put at the end of the version number (e.g. '-RC1') '' build_number The build number. Defaults to the result of increment_build_number if you're using it * message The tag message. Defaults to the tag's name * commit The commit or object where the tag will be set. Defaults to the current HEAD * force Force adding the tag false sign Make a GPG-signed tag, using the default e-mail address's key false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/add_git_tag/#documentation","text":"To show the documentation in your terminal, run fastlane action add_git_tag","title":"Documentation"},{"location":"generated/actions/add_git_tag/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run add_git_tag To pass parameters, make use of the : symbol, for example fastlane run add_git_tag parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/add_git_tag/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/app_store_build_number/","text":"app_store_build_number Returns the current build_number of either live or edit version Returns the current build number of either the live or testflight version - it is useful for getting the build_number of the current or ready-for-sale app version, and it also works on non-live testflight version. If you need to handle more build-trains please see latest_testflight_build_number . app_store_build_number Supported platforms ios, mac Author @hjanuschka 4 Examples app_store_build_number app_store_build_number( app_identifier: \"app.identifier\", username: \"user@host.com\" ) app_store_build_number( live: false, app_identifier: \"app.identifier\", version: \"1.2.9\" ) api_key = app_store_connect_api_key( key_id: \"MyKeyID12345\", issuer_id: \"00000000-0000-0000-0000-000000000000\", key_filepath: \"./AuthKey.p8\" ) build_num = app_store_build_number( api_key: api_key ) Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * initial_build_number sets the build number to given value if no build is in current train app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your App Store Connect team if you're in multiple teams * live Query the live version (ready-for-sale) true version The version number whose latest build number we want platform The platform to use (optional) ios team_name The name of your App Store Connect team if you're in multiple teams * * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The app_store_build_number action generates the following Lane Variables: SharedValue Description SharedValues::LATEST_BUILD_NUMBER The latest build number of either live or testflight version SharedValues::LATEST_VERSION The version of the latest build number To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action app_store_build_number CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run app_store_build_number To pass parameters, make use of the : symbol, for example fastlane run app_store_build_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"App store build number"},{"location":"generated/actions/app_store_build_number/#app_store_build_number","text":"Returns the current build_number of either live or edit version Returns the current build number of either the live or testflight version - it is useful for getting the build_number of the current or ready-for-sale app version, and it also works on non-live testflight version. If you need to handle more build-trains please see latest_testflight_build_number . app_store_build_number Supported platforms ios, mac Author @hjanuschka","title":"app_store_build_number"},{"location":"generated/actions/app_store_build_number/#4-examples","text":"app_store_build_number app_store_build_number( app_identifier: \"app.identifier\", username: \"user@host.com\" ) app_store_build_number( live: false, app_identifier: \"app.identifier\", version: \"1.2.9\" ) api_key = app_store_connect_api_key( key_id: \"MyKeyID12345\", issuer_id: \"00000000-0000-0000-0000-000000000000\", key_filepath: \"./AuthKey.p8\" ) build_num = app_store_build_number( api_key: api_key )","title":"4 Examples"},{"location":"generated/actions/app_store_build_number/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * initial_build_number sets the build number to given value if no build is in current train app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your App Store Connect team if you're in multiple teams * live Query the live version (ready-for-sale) true version The version number whose latest build number we want platform The platform to use (optional) ios team_name The name of your App Store Connect team if you're in multiple teams * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/app_store_build_number/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The app_store_build_number action generates the following Lane Variables: SharedValue Description SharedValues::LATEST_BUILD_NUMBER The latest build number of either live or testflight version SharedValues::LATEST_VERSION The version of the latest build number To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/app_store_build_number/#documentation","text":"To show the documentation in your terminal, run fastlane action app_store_build_number","title":"Documentation"},{"location":"generated/actions/app_store_build_number/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run app_store_build_number To pass parameters, make use of the : symbol, for example fastlane run app_store_build_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/app_store_build_number/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/app_store_connect_api_key/","text":"app_store_connect_api_key Load the App Store Connect API token to use in other fastlane tools and actions Load the App Store Connect API token to use in other fastlane tools and actions app_store_connect_api_key Supported platforms ios, mac Author @joshdholtz 3 Examples app_store_connect_api_key( key_id: \"D83848D23\", issuer_id: \"227b0bbf-ada8-458c-9d62-3d8022b7d07f\", key_filepath: \"D83848D23.p8\" ) app_store_connect_api_key( key_id: \"D83848D23\", issuer_id: \"227b0bbf-ada8-458c-9d62-3d8022b7d07f\", key_filepath: \"D83848D23.p8\", duration: 200, in_house: true ) app_store_connect_api_key( key_id: \"D83848D23\", issuer_id: \"227b0bbf-ada8-458c-9d62-3d8022b7d07f\", key_content: \"-----BEGIN EC PRIVATE KEY-----\\nfewfawefawfe\\n-----END EC PRIVATE KEY-----\" ) Parameters Key Description Default key_id The key ID issuer_id The issuer ID key_filepath The path to the key p8 file key_content The content of the key p8 file is_key_content_base64 Whether :key_content is Base64 encoded or not false duration The token session duration 500 in_house Is App Store or Enterprise (in house) team? App Store Connect API cannot determine this on its own (yet) false set_spaceship_token Authorizes all Spaceship::ConnectAPI requests by automatically setting Spaceship::ConnectAPI.token true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The app_store_connect_api_key action generates the following Lane Variables: SharedValue Description SharedValues::APP_STORE_CONNECT_API_KEY The App Store Connect API key information used for authorization requests. This hash can be passed directly into the :api_key options on other tools or into Spaceship::ConnectAPI::Token.create method To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action app_store_connect_api_key CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run app_store_connect_api_key To pass parameters, make use of the : symbol, for example fastlane run app_store_connect_api_key parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"App store connect api key"},{"location":"generated/actions/app_store_connect_api_key/#app_store_connect_api_key","text":"Load the App Store Connect API token to use in other fastlane tools and actions Load the App Store Connect API token to use in other fastlane tools and actions app_store_connect_api_key Supported platforms ios, mac Author @joshdholtz","title":"app_store_connect_api_key"},{"location":"generated/actions/app_store_connect_api_key/#3-examples","text":"app_store_connect_api_key( key_id: \"D83848D23\", issuer_id: \"227b0bbf-ada8-458c-9d62-3d8022b7d07f\", key_filepath: \"D83848D23.p8\" ) app_store_connect_api_key( key_id: \"D83848D23\", issuer_id: \"227b0bbf-ada8-458c-9d62-3d8022b7d07f\", key_filepath: \"D83848D23.p8\", duration: 200, in_house: true ) app_store_connect_api_key( key_id: \"D83848D23\", issuer_id: \"227b0bbf-ada8-458c-9d62-3d8022b7d07f\", key_content: \"-----BEGIN EC PRIVATE KEY-----\\nfewfawefawfe\\n-----END EC PRIVATE KEY-----\" )","title":"3 Examples"},{"location":"generated/actions/app_store_connect_api_key/#parameters","text":"Key Description Default key_id The key ID issuer_id The issuer ID key_filepath The path to the key p8 file key_content The content of the key p8 file is_key_content_base64 Whether :key_content is Base64 encoded or not false duration The token session duration 500 in_house Is App Store or Enterprise (in house) team? App Store Connect API cannot determine this on its own (yet) false set_spaceship_token Authorizes all Spaceship::ConnectAPI requests by automatically setting Spaceship::ConnectAPI.token true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/app_store_connect_api_key/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The app_store_connect_api_key action generates the following Lane Variables: SharedValue Description SharedValues::APP_STORE_CONNECT_API_KEY The App Store Connect API key information used for authorization requests. This hash can be passed directly into the :api_key options on other tools or into Spaceship::ConnectAPI::Token.create method To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/app_store_connect_api_key/#documentation","text":"To show the documentation in your terminal, run fastlane action app_store_connect_api_key","title":"Documentation"},{"location":"generated/actions/app_store_connect_api_key/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run app_store_connect_api_key To pass parameters, make use of the : symbol, for example fastlane run app_store_connect_api_key parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/app_store_connect_api_key/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/appaloosa/","text":"appaloosa Upload your app to Appaloosa Store Appaloosa is a private mobile application store. This action offers a quick deployment on the platform. You can create an account, push to your existing account, or manage your user groups. We accept iOS and Android applications. appaloosa Supported platforms ios, android, mac Author @Appaloosa 1 Example appaloosa( # Path tor your IPA or APK binary: '/path/to/binary.ipa', # You can find your store\u2019s id at the bottom of the \u201cSettings\u201d page of your store store_id: 'your_store_id', # You can find your api_token at the bottom of the \u201cSettings\u201d page of your store api_token: 'your_api_key', # User group_ids visibility, if it's not specified we'll publish the app for all users in your store' group_ids: '112, 232, 387', # You can use fastlane/snapshot or specify your own screenshots folder. # If you use snapshot please specify a local and a device to upload your screenshots from. # When multiple values are specified in the Snapfile, we default to 'en-US' locale: 'en-US', # By default, the screenshots from the last device will be used device: 'iPhone6', # Screenshots' filenames should start with device's name like 'iphone6-s1.png' if device specified screenshots: '/path/to_your/screenshots' ) Parameters Key Description Default binary Binary path. Optional for ipa if you use the ipa or xcodebuild action * api_token Your API token store_id Your Store id group_ids Your app is limited to special users? Give us the group ids '' screenshots Add some screenshots application to your store or hit [enter] * locale Select the folder locale for your screenshots en-US device Select the device format for your screenshots description Your app description changelog Your app changelog * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action appaloosa CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appaloosa To pass parameters, make use of the : symbol, for example fastlane run appaloosa parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Appaloosa"},{"location":"generated/actions/appaloosa/#appaloosa","text":"Upload your app to Appaloosa Store Appaloosa is a private mobile application store. This action offers a quick deployment on the platform. You can create an account, push to your existing account, or manage your user groups. We accept iOS and Android applications. appaloosa Supported platforms ios, android, mac Author @Appaloosa","title":"appaloosa"},{"location":"generated/actions/appaloosa/#1-example","text":"appaloosa( # Path tor your IPA or APK binary: '/path/to/binary.ipa', # You can find your store\u2019s id at the bottom of the \u201cSettings\u201d page of your store store_id: 'your_store_id', # You can find your api_token at the bottom of the \u201cSettings\u201d page of your store api_token: 'your_api_key', # User group_ids visibility, if it's not specified we'll publish the app for all users in your store' group_ids: '112, 232, 387', # You can use fastlane/snapshot or specify your own screenshots folder. # If you use snapshot please specify a local and a device to upload your screenshots from. # When multiple values are specified in the Snapfile, we default to 'en-US' locale: 'en-US', # By default, the screenshots from the last device will be used device: 'iPhone6', # Screenshots' filenames should start with device's name like 'iphone6-s1.png' if device specified screenshots: '/path/to_your/screenshots' )","title":"1 Example"},{"location":"generated/actions/appaloosa/#parameters","text":"Key Description Default binary Binary path. Optional for ipa if you use the ipa or xcodebuild action * api_token Your API token store_id Your Store id group_ids Your app is limited to special users? Give us the group ids '' screenshots Add some screenshots application to your store or hit [enter] * locale Select the folder locale for your screenshots en-US device Select the device format for your screenshots description Your app description changelog Your app changelog * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/appaloosa/#documentation","text":"To show the documentation in your terminal, run fastlane action appaloosa","title":"Documentation"},{"location":"generated/actions/appaloosa/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appaloosa To pass parameters, make use of the : symbol, for example fastlane run appaloosa parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/appaloosa/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/appetize/","text":"appetize Upload your app to Appetize.io to stream it in browser If you provide a public_key , this will overwrite an existing application. If you want to have this build as a new app version, you shouldn't provide this value. To integrate appetize into your GitHub workflow check out the device_grid guide . appetize Supported platforms ios, android Author @klundberg, @giginet, @steprescott 2 Examples appetize( path: \"./MyApp.zip\", api_token: \"yourapitoken\", # get it from https://appetize.io/docs#request-api-token public_key: \"your_public_key\" # get it from https://appetize.io/dashboard ) appetize( path: \"./MyApp.zip\", api_host: \"company.appetize.io\", # only needed for enterprise hosted solution api_token: \"yourapitoken\", # get it from https://appetize.io/docs#request-api-token public_key: \"your_public_key\" # get it from https://appetize.io/dashboard ) Parameters Key Description Default api_host Appetize API host api.appetize.io api_token Appetize.io API Token url URL from which the ipa file can be fetched. Alternative to :path platform Platform. Either ios or android ios path Path to zipped build on the local filesystem. Either this or url must be specified public_key If not provided, a new app will be created. If provided, the existing build will be overwritten note Notes you wish to add to the uploaded app timeout The number of seconds to wait until automatically ending the session due to user inactivity. Must be 30, 60, 90, 120, 180, 300, 600, 1800, 3600 or 7200. Default is 120 * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The appetize action generates the following Lane Variables: SharedValue Description SharedValues::APPETIZE_API_HOST Appetize API host. SharedValues::APPETIZE_PUBLIC_KEY a public identifier for your app. Use this to update your app after it has been initially created. SharedValues::APPETIZE_APP_URL a page to test and share your app. SharedValues::APPETIZE_MANAGE_URL a page to manage your app. To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action appetize CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appetize To pass parameters, make use of the : symbol, for example fastlane run appetize parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Appetize"},{"location":"generated/actions/appetize/#appetize","text":"Upload your app to Appetize.io to stream it in browser If you provide a public_key , this will overwrite an existing application. If you want to have this build as a new app version, you shouldn't provide this value. To integrate appetize into your GitHub workflow check out the device_grid guide . appetize Supported platforms ios, android Author @klundberg, @giginet, @steprescott","title":"appetize"},{"location":"generated/actions/appetize/#2-examples","text":"appetize( path: \"./MyApp.zip\", api_token: \"yourapitoken\", # get it from https://appetize.io/docs#request-api-token public_key: \"your_public_key\" # get it from https://appetize.io/dashboard ) appetize( path: \"./MyApp.zip\", api_host: \"company.appetize.io\", # only needed for enterprise hosted solution api_token: \"yourapitoken\", # get it from https://appetize.io/docs#request-api-token public_key: \"your_public_key\" # get it from https://appetize.io/dashboard )","title":"2 Examples"},{"location":"generated/actions/appetize/#parameters","text":"Key Description Default api_host Appetize API host api.appetize.io api_token Appetize.io API Token url URL from which the ipa file can be fetched. Alternative to :path platform Platform. Either ios or android ios path Path to zipped build on the local filesystem. Either this or url must be specified public_key If not provided, a new app will be created. If provided, the existing build will be overwritten note Notes you wish to add to the uploaded app timeout The number of seconds to wait until automatically ending the session due to user inactivity. Must be 30, 60, 90, 120, 180, 300, 600, 1800, 3600 or 7200. Default is 120 * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/appetize/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The appetize action generates the following Lane Variables: SharedValue Description SharedValues::APPETIZE_API_HOST Appetize API host. SharedValues::APPETIZE_PUBLIC_KEY a public identifier for your app. Use this to update your app after it has been initially created. SharedValues::APPETIZE_APP_URL a page to test and share your app. SharedValues::APPETIZE_MANAGE_URL a page to manage your app. To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/appetize/#documentation","text":"To show the documentation in your terminal, run fastlane action appetize","title":"Documentation"},{"location":"generated/actions/appetize/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appetize To pass parameters, make use of the : symbol, for example fastlane run appetize parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/appetize/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/appetize_viewing_url_generator/","text":"appetize_viewing_url_generator Generate an URL for appetize simulator Check out the device_grid guide for more information appetize_viewing_url_generator Supported platforms ios Author @KrauseFx Returns The URL to preview the iPhone app Parameters Key Description Default public_key Public key of the app you wish to update * base_url Base URL of Appetize service https://appetize.io/embed device Device type: iphone4s, iphone5s, iphone6, iphone6plus, ipadair, iphone6s, iphone6splus, ipadair2, nexus5, nexus7 or nexus9 iphone5s scale Scale of the simulator orientation Device orientation portrait language Device language in ISO 639-1 language code, e.g. 'de' color Color of the device black launch_url Specify a deep link to open when your app is launched os_version The operating system version on which to run your app, e.g. 10.3, 8.0 params Specify params value to be passed to Appetize proxy Specify a HTTP proxy to be passed to Appetize * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action appetize_viewing_url_generator CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appetize_viewing_url_generator To pass parameters, make use of the : symbol, for example fastlane run appetize_viewing_url_generator parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Appetize viewing url generator"},{"location":"generated/actions/appetize_viewing_url_generator/#appetize_viewing_url_generator","text":"Generate an URL for appetize simulator Check out the device_grid guide for more information appetize_viewing_url_generator Supported platforms ios Author @KrauseFx Returns The URL to preview the iPhone app","title":"appetize_viewing_url_generator"},{"location":"generated/actions/appetize_viewing_url_generator/#parameters","text":"Key Description Default public_key Public key of the app you wish to update * base_url Base URL of Appetize service https://appetize.io/embed device Device type: iphone4s, iphone5s, iphone6, iphone6plus, ipadair, iphone6s, iphone6splus, ipadair2, nexus5, nexus7 or nexus9 iphone5s scale Scale of the simulator orientation Device orientation portrait language Device language in ISO 639-1 language code, e.g. 'de' color Color of the device black launch_url Specify a deep link to open when your app is launched os_version The operating system version on which to run your app, e.g. 10.3, 8.0 params Specify params value to be passed to Appetize proxy Specify a HTTP proxy to be passed to Appetize * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/appetize_viewing_url_generator/#documentation","text":"To show the documentation in your terminal, run fastlane action appetize_viewing_url_generator","title":"Documentation"},{"location":"generated/actions/appetize_viewing_url_generator/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appetize_viewing_url_generator To pass parameters, make use of the : symbol, for example fastlane run appetize_viewing_url_generator parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/appetize_viewing_url_generator/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/appium/","text":"appium Run UI test by Appium with RSpec appium Supported platforms ios, android Author @yonekawa 1 Example appium( app_path: \"appium/apps/TargetApp.app\", spec_path: \"appium/spec\", platform: \"iOS\", caps: { versionNumber: \"9.1\", deviceName: \"iPhone 6\" }, appium_lib: { wait: 10 } ) Parameters Key Description Default platform Appium platform name spec_path Path to Appium spec directory app_path Path to Appium target app file invoke_appium_server Use local Appium server with invoke automatically true host Hostname of Appium server 0.0.0.0 port HTTP port of Appium server 4723 appium_path Path to Appium executable caps Hash of caps for Appium::Driver appium_lib Hash of appium_lib for Appium::Driver * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action appium CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appium To pass parameters, make use of the : symbol, for example fastlane run appium parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Appium"},{"location":"generated/actions/appium/#appium","text":"Run UI test by Appium with RSpec appium Supported platforms ios, android Author @yonekawa","title":"appium"},{"location":"generated/actions/appium/#1-example","text":"appium( app_path: \"appium/apps/TargetApp.app\", spec_path: \"appium/spec\", platform: \"iOS\", caps: { versionNumber: \"9.1\", deviceName: \"iPhone 6\" }, appium_lib: { wait: 10 } )","title":"1 Example"},{"location":"generated/actions/appium/#parameters","text":"Key Description Default platform Appium platform name spec_path Path to Appium spec directory app_path Path to Appium target app file invoke_appium_server Use local Appium server with invoke automatically true host Hostname of Appium server 0.0.0.0 port HTTP port of Appium server 4723 appium_path Path to Appium executable caps Hash of caps for Appium::Driver appium_lib Hash of appium_lib for Appium::Driver * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/appium/#documentation","text":"To show the documentation in your terminal, run fastlane action appium","title":"Documentation"},{"location":"generated/actions/appium/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appium To pass parameters, make use of the : symbol, for example fastlane run appium parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/appium/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/appledoc/","text":"appledoc Generate Apple-like source code documentation from the source code Runs appledoc [OPTIONS] for the project appledoc Supported platforms ios, mac Author @alexmx 1 Example appledoc( project_name: \"MyProjectName\", project_company: \"Company Name\", input: [ \"MyProjectSources\", \"MyProjectSourceFile.h\" ], ignore: [ \"ignore/path/1\", \"ingore/path/2\" ], options: \"--keep-intermediate-files --search-undocumented-doc\", warnings: \"--warn-missing-output-path --warn-missing-company-id\" ) Parameters Key Description Default input Path(s) to source file directories or individual source files. Accepts a single path or an array of paths output Output path templates Template files path docset_install_path DocSet installation path include Include static doc(s) at path ignore Ignore given path exclude_output Exclude given path from output index_desc File including main index description project_name Project name project_version Project version project_company Project company company_id Company UTI (i.e. reverse DNS name) create_html Create HTML false create_docset Create documentation set false install_docset Install documentation set to Xcode false publish_docset Prepare DocSet for publishing false no_create_docset Create HTML and skip creating a DocSet false html_anchors The html anchor format to use in DocSet HTML clean_output Remove contents of output path before starting false docset_bundle_id DocSet bundle identifier docset_bundle_name DocSet bundle name docset_desc DocSet description docset_copyright DocSet copyright message docset_feed_name DocSet feed name docset_feed_url DocSet feed URL docset_feed_formats DocSet feed formats. Separated by a comma [atom,xml] docset_package_url DocSet package (.xar) URL docset_fallback_url DocSet fallback URL docset_publisher_id DocSet publisher identifier docset_publisher_name DocSet publisher name docset_min_xcode_version DocSet min. Xcode version docset_platform_family DocSet platform family docset_cert_issuer DocSet certificate issuer docset_cert_signer DocSet certificate signer docset_bundle_filename DocSet bundle filename docset_atom_filename DocSet atom feed filename docset_xml_filename DocSet xml feed filename docset_package_filename DocSet package (.xar,.tgz) filename options Documentation generation options crossref_format Cross reference template regex exit_threshold Exit code threshold below which 0 is returned 2 docs_section_title Title of the documentation section (defaults to \"Programming Guides\" warnings Documentation generation warnings logformat Log format [0-3] verbose Log verbosity level [0-6,xcode] * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The appledoc action generates the following Lane Variables: SharedValue Description SharedValues::APPLEDOC_DOCUMENTATION_OUTPUT Documentation set output path To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action appledoc CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appledoc To pass parameters, make use of the : symbol, for example fastlane run appledoc parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Appledoc"},{"location":"generated/actions/appledoc/#appledoc","text":"Generate Apple-like source code documentation from the source code Runs appledoc [OPTIONS] for the project appledoc Supported platforms ios, mac Author @alexmx","title":"appledoc"},{"location":"generated/actions/appledoc/#1-example","text":"appledoc( project_name: \"MyProjectName\", project_company: \"Company Name\", input: [ \"MyProjectSources\", \"MyProjectSourceFile.h\" ], ignore: [ \"ignore/path/1\", \"ingore/path/2\" ], options: \"--keep-intermediate-files --search-undocumented-doc\", warnings: \"--warn-missing-output-path --warn-missing-company-id\" )","title":"1 Example"},{"location":"generated/actions/appledoc/#parameters","text":"Key Description Default input Path(s) to source file directories or individual source files. Accepts a single path or an array of paths output Output path templates Template files path docset_install_path DocSet installation path include Include static doc(s) at path ignore Ignore given path exclude_output Exclude given path from output index_desc File including main index description project_name Project name project_version Project version project_company Project company company_id Company UTI (i.e. reverse DNS name) create_html Create HTML false create_docset Create documentation set false install_docset Install documentation set to Xcode false publish_docset Prepare DocSet for publishing false no_create_docset Create HTML and skip creating a DocSet false html_anchors The html anchor format to use in DocSet HTML clean_output Remove contents of output path before starting false docset_bundle_id DocSet bundle identifier docset_bundle_name DocSet bundle name docset_desc DocSet description docset_copyright DocSet copyright message docset_feed_name DocSet feed name docset_feed_url DocSet feed URL docset_feed_formats DocSet feed formats. Separated by a comma [atom,xml] docset_package_url DocSet package (.xar) URL docset_fallback_url DocSet fallback URL docset_publisher_id DocSet publisher identifier docset_publisher_name DocSet publisher name docset_min_xcode_version DocSet min. Xcode version docset_platform_family DocSet platform family docset_cert_issuer DocSet certificate issuer docset_cert_signer DocSet certificate signer docset_bundle_filename DocSet bundle filename docset_atom_filename DocSet atom feed filename docset_xml_filename DocSet xml feed filename docset_package_filename DocSet package (.xar,.tgz) filename options Documentation generation options crossref_format Cross reference template regex exit_threshold Exit code threshold below which 0 is returned 2 docs_section_title Title of the documentation section (defaults to \"Programming Guides\" warnings Documentation generation warnings logformat Log format [0-3] verbose Log verbosity level [0-6,xcode] * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/appledoc/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The appledoc action generates the following Lane Variables: SharedValue Description SharedValues::APPLEDOC_DOCUMENTATION_OUTPUT Documentation set output path To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/appledoc/#documentation","text":"To show the documentation in your terminal, run fastlane action appledoc","title":"Documentation"},{"location":"generated/actions/appledoc/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appledoc To pass parameters, make use of the : symbol, for example fastlane run appledoc parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/appledoc/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/appstore/","text":"appstore Alias for the upload_to_app_store action deliver uploads screenshots, metadata and binaries to App Store Connect. Use deliver to submit your app for App Store review. Features \u2022 Quick Start \u2022 Usage \u2022 Tips deliver is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Features Upload hundreds of localized screenshots completely automatically Upload a new ipa/pkg file to App Store Connect without Xcode from any Mac Maintain your app metadata locally and push changes back to App Store Connect Easily implement a real Continuous Deployment process using fastlane Store the configuration in git to easily deploy from any Mac, including your Continuous Integration server Get a HTML preview of the fetched metadata before uploading the app metadata and screenshots to iTC Automatically uses precheck to ensure your app has the highest chances of passing app review the first time To upload builds to TestFlight check out pilot . Quick Start The guide will create all the necessary files for you, using the existing app metadata from App Store Connect. cd [your_project_folder] fastlane deliver init Enter your App Store Connect credentials Enter your app identifier Enjoy a good drink, while the computer does all the work for you From now on, you can run fastlane deliver to deploy a new update, or just upload new app metadata and screenshots. Usage Check out your local ./fastlane/metadata and ./fastlane/screenshots folders (if you don't use fastlane it's ./metadata instead) You'll see your metadata from App Store Connect. Feel free to store the metadata in git (not the screenshots). You can now modify it locally and push the changes back to App Store Connect. Run fastlane deliver to upload the app metadata from your local machine fastlane deliver Provide the path to an ipa file to upload and submit your app for review: fastlane deliver --ipa \"App.ipa\" --submit_for_review or you can specify path to pkg file for macOS apps: fastlane deliver --pkg \"MacApp.pkg\" If you use fastlane you don't have to manually specify the path to your ipa / pkg file. This is just a small sub-set of what you can do with deliver , check out the full documentation in #more-options Download existing screenshots from App Store Connect fastlane deliver download_screenshots Download existing metadata from App Store Connect fastlane deliver download_metadata To get a list of available options run fastlane action deliver Use in a Fastfile deliver deliver( submit_for_review: true, force: true, metadata_path: \"./metadata\" ) More options View all available options and their valid values Available options All the options below can easily be added to your Deliverfile . The great thing: if you use fastlane you can use all these options from your Fastfile too, for example: deliver( submit_for_review: true, metadata_path: \"../folder\" ) app_identifier The bundle identifier (e.g. \"com.krausefx.app\") username Your Apple ID email address ipa A path to a signed ipa file, which will be uploaded. If you don't provide this value, only app metadata will be uploaded. If you want to submit the app for review make sure to either use fastlane deliver --submit_for_review or add submit_for_review true to your Deliverfile ipa(\"App.ipa\") if you use fastlane the ipa file will automatically be detected. pkg A path to a signed pkg file, which will be uploaded. Submission logic of ipa applies to pkg files. pkg(\"MacApp.pkg\") app_version Optional, as it is usually automatically detected. Specify the version that should be created / edited on App Store Connect: app_version(\"2.0\") skip_app_version_update In the case if deliver uploads your application to App Store Connect it will automatically update \"Prepare for submission\" app version (which could be found on App Store Connect->My Apps->App Store page) The option allows uploading your app without updating \"Prepare for submission\" version. This could be useful in the case if you are generating a lot of uploads while not submitting the latest build for Apple review. The default value is false. skip_app_version_update(true) submit_for_review Add this to your Deliverfile to automatically submit the app for review after uploading metadata/binary. This will select the latest build. submit_for_review(true) screenshots_path A path to a folder containing subfolders for each language. This will automatically detect the device type based on the image resolution. Also includes \uf8ff Watch Support. metadata_path Path to the metadata you want to use. The folder has to be structured like this If you run deliver init this will automatically be created for you. force force(true) If set to true , no HTML report will be generated before the actual upload. You can also pass --force when calling deliver . price_tier Pass the price tier as number. This will be active from the current day. price_tier 0 trade_representative_contact_information Trade Representative Contact information for Korean App Store. Available options: first_name , last_name , address_line1 , address_line2 , address_line3 , city_name , state , country , postal_code , phone_number , email_address , is_displayed_on_app_store . trade_representative_contact_information( first_name: \"Felix\", last_name: \"Krause\", address_line1: \"1 Infinite Loop\", address_line2: \"\", address_line3: null, city_name: \"Cupertino\", state: \"California\", country: \"United States\", postal_code: \"95014\", phone_number: \"+43 123123123\", email_address: \"github@krausefx.com\", ) You can also provide these values by creating files in a metadata/trade_representative_contact_information/ directory. The file names must match the pattern .txt (e.g. first_name.txt , address_line1.txt etc.). The contents of each file will be used as the value for the matching key. Values provided in the Deliverfile or Fastfile will be take priority over values from these files. is_displayed_on_app_store is the option on App Store Connect described as: Display Trade Representative Contact Information on the Korean App Store app_review_information Contact information for the app review team. Available options: first_name , last_name , phone_number , email_address , demo_user , demo_password , notes . app_review_information( first_name: \"Felix\", last_name: \"Krause\", phone_number: \"+43 123123123\", email_address: \"github@krausefx.com\", demo_user: \"demoUser\", demo_password: \"demoPass\", notes: \"such notes, very text\" ) You can also provide these values by creating files in a metadata/review_information/ directory. The file names must match the pattern .txt (e.g. first_name.txt , notes.txt etc.). The contents of each file will be used as the value for the matching key. Values provided in the Deliverfile or Fastfile will be take priority over values from these files. app_review_attachment_file You can provide additional information to the app review team as a file attachment. As of this writing, Apple supports following file attachment formats: .pdf, .doc, .docx, .rtf, .pages, .xls, .xlsx, .numbers, .zip, .rar, .plist, .crash, .jpg, .png, .mp4, or .avi. Provide an empty string (i.e. \"\", not null) to remove the existing attachment file (if any) from the review information being edited. app_review_attachment_file: \"./readme.txt\" submission_information Must be a hash. This is used as the last step for the deployment process, where you define if you use third party content or use encryption. A list of available options . submission_information({ add_id_info_serves_ads: true, ... }) automatic_release Should the app be released to all users once Apple approves it? If set to false , you'll have to manually release the update once it got approved. automatic_release(true) # or automatic_release(false) phased_release Enable or disable the phased releases feature of App Store Connect. If set to true , the update will be released over a 7 day period. Default behavior is to leave whatever you defined on App Store Connect. phased_release(true) # or phased_release(false) reset_ratings Reset your app's summary rating for all territories. If set to true , it will reset rating when this version is released. Default behavior is to keep existing rating. reset_ratings(true) # or reset_ratings(false) app_rating_config_path You can set the app age ratings using deliver . You'll have to create and store a JSON configuration file. Copy the template to your project folder and pass the path to the JSON file using the app_rating_config_path option. The keys/values on the top allow one of 3 strings: \"NONE\", \"INFREQUENT_OR_MILD\" or \"FREQUENT_OR_INTENSE\", and the items on the bottom allow false or true. More information in #reference . Metadata All options below are useful if you want to specify certain app metadata in your Deliverfile or Fastfile Localized Localized values should be set like this description({ 'en-US' => \"English Description here\", 'de-DE' => \"Deutsche Beschreibung hier\" }) name The title/name of the app subtitle Localized subtitle of the app subtitle( \"en-US\" => \"Awesome English subtitle here\", \"de-DE\" => \"Jetzt mit deutschen Untertiteln!\" ) description The description of the app release_notes The release_notes (What's new / Changelog) of the latest version support_url, marketing_url, privacy_url These URLs are shown in the AppStore keywords Keywords separated using a comma. keywords( \"en-US\" => \"Keyword1, Keyword2\" ) promotional_text Localized promotional text promotional_text( \"en-US\" => \"Hey, you should totally buy our app, it's the best\", \"de-DE\" => \"App kaufen bitte\" ) app_icon A path to a new app icon, which must be exactly 1024x1024px app_icon('./AppIcon.png') apple_watch_app_icon A path to a new app icon for the \uf8ff Watch, which must be exactly 1024x1024px apple_watch_app_icon('./AppleWatchAppIcon.png') platform The platform of your application (a.e. ios, osx). This option is optional. The default value is \"ios\" and deliver should be able to figure out the platform from your binary. However, in the case if multiple binaries present, you can specify a platform which you want to deliver explicitly. The available options: 'ios' 'appletvos' 'osx' Non-Localized copyright The up to date copyright information. copyright(\"#{Time.now.year} Felix Krause\") primary_category The english name of the category you want to set (e.g. Business , Books ) See #reference for a list of available categories secondary_category The english name of the secondary category you want to set primary_first_sub_category The english name of the primary first sub category you want to set primary_second_sub_category The english name of the primary second sub category you want to set secondary_first_sub_category The english name of the secondary first sub category you want to set secondary_second_sub_category The english name of the secondary second sub category you want to set Submit Build deliver allows you to promote an existing build to production. Below are examples to select a previously uploaded build and submit it for review. fastlane deliver submit_build --build_number 830 Submit build in a Fastfile lane :submit_review do deliver( build_number: '830', submit_for_review: true, automatic_release: true, force: true, # Skip HTMl report verification skip_metadata: true, skip_screenshots: true, skip_binary_upload: true ) end Omit build_number to let fastlane automatically select the latest build number for the current version being edited for release from App Store Connect. Compliance and IDFA settings Use the submission_information parameter for additional submission specifiers, including compliance and IDFA settings. Look at the Spaceship's app_submission.rb file for options. See this example . fastlane deliver submit_build --build_number 830 --submission_information \"{\\\"export_compliance_uses_encryption\\\": false, \\\"add_id_info_uses_idfa\\\": false }\" App Privacy Details Starting on December 8, 2020, Apple announced that developers are required to provide app privacy details that will help users understand an app's privacy practies. deliver does not allow for updating of this information but this can be done with the upload_app_privacy_details_to_app_store action. More information on Uploading App Privacy Details Credentials A detailed description about how your credentials are handled is available in a credentials_manager . How does this thing even work? Is magic involved? \ud83c\udfa9 Your password will be stored in the macOS keychain, but can also be passed using environment variables. (More information available on CredentialsManager ) Before actually uploading anything to iTunes, deliver will generate a HTML summary of the collected data. deliver uses the following techniques under the hood: The iTMSTransporter tool is used to upload the binary to App Store Connect. iTMSTransporter is a command line tool provided by Apple. For all metadata related actions deliver uses spaceship Tips Available language codes ar-SA, ca, cs, da, de-DE, el, en-AU, en-CA, en-GB, en-US, es-ES, es-MX, fi, fr-CA, fr-FR, he, hi, hr, hu, id, it, ja, ko, ms, nl-NL, no, pl, pt-BR, pt-PT, ro, ru, sk, sv, th, tr, uk, vi, zh-Hans, zh-Hant Available Metadata Folder Options deliver allows for metadata to be set through .txt files in the metadata folder. This metadata folder location is defaulted to ./fastlane/metadata but can be overridden through the metadata_path parameter. Below are all allowed metadata options. Non-Localized Metadata Key Editable While Live Directory Filename copyright Yes copyright.txt primary_category No primary_category.txt secondary_category No secondary_category.txt primary_first_sub_category No primary_first_sub_category.txt primary_second_sub_category No primary_second_sub_category.txt secondary_first_sub_category No secondary_first_sub_category.txt secondary_second_sub_category No secondary_second_sub_category.txt Localized Metadata Key Editable While Live Directory Filename name No // name.txt subtitle No // subtitle.txt privacy_url Yes // privacy_url.txt apple_tv_privacy_policy No // apple_tv_privacy_policy.txt description Yes // description.txt keywords No // keywords.txt release_notes Yes // release_notes.txt support_url Yes // support_url.txt marketing_url Yes // marketing_url.txt promotional_text Yes // promotional_text.txt Review Information Metadata Key Editable While Live Directory Filename Deprecated Filename first_name Yes /review_information first_name.txt review_first_name.txt last_name Yes /review_information last_name.txt review_last_name.txt phone_number Yes /review_information phone_number.txt review_phone_number.txt email_address Yes /review_information email_address.txt review_email.txt demo_user Yes /review_information demo_user.txt review_demo_user.txt demo_password Yes /review_information demo_password.txt review_demo_password.txt notes Yes /review_information notes.txt review_notes.txt Reference View all available categories, etc. Available Categories FOOD_AND_DRINK BUSINESS EDUCATION SOCIAL_NETWORKING BOOKS SPORTS FINANCE REFERENCE GRAPHICS_AND_DESIGN DEVELOPER_TOOLS HEALTH_AND_FITNESS MUSIC WEATHER TRAVEL ENTERTAINMENT STICKERS GAMES LIFESTYLE MEDICAL MAGAZINES_AND_NEWSPAPERS UTILITIES SHOPPING PRODUCTIVITY NEWS PHOTO_AND_VIDEO NAVIGATION Available Game Subcategories MZGenre.Action MZGenre.Adventure MZGenre.Arcade MZGenre.Board MZGenre.Card MZGenre.Casino MZGenre.Dice MZGenre.Educational MZGenre.Family MZGenre.Music MZGenre.Puzzle MZGenre.Racing MZGenre.RolePlaying MZGenre.Simulation MZGenre.Sports MZGenre.Strategy MZGenre.Trivia MZGenre.Word GAMES_SPORTS GAMES_WORD GAMES_MUSIC GAMES_ADVENTURE GAMES_ACTION GAMES_ROLE_PLAYING GAMES_CASUAL GAMES_BOARD GAMES_TRIVIA GAMES_CARD GAMES_PUZZLE GAMES_CASINO GAMES_STRATEGY GAMES_SIMULATION GAMES_RACING GAMES_FAMILY Available Stickers Subcategories STICKERS_PLACES_AND_OBJECTS STICKERS_EMOJI_AND_EXPRESSIONS STICKERS_CELEBRATIONS STICKERS_CELEBRITIES STICKERS_MOVIES_AND_TV STICKERS_SPORTS_AND_ACTIVITIES STICKERS_EATING_AND_DRINKING STICKERS_CHARACTERS STICKERS_ANIMALS STICKERS_FASHION STICKERS_ART STICKERS_GAMING STICKERS_KIDS_AND_FAMILY STICKERS_PEOPLE STICKERS_MUSIC Available age rating groups Non Boolean Values 0: None (Legacy value, use NONE instead) 1: Infrequent/Mild (Legacy value, use INFREQUENT_OR_MILD instead) 2: Frequent/Intense (Legacy value, use FREQUENT_OR_INTENSE instead) NONE INFREQUENT_OR_MILD FREQUENT_OR_INTENSE Keys 'alcoholTobaccoOrDrugUseOrReferences' 'contests' 'gamblingSimulated' 'medicalOrTreatmentInformation' 'profanityOrCrudeHumor' 'sexualContentGraphicAndNudity' 'sexualContentOrNudity' 'horrorOrFearThemes' 'matureOrSuggestiveThemes' 'unrestrictedWebAccess' 'violenceCartoonOrFantasy' 'violenceRealisticProlongedGraphicOrSadistic' 'violenceRealistic' 'kidsAgeBand' Boolean Keys gambling 'seventeenPlus' unrestrictedWebAccess Kids Age Values FIVE_AND_UNDER SIX_TO_EIGHT NINE_TO_ELEVEN null Keys kidsAgeBand Default values Deliver has a special default language code which allows you to provide values that are not localized, and which will be used as defaults when you don\u2019t provide a specific localized value. In order to use default , you will need to tell deliver which languages your app uses. You can do this in either of two ways: Create the folders named with the language in the metadata folder (i.e. fastlane/metadata/en-US or fastlane/metadata/de-DE) Add the following to your Deliverfile languages(['en-US','de-DE']) You can use this either in json within your Deliverfile and/or as folders in your metadata folder. deliver will take the union of both language sets from the Deliverfile and from the metadata folder and create on single set of languages which will be enabled. Imagine that you have localized data for the following language codes: en-US, de-DE, el, it You can set the following in your Deliverfile release_notes({ 'default' => \"Shiny and new\", 'de-DE' => \"glaenzend und neu\" }) Deliver will use \"Shiny and new\" for en-US, el and it. It will use \"glaenzend und neu\" for de-DE. You can do the same with folders default keywords.txt marketing_url.txt name.txt privacy_url.txt support_url.txt release_notes.txt en-US description.txt de-DE description.txt el description.txt it description.txt In this case, default values for keywords, urls, name and release notes are used in all localizations, but each language has a fully localized description Uploading screenshots for \"iPad Pro (12.9-inch) (3rd generation)\" Starting March 20, 2019 Apple's App Store requires 12.9-inch iPad Pro (3rd generation) screenshots additionally to the iPad Pro 2nd generation screenshots . As fastlane historically uses the screenshot dimensions to determine the \"display family\" of a screenshot, this poses a problem as both use the same dimensions and are recognized as the same device family. To solve this a screenshot of a 12.9-inch iPad Pro (3rd generation) must contain either the string iPad Pro (12.9-inch) (3rd generation) , IPAD_PRO_3GEN_129 , or ipadPro129 (Apple's internal naming of the display family for the 3rd generation iPad Pro) in its filename to be assigned the correct display family and to be uploaded to the correct screenshot slot in your app's metadata. Automatically create screenshots If you want to integrate deliver with snapshot , check out fastlane ! Jenkins integration Detailed instructions about how to set up deliver and fastlane in Jenkins can be found in the fastlane README . Firewall Issues deliver uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" fastlane deliver HTTP Proxy iTunes Transporter is a Java application bundled with Xcode. In addition to utilizing the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" , you need to configure the transporter application to use the proxy independently from the system proxy or any environment proxy settings. You can find the configuration file within Xcode: for Xcode11 and later TOOLS_PATH=$( xcode-select -p ) REL_PATH='../SharedFrameworks/ContentDeliveryServices.framework/Versions/A/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" for Xcode10 or earlier TOOLS_PATH=$( xcode-select -p ) REL_PATH='../Applications/Application Loader.app/Contents/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" Add necessary proxy configuration values to the net.properties according to Java Proxy Configuration . As an alternative to editing the properties files, proxy configuration can be specified on the command line directly: DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV -Dhttp.proxyHost=myproxy.com -Dhttp.proxyPort=8080\" Limit App Store Connect has a limit of 150 binary uploads per day. Editing the Deliverfile Change syntax highlighting to Ruby . Provider Short Name If you are on multiple App Store Connect teams, deliver needs a provider short name to know where to upload your binary. deliver will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option. appstore Supported platforms ios, mac Author @KrauseFx 3 Examples upload_to_app_store( force: true, # Set to true to skip verification of HTML preview itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) deliver # alias for \"upload_to_app_store\" appstore # alias for \"upload_to_app_store\" Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of your app * app_version The version that should be edited or created ipa Path to your ipa file * pkg Path to your pkg file * build_number If set the given build number (already uploaded to iTC) will be used instead of the current built one platform The platform to use (optional) ios edit_live Modify live metadata, this option disables ipa upload and screenshot upload false use_live_version Force usage of live version rather than edit version false metadata_path Path to the folder containing the metadata files screenshots_path Path to the folder containing the screenshots skip_binary_upload Skip uploading an ipa or pkg to App Store Connect false skip_screenshots Don't upload the screenshots false skip_metadata Don't upload the metadata (e.g. title, description). This will still upload screenshots false skip_app_version_update Don\u2019t create or update the app version that is being prepared for submission false force Skip verification of HTML preview file false overwrite_screenshots Clear all previously uploaded screenshots before uploading the new ones false sync_screenshots Sync screenshots with local ones. This is currently beta option so set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well false submit_for_review Submit the new version for Review after uploading everything false verify_only Verifies archive with App Store Connect without uploading false reject_if_possible Rejects the previously submitted build if it's in a state where it's possible false automatic_release Should the app be automatically released once it's approved? (Can not be used together with auto_release_date ) auto_release_date Date in milliseconds for automatically releasing on pending approval (Can not be used together with automatic_release ) phased_release Enable the phased release feature of iTC false reset_ratings Reset the summary rating when you release a new version of the application false price_tier The price tier of this application app_rating_config_path Path to the app rating's config submission_information Extra information for the submission (e.g. compliance specifications, IDFA settings) team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your Developer Portal team, if you're in multiple teams. Different from your iTC team ID! * dev_portal_team_name The name of your Developer Portal team if you're in multiple teams * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column * run_precheck_before_submit Run precheck before submitting to app review true precheck_default_rule_level The default precheck rule level unless otherwise configured :warn individual_metadata_items DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - An array of localized metadata items to upload individually by language so that errors can be identified. E.g. ['name', 'keywords', 'description']. Note: slow app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the app icon apple_watch_app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the Apple Watch app icon copyright Metadata: The copyright notice primary_category Metadata: The english name of the primary category (e.g. Business , Books ) secondary_category Metadata: The english name of the secondary category (e.g. Business , Books ) primary_first_sub_category Metadata: The english name of the primary first sub category (e.g. Educational , Puzzle ) primary_second_sub_category Metadata: The english name of the primary second sub category (e.g. Educational , Puzzle ) secondary_first_sub_category Metadata: The english name of the secondary first sub category (e.g. Educational , Puzzle ) secondary_second_sub_category Metadata: The english name of the secondary second sub category (e.g. Educational , Puzzle ) trade_representative_contact_information DEPRECATED! This is no longer used by App Store Connect - Metadata: A hash containing the trade representative contact information app_review_information Metadata: A hash containing the review information app_review_attachment_file Metadata: Path to the app review attachment file description Metadata: The localised app description name Metadata: The localised app name subtitle Metadata: The localised app subtitle keywords Metadata: An array of localised keywords promotional_text Metadata: An array of localised promotional texts release_notes Metadata: Localised release notes for this version privacy_url Metadata: Localised privacy url apple_tv_privacy_policy Metadata: Localised Apple TV privacy policy text support_url Metadata: Localised support url marketing_url Metadata: Localised marketing url languages Metadata: List of languages to activate ignore_language_directory_validation Ignore errors when invalid languages are found in metadata and screenshot directories false precheck_include_in_app_purchases Should precheck check in-app purchases? true app The (spaceship) app ID of the app you want to use/modify * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action appstore CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appstore To pass parameters, make use of the : symbol, for example fastlane run appstore parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Appstore"},{"location":"generated/actions/appstore/#appstore","text":"Alias for the upload_to_app_store action deliver uploads screenshots, metadata and binaries to App Store Connect. Use deliver to submit your app for App Store review. Features \u2022 Quick Start \u2022 Usage \u2022 Tips","title":"appstore"},{"location":"generated/actions/appstore/#features","text":"Upload hundreds of localized screenshots completely automatically Upload a new ipa/pkg file to App Store Connect without Xcode from any Mac Maintain your app metadata locally and push changes back to App Store Connect Easily implement a real Continuous Deployment process using fastlane Store the configuration in git to easily deploy from any Mac, including your Continuous Integration server Get a HTML preview of the fetched metadata before uploading the app metadata and screenshots to iTC Automatically uses precheck to ensure your app has the highest chances of passing app review the first time To upload builds to TestFlight check out pilot .","title":"Features"},{"location":"generated/actions/appstore/#quick-start","text":"The guide will create all the necessary files for you, using the existing app metadata from App Store Connect. cd [your_project_folder] fastlane deliver init Enter your App Store Connect credentials Enter your app identifier Enjoy a good drink, while the computer does all the work for you From now on, you can run fastlane deliver to deploy a new update, or just upload new app metadata and screenshots.","title":"Quick Start"},{"location":"generated/actions/appstore/#usage","text":"Check out your local ./fastlane/metadata and ./fastlane/screenshots folders (if you don't use fastlane it's ./metadata instead) You'll see your metadata from App Store Connect. Feel free to store the metadata in git (not the screenshots). You can now modify it locally and push the changes back to App Store Connect. Run fastlane deliver to upload the app metadata from your local machine fastlane deliver Provide the path to an ipa file to upload and submit your app for review: fastlane deliver --ipa \"App.ipa\" --submit_for_review or you can specify path to pkg file for macOS apps: fastlane deliver --pkg \"MacApp.pkg\" If you use fastlane you don't have to manually specify the path to your ipa / pkg file. This is just a small sub-set of what you can do with deliver , check out the full documentation in #more-options Download existing screenshots from App Store Connect fastlane deliver download_screenshots Download existing metadata from App Store Connect fastlane deliver download_metadata To get a list of available options run fastlane action deliver","title":"Usage"},{"location":"generated/actions/appstore/#more-options","text":"View all available options and their valid values","title":"More options"},{"location":"generated/actions/appstore/#available-options","text":"All the options below can easily be added to your Deliverfile . The great thing: if you use fastlane you can use all these options from your Fastfile too, for example: deliver( submit_for_review: true, metadata_path: \"../folder\" )","title":"Available options"},{"location":"generated/actions/appstore/#metadata","text":"All options below are useful if you want to specify certain app metadata in your Deliverfile or Fastfile","title":"Metadata"},{"location":"generated/actions/appstore/#submit-build","text":"deliver allows you to promote an existing build to production. Below are examples to select a previously uploaded build and submit it for review. fastlane deliver submit_build --build_number 830","title":"Submit Build"},{"location":"generated/actions/appstore/#credentials","text":"A detailed description about how your credentials are handled is available in a credentials_manager .","title":"Credentials"},{"location":"generated/actions/appstore/#tips","text":"","title":"Tips"},{"location":"generated/actions/appstore/#available-language-codes","text":"ar-SA, ca, cs, da, de-DE, el, en-AU, en-CA, en-GB, en-US, es-ES, es-MX, fi, fr-CA, fr-FR, he, hi, hr, hu, id, it, ja, ko, ms, nl-NL, no, pl, pt-BR, pt-PT, ro, ru, sk, sv, th, tr, uk, vi, zh-Hans, zh-Hant","title":"Available language codes"},{"location":"generated/actions/appstore/#available-metadata-folder-options","text":"deliver allows for metadata to be set through .txt files in the metadata folder. This metadata folder location is defaulted to ./fastlane/metadata but can be overridden through the metadata_path parameter. Below are all allowed metadata options.","title":"Available Metadata Folder Options"},{"location":"generated/actions/appstore/#reference","text":"View all available categories, etc.","title":"Reference"},{"location":"generated/actions/appstore/#default-values","text":"Deliver has a special default language code which allows you to provide values that are not localized, and which will be used as defaults when you don\u2019t provide a specific localized value. In order to use default , you will need to tell deliver which languages your app uses. You can do this in either of two ways: Create the folders named with the language in the metadata folder (i.e. fastlane/metadata/en-US or fastlane/metadata/de-DE) Add the following to your Deliverfile languages(['en-US','de-DE']) You can use this either in json within your Deliverfile and/or as folders in your metadata folder. deliver will take the union of both language sets from the Deliverfile and from the metadata folder and create on single set of languages which will be enabled. Imagine that you have localized data for the following language codes: en-US, de-DE, el, it You can set the following in your Deliverfile release_notes({ 'default' => \"Shiny and new\", 'de-DE' => \"glaenzend und neu\" }) Deliver will use \"Shiny and new\" for en-US, el and it. It will use \"glaenzend und neu\" for de-DE. You can do the same with folders default keywords.txt marketing_url.txt name.txt privacy_url.txt support_url.txt release_notes.txt en-US description.txt de-DE description.txt el description.txt it description.txt In this case, default values for keywords, urls, name and release notes are used in all localizations, but each language has a fully localized description","title":"Default values"},{"location":"generated/actions/appstore/#uploading-screenshots-for-ipad-pro-129-inch-3rd-generation","text":"Starting March 20, 2019 Apple's App Store requires 12.9-inch iPad Pro (3rd generation) screenshots additionally to the iPad Pro 2nd generation screenshots . As fastlane historically uses the screenshot dimensions to determine the \"display family\" of a screenshot, this poses a problem as both use the same dimensions and are recognized as the same device family. To solve this a screenshot of a 12.9-inch iPad Pro (3rd generation) must contain either the string iPad Pro (12.9-inch) (3rd generation) , IPAD_PRO_3GEN_129 , or ipadPro129 (Apple's internal naming of the display family for the 3rd generation iPad Pro) in its filename to be assigned the correct display family and to be uploaded to the correct screenshot slot in your app's metadata.","title":"Uploading screenshots for \"iPad Pro (12.9-inch) (3rd generation)\""},{"location":"generated/actions/appstore/#automatically-create-screenshots","text":"If you want to integrate deliver with snapshot , check out fastlane !","title":"Automatically create screenshots"},{"location":"generated/actions/appstore/#jenkins-integration","text":"Detailed instructions about how to set up deliver and fastlane in Jenkins can be found in the fastlane README .","title":"Jenkins integration"},{"location":"generated/actions/appstore/#firewall-issues","text":"deliver uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" fastlane deliver","title":"Firewall Issues"},{"location":"generated/actions/appstore/#http-proxy","text":"iTunes Transporter is a Java application bundled with Xcode. In addition to utilizing the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" , you need to configure the transporter application to use the proxy independently from the system proxy or any environment proxy settings. You can find the configuration file within Xcode: for Xcode11 and later TOOLS_PATH=$( xcode-select -p ) REL_PATH='../SharedFrameworks/ContentDeliveryServices.framework/Versions/A/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" for Xcode10 or earlier TOOLS_PATH=$( xcode-select -p ) REL_PATH='../Applications/Application Loader.app/Contents/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" Add necessary proxy configuration values to the net.properties according to Java Proxy Configuration . As an alternative to editing the properties files, proxy configuration can be specified on the command line directly: DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV -Dhttp.proxyHost=myproxy.com -Dhttp.proxyPort=8080\"","title":"HTTP Proxy"},{"location":"generated/actions/appstore/#limit","text":"App Store Connect has a limit of 150 binary uploads per day.","title":"Limit"},{"location":"generated/actions/appstore/#editing-the-deliverfile","text":"Change syntax highlighting to Ruby .","title":"Editing the Deliverfile"},{"location":"generated/actions/appstore/#provider-short-name","text":"If you are on multiple App Store Connect teams, deliver needs a provider short name to know where to upload your binary. deliver will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option. appstore Supported platforms ios, mac Author @KrauseFx","title":"Provider Short Name"},{"location":"generated/actions/appstore/#3-examples","text":"upload_to_app_store( force: true, # Set to true to skip verification of HTML preview itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) deliver # alias for \"upload_to_app_store\" appstore # alias for \"upload_to_app_store\"","title":"3 Examples"},{"location":"generated/actions/appstore/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of your app * app_version The version that should be edited or created ipa Path to your ipa file * pkg Path to your pkg file * build_number If set the given build number (already uploaded to iTC) will be used instead of the current built one platform The platform to use (optional) ios edit_live Modify live metadata, this option disables ipa upload and screenshot upload false use_live_version Force usage of live version rather than edit version false metadata_path Path to the folder containing the metadata files screenshots_path Path to the folder containing the screenshots skip_binary_upload Skip uploading an ipa or pkg to App Store Connect false skip_screenshots Don't upload the screenshots false skip_metadata Don't upload the metadata (e.g. title, description). This will still upload screenshots false skip_app_version_update Don\u2019t create or update the app version that is being prepared for submission false force Skip verification of HTML preview file false overwrite_screenshots Clear all previously uploaded screenshots before uploading the new ones false sync_screenshots Sync screenshots with local ones. This is currently beta option so set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well false submit_for_review Submit the new version for Review after uploading everything false verify_only Verifies archive with App Store Connect without uploading false reject_if_possible Rejects the previously submitted build if it's in a state where it's possible false automatic_release Should the app be automatically released once it's approved? (Can not be used together with auto_release_date ) auto_release_date Date in milliseconds for automatically releasing on pending approval (Can not be used together with automatic_release ) phased_release Enable the phased release feature of iTC false reset_ratings Reset the summary rating when you release a new version of the application false price_tier The price tier of this application app_rating_config_path Path to the app rating's config submission_information Extra information for the submission (e.g. compliance specifications, IDFA settings) team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your Developer Portal team, if you're in multiple teams. Different from your iTC team ID! * dev_portal_team_name The name of your Developer Portal team if you're in multiple teams * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column * run_precheck_before_submit Run precheck before submitting to app review true precheck_default_rule_level The default precheck rule level unless otherwise configured :warn individual_metadata_items DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - An array of localized metadata items to upload individually by language so that errors can be identified. E.g. ['name', 'keywords', 'description']. Note: slow app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the app icon apple_watch_app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the Apple Watch app icon copyright Metadata: The copyright notice primary_category Metadata: The english name of the primary category (e.g. Business , Books ) secondary_category Metadata: The english name of the secondary category (e.g. Business , Books ) primary_first_sub_category Metadata: The english name of the primary first sub category (e.g. Educational , Puzzle ) primary_second_sub_category Metadata: The english name of the primary second sub category (e.g. Educational , Puzzle ) secondary_first_sub_category Metadata: The english name of the secondary first sub category (e.g. Educational , Puzzle ) secondary_second_sub_category Metadata: The english name of the secondary second sub category (e.g. Educational , Puzzle ) trade_representative_contact_information DEPRECATED! This is no longer used by App Store Connect - Metadata: A hash containing the trade representative contact information app_review_information Metadata: A hash containing the review information app_review_attachment_file Metadata: Path to the app review attachment file description Metadata: The localised app description name Metadata: The localised app name subtitle Metadata: The localised app subtitle keywords Metadata: An array of localised keywords promotional_text Metadata: An array of localised promotional texts release_notes Metadata: Localised release notes for this version privacy_url Metadata: Localised privacy url apple_tv_privacy_policy Metadata: Localised Apple TV privacy policy text support_url Metadata: Localised support url marketing_url Metadata: Localised marketing url languages Metadata: List of languages to activate ignore_language_directory_validation Ignore errors when invalid languages are found in metadata and screenshot directories false precheck_include_in_app_purchases Should precheck check in-app purchases? true app The (spaceship) app ID of the app you want to use/modify * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/appstore/#documentation","text":"To show the documentation in your terminal, run fastlane action appstore","title":"Documentation"},{"location":"generated/actions/appstore/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appstore To pass parameters, make use of the : symbol, for example fastlane run appstore parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/appstore/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/apteligent/","text":"apteligent Upload dSYM file to Apteligent (Crittercism) apteligent Supported platforms ios Author @Mo7amedFouad 1 Example apteligent( app_id: \"...\", api_key: \"...\" ) Parameters Key Description Default dsym dSYM.zip file to upload to Apteligent app_id Apteligent App ID key e.g. 569f5c87cb99e10e00c7xxxx api_key Apteligent App API key e.g. IXPQIi8yCbHaLliqzRoo065tH0lxxxxx * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action apteligent CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run apteligent To pass parameters, make use of the : symbol, for example fastlane run apteligent parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Apteligent"},{"location":"generated/actions/apteligent/#apteligent","text":"Upload dSYM file to Apteligent (Crittercism) apteligent Supported platforms ios Author @Mo7amedFouad","title":"apteligent"},{"location":"generated/actions/apteligent/#1-example","text":"apteligent( app_id: \"...\", api_key: \"...\" )","title":"1 Example"},{"location":"generated/actions/apteligent/#parameters","text":"Key Description Default dsym dSYM.zip file to upload to Apteligent app_id Apteligent App ID key e.g. 569f5c87cb99e10e00c7xxxx api_key Apteligent App API key e.g. IXPQIi8yCbHaLliqzRoo065tH0lxxxxx * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/apteligent/#documentation","text":"To show the documentation in your terminal, run fastlane action apteligent","title":"Documentation"},{"location":"generated/actions/apteligent/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run apteligent To pass parameters, make use of the : symbol, for example fastlane run apteligent parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/apteligent/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/artifactory/","text":"artifactory This action uploads an artifact to artifactory Connect to the artifactory server using either a username/password or an api_key artifactory Supported platforms ios, android, mac Author @koglinjg, @tommeier 2 Examples artifactory( username: \"username\", password: \"password\", endpoint: \"https://artifactory.example.com/artifactory/\", file: \"example.ipa\", # File to upload repo: \"mobile_artifacts\", # Artifactory repo repo_path: \"/ios/appname/example-major.minor.ipa\" # Path to place the artifact including its filename ) artifactory( api_key: \"api_key\", endpoint: \"https://artifactory.example.com/artifactory/\", file: \"example.ipa\", # File to upload repo: \"mobile_artifacts\", # Artifactory repo repo_path: \"/ios/appname/example-major.minor.ipa\" # Path to place the artifact including its filename ) Parameters Key Description Default file File to be uploaded to artifactory repo Artifactory repo to put the file in repo_path Path to deploy within the repo, including filename endpoint Artifactory endpoint username Artifactory username password Artifactory password api_key Artifactory API key properties Artifact properties hash {} ssl_pem_file Location of pem file to use for ssl verification ssl_verify Verify SSL true proxy_username Proxy username proxy_password Proxy password proxy_address Proxy address proxy_port Proxy port read_timeout Read timeout * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The artifactory action generates the following Lane Variables: SharedValue Description SharedValues::ARTIFACTORY_DOWNLOAD_URL The download url for file uploaded SharedValues::ARTIFACTORY_DOWNLOAD_SIZE The reported file size for file uploaded To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action artifactory CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run artifactory To pass parameters, make use of the : symbol, for example fastlane run artifactory parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Artifactory"},{"location":"generated/actions/artifactory/#artifactory","text":"This action uploads an artifact to artifactory Connect to the artifactory server using either a username/password or an api_key artifactory Supported platforms ios, android, mac Author @koglinjg, @tommeier","title":"artifactory"},{"location":"generated/actions/artifactory/#2-examples","text":"artifactory( username: \"username\", password: \"password\", endpoint: \"https://artifactory.example.com/artifactory/\", file: \"example.ipa\", # File to upload repo: \"mobile_artifacts\", # Artifactory repo repo_path: \"/ios/appname/example-major.minor.ipa\" # Path to place the artifact including its filename ) artifactory( api_key: \"api_key\", endpoint: \"https://artifactory.example.com/artifactory/\", file: \"example.ipa\", # File to upload repo: \"mobile_artifacts\", # Artifactory repo repo_path: \"/ios/appname/example-major.minor.ipa\" # Path to place the artifact including its filename )","title":"2 Examples"},{"location":"generated/actions/artifactory/#parameters","text":"Key Description Default file File to be uploaded to artifactory repo Artifactory repo to put the file in repo_path Path to deploy within the repo, including filename endpoint Artifactory endpoint username Artifactory username password Artifactory password api_key Artifactory API key properties Artifact properties hash {} ssl_pem_file Location of pem file to use for ssl verification ssl_verify Verify SSL true proxy_username Proxy username proxy_password Proxy password proxy_address Proxy address proxy_port Proxy port read_timeout Read timeout * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/artifactory/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The artifactory action generates the following Lane Variables: SharedValue Description SharedValues::ARTIFACTORY_DOWNLOAD_URL The download url for file uploaded SharedValues::ARTIFACTORY_DOWNLOAD_SIZE The reported file size for file uploaded To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/artifactory/#documentation","text":"To show the documentation in your terminal, run fastlane action artifactory","title":"Documentation"},{"location":"generated/actions/artifactory/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run artifactory To pass parameters, make use of the : symbol, for example fastlane run artifactory parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/artifactory/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/automatic_code_signing/","text":"automatic_code_signing Configures Xcode's Codesigning options Please use update_code_signing_settings action instead. Configures Xcode's Codesigning options of all targets in the project automatic_code_signing Supported platforms ios, mac Author @mathiasAichinger, @hjanuschka, @p4checo, @portellaa, @aeons Returns The current status (boolean) of codesigning after modification 8 Examples # enable automatic code signing enable_automatic_code_signing enable_automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\" ) # disable automatic code signing disable_automatic_code_signing disable_automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\" ) # also set team id disable_automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\", team_id: \"XXXX\" ) # Only specific targets disable_automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\", use_automatic_signing: false, targets: [\"demo\"] ) # via generic action automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\", use_automatic_signing: false ) automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\", use_automatic_signing: true ) Parameters Key Description Default path Path to your Xcode project * use_automatic_signing Defines if project should use automatic signing false team_id Team ID, is used when upgrading project targets Specify targets you want to toggle the signing mech. (default to all targets) code_sign_identity Code signing identity type (iPhone Developer, iPhone Distribution) profile_name Provisioning profile name to use for code signing profile_uuid Provisioning profile UUID to use for code signing bundle_identifier Application Product Bundle Identifier * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action automatic_code_signing CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run automatic_code_signing To pass parameters, make use of the : symbol, for example fastlane run automatic_code_signing parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Automatic code signing"},{"location":"generated/actions/automatic_code_signing/#automatic_code_signing","text":"Configures Xcode's Codesigning options Please use update_code_signing_settings action instead. Configures Xcode's Codesigning options of all targets in the project automatic_code_signing Supported platforms ios, mac Author @mathiasAichinger, @hjanuschka, @p4checo, @portellaa, @aeons Returns The current status (boolean) of codesigning after modification","title":"automatic_code_signing"},{"location":"generated/actions/automatic_code_signing/#8-examples","text":"# enable automatic code signing enable_automatic_code_signing enable_automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\" ) # disable automatic code signing disable_automatic_code_signing disable_automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\" ) # also set team id disable_automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\", team_id: \"XXXX\" ) # Only specific targets disable_automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\", use_automatic_signing: false, targets: [\"demo\"] ) # via generic action automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\", use_automatic_signing: false ) automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\", use_automatic_signing: true )","title":"8 Examples"},{"location":"generated/actions/automatic_code_signing/#parameters","text":"Key Description Default path Path to your Xcode project * use_automatic_signing Defines if project should use automatic signing false team_id Team ID, is used when upgrading project targets Specify targets you want to toggle the signing mech. (default to all targets) code_sign_identity Code signing identity type (iPhone Developer, iPhone Distribution) profile_name Provisioning profile name to use for code signing profile_uuid Provisioning profile UUID to use for code signing bundle_identifier Application Product Bundle Identifier * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/automatic_code_signing/#documentation","text":"To show the documentation in your terminal, run fastlane action automatic_code_signing","title":"Documentation"},{"location":"generated/actions/automatic_code_signing/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run automatic_code_signing To pass parameters, make use of the : symbol, for example fastlane run automatic_code_signing parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/automatic_code_signing/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/backup_file/","text":"backup_file This action backs up your file to \"[path].back\" backup_file Supported platforms ios, android, mac Author @gin0606 1 Example backup_file(path: \"/path/to/file\") Parameters Key Description Default path Path to the file you want to backup * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action backup_file CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run backup_file To pass parameters, make use of the : symbol, for example fastlane run backup_file parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Backup file"},{"location":"generated/actions/backup_file/#backup_file","text":"This action backs up your file to \"[path].back\" backup_file Supported platforms ios, android, mac Author @gin0606","title":"backup_file"},{"location":"generated/actions/backup_file/#1-example","text":"backup_file(path: \"/path/to/file\")","title":"1 Example"},{"location":"generated/actions/backup_file/#parameters","text":"Key Description Default path Path to the file you want to backup * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/backup_file/#documentation","text":"To show the documentation in your terminal, run fastlane action backup_file","title":"Documentation"},{"location":"generated/actions/backup_file/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run backup_file To pass parameters, make use of the : symbol, for example fastlane run backup_file parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/backup_file/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/backup_xcarchive/","text":"backup_xcarchive Save your [zipped] xcarchive elsewhere from default path backup_xcarchive Supported platforms ios, mac Author @dral3x 1 Example backup_xcarchive( xcarchive: \"/path/to/file.xcarchive\", # Optional if you use the `xcodebuild` action destination: \"/somewhere/else/\", # Where the backup should be created zip_filename: \"file.xcarchive\", # The name of the backup file zip: false, # Enable compression of the archive. Defaults to `true`. versioned: true # Create a versioned (date and app version) subfolder where to put the archive ) Parameters Key Description Default xcarchive Path to your xcarchive file. Optional if you use the xcodebuild action * destination Where your archive will be placed zip Enable compression of the archive true zip_filename Filename of the compressed archive. Will be appended by .xcarchive.zip . Default value is the output xcarchive filename * versioned Create a versioned (date and app version) subfolder where to put the archive true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The backup_xcarchive action generates the following Lane Variables: SharedValue Description SharedValues::BACKUP_XCARCHIVE_FILE Path to your saved xcarchive (compressed) file To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action backup_xcarchive CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run backup_xcarchive To pass parameters, make use of the : symbol, for example fastlane run backup_xcarchive parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Backup xcarchive"},{"location":"generated/actions/backup_xcarchive/#backup_xcarchive","text":"Save your [zipped] xcarchive elsewhere from default path backup_xcarchive Supported platforms ios, mac Author @dral3x","title":"backup_xcarchive"},{"location":"generated/actions/backup_xcarchive/#1-example","text":"backup_xcarchive( xcarchive: \"/path/to/file.xcarchive\", # Optional if you use the `xcodebuild` action destination: \"/somewhere/else/\", # Where the backup should be created zip_filename: \"file.xcarchive\", # The name of the backup file zip: false, # Enable compression of the archive. Defaults to `true`. versioned: true # Create a versioned (date and app version) subfolder where to put the archive )","title":"1 Example"},{"location":"generated/actions/backup_xcarchive/#parameters","text":"Key Description Default xcarchive Path to your xcarchive file. Optional if you use the xcodebuild action * destination Where your archive will be placed zip Enable compression of the archive true zip_filename Filename of the compressed archive. Will be appended by .xcarchive.zip . Default value is the output xcarchive filename * versioned Create a versioned (date and app version) subfolder where to put the archive true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/backup_xcarchive/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The backup_xcarchive action generates the following Lane Variables: SharedValue Description SharedValues::BACKUP_XCARCHIVE_FILE Path to your saved xcarchive (compressed) file To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/backup_xcarchive/#documentation","text":"To show the documentation in your terminal, run fastlane action backup_xcarchive","title":"Documentation"},{"location":"generated/actions/backup_xcarchive/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run backup_xcarchive To pass parameters, make use of the : symbol, for example fastlane run backup_xcarchive parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/backup_xcarchive/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/badge/","text":"badge Automatically add a badge to your app icon Please use the badge plugin instead. This action will add a light/dark badge onto your app icon. You can also provide your custom badge/overlay or add a shield for more customization. More info: https://github.com/HazAT/badge Note : If you want to reset the badge back to default, you can use sh 'git checkout -- /Assets.xcassets/' . badge Supported platforms ios, android, mac Author @DanielGri 4 Examples badge(dark: true) badge(alpha: true) badge(custom: \"/Users/xxx/Desktop/badge.png\") badge(shield: \"Version-0.0.3-blue\", no_badge: true) Parameters Key Description Default dark Adds a dark flavored badge on top of your icon custom Add your custom overlay/badge image no_badge Hides the beta badge shield Add a shield to your app icon from shields.io alpha Adds and alpha badge instead of the default beta one path Sets the root path to look for AppIcons . shield_io_timeout Set custom duration for the timeout of the shields.io request in seconds glob Glob pattern for finding image files alpha_channel Keeps/adds an alpha channel to the icon (useful for android icons) shield_gravity Position of shield on icon. Default: North - Choices include: NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast shield_no_resize Shield image will no longer be resized to aspect fill the full icon. Instead it will only be shrunk to not exceed the icon graphic * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action badge CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run badge To pass parameters, make use of the : symbol, for example fastlane run badge parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Badge"},{"location":"generated/actions/badge/#badge","text":"Automatically add a badge to your app icon Please use the badge plugin instead. This action will add a light/dark badge onto your app icon. You can also provide your custom badge/overlay or add a shield for more customization. More info: https://github.com/HazAT/badge Note : If you want to reset the badge back to default, you can use sh 'git checkout -- /Assets.xcassets/' . badge Supported platforms ios, android, mac Author @DanielGri","title":"badge"},{"location":"generated/actions/badge/#4-examples","text":"badge(dark: true) badge(alpha: true) badge(custom: \"/Users/xxx/Desktop/badge.png\") badge(shield: \"Version-0.0.3-blue\", no_badge: true)","title":"4 Examples"},{"location":"generated/actions/badge/#parameters","text":"Key Description Default dark Adds a dark flavored badge on top of your icon custom Add your custom overlay/badge image no_badge Hides the beta badge shield Add a shield to your app icon from shields.io alpha Adds and alpha badge instead of the default beta one path Sets the root path to look for AppIcons . shield_io_timeout Set custom duration for the timeout of the shields.io request in seconds glob Glob pattern for finding image files alpha_channel Keeps/adds an alpha channel to the icon (useful for android icons) shield_gravity Position of shield on icon. Default: North - Choices include: NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast shield_no_resize Shield image will no longer be resized to aspect fill the full icon. Instead it will only be shrunk to not exceed the icon graphic * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/badge/#documentation","text":"To show the documentation in your terminal, run fastlane action badge","title":"Documentation"},{"location":"generated/actions/badge/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run badge To pass parameters, make use of the : symbol, for example fastlane run badge parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/badge/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/build_and_upload_to_appetize/","text":"build_and_upload_to_appetize Generate and upload an ipa file to appetize.io This should be called from danger. More information in the device_grid guide . build_and_upload_to_appetize Supported platforms ios Author @KrauseFx Parameters Key Description Default xcodebuild Parameters that are passed to the xcodebuild action {} scheme The scheme to build. Can also be passed using the xcodebuild parameter api_token Appetize.io API Token public_key If not provided, a new app will be created. If provided, the existing build will be overwritten note Notes you wish to add to the uploaded app timeout The number of seconds to wait until automatically ending the session due to user inactivity. Must be 30, 60, 90, 120, 180, 300, 600, 1800, 3600 or 7200. Default is 120 * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action build_and_upload_to_appetize CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_and_upload_to_appetize To pass parameters, make use of the : symbol, for example fastlane run build_and_upload_to_appetize parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Build and upload to appetize"},{"location":"generated/actions/build_and_upload_to_appetize/#build_and_upload_to_appetize","text":"Generate and upload an ipa file to appetize.io This should be called from danger. More information in the device_grid guide . build_and_upload_to_appetize Supported platforms ios Author @KrauseFx","title":"build_and_upload_to_appetize"},{"location":"generated/actions/build_and_upload_to_appetize/#parameters","text":"Key Description Default xcodebuild Parameters that are passed to the xcodebuild action {} scheme The scheme to build. Can also be passed using the xcodebuild parameter api_token Appetize.io API Token public_key If not provided, a new app will be created. If provided, the existing build will be overwritten note Notes you wish to add to the uploaded app timeout The number of seconds to wait until automatically ending the session due to user inactivity. Must be 30, 60, 90, 120, 180, 300, 600, 1800, 3600 or 7200. Default is 120 * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/build_and_upload_to_appetize/#documentation","text":"To show the documentation in your terminal, run fastlane action build_and_upload_to_appetize","title":"Documentation"},{"location":"generated/actions/build_and_upload_to_appetize/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_and_upload_to_appetize To pass parameters, make use of the : symbol, for example fastlane run build_and_upload_to_appetize parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/build_and_upload_to_appetize/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/build_android_app/","text":"build_android_app Alias for the gradle action Run ./gradlew tasks to get a list of all available gradle tasks for your project build_android_app Supported platforms ios, android Author @KrauseFx, @lmirosevic Returns The output of running the gradle task 1 Example gradle( task: \"assemble\", flavor: \"WorldDomination\", build_type: \"Release\" ) To build an AAB use: gradle( task: \"bundle\", flavor: \"WorldDomination\", build_type: \"Release\" ) You can pass multiple gradle tasks: gradle( tasks: [\"assembleDebug\", \"bundleDebug\"] ) You can pass properties to gradle: gradle( # ... properties: { \"exampleNumber\" => 100, \"exampleString\" => \"1.0.0\", # ... } ) You can use this to change the version code and name of your app: gradle( # ... properties: { \"android.injected.version.code\" => 100, \"android.injected.version.name\" => \"1.0.0\", # ... } ) You can use this to automatically sign and zipalign your app: gradle( task: \"assemble\", build_type: \"Release\", print_command: false, properties: { \"android.injected.signing.store.file\" => \"keystore.jks\", \"android.injected.signing.store.password\" => \"store_password\", \"android.injected.signing.key.alias\" => \"key_alias\", \"android.injected.signing.key.password\" => \"key_password\", } ) If you need to pass sensitive information through the gradle action, and don't want the generated command to be printed before it is run, you can suppress that: gradle( # ... print_command: false ) You can also suppress printing the output generated by running the generated Gradle command: gradle( # ... print_command_output: false ) To pass any other CLI flags to gradle use: gradle( # ... flags: \"--exitcode --xml file.xml\" ) Delete the build directory, generated APKs and AABs gradle( task: \"clean\" ) Parameters Key Description Default task The gradle task you want to execute, e.g. assemble , bundle or test . For tasks such as assembleMyFlavorRelease you should use gradle(task: 'assemble', flavor: 'Myflavor', build_type: 'Release') flavor The flavor that you want the task for, e.g. MyFlavor . If you are running the assemble task in a multi-flavor project, and you rely on Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH] then you must specify a flavor here or else this value will be undefined build_type The build type that you want the task for, e.g. Release . Useful for some tasks such as assemble tasks The multiple gradle tasks that you want to execute, e.g. [assembleDebug, bundleDebug] flags All parameter flags you want to pass to the gradle command, e.g. --exitcode --xml file.xml project_dir The root directory of the gradle project . gradle_path The path to your gradlew . If you specify a relative path, it is assumed to be relative to the project_dir properties Gradle properties to be exposed to the gradle script system_properties Gradle system properties to be exposed to the gradle script serial Android serial, which device should be used for this command '' print_command Control whether the generated Gradle command is printed as output before running it (true/false) true print_command_output Control whether the output produced by given Gradle command is printed while running (true/false) true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The build_android_app action generates the following Lane Variables: SharedValue Description SharedValues::GRADLE_APK_OUTPUT_PATH The path to the newly generated apk file. Undefined in a multi-variant assemble scenario SharedValues::GRADLE_ALL_APK_OUTPUT_PATHS When running a multi-variant assemble , the array of signed apk's that were generated SharedValues::GRADLE_FLAVOR The flavor, e.g. MyFlavor SharedValues::GRADLE_BUILD_TYPE The build type, e.g. Release SharedValues::GRADLE_AAB_OUTPUT_PATH The path to the most recent Android app bundle SharedValues::GRADLE_ALL_AAB_OUTPUT_PATHS The paths to the most recent Android app bundles SharedValues::GRADLE_OUTPUT_JSON_OUTPUT_PATH The path to the most recent output.json file SharedValues::GRADLE_ALL_OUTPUT_JSON_OUTPUT_PATHS The path to the newly generated output.json files SharedValues::GRADLE_MAPPING_TXT_OUTPUT_PATH The path to the most recent mapping.txt file SharedValues::GRADLE_ALL_MAPPING_TXT_OUTPUT_PATHS The path to the newly generated mapping.txt files To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action build_android_app CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_android_app To pass parameters, make use of the : symbol, for example fastlane run build_android_app parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Build android app"},{"location":"generated/actions/build_android_app/#build_android_app","text":"Alias for the gradle action Run ./gradlew tasks to get a list of all available gradle tasks for your project build_android_app Supported platforms ios, android Author @KrauseFx, @lmirosevic Returns The output of running the gradle task","title":"build_android_app"},{"location":"generated/actions/build_android_app/#1-example","text":"gradle( task: \"assemble\", flavor: \"WorldDomination\", build_type: \"Release\" ) To build an AAB use: gradle( task: \"bundle\", flavor: \"WorldDomination\", build_type: \"Release\" ) You can pass multiple gradle tasks: gradle( tasks: [\"assembleDebug\", \"bundleDebug\"] ) You can pass properties to gradle: gradle( # ... properties: { \"exampleNumber\" => 100, \"exampleString\" => \"1.0.0\", # ... } ) You can use this to change the version code and name of your app: gradle( # ... properties: { \"android.injected.version.code\" => 100, \"android.injected.version.name\" => \"1.0.0\", # ... } ) You can use this to automatically sign and zipalign your app: gradle( task: \"assemble\", build_type: \"Release\", print_command: false, properties: { \"android.injected.signing.store.file\" => \"keystore.jks\", \"android.injected.signing.store.password\" => \"store_password\", \"android.injected.signing.key.alias\" => \"key_alias\", \"android.injected.signing.key.password\" => \"key_password\", } ) If you need to pass sensitive information through the gradle action, and don't want the generated command to be printed before it is run, you can suppress that: gradle( # ... print_command: false ) You can also suppress printing the output generated by running the generated Gradle command: gradle( # ... print_command_output: false ) To pass any other CLI flags to gradle use: gradle( # ... flags: \"--exitcode --xml file.xml\" ) Delete the build directory, generated APKs and AABs gradle( task: \"clean\" )","title":"1 Example"},{"location":"generated/actions/build_android_app/#parameters","text":"Key Description Default task The gradle task you want to execute, e.g. assemble , bundle or test . For tasks such as assembleMyFlavorRelease you should use gradle(task: 'assemble', flavor: 'Myflavor', build_type: 'Release') flavor The flavor that you want the task for, e.g. MyFlavor . If you are running the assemble task in a multi-flavor project, and you rely on Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH] then you must specify a flavor here or else this value will be undefined build_type The build type that you want the task for, e.g. Release . Useful for some tasks such as assemble tasks The multiple gradle tasks that you want to execute, e.g. [assembleDebug, bundleDebug] flags All parameter flags you want to pass to the gradle command, e.g. --exitcode --xml file.xml project_dir The root directory of the gradle project . gradle_path The path to your gradlew . If you specify a relative path, it is assumed to be relative to the project_dir properties Gradle properties to be exposed to the gradle script system_properties Gradle system properties to be exposed to the gradle script serial Android serial, which device should be used for this command '' print_command Control whether the generated Gradle command is printed as output before running it (true/false) true print_command_output Control whether the output produced by given Gradle command is printed while running (true/false) true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/build_android_app/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The build_android_app action generates the following Lane Variables: SharedValue Description SharedValues::GRADLE_APK_OUTPUT_PATH The path to the newly generated apk file. Undefined in a multi-variant assemble scenario SharedValues::GRADLE_ALL_APK_OUTPUT_PATHS When running a multi-variant assemble , the array of signed apk's that were generated SharedValues::GRADLE_FLAVOR The flavor, e.g. MyFlavor SharedValues::GRADLE_BUILD_TYPE The build type, e.g. Release SharedValues::GRADLE_AAB_OUTPUT_PATH The path to the most recent Android app bundle SharedValues::GRADLE_ALL_AAB_OUTPUT_PATHS The paths to the most recent Android app bundles SharedValues::GRADLE_OUTPUT_JSON_OUTPUT_PATH The path to the most recent output.json file SharedValues::GRADLE_ALL_OUTPUT_JSON_OUTPUT_PATHS The path to the newly generated output.json files SharedValues::GRADLE_MAPPING_TXT_OUTPUT_PATH The path to the most recent mapping.txt file SharedValues::GRADLE_ALL_MAPPING_TXT_OUTPUT_PATHS The path to the newly generated mapping.txt files To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/build_android_app/#documentation","text":"To show the documentation in your terminal, run fastlane action build_android_app","title":"Documentation"},{"location":"generated/actions/build_android_app/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_android_app To pass parameters, make use of the : symbol, for example fastlane run build_android_app parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/build_android_app/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/build_app/","text":"build_app Easily build and sign your app (via gym ) Features \u2022 Usage \u2022 Tips gym is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. What's gym? gym builds and packages iOS apps for you. It takes care of all the heavy lifting and makes it super easy to generate a signed ipa or app file \ud83d\udcaa gym is a replacement for shenzhen . Before gym xcodebuild clean archive -archivePath build/MyApp \\ -scheme MyApp xcodebuild -exportArchive \\ -exportFormat ipa \\ -archivePath \"build/MyApp.xcarchive\" \\ -exportPath \"build/MyApp.ipa\" \\ -exportProvisioningProfile \"ProvisioningProfileName\" With gym fastlane gym Why gym ? gym uses the latest APIs to build and sign your application which results in much faster build times. gym Features \ud83d\ude80 gym builds 30% faster than other build tools like shenzhen \ud83c\udfc1 Beautiful inline build output \ud83d\udcd6 Helps you resolve common build errors like code signing issues \ud83d\udea0 Sensible defaults: Automatically detect the project, its schemes and more \ud83d\udd17 Works perfectly with fastlane and other tools \ud83d\udce6 Automatically generates an ipa and a compressed dSYM file \ud83d\ude85 Don't remember any complicated build commands, just gym \ud83d\udd27 Easy and dynamic configuration using parameters and environment variables \ud83d\udcbe Store common build settings in a Gymfile \ud83d\udce4 All archives are stored and accessible in the Xcode Organizer \ud83d\udcbb Supports both iOS and Mac applications Usage fastlane gym That's all you need to build your application. If you want more control, here are some available parameters: fastlane gym --workspace \"Example.xcworkspace\" --scheme \"AppName\" --clean If you need to use a different Xcode installation, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" fastlane gym For a list of all available parameters use fastlane action gym If you run into any issues, use the verbose mode to get more information fastlane gym --verbose Set the right export method if you're not uploading to App Store or TestFlight: fastlane gym --export_method ad-hoc To pass boolean parameters make sure to use gym like this: fastlane gym --include_bitcode true --include_symbols false To access the raw xcodebuild output open ~/Library/Logs/gym Gymfile Since you might want to manually trigger a new build but don't want to specify all the parameters every time, you can store your defaults in a so called Gymfile . Run fastlane gym init to create a new configuration file. Example: scheme(\"Example\") sdk(\"iphoneos9.0\") clean(true) output_directory(\"./build\") # store the ipa in this folder output_name(\"MyApp\") # the name of the ipa file Export options Since Xcode 7, gym is using new Xcode API which allows us to specify export options using plist file. By default gym creates this file for you and you are able to modify some parameters by using export_method , export_team_id , include_symbols or include_bitcode . If you want to have more options, like creating manifest file for app thinning, you can provide your own plist file: export_options(\"./ExportOptions.plist\") or you can provide hash of values directly in the Gymfile : export_options({ method: \"ad-hoc\", manifest: { appURL: \"https://example.com/My App.ipa\", }, thinning: \"\" }) Optional: If gym can't automatically detect the provisioning profiles to use, you can pass a mapping of bundle identifiers to provisioning profiles: build_app( scheme: \"Release\", export_method: \"app-store\", export_options: { provisioningProfiles: { \"com.example.bundleid\" => \"Provisioning Profile Name\", \"com.example.bundleid2\" => \"Provisioning Profile Name 2\" } } ) Note : If you use fastlane with match you don't need to provide those values manually, unless you pass a plist file into export_options For the list of available options run xcodebuild -help . Setup code signing More information on how to get started with codesigning Docs on how to set up your Xcode project Automating the whole process gym works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :beta do scan gym(scheme: \"MyApp\") crashlytics end # error block is executed when a error occurs error do |lane, exception| slack( # message with short human friendly message message: exception.to_s, success: false, # Output containing extended log output payload: { \"Output\" => exception.error_info.to_s } ) end When gym raises an error the error_info property will contain the process output in case you want to display the error in 3rd party tools such as Slack. You can then easily switch between the beta provider (e.g. testflight , hockey , s3 and more). How does it work? gym uses the latest APIs to build and sign your application. The 2 main components are xcodebuild xcpretty When you run gym without the --silent mode it will print out every command it executes. To build the archive gym uses the following command: set -o pipefail && \\ xcodebuild -scheme 'Example' \\ -project './Example.xcodeproj' \\ -configuration 'Release' \\ -destination 'generic/platform=iOS' \\ -archivePath '/Users/felixkrause/Library/Developer/Xcode/Archives/2015-08-11/ExampleProductName 2015-08-11 18.15.30.xcarchive' \\ archive | xcpretty After building the archive it is being checked by gym . If it's valid, it gets packaged up and signed into an ipa file. gym automatically chooses a different packaging method depending on the version of Xcode you're using. Xcode 7 and above /usr/bin/xcrun path/to/xcbuild-safe.sh -exportArchive \\ -exportOptionsPlist '/tmp/gym_config_1442852529.plist' \\ -archivePath '/Users/fkrause/Library/Developer/Xcode/Archives/2015-09-21/App 2015-09-21 09.21.56.xcarchive' \\ -exportPath '/tmp/1442852529' gym makes use of the new Xcode 7 API which allows us to specify the export options using a plist file. You can find more information about the available options by running xcodebuild --help . Using this method there are no workarounds for WatchKit or Swift required, as it uses the same technique Xcode uses when exporting your binary. Note: the xcbuild-safe.sh script wraps around xcodebuild to workaround some incompatibilities. Use 'ProvisionQL' for advanced Quick Look in Finder Install ProvisionQL . It will show you ipa files like this: build_app Supported platforms ios, mac Author @KrauseFx Returns The absolute path to the generated ipa file 5 Examples build_app(scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\") build_app( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", silent: true, clean: true, output_directory: \"path/to/dir\", # Destination directory. Defaults to current directory. output_name: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) sdk: \"iOS 11.1\" # use SDK as the name or path of the base SDK when building the project. ) gym # alias for \"build_app\" build_ios_app # alias for \"build_app (only iOS options)\" build_mac_app # alias for \"build_app (only macOS options)\" Parameters Key Description Default workspace Path to the workspace file project Path to the project file scheme The project's scheme. Make sure it's marked as Shared clean Should the project be cleaned before building it? false output_directory The directory in which the ipa file should be stored in . output_name The name of the resulting ipa file configuration The configuration to use when building the app. Defaults to 'Release' * silent Hide all information that's not necessary while building false codesigning_identity The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH' skip_package_ipa Should we skip packaging the ipa? false skip_package_pkg Should we skip packaging the pkg? false include_symbols Should the ipa file include symbols? include_bitcode Should the ipa file include bitcode? export_method Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application export_options Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options export_xcargs Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" skip_build_archive Export ipa from previously built xcarchive. Uses archive_path as source skip_archive After building, don't archive, effectively not including -archivePath param skip_codesigning Build without codesigning catalyst_platform Platform to build when using a Catalyst enabled app. Valid values are: ios, macos installer_cert_name Full name of 3rd Party Mac Developer Installer or Developer ID Installer certificate. Example: 3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ) build_path The directory in which the archive should be stored in archive_path The path to the created archive derived_data_path The directory where built products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false result_bundle_path Path to the result bundle directory to create. Ignored if result_bundle if false buildlog_path The directory where to store the build log * sdk The SDK that should be used for building the application toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a) destination Use a custom destination for building the app export_team_id Optional: Sometimes you need to specify a team id when exporting the ipa file xcargs Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * build_timing_summary Create a build timing summary false disable_xcpretty DEPRECATED! Use xcodebuild_formatter: '' instead - Disable xcpretty formatting of build output xcpretty_test_format Use the test (RSpec style) format for build output xcpretty_formatter A custom xcpretty formatter to use xcpretty_report_junit Have xcpretty create a JUnit-style XML report at the provided path xcpretty_report_html Have xcpretty create a simple HTML report at the provided path xcpretty_report_json Have xcpretty create a JSON compilation database at the provided path xcpretty_utf Have xcpretty use unicode encoding when reporting builds analyze_build_time Analyze the project build time and store the output in 'culprits.txt' file skip_profile_detection Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used false xcodebuild_command Allows for override of the default xcodebuild command xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The build_app action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::PKG_OUTPUT_PATH The path to the newly generated pkg file SharedValues::DSYM_OUTPUT_PATH The path to the dSYM files SharedValues::XCODEBUILD_ARCHIVE The path to the xcodebuild archive To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action build_app CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_app To pass parameters, make use of the : symbol, for example fastlane run build_app parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Build app"},{"location":"generated/actions/build_app/#build_app","text":"Easily build and sign your app (via gym ) Features \u2022 Usage \u2022 Tips","title":"build_app"},{"location":"generated/actions/build_app/#whats-gym","text":"gym builds and packages iOS apps for you. It takes care of all the heavy lifting and makes it super easy to generate a signed ipa or app file \ud83d\udcaa gym is a replacement for shenzhen .","title":"What's gym?"},{"location":"generated/actions/build_app/#usage","text":"fastlane gym That's all you need to build your application. If you want more control, here are some available parameters: fastlane gym --workspace \"Example.xcworkspace\" --scheme \"AppName\" --clean If you need to use a different Xcode installation, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" fastlane gym For a list of all available parameters use fastlane action gym If you run into any issues, use the verbose mode to get more information fastlane gym --verbose Set the right export method if you're not uploading to App Store or TestFlight: fastlane gym --export_method ad-hoc To pass boolean parameters make sure to use gym like this: fastlane gym --include_bitcode true --include_symbols false To access the raw xcodebuild output open ~/Library/Logs/gym","title":"Usage"},{"location":"generated/actions/build_app/#gymfile","text":"Since you might want to manually trigger a new build but don't want to specify all the parameters every time, you can store your defaults in a so called Gymfile . Run fastlane gym init to create a new configuration file. Example: scheme(\"Example\") sdk(\"iphoneos9.0\") clean(true) output_directory(\"./build\") # store the ipa in this folder output_name(\"MyApp\") # the name of the ipa file","title":"Gymfile"},{"location":"generated/actions/build_app/#export-options","text":"Since Xcode 7, gym is using new Xcode API which allows us to specify export options using plist file. By default gym creates this file for you and you are able to modify some parameters by using export_method , export_team_id , include_symbols or include_bitcode . If you want to have more options, like creating manifest file for app thinning, you can provide your own plist file: export_options(\"./ExportOptions.plist\") or you can provide hash of values directly in the Gymfile : export_options({ method: \"ad-hoc\", manifest: { appURL: \"https://example.com/My App.ipa\", }, thinning: \"\" }) Optional: If gym can't automatically detect the provisioning profiles to use, you can pass a mapping of bundle identifiers to provisioning profiles: build_app( scheme: \"Release\", export_method: \"app-store\", export_options: { provisioningProfiles: { \"com.example.bundleid\" => \"Provisioning Profile Name\", \"com.example.bundleid2\" => \"Provisioning Profile Name 2\" } } ) Note : If you use fastlane with match you don't need to provide those values manually, unless you pass a plist file into export_options For the list of available options run xcodebuild -help .","title":"Export options"},{"location":"generated/actions/build_app/#setup-code-signing","text":"More information on how to get started with codesigning Docs on how to set up your Xcode project","title":"Setup code signing"},{"location":"generated/actions/build_app/#automating-the-whole-process","text":"gym works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :beta do scan gym(scheme: \"MyApp\") crashlytics end # error block is executed when a error occurs error do |lane, exception| slack( # message with short human friendly message message: exception.to_s, success: false, # Output containing extended log output payload: { \"Output\" => exception.error_info.to_s } ) end When gym raises an error the error_info property will contain the process output in case you want to display the error in 3rd party tools such as Slack. You can then easily switch between the beta provider (e.g. testflight , hockey , s3 and more).","title":"Automating the whole process"},{"location":"generated/actions/build_app/#how-does-it-work","text":"gym uses the latest APIs to build and sign your application. The 2 main components are xcodebuild xcpretty When you run gym without the --silent mode it will print out every command it executes. To build the archive gym uses the following command: set -o pipefail && \\ xcodebuild -scheme 'Example' \\ -project './Example.xcodeproj' \\ -configuration 'Release' \\ -destination 'generic/platform=iOS' \\ -archivePath '/Users/felixkrause/Library/Developer/Xcode/Archives/2015-08-11/ExampleProductName 2015-08-11 18.15.30.xcarchive' \\ archive | xcpretty After building the archive it is being checked by gym . If it's valid, it gets packaged up and signed into an ipa file. gym automatically chooses a different packaging method depending on the version of Xcode you're using.","title":"How does it work?"},{"location":"generated/actions/build_app/#use-provisionql-for-advanced-quick-look-in-finder","text":"Install ProvisionQL . It will show you ipa files like this: build_app Supported platforms ios, mac Author @KrauseFx Returns The absolute path to the generated ipa file","title":"Use 'ProvisionQL' for advanced Quick Look in Finder"},{"location":"generated/actions/build_app/#5-examples","text":"build_app(scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\") build_app( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", silent: true, clean: true, output_directory: \"path/to/dir\", # Destination directory. Defaults to current directory. output_name: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) sdk: \"iOS 11.1\" # use SDK as the name or path of the base SDK when building the project. ) gym # alias for \"build_app\" build_ios_app # alias for \"build_app (only iOS options)\" build_mac_app # alias for \"build_app (only macOS options)\"","title":"5 Examples"},{"location":"generated/actions/build_app/#parameters","text":"Key Description Default workspace Path to the workspace file project Path to the project file scheme The project's scheme. Make sure it's marked as Shared clean Should the project be cleaned before building it? false output_directory The directory in which the ipa file should be stored in . output_name The name of the resulting ipa file configuration The configuration to use when building the app. Defaults to 'Release' * silent Hide all information that's not necessary while building false codesigning_identity The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH' skip_package_ipa Should we skip packaging the ipa? false skip_package_pkg Should we skip packaging the pkg? false include_symbols Should the ipa file include symbols? include_bitcode Should the ipa file include bitcode? export_method Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application export_options Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options export_xcargs Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" skip_build_archive Export ipa from previously built xcarchive. Uses archive_path as source skip_archive After building, don't archive, effectively not including -archivePath param skip_codesigning Build without codesigning catalyst_platform Platform to build when using a Catalyst enabled app. Valid values are: ios, macos installer_cert_name Full name of 3rd Party Mac Developer Installer or Developer ID Installer certificate. Example: 3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ) build_path The directory in which the archive should be stored in archive_path The path to the created archive derived_data_path The directory where built products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false result_bundle_path Path to the result bundle directory to create. Ignored if result_bundle if false buildlog_path The directory where to store the build log * sdk The SDK that should be used for building the application toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a) destination Use a custom destination for building the app export_team_id Optional: Sometimes you need to specify a team id when exporting the ipa file xcargs Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * build_timing_summary Create a build timing summary false disable_xcpretty DEPRECATED! Use xcodebuild_formatter: '' instead - Disable xcpretty formatting of build output xcpretty_test_format Use the test (RSpec style) format for build output xcpretty_formatter A custom xcpretty formatter to use xcpretty_report_junit Have xcpretty create a JUnit-style XML report at the provided path xcpretty_report_html Have xcpretty create a simple HTML report at the provided path xcpretty_report_json Have xcpretty create a JSON compilation database at the provided path xcpretty_utf Have xcpretty use unicode encoding when reporting builds analyze_build_time Analyze the project build time and store the output in 'culprits.txt' file skip_profile_detection Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used false xcodebuild_command Allows for override of the default xcodebuild command xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/build_app/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The build_app action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::PKG_OUTPUT_PATH The path to the newly generated pkg file SharedValues::DSYM_OUTPUT_PATH The path to the dSYM files SharedValues::XCODEBUILD_ARCHIVE The path to the xcodebuild archive To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/build_app/#documentation","text":"To show the documentation in your terminal, run fastlane action build_app","title":"Documentation"},{"location":"generated/actions/build_app/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_app To pass parameters, make use of the : symbol, for example fastlane run build_app parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/build_app/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/build_ios_app/","text":"build_ios_app Alias for the build_app action but only for iOS Features \u2022 Usage \u2022 Tips gym is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. What's gym? gym builds and packages iOS apps for you. It takes care of all the heavy lifting and makes it super easy to generate a signed ipa or app file \ud83d\udcaa gym is a replacement for shenzhen . Before gym xcodebuild clean archive -archivePath build/MyApp \\ -scheme MyApp xcodebuild -exportArchive \\ -exportFormat ipa \\ -archivePath \"build/MyApp.xcarchive\" \\ -exportPath \"build/MyApp.ipa\" \\ -exportProvisioningProfile \"ProvisioningProfileName\" With gym fastlane gym Why gym ? gym uses the latest APIs to build and sign your application which results in much faster build times. gym Features \ud83d\ude80 gym builds 30% faster than other build tools like shenzhen \ud83c\udfc1 Beautiful inline build output \ud83d\udcd6 Helps you resolve common build errors like code signing issues \ud83d\udea0 Sensible defaults: Automatically detect the project, its schemes and more \ud83d\udd17 Works perfectly with fastlane and other tools \ud83d\udce6 Automatically generates an ipa and a compressed dSYM file \ud83d\ude85 Don't remember any complicated build commands, just gym \ud83d\udd27 Easy and dynamic configuration using parameters and environment variables \ud83d\udcbe Store common build settings in a Gymfile \ud83d\udce4 All archives are stored and accessible in the Xcode Organizer \ud83d\udcbb Supports both iOS and Mac applications Usage fastlane gym That's all you need to build your application. If you want more control, here are some available parameters: fastlane gym --workspace \"Example.xcworkspace\" --scheme \"AppName\" --clean If you need to use a different Xcode installation, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" fastlane gym For a list of all available parameters use fastlane action gym If you run into any issues, use the verbose mode to get more information fastlane gym --verbose Set the right export method if you're not uploading to App Store or TestFlight: fastlane gym --export_method ad-hoc To pass boolean parameters make sure to use gym like this: fastlane gym --include_bitcode true --include_symbols false To access the raw xcodebuild output open ~/Library/Logs/gym Gymfile Since you might want to manually trigger a new build but don't want to specify all the parameters every time, you can store your defaults in a so called Gymfile . Run fastlane gym init to create a new configuration file. Example: scheme(\"Example\") sdk(\"iphoneos9.0\") clean(true) output_directory(\"./build\") # store the ipa in this folder output_name(\"MyApp\") # the name of the ipa file Export options Since Xcode 7, gym is using new Xcode API which allows us to specify export options using plist file. By default gym creates this file for you and you are able to modify some parameters by using export_method , export_team_id , include_symbols or include_bitcode . If you want to have more options, like creating manifest file for app thinning, you can provide your own plist file: export_options(\"./ExportOptions.plist\") or you can provide hash of values directly in the Gymfile : export_options({ method: \"ad-hoc\", manifest: { appURL: \"https://example.com/My App.ipa\", }, thinning: \"\" }) Optional: If gym can't automatically detect the provisioning profiles to use, you can pass a mapping of bundle identifiers to provisioning profiles: build_app( scheme: \"Release\", export_method: \"app-store\", export_options: { provisioningProfiles: { \"com.example.bundleid\" => \"Provisioning Profile Name\", \"com.example.bundleid2\" => \"Provisioning Profile Name 2\" } } ) Note : If you use fastlane with match you don't need to provide those values manually, unless you pass a plist file into export_options For the list of available options run xcodebuild -help . Setup code signing More information on how to get started with codesigning Docs on how to set up your Xcode project Automating the whole process gym works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :beta do scan gym(scheme: \"MyApp\") crashlytics end # error block is executed when a error occurs error do |lane, exception| slack( # message with short human friendly message message: exception.to_s, success: false, # Output containing extended log output payload: { \"Output\" => exception.error_info.to_s } ) end When gym raises an error the error_info property will contain the process output in case you want to display the error in 3rd party tools such as Slack. You can then easily switch between the beta provider (e.g. testflight , hockey , s3 and more). How does it work? gym uses the latest APIs to build and sign your application. The 2 main components are xcodebuild xcpretty When you run gym without the --silent mode it will print out every command it executes. To build the archive gym uses the following command: set -o pipefail && \\ xcodebuild -scheme 'Example' \\ -project './Example.xcodeproj' \\ -configuration 'Release' \\ -destination 'generic/platform=iOS' \\ -archivePath '/Users/felixkrause/Library/Developer/Xcode/Archives/2015-08-11/ExampleProductName 2015-08-11 18.15.30.xcarchive' \\ archive | xcpretty After building the archive it is being checked by gym . If it's valid, it gets packaged up and signed into an ipa file. gym automatically chooses a different packaging method depending on the version of Xcode you're using. Xcode 7 and above /usr/bin/xcrun path/to/xcbuild-safe.sh -exportArchive \\ -exportOptionsPlist '/tmp/gym_config_1442852529.plist' \\ -archivePath '/Users/fkrause/Library/Developer/Xcode/Archives/2015-09-21/App 2015-09-21 09.21.56.xcarchive' \\ -exportPath '/tmp/1442852529' gym makes use of the new Xcode 7 API which allows us to specify the export options using a plist file. You can find more information about the available options by running xcodebuild --help . Using this method there are no workarounds for WatchKit or Swift required, as it uses the same technique Xcode uses when exporting your binary. Note: the xcbuild-safe.sh script wraps around xcodebuild to workaround some incompatibilities. Use 'ProvisionQL' for advanced Quick Look in Finder Install ProvisionQL . It will show you ipa files like this: build_ios_app Supported platforms ios Author @KrauseFx Returns The absolute path to the generated ipa file 5 Examples build_app(scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\") build_app( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", silent: true, clean: true, output_directory: \"path/to/dir\", # Destination directory. Defaults to current directory. output_name: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) sdk: \"iOS 11.1\" # use SDK as the name or path of the base SDK when building the project. ) gym # alias for \"build_app\" build_ios_app # alias for \"build_app (only iOS options)\" build_mac_app # alias for \"build_app (only macOS options)\" Parameters Key Description Default workspace Path to the workspace file project Path to the project file scheme The project's scheme. Make sure it's marked as Shared clean Should the project be cleaned before building it? false output_directory The directory in which the ipa file should be stored in . output_name The name of the resulting ipa file configuration The configuration to use when building the app. Defaults to 'Release' * silent Hide all information that's not necessary while building false codesigning_identity The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH' skip_package_ipa Should we skip packaging the ipa? false include_symbols Should the ipa file include symbols? include_bitcode Should the ipa file include bitcode? export_method Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application export_options Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options export_xcargs Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" skip_build_archive Export ipa from previously built xcarchive. Uses archive_path as source skip_archive After building, don't archive, effectively not including -archivePath param skip_codesigning Build without codesigning build_path The directory in which the archive should be stored in archive_path The path to the created archive derived_data_path The directory where built products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false result_bundle_path Path to the result bundle directory to create. Ignored if result_bundle if false buildlog_path The directory where to store the build log * sdk The SDK that should be used for building the application toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a) destination Use a custom destination for building the app export_team_id Optional: Sometimes you need to specify a team id when exporting the ipa file xcargs Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * build_timing_summary Create a build timing summary false disable_xcpretty DEPRECATED! Use xcodebuild_formatter: '' instead - Disable xcpretty formatting of build output xcpretty_test_format Use the test (RSpec style) format for build output xcpretty_formatter A custom xcpretty formatter to use xcpretty_report_junit Have xcpretty create a JUnit-style XML report at the provided path xcpretty_report_html Have xcpretty create a simple HTML report at the provided path xcpretty_report_json Have xcpretty create a JSON compilation database at the provided path xcpretty_utf Have xcpretty use unicode encoding when reporting builds analyze_build_time Analyze the project build time and store the output in 'culprits.txt' file skip_profile_detection Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used false xcodebuild_command Allows for override of the default xcodebuild command xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The build_ios_app action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::PKG_OUTPUT_PATH The path to the newly generated pkg file SharedValues::DSYM_OUTPUT_PATH The path to the dSYM files SharedValues::XCODEBUILD_ARCHIVE The path to the xcodebuild archive To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action build_ios_app CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_ios_app To pass parameters, make use of the : symbol, for example fastlane run build_ios_app parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Build ios app"},{"location":"generated/actions/build_ios_app/#build_ios_app","text":"Alias for the build_app action but only for iOS Features \u2022 Usage \u2022 Tips","title":"build_ios_app"},{"location":"generated/actions/build_ios_app/#whats-gym","text":"gym builds and packages iOS apps for you. It takes care of all the heavy lifting and makes it super easy to generate a signed ipa or app file \ud83d\udcaa gym is a replacement for shenzhen .","title":"What's gym?"},{"location":"generated/actions/build_ios_app/#usage","text":"fastlane gym That's all you need to build your application. If you want more control, here are some available parameters: fastlane gym --workspace \"Example.xcworkspace\" --scheme \"AppName\" --clean If you need to use a different Xcode installation, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" fastlane gym For a list of all available parameters use fastlane action gym If you run into any issues, use the verbose mode to get more information fastlane gym --verbose Set the right export method if you're not uploading to App Store or TestFlight: fastlane gym --export_method ad-hoc To pass boolean parameters make sure to use gym like this: fastlane gym --include_bitcode true --include_symbols false To access the raw xcodebuild output open ~/Library/Logs/gym","title":"Usage"},{"location":"generated/actions/build_ios_app/#gymfile","text":"Since you might want to manually trigger a new build but don't want to specify all the parameters every time, you can store your defaults in a so called Gymfile . Run fastlane gym init to create a new configuration file. Example: scheme(\"Example\") sdk(\"iphoneos9.0\") clean(true) output_directory(\"./build\") # store the ipa in this folder output_name(\"MyApp\") # the name of the ipa file","title":"Gymfile"},{"location":"generated/actions/build_ios_app/#export-options","text":"Since Xcode 7, gym is using new Xcode API which allows us to specify export options using plist file. By default gym creates this file for you and you are able to modify some parameters by using export_method , export_team_id , include_symbols or include_bitcode . If you want to have more options, like creating manifest file for app thinning, you can provide your own plist file: export_options(\"./ExportOptions.plist\") or you can provide hash of values directly in the Gymfile : export_options({ method: \"ad-hoc\", manifest: { appURL: \"https://example.com/My App.ipa\", }, thinning: \"\" }) Optional: If gym can't automatically detect the provisioning profiles to use, you can pass a mapping of bundle identifiers to provisioning profiles: build_app( scheme: \"Release\", export_method: \"app-store\", export_options: { provisioningProfiles: { \"com.example.bundleid\" => \"Provisioning Profile Name\", \"com.example.bundleid2\" => \"Provisioning Profile Name 2\" } } ) Note : If you use fastlane with match you don't need to provide those values manually, unless you pass a plist file into export_options For the list of available options run xcodebuild -help .","title":"Export options"},{"location":"generated/actions/build_ios_app/#setup-code-signing","text":"More information on how to get started with codesigning Docs on how to set up your Xcode project","title":"Setup code signing"},{"location":"generated/actions/build_ios_app/#automating-the-whole-process","text":"gym works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :beta do scan gym(scheme: \"MyApp\") crashlytics end # error block is executed when a error occurs error do |lane, exception| slack( # message with short human friendly message message: exception.to_s, success: false, # Output containing extended log output payload: { \"Output\" => exception.error_info.to_s } ) end When gym raises an error the error_info property will contain the process output in case you want to display the error in 3rd party tools such as Slack. You can then easily switch between the beta provider (e.g. testflight , hockey , s3 and more).","title":"Automating the whole process"},{"location":"generated/actions/build_ios_app/#how-does-it-work","text":"gym uses the latest APIs to build and sign your application. The 2 main components are xcodebuild xcpretty When you run gym without the --silent mode it will print out every command it executes. To build the archive gym uses the following command: set -o pipefail && \\ xcodebuild -scheme 'Example' \\ -project './Example.xcodeproj' \\ -configuration 'Release' \\ -destination 'generic/platform=iOS' \\ -archivePath '/Users/felixkrause/Library/Developer/Xcode/Archives/2015-08-11/ExampleProductName 2015-08-11 18.15.30.xcarchive' \\ archive | xcpretty After building the archive it is being checked by gym . If it's valid, it gets packaged up and signed into an ipa file. gym automatically chooses a different packaging method depending on the version of Xcode you're using.","title":"How does it work?"},{"location":"generated/actions/build_ios_app/#use-provisionql-for-advanced-quick-look-in-finder","text":"Install ProvisionQL . It will show you ipa files like this: build_ios_app Supported platforms ios Author @KrauseFx Returns The absolute path to the generated ipa file","title":"Use 'ProvisionQL' for advanced Quick Look in Finder"},{"location":"generated/actions/build_ios_app/#5-examples","text":"build_app(scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\") build_app( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", silent: true, clean: true, output_directory: \"path/to/dir\", # Destination directory. Defaults to current directory. output_name: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) sdk: \"iOS 11.1\" # use SDK as the name or path of the base SDK when building the project. ) gym # alias for \"build_app\" build_ios_app # alias for \"build_app (only iOS options)\" build_mac_app # alias for \"build_app (only macOS options)\"","title":"5 Examples"},{"location":"generated/actions/build_ios_app/#parameters","text":"Key Description Default workspace Path to the workspace file project Path to the project file scheme The project's scheme. Make sure it's marked as Shared clean Should the project be cleaned before building it? false output_directory The directory in which the ipa file should be stored in . output_name The name of the resulting ipa file configuration The configuration to use when building the app. Defaults to 'Release' * silent Hide all information that's not necessary while building false codesigning_identity The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH' skip_package_ipa Should we skip packaging the ipa? false include_symbols Should the ipa file include symbols? include_bitcode Should the ipa file include bitcode? export_method Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application export_options Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options export_xcargs Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" skip_build_archive Export ipa from previously built xcarchive. Uses archive_path as source skip_archive After building, don't archive, effectively not including -archivePath param skip_codesigning Build without codesigning build_path The directory in which the archive should be stored in archive_path The path to the created archive derived_data_path The directory where built products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false result_bundle_path Path to the result bundle directory to create. Ignored if result_bundle if false buildlog_path The directory where to store the build log * sdk The SDK that should be used for building the application toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a) destination Use a custom destination for building the app export_team_id Optional: Sometimes you need to specify a team id when exporting the ipa file xcargs Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * build_timing_summary Create a build timing summary false disable_xcpretty DEPRECATED! Use xcodebuild_formatter: '' instead - Disable xcpretty formatting of build output xcpretty_test_format Use the test (RSpec style) format for build output xcpretty_formatter A custom xcpretty formatter to use xcpretty_report_junit Have xcpretty create a JUnit-style XML report at the provided path xcpretty_report_html Have xcpretty create a simple HTML report at the provided path xcpretty_report_json Have xcpretty create a JSON compilation database at the provided path xcpretty_utf Have xcpretty use unicode encoding when reporting builds analyze_build_time Analyze the project build time and store the output in 'culprits.txt' file skip_profile_detection Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used false xcodebuild_command Allows for override of the default xcodebuild command xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/build_ios_app/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The build_ios_app action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::PKG_OUTPUT_PATH The path to the newly generated pkg file SharedValues::DSYM_OUTPUT_PATH The path to the dSYM files SharedValues::XCODEBUILD_ARCHIVE The path to the xcodebuild archive To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/build_ios_app/#documentation","text":"To show the documentation in your terminal, run fastlane action build_ios_app","title":"Documentation"},{"location":"generated/actions/build_ios_app/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_ios_app To pass parameters, make use of the : symbol, for example fastlane run build_ios_app parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/build_ios_app/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/build_mac_app/","text":"build_mac_app Alias for the build_app action but only for macOS Features \u2022 Usage \u2022 Tips gym is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. What's gym? gym builds and packages iOS apps for you. It takes care of all the heavy lifting and makes it super easy to generate a signed ipa or app file \ud83d\udcaa gym is a replacement for shenzhen . Before gym xcodebuild clean archive -archivePath build/MyApp \\ -scheme MyApp xcodebuild -exportArchive \\ -exportFormat ipa \\ -archivePath \"build/MyApp.xcarchive\" \\ -exportPath \"build/MyApp.ipa\" \\ -exportProvisioningProfile \"ProvisioningProfileName\" With gym fastlane gym Why gym ? gym uses the latest APIs to build and sign your application which results in much faster build times. gym Features \ud83d\ude80 gym builds 30% faster than other build tools like shenzhen \ud83c\udfc1 Beautiful inline build output \ud83d\udcd6 Helps you resolve common build errors like code signing issues \ud83d\udea0 Sensible defaults: Automatically detect the project, its schemes and more \ud83d\udd17 Works perfectly with fastlane and other tools \ud83d\udce6 Automatically generates an ipa and a compressed dSYM file \ud83d\ude85 Don't remember any complicated build commands, just gym \ud83d\udd27 Easy and dynamic configuration using parameters and environment variables \ud83d\udcbe Store common build settings in a Gymfile \ud83d\udce4 All archives are stored and accessible in the Xcode Organizer \ud83d\udcbb Supports both iOS and Mac applications Usage fastlane gym That's all you need to build your application. If you want more control, here are some available parameters: fastlane gym --workspace \"Example.xcworkspace\" --scheme \"AppName\" --clean If you need to use a different Xcode installation, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" fastlane gym For a list of all available parameters use fastlane action gym If you run into any issues, use the verbose mode to get more information fastlane gym --verbose Set the right export method if you're not uploading to App Store or TestFlight: fastlane gym --export_method ad-hoc To pass boolean parameters make sure to use gym like this: fastlane gym --include_bitcode true --include_symbols false To access the raw xcodebuild output open ~/Library/Logs/gym Gymfile Since you might want to manually trigger a new build but don't want to specify all the parameters every time, you can store your defaults in a so called Gymfile . Run fastlane gym init to create a new configuration file. Example: scheme(\"Example\") sdk(\"iphoneos9.0\") clean(true) output_directory(\"./build\") # store the ipa in this folder output_name(\"MyApp\") # the name of the ipa file Export options Since Xcode 7, gym is using new Xcode API which allows us to specify export options using plist file. By default gym creates this file for you and you are able to modify some parameters by using export_method , export_team_id , include_symbols or include_bitcode . If you want to have more options, like creating manifest file for app thinning, you can provide your own plist file: export_options(\"./ExportOptions.plist\") or you can provide hash of values directly in the Gymfile : export_options({ method: \"ad-hoc\", manifest: { appURL: \"https://example.com/My App.ipa\", }, thinning: \"\" }) Optional: If gym can't automatically detect the provisioning profiles to use, you can pass a mapping of bundle identifiers to provisioning profiles: build_app( scheme: \"Release\", export_method: \"app-store\", export_options: { provisioningProfiles: { \"com.example.bundleid\" => \"Provisioning Profile Name\", \"com.example.bundleid2\" => \"Provisioning Profile Name 2\" } } ) Note : If you use fastlane with match you don't need to provide those values manually, unless you pass a plist file into export_options For the list of available options run xcodebuild -help . Setup code signing More information on how to get started with codesigning Docs on how to set up your Xcode project Automating the whole process gym works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :beta do scan gym(scheme: \"MyApp\") crashlytics end # error block is executed when a error occurs error do |lane, exception| slack( # message with short human friendly message message: exception.to_s, success: false, # Output containing extended log output payload: { \"Output\" => exception.error_info.to_s } ) end When gym raises an error the error_info property will contain the process output in case you want to display the error in 3rd party tools such as Slack. You can then easily switch between the beta provider (e.g. testflight , hockey , s3 and more). How does it work? gym uses the latest APIs to build and sign your application. The 2 main components are xcodebuild xcpretty When you run gym without the --silent mode it will print out every command it executes. To build the archive gym uses the following command: set -o pipefail && \\ xcodebuild -scheme 'Example' \\ -project './Example.xcodeproj' \\ -configuration 'Release' \\ -destination 'generic/platform=iOS' \\ -archivePath '/Users/felixkrause/Library/Developer/Xcode/Archives/2015-08-11/ExampleProductName 2015-08-11 18.15.30.xcarchive' \\ archive | xcpretty After building the archive it is being checked by gym . If it's valid, it gets packaged up and signed into an ipa file. gym automatically chooses a different packaging method depending on the version of Xcode you're using. Xcode 7 and above /usr/bin/xcrun path/to/xcbuild-safe.sh -exportArchive \\ -exportOptionsPlist '/tmp/gym_config_1442852529.plist' \\ -archivePath '/Users/fkrause/Library/Developer/Xcode/Archives/2015-09-21/App 2015-09-21 09.21.56.xcarchive' \\ -exportPath '/tmp/1442852529' gym makes use of the new Xcode 7 API which allows us to specify the export options using a plist file. You can find more information about the available options by running xcodebuild --help . Using this method there are no workarounds for WatchKit or Swift required, as it uses the same technique Xcode uses when exporting your binary. Note: the xcbuild-safe.sh script wraps around xcodebuild to workaround some incompatibilities. Use 'ProvisionQL' for advanced Quick Look in Finder Install ProvisionQL . It will show you ipa files like this: build_mac_app Supported platforms mac Author @KrauseFx Returns The absolute path to the generated ipa file 5 Examples build_app(scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\") build_app( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", silent: true, clean: true, output_directory: \"path/to/dir\", # Destination directory. Defaults to current directory. output_name: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) sdk: \"iOS 11.1\" # use SDK as the name or path of the base SDK when building the project. ) gym # alias for \"build_app\" build_ios_app # alias for \"build_app (only iOS options)\" build_mac_app # alias for \"build_app (only macOS options)\" Parameters Key Description Default workspace Path to the workspace file project Path to the project file scheme The project's scheme. Make sure it's marked as Shared clean Should the project be cleaned before building it? false output_directory The directory in which the ipa file should be stored in . output_name The name of the resulting ipa file configuration The configuration to use when building the app. Defaults to 'Release' * silent Hide all information that's not necessary while building false codesigning_identity The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH' skip_package_pkg Should we skip packaging the pkg? false include_symbols Should the ipa file include symbols? include_bitcode Should the ipa file include bitcode? export_method Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application export_options Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options export_xcargs Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" skip_build_archive Export ipa from previously built xcarchive. Uses archive_path as source skip_archive After building, don't archive, effectively not including -archivePath param skip_codesigning Build without codesigning installer_cert_name Full name of 3rd Party Mac Developer Installer or Developer ID Installer certificate. Example: 3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ) build_path The directory in which the archive should be stored in archive_path The path to the created archive derived_data_path The directory where built products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false result_bundle_path Path to the result bundle directory to create. Ignored if result_bundle if false buildlog_path The directory where to store the build log * sdk The SDK that should be used for building the application toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a) destination Use a custom destination for building the app export_team_id Optional: Sometimes you need to specify a team id when exporting the ipa file xcargs Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * build_timing_summary Create a build timing summary false disable_xcpretty DEPRECATED! Use xcodebuild_formatter: '' instead - Disable xcpretty formatting of build output xcpretty_test_format Use the test (RSpec style) format for build output xcpretty_formatter A custom xcpretty formatter to use xcpretty_report_junit Have xcpretty create a JUnit-style XML report at the provided path xcpretty_report_html Have xcpretty create a simple HTML report at the provided path xcpretty_report_json Have xcpretty create a JSON compilation database at the provided path xcpretty_utf Have xcpretty use unicode encoding when reporting builds analyze_build_time Analyze the project build time and store the output in 'culprits.txt' file skip_profile_detection Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used false xcodebuild_command Allows for override of the default xcodebuild command xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The build_mac_app action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::PKG_OUTPUT_PATH The path to the newly generated pkg file SharedValues::DSYM_OUTPUT_PATH The path to the dSYM files SharedValues::XCODEBUILD_ARCHIVE The path to the xcodebuild archive To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action build_mac_app CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_mac_app To pass parameters, make use of the : symbol, for example fastlane run build_mac_app parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Build mac app"},{"location":"generated/actions/build_mac_app/#build_mac_app","text":"Alias for the build_app action but only for macOS Features \u2022 Usage \u2022 Tips","title":"build_mac_app"},{"location":"generated/actions/build_mac_app/#whats-gym","text":"gym builds and packages iOS apps for you. It takes care of all the heavy lifting and makes it super easy to generate a signed ipa or app file \ud83d\udcaa gym is a replacement for shenzhen .","title":"What's gym?"},{"location":"generated/actions/build_mac_app/#usage","text":"fastlane gym That's all you need to build your application. If you want more control, here are some available parameters: fastlane gym --workspace \"Example.xcworkspace\" --scheme \"AppName\" --clean If you need to use a different Xcode installation, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" fastlane gym For a list of all available parameters use fastlane action gym If you run into any issues, use the verbose mode to get more information fastlane gym --verbose Set the right export method if you're not uploading to App Store or TestFlight: fastlane gym --export_method ad-hoc To pass boolean parameters make sure to use gym like this: fastlane gym --include_bitcode true --include_symbols false To access the raw xcodebuild output open ~/Library/Logs/gym","title":"Usage"},{"location":"generated/actions/build_mac_app/#gymfile","text":"Since you might want to manually trigger a new build but don't want to specify all the parameters every time, you can store your defaults in a so called Gymfile . Run fastlane gym init to create a new configuration file. Example: scheme(\"Example\") sdk(\"iphoneos9.0\") clean(true) output_directory(\"./build\") # store the ipa in this folder output_name(\"MyApp\") # the name of the ipa file","title":"Gymfile"},{"location":"generated/actions/build_mac_app/#export-options","text":"Since Xcode 7, gym is using new Xcode API which allows us to specify export options using plist file. By default gym creates this file for you and you are able to modify some parameters by using export_method , export_team_id , include_symbols or include_bitcode . If you want to have more options, like creating manifest file for app thinning, you can provide your own plist file: export_options(\"./ExportOptions.plist\") or you can provide hash of values directly in the Gymfile : export_options({ method: \"ad-hoc\", manifest: { appURL: \"https://example.com/My App.ipa\", }, thinning: \"\" }) Optional: If gym can't automatically detect the provisioning profiles to use, you can pass a mapping of bundle identifiers to provisioning profiles: build_app( scheme: \"Release\", export_method: \"app-store\", export_options: { provisioningProfiles: { \"com.example.bundleid\" => \"Provisioning Profile Name\", \"com.example.bundleid2\" => \"Provisioning Profile Name 2\" } } ) Note : If you use fastlane with match you don't need to provide those values manually, unless you pass a plist file into export_options For the list of available options run xcodebuild -help .","title":"Export options"},{"location":"generated/actions/build_mac_app/#setup-code-signing","text":"More information on how to get started with codesigning Docs on how to set up your Xcode project","title":"Setup code signing"},{"location":"generated/actions/build_mac_app/#automating-the-whole-process","text":"gym works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :beta do scan gym(scheme: \"MyApp\") crashlytics end # error block is executed when a error occurs error do |lane, exception| slack( # message with short human friendly message message: exception.to_s, success: false, # Output containing extended log output payload: { \"Output\" => exception.error_info.to_s } ) end When gym raises an error the error_info property will contain the process output in case you want to display the error in 3rd party tools such as Slack. You can then easily switch between the beta provider (e.g. testflight , hockey , s3 and more).","title":"Automating the whole process"},{"location":"generated/actions/build_mac_app/#how-does-it-work","text":"gym uses the latest APIs to build and sign your application. The 2 main components are xcodebuild xcpretty When you run gym without the --silent mode it will print out every command it executes. To build the archive gym uses the following command: set -o pipefail && \\ xcodebuild -scheme 'Example' \\ -project './Example.xcodeproj' \\ -configuration 'Release' \\ -destination 'generic/platform=iOS' \\ -archivePath '/Users/felixkrause/Library/Developer/Xcode/Archives/2015-08-11/ExampleProductName 2015-08-11 18.15.30.xcarchive' \\ archive | xcpretty After building the archive it is being checked by gym . If it's valid, it gets packaged up and signed into an ipa file. gym automatically chooses a different packaging method depending on the version of Xcode you're using.","title":"How does it work?"},{"location":"generated/actions/build_mac_app/#use-provisionql-for-advanced-quick-look-in-finder","text":"Install ProvisionQL . It will show you ipa files like this: build_mac_app Supported platforms mac Author @KrauseFx Returns The absolute path to the generated ipa file","title":"Use 'ProvisionQL' for advanced Quick Look in Finder"},{"location":"generated/actions/build_mac_app/#5-examples","text":"build_app(scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\") build_app( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", silent: true, clean: true, output_directory: \"path/to/dir\", # Destination directory. Defaults to current directory. output_name: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) sdk: \"iOS 11.1\" # use SDK as the name or path of the base SDK when building the project. ) gym # alias for \"build_app\" build_ios_app # alias for \"build_app (only iOS options)\" build_mac_app # alias for \"build_app (only macOS options)\"","title":"5 Examples"},{"location":"generated/actions/build_mac_app/#parameters","text":"Key Description Default workspace Path to the workspace file project Path to the project file scheme The project's scheme. Make sure it's marked as Shared clean Should the project be cleaned before building it? false output_directory The directory in which the ipa file should be stored in . output_name The name of the resulting ipa file configuration The configuration to use when building the app. Defaults to 'Release' * silent Hide all information that's not necessary while building false codesigning_identity The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH' skip_package_pkg Should we skip packaging the pkg? false include_symbols Should the ipa file include symbols? include_bitcode Should the ipa file include bitcode? export_method Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application export_options Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options export_xcargs Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" skip_build_archive Export ipa from previously built xcarchive. Uses archive_path as source skip_archive After building, don't archive, effectively not including -archivePath param skip_codesigning Build without codesigning installer_cert_name Full name of 3rd Party Mac Developer Installer or Developer ID Installer certificate. Example: 3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ) build_path The directory in which the archive should be stored in archive_path The path to the created archive derived_data_path The directory where built products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false result_bundle_path Path to the result bundle directory to create. Ignored if result_bundle if false buildlog_path The directory where to store the build log * sdk The SDK that should be used for building the application toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a) destination Use a custom destination for building the app export_team_id Optional: Sometimes you need to specify a team id when exporting the ipa file xcargs Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * build_timing_summary Create a build timing summary false disable_xcpretty DEPRECATED! Use xcodebuild_formatter: '' instead - Disable xcpretty formatting of build output xcpretty_test_format Use the test (RSpec style) format for build output xcpretty_formatter A custom xcpretty formatter to use xcpretty_report_junit Have xcpretty create a JUnit-style XML report at the provided path xcpretty_report_html Have xcpretty create a simple HTML report at the provided path xcpretty_report_json Have xcpretty create a JSON compilation database at the provided path xcpretty_utf Have xcpretty use unicode encoding when reporting builds analyze_build_time Analyze the project build time and store the output in 'culprits.txt' file skip_profile_detection Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used false xcodebuild_command Allows for override of the default xcodebuild command xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/build_mac_app/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The build_mac_app action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::PKG_OUTPUT_PATH The path to the newly generated pkg file SharedValues::DSYM_OUTPUT_PATH The path to the dSYM files SharedValues::XCODEBUILD_ARCHIVE The path to the xcodebuild archive To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/build_mac_app/#documentation","text":"To show the documentation in your terminal, run fastlane action build_mac_app","title":"Documentation"},{"location":"generated/actions/build_mac_app/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_mac_app To pass parameters, make use of the : symbol, for example fastlane run build_mac_app parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/build_mac_app/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/bundle_install/","text":"bundle_install This action runs bundle install (if available) bundle_install Supported platforms ios, android, mac Author @birmacher, @koglinjg Parameters Key Description Default binstubs Generate bin stubs for bundled gems to ./bin clean Run bundle clean automatically after install false full_index Use the rubygems modern index instead of the API endpoint false gemfile Use the specified gemfile instead of Gemfile jobs Install gems using parallel workers local Do not attempt to fetch gems remotely and use the gem cache instead false deployment Install using defaults tuned for deployment and CI environments false no_cache Don't update the existing gem cache false no_prune Don't remove stale gems from the cache false path Specify a different path than the system default ($BUNDLE_PATH or $GEM_HOME). Bundler will remember this value for future installs on this machine system Install to the system location ($BUNDLE_PATH or $GEM_HOME) even if the bundle was previously installed somewhere else for this application false quiet Only output warnings and errors false retry Retry network and git requests that have failed shebang Specify a different shebang executable name than the default (usually 'ruby') standalone Make a bundle that can work without the Bundler runtime trust_policy Sets level of security when dealing with signed gems. Accepts LowSecurity , MediumSecurity and HighSecurity as values without Exclude gems that are part of the specified named group with Include gems that are part of the specified named group frozen Don't allow the Gemfile.lock to be updated after install false redownload Force download every gem, even if the required versions are already available locally false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action bundle_install CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run bundle_install To pass parameters, make use of the : symbol, for example fastlane run bundle_install parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Bundle install"},{"location":"generated/actions/bundle_install/#bundle_install","text":"This action runs bundle install (if available) bundle_install Supported platforms ios, android, mac Author @birmacher, @koglinjg","title":"bundle_install"},{"location":"generated/actions/bundle_install/#parameters","text":"Key Description Default binstubs Generate bin stubs for bundled gems to ./bin clean Run bundle clean automatically after install false full_index Use the rubygems modern index instead of the API endpoint false gemfile Use the specified gemfile instead of Gemfile jobs Install gems using parallel workers local Do not attempt to fetch gems remotely and use the gem cache instead false deployment Install using defaults tuned for deployment and CI environments false no_cache Don't update the existing gem cache false no_prune Don't remove stale gems from the cache false path Specify a different path than the system default ($BUNDLE_PATH or $GEM_HOME). Bundler will remember this value for future installs on this machine system Install to the system location ($BUNDLE_PATH or $GEM_HOME) even if the bundle was previously installed somewhere else for this application false quiet Only output warnings and errors false retry Retry network and git requests that have failed shebang Specify a different shebang executable name than the default (usually 'ruby') standalone Make a bundle that can work without the Bundler runtime trust_policy Sets level of security when dealing with signed gems. Accepts LowSecurity , MediumSecurity and HighSecurity as values without Exclude gems that are part of the specified named group with Include gems that are part of the specified named group frozen Don't allow the Gemfile.lock to be updated after install false redownload Force download every gem, even if the required versions are already available locally false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/bundle_install/#documentation","text":"To show the documentation in your terminal, run fastlane action bundle_install","title":"Documentation"},{"location":"generated/actions/bundle_install/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run bundle_install To pass parameters, make use of the : symbol, for example fastlane run bundle_install parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/bundle_install/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/capture_android_screenshots/","text":"capture_android_screenshots Automated localized screenshots of your Android app (via screengrab ) Automated localized screenshots of your Android app on every device screengrab generates localized screenshots of your Android app for different device types and languages for Google Play and can be uploaded using supply . Why should I automate this process? Create hundreds of screenshots in multiple languages on emulators or real devices, saving you hours Easily verify that localizations fit into labels on all screen dimensions to find UI mistakes before you ship You only need to configure it once for anyone on your team to run it Keep your screenshots perfectly up-to-date with every app update. Your customers deserve it! Fully integrates with fastlane and supply Installation Install the gem gem install fastlane Gradle dependency androidTestImplementation 'tools.fastlane:screengrab:x.x.x' The latest version is As of screengrab version 2.0.0, all Android test dependencies are AndroidX dependencies. This means a device with API 18+, Android 4.3 or greater is required. If you wish to capture screenshots with an older Android OS, then you must use a 1.x.x version. Configuring your Manifest Permissions Ensure that the following permissions exist in your src/debug/AndroidManifest.xml Configuring your UI Tests for Screenshots Add LocaleTestRule to your tests class to handle automatic switching of locales. If you're using Java use: java @ClassRule public static final LocaleTestRule localeTestRule = new LocaleTestRule(); If you're using Kotlin use: kotlin @Rule @JvmField val localeTestRule = LocaleTestRule() The @JvmField annotation is important. It won't work like this: kotlin companion object { @get:ClassRule val localeTestRule = LocaleTestRule() } To capture screenshots, add the following to your tests Screengrab.screenshot(\"name_of_screenshot_here\"); on the appropriate screens Generating Screenshots with screengrab Then, before running fastlane screengrab you'll need a debug and test apk You can create your APKs manually with ./gradlew assembleDebug assembleAndroidTest You can also create a lane and use build_android_app : ruby desc \"Build debug and test APK for screenshots\" lane :build_and_screengrab do build_android_app( task: 'assemble', build_type: 'Debug' ) build_android_app( task: 'assemble', build_type: 'AndroidTest' ) screengrab() end - Once complete run fastlane screengrab in your app project directory to generate screenshots - You will be prompted to provide any required parameters which are not in your Screengrabfile or provided as command line arguments - Your screenshots will be saved to fastlane/metadata/android in the directory where you ran screengrab Improved screenshot capture with UI Automator As of screengrab 0.5.0, you can specify different strategies to control the way screengrab captures screenshots. The newer strategy delegates to UI Automator which fixes a number of problems compared to the original strategy: Shadows/elevation are correctly captured for Material UI Multi-window situations are correctly captured (dialogs, etc.) Works on Android N UI Automator is the default strategy. However, UI Automator requires a device with API level >= 18 . If you need to grab screenshots on an older Android version, use the latest 1.x.x version of this library and set the DecorView ScreenshotStrategy. Screengrab.setDefaultScreenshotStrategy(new DecorViewScreenshotStrategy()); Improved screenshot capture with Falcon As of screengrab 1.2.0, you can specify a new strategy to delegate to Falcon . Falcon may work better than UI Automator in some situations and also provides similar benefits as UI Automator: Multi-window situations are correctly captured (dialogs, etc.) Works on Android N Falcon requires a device with API level >= 10 . To enable it for all screenshots by default, make the following call before your tests run: Screengrab.setDefaultScreenshotStrategy(new FalconScreenshotStrategy(activityRule.getActivity())); Advanced Screengrabfile Configuration Running fastlane screengrab init generated a Screengrabfile which can store all of your configuration options. Since most values will not change often for your project, it is recommended to store them there. The Screengrabfile is written in Ruby, so you may find it helpful to use an editor that highlights Ruby syntax to modify this file. # remove the leading '#' to uncomment lines # app_package_name('your.app.package') # use_tests_in_packages(['your.screenshot.tests.package']) # app_apk_path('path/to/your/app.apk') # tests_apk_path('path/to/your/tests.apk') locales(['en-US', 'fr-FR', 'it-IT']) # clear all previously generated screenshots in your local output directory before creating new ones clear_previous_screenshots(true) For more information about all available options run fastlane action screengrab Tips UI Tests Check out Testing UI for a Single App for an introduction to using Espresso for UI testing. Example UI Test Class (Using JUnit4) Java: @RunWith(JUnit4.class) public class JUnit4StyleTests { @ClassRule public static final LocaleTestRule localeTestRule = new LocaleTestRule(); @Rule public ActivityScenarioRule activityRule = new ActivityScenarioRule<>(MainActivity.class); @Test public void testTakeScreenshot() { Screengrab.screenshot(\"before_button_click\"); onView(withId(R.id.fab)).perform(click()); Screengrab.screenshot(\"after_button_click\"); } } Kotlin: @RunWith(JUnit4.class) class JUnit4StyleTests { @get:Rule var activityRule = ActivityScenarioRule(MainActivity::class.java) @Rule @JvmField val localeTestRule = LocaleTestRule() @Test fun testTakeScreenshot() { Screengrab.screenshot(\"before_button_click\") onView(withId(R.id.fab)).perform(click()) Screengrab.screenshot(\"after_button_click\") } } There is an example project showing how to use JUnit 3 or 4 and Espresso with the screengrab Java library to capture screenshots during a UI test run. Using JUnit 4 is preferable because of its ability to perform actions before and after the entire test class is run. This means you will change the device's locale far fewer times when compared with JUnit 3 running those commands before and after each test method. When using JUnit 3 you'll need to add a bit more code: Use LocaleUtil.changeDeviceLocaleTo(LocaleUtil.getTestLocale()); in setUp() Use LocaleUtil.changeDeviceLocaleTo(LocaleUtil.getEndingLocale()); in tearDown() Use Screengrab.screenshot(\"name_of_screenshot_here\"); to capture screenshots at the appropriate points in your tests Clean Status Bar screengrab can clean your status bar to make your screenshots even more beautiful. It is simply a wrapper that allows configuring SystemUI DemoMode in your code. Note: the clean status bar feature is only supported on devices with API level >= 23 . You can enable and disable the clean status bar at any moment during your tests. In most cases you probably want to do this in the @BeforeClass and @AfterClass methods. @BeforeClass public static void beforeAll() { CleanStatusBar.enableWithDefaults(); } @AfterClass public static void afterAll() { CleanStatusBar.disable(); } Have a look at the methods of the CleanStatusBar class to customize the status bar even more. You could for example show the Bluetooth icon and the LTE text. new CleanStatusBar() .setBluetoothState(BluetoothState.DISCONNECTED) .setMobileNetworkDataType(MobileDataType.LTE) .enable(); Advanced screengrab Launch Arguments You can provide additional arguments to your test cases on launch. These strings will be available in your tests through InstrumentationRegistry.getArguments() . screengrab( launch_arguments: [ \"username hjanuschka\", \"build_number 201\" ] ) Bundle extras = InstrumentationRegistry.getArguments(); String peerID = null; if (extras != null) { if (extras.containsKey(\"username\")) { username = extras.getString(\"username\"); System.out.println(\"Username: \" + username); } else { System.out.println(\"No username in extras\"); } } else { System.out.println(\"No extras\"); } Detecting screengrab at runtime For some apps, it is helpful to know when screengrab is running so that you can display specific data for your screenshots. For iOS fastlane users, this is much like \"FASTLANE_SNAPSHOT\". In order to do this, you'll need to have at least two product flavors of your app. Add two product flavors to the app-level build.gradle file: android { ... flavorDimensions \"mode\" productFlavors { screengrab { dimension \"mode\" } regular { dimension \"mode\" } } ... } Check for the existence of that flavor (i.e screengrab) in your app code as follows in order to use mock data or customize data for screenshots: if (BuildConfig.FLAVOR == \"screengrab\") { System.out.println(\"screengrab is running!\"); } When running screengrab , do the following to build the flavor you want as well as the test apk. Note that you use \"assembleFlavor_name\" where Flavor_name is the flavor name, capitalized (i.e. Screengrab). ./gradlew assembleScreengrab assembleAndroidTest Run screengrab : fastlane screengrab screengrab will ask you to select the debug and test apps (which you can then add to your Screengrabfile to skip this step later). The debug apk should be somewhere like this: app/build/outputs/apk/screengrab/debug/app-screengrab-debug.apk The test apk should be somewhere like this: app/build/outputs/apk/androidTest/screengrab/debug/app-screengrab-debug-androidTest.apk Sit back and enjoy your new screenshots! Note: while this could also be done by creating a new build variant (i.e. debug, release and creating a new one called screengrab), Android only allows one build type to be tested which defaults to debug. That's why we use product flavors. capture_android_screenshots Supported platforms android Author @asfalcone, @i2amsam, @mfurtak 3 Examples capture_android_screenshots screengrab # alias for \"capture_android_screenshots\" capture_android_screenshots( locales: [\"en-US\", \"fr-FR\", \"ja-JP\"], clear_previous_screenshots: true, app_apk_path: \"build/outputs/apk/example-debug.apk\", tests_apk_path: \"build/outputs/apk/example-debug-androidTest-unaligned.apk\" ) Parameters Key Description Default android_home Path to the root of your Android SDK installation, e.g. ~/tools/android-sdk-macosx * build_tools_version DEPRECATED! The Android build tools version to use, e.g. '23.0.2' locales A list of locales which should be used [\"en-US\"] clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running screengrab false output_directory The directory where to store the screenshots fastlane/metadata/android skip_open_summary Don't open the summary after running screengrab * app_package_name The package name of the app under test (e.g. com.yourcompany.yourapp) * tests_package_name The package name of the tests bundle (e.g. com.yourcompany.yourapp.test) use_tests_in_packages Only run tests in these Java packages use_tests_in_classes Only run tests in these Java classes launch_arguments Additional launch arguments test_instrumentation_runner The fully qualified class name of your test instrumentation runner androidx.test.runner.AndroidJUnitRunner ending_locale DEPRECATED! Return the device to this locale after running tests en-US use_adb_root DEPRECATED! Restarts the adb daemon using adb root to allow access to screenshots directories on device. Use if getting 'Permission denied' errors false app_apk_path The path to the APK for the app under test * tests_apk_path The path to the APK for the tests bundle * specific_device Use the device or emulator with the given serial number or qualifier device_type Type of device used for screenshots. Matches Google Play Types (phone, sevenInch, tenInch, tv, wear) phone exit_on_test_failure Whether or not to exit Screengrab on test failure. Exiting on failure will not copy screenshots to local machine nor open screenshots summary true reinstall_app Enabling this option will automatically uninstall the application before running it false use_timestamp_suffix Add timestamp suffix to screenshot filename true adb_host Configure the host used by adb to connect, allows running on remote devices farm * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The capture_android_screenshots action generates the following Lane Variables: SharedValue Description SharedValues::SCREENGRAB_OUTPUT_DIRECTORY The path to the output directory To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action capture_android_screenshots CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run capture_android_screenshots To pass parameters, make use of the : symbol, for example fastlane run capture_android_screenshots parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Capture android screenshots"},{"location":"generated/actions/capture_android_screenshots/#capture_android_screenshots","text":"Automated localized screenshots of your Android app (via screengrab )","title":"capture_android_screenshots"},{"location":"generated/actions/capture_android_screenshots/#installation","text":"Install the gem gem install fastlane","title":"Installation"},{"location":"generated/actions/capture_android_screenshots/#generating-screenshots-with-screengrab","text":"Then, before running fastlane screengrab you'll need a debug and test apk You can create your APKs manually with ./gradlew assembleDebug assembleAndroidTest You can also create a lane and use build_android_app : ruby desc \"Build debug and test APK for screenshots\" lane :build_and_screengrab do build_android_app( task: 'assemble', build_type: 'Debug' ) build_android_app( task: 'assemble', build_type: 'AndroidTest' ) screengrab() end - Once complete run fastlane screengrab in your app project directory to generate screenshots - You will be prompted to provide any required parameters which are not in your Screengrabfile or provided as command line arguments - Your screenshots will be saved to fastlane/metadata/android in the directory where you ran screengrab","title":"Generating Screenshots with screengrab"},{"location":"generated/actions/capture_android_screenshots/#improved-screenshot-capture-with-ui-automator","text":"As of screengrab 0.5.0, you can specify different strategies to control the way screengrab captures screenshots. The newer strategy delegates to UI Automator which fixes a number of problems compared to the original strategy: Shadows/elevation are correctly captured for Material UI Multi-window situations are correctly captured (dialogs, etc.) Works on Android N UI Automator is the default strategy. However, UI Automator requires a device with API level >= 18 . If you need to grab screenshots on an older Android version, use the latest 1.x.x version of this library and set the DecorView ScreenshotStrategy. Screengrab.setDefaultScreenshotStrategy(new DecorViewScreenshotStrategy());","title":"Improved screenshot capture with UI Automator"},{"location":"generated/actions/capture_android_screenshots/#improved-screenshot-capture-with-falcon","text":"As of screengrab 1.2.0, you can specify a new strategy to delegate to Falcon . Falcon may work better than UI Automator in some situations and also provides similar benefits as UI Automator: Multi-window situations are correctly captured (dialogs, etc.) Works on Android N Falcon requires a device with API level >= 10 . To enable it for all screenshots by default, make the following call before your tests run: Screengrab.setDefaultScreenshotStrategy(new FalconScreenshotStrategy(activityRule.getActivity()));","title":"Improved screenshot capture with Falcon"},{"location":"generated/actions/capture_android_screenshots/#advanced-screengrabfile-configuration","text":"Running fastlane screengrab init generated a Screengrabfile which can store all of your configuration options. Since most values will not change often for your project, it is recommended to store them there. The Screengrabfile is written in Ruby, so you may find it helpful to use an editor that highlights Ruby syntax to modify this file. # remove the leading '#' to uncomment lines # app_package_name('your.app.package') # use_tests_in_packages(['your.screenshot.tests.package']) # app_apk_path('path/to/your/app.apk') # tests_apk_path('path/to/your/tests.apk') locales(['en-US', 'fr-FR', 'it-IT']) # clear all previously generated screenshots in your local output directory before creating new ones clear_previous_screenshots(true) For more information about all available options run fastlane action screengrab","title":"Advanced Screengrabfile Configuration"},{"location":"generated/actions/capture_android_screenshots/#tips","text":"","title":"Tips"},{"location":"generated/actions/capture_android_screenshots/#ui-tests","text":"Check out Testing UI for a Single App for an introduction to using Espresso for UI testing.","title":"UI Tests"},{"location":"generated/actions/capture_android_screenshots/#clean-status-bar","text":"screengrab can clean your status bar to make your screenshots even more beautiful. It is simply a wrapper that allows configuring SystemUI DemoMode in your code. Note: the clean status bar feature is only supported on devices with API level >= 23 . You can enable and disable the clean status bar at any moment during your tests. In most cases you probably want to do this in the @BeforeClass and @AfterClass methods. @BeforeClass public static void beforeAll() { CleanStatusBar.enableWithDefaults(); } @AfterClass public static void afterAll() { CleanStatusBar.disable(); } Have a look at the methods of the CleanStatusBar class to customize the status bar even more. You could for example show the Bluetooth icon and the LTE text. new CleanStatusBar() .setBluetoothState(BluetoothState.DISCONNECTED) .setMobileNetworkDataType(MobileDataType.LTE) .enable();","title":"Clean Status Bar"},{"location":"generated/actions/capture_android_screenshots/#advanced-screengrab","text":"Launch Arguments You can provide additional arguments to your test cases on launch. These strings will be available in your tests through InstrumentationRegistry.getArguments() . screengrab( launch_arguments: [ \"username hjanuschka\", \"build_number 201\" ] ) Bundle extras = InstrumentationRegistry.getArguments(); String peerID = null; if (extras != null) { if (extras.containsKey(\"username\")) { username = extras.getString(\"username\"); System.out.println(\"Username: \" + username); } else { System.out.println(\"No username in extras\"); } } else { System.out.println(\"No extras\"); } Detecting screengrab at runtime For some apps, it is helpful to know when screengrab is running so that you can display specific data for your screenshots. For iOS fastlane users, this is much like \"FASTLANE_SNAPSHOT\". In order to do this, you'll need to have at least two product flavors of your app. Add two product flavors to the app-level build.gradle file: android { ... flavorDimensions \"mode\" productFlavors { screengrab { dimension \"mode\" } regular { dimension \"mode\" } } ... } Check for the existence of that flavor (i.e screengrab) in your app code as follows in order to use mock data or customize data for screenshots: if (BuildConfig.FLAVOR == \"screengrab\") { System.out.println(\"screengrab is running!\"); } When running screengrab , do the following to build the flavor you want as well as the test apk. Note that you use \"assembleFlavor_name\" where Flavor_name is the flavor name, capitalized (i.e. Screengrab). ./gradlew assembleScreengrab assembleAndroidTest Run screengrab : fastlane screengrab screengrab will ask you to select the debug and test apps (which you can then add to your Screengrabfile to skip this step later). The debug apk should be somewhere like this: app/build/outputs/apk/screengrab/debug/app-screengrab-debug.apk The test apk should be somewhere like this: app/build/outputs/apk/androidTest/screengrab/debug/app-screengrab-debug-androidTest.apk Sit back and enjoy your new screenshots! Note: while this could also be done by creating a new build variant (i.e. debug, release and creating a new one called screengrab), Android only allows one build type to be tested which defaults to debug. That's why we use product flavors. capture_android_screenshots Supported platforms android Author @asfalcone, @i2amsam, @mfurtak","title":"Advanced screengrab"},{"location":"generated/actions/capture_android_screenshots/#3-examples","text":"capture_android_screenshots screengrab # alias for \"capture_android_screenshots\" capture_android_screenshots( locales: [\"en-US\", \"fr-FR\", \"ja-JP\"], clear_previous_screenshots: true, app_apk_path: \"build/outputs/apk/example-debug.apk\", tests_apk_path: \"build/outputs/apk/example-debug-androidTest-unaligned.apk\" )","title":"3 Examples"},{"location":"generated/actions/capture_android_screenshots/#parameters","text":"Key Description Default android_home Path to the root of your Android SDK installation, e.g. ~/tools/android-sdk-macosx * build_tools_version DEPRECATED! The Android build tools version to use, e.g. '23.0.2' locales A list of locales which should be used [\"en-US\"] clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running screengrab false output_directory The directory where to store the screenshots fastlane/metadata/android skip_open_summary Don't open the summary after running screengrab * app_package_name The package name of the app under test (e.g. com.yourcompany.yourapp) * tests_package_name The package name of the tests bundle (e.g. com.yourcompany.yourapp.test) use_tests_in_packages Only run tests in these Java packages use_tests_in_classes Only run tests in these Java classes launch_arguments Additional launch arguments test_instrumentation_runner The fully qualified class name of your test instrumentation runner androidx.test.runner.AndroidJUnitRunner ending_locale DEPRECATED! Return the device to this locale after running tests en-US use_adb_root DEPRECATED! Restarts the adb daemon using adb root to allow access to screenshots directories on device. Use if getting 'Permission denied' errors false app_apk_path The path to the APK for the app under test * tests_apk_path The path to the APK for the tests bundle * specific_device Use the device or emulator with the given serial number or qualifier device_type Type of device used for screenshots. Matches Google Play Types (phone, sevenInch, tenInch, tv, wear) phone exit_on_test_failure Whether or not to exit Screengrab on test failure. Exiting on failure will not copy screenshots to local machine nor open screenshots summary true reinstall_app Enabling this option will automatically uninstall the application before running it false use_timestamp_suffix Add timestamp suffix to screenshot filename true adb_host Configure the host used by adb to connect, allows running on remote devices farm * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/capture_android_screenshots/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The capture_android_screenshots action generates the following Lane Variables: SharedValue Description SharedValues::SCREENGRAB_OUTPUT_DIRECTORY The path to the output directory To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/capture_android_screenshots/#documentation","text":"To show the documentation in your terminal, run fastlane action capture_android_screenshots","title":"Documentation"},{"location":"generated/actions/capture_android_screenshots/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run capture_android_screenshots To pass parameters, make use of the : symbol, for example fastlane run capture_android_screenshots parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/capture_android_screenshots/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/capture_ios_screenshots/","text":"capture_ios_screenshots Generate new localized screenshots on multiple devices (via snapshot ) Automate taking localized screenshots of your iOS, tvOS, and watchOS apps on every device Check out the new fastlane documentation on how to generate screenshots snapshot generates localized iOS, tvOS, and watchOS screenshots for different device types and languages for the App Store and can be uploaded using ( deliver ). You have to manually create 20 (languages) x 6 (devices) x 5 (screenshots) = 600 screenshots . It's hard to get everything right! New screenshots with every (design) update No loading indicators Same content / screens Clean Status Bar Uploading screenshots ( deliver is your friend) More information about creating perfect screenshots . snapshot runs completely in the background - you can do something else, while your computer takes the screenshots for you. Features \u2022 UI Tests \u2022 Quick Start \u2022 Usage \u2022 Tips \u2022 How? Features Create hundreds of screenshots in multiple languages on all simulators Take screenshots in multiple device simulators concurrently to cut down execution time (Xcode 9 only) Configure it once, store the configuration in git Do something else, while the computer takes the screenshots for you Integrates with fastlane and deliver Generates a beautiful web page, which shows all screenshots on all devices. This is perfect to send to QA or the marketing team snapshot automatically waits for network requests to be finished before taking a screenshot (we don't want loading images in the App Store screenshots) After snapshot successfully created new screenshots, it will generate a beautiful HTML file to get a quick overview of all screens: Why? This tool automatically switches the language and device type and runs UI Tests for every combination. Why should I automate this process? It takes hours to take screenshots You get a great overview of all your screens, running on all available simulators without the need to manually start it hundreds of times Easy verification for translators (without an iDevice) that translations do make sense in real App context Easy verification that localizations fit into labels on all screen dimensions It is an integration test: You can test for UI elements and other things inside your scripts Be so nice, and provide new screenshots with every App Store update. Your customers deserve it You realize, there is a spelling mistake in one of the screens? Well, just correct it and re-run the script UI Tests Getting started This project uses Apple's newly announced UI Tests. We will not go into detail on how to write scripts. Here a few links to get started: WWDC 2015 Introduction to UI Tests A first look into UI Tests UI Testing in Xcode 7 HSTestingBackchannel : \u2018Cheat\u2019 by communicating directly with your app Automating App Store screenshots using fastlane snapshot and frameit Quick Start Create a new UI Test target in your Xcode project ( top part of this article ) Run fastlane snapshot init in your project folder Add the ./SnapshotHelper.swift to your UI Test target (You can move the file anywhere you want) (Xcode 8 only) add the ./SnapshotHelperXcode8.swift to your UI Test target (Objective C only) add the bridging header to your test class: #import \"MYUITests-Swift.h\" (The bridging header is named after your test target with -Swift.h appended.) In your UI Test class, click the Record button on the bottom left and record your interaction To take a snapshot, call the following between interactions Swift: snapshot(\"01LoginScreen\") Objective C: [Snapshot snapshot:@\"01LoginScreen\" timeWaitingForIdle:10]; Add the following code to your setUp() method: Swift: let app = XCUIApplication() setupSnapshot(app) app.launch() Objective C: XCUIApplication *app = [[XCUIApplication alloc] init]; [Snapshot setupSnapshot:app waitForAnimations:NO]; [app launch]; Make sure you only have one launch call in your test class, as Xcode adds one automatically on new test files. You can try the snapshot example project by cloning this repo. To quick start your UI tests, you can use the UI Test recorder. You only have to interact with the simulator, and Xcode will generate the UI Test code for you. You can find the red record button on the bottom of the screen (more information in this blog post ) Usage fastlane snapshot Your screenshots will be stored in the ./screenshots/ folder by default (or ./fastlane/screenshots if you're using fastlane ) New with Xcode 9, snapshot can run multiple simulators concurrently. This is the default behavior in order to take your screenshots as quickly as possible. This can be disabled to run each device, one at a time, by setting the :concurrent_simulators option to false . Note: While running snapshot with Xcode 9, the simulators will not be visibly spawned. So, while you won't see the simulators running your tests, they will, in fact, be taking your screenshots. If any error occurs while running the snapshot script on a device, that device will not have any screenshots, and snapshot will continue with the next device or language. To stop the flow after the first error, run fastlane snapshot --stop_after_first_error Also by default, snapshot will open the HTML after all is done. This can be skipped with the following command fastlane snapshot --stop_after_first_error --skip_open_summary There are a lot of options available that define how to build your app, for example fastlane snapshot --scheme \"UITests\" --configuration \"Release\" --sdk \"iphonesimulator\" Reinstall the app before running snapshot fastlane snapshot --reinstall_app --app_identifier \"tools.fastlane.app\" By default snapshot automatically retries running UI Tests if they fail. This is due to randomly failing UI Tests (e.g. #2517 ). You can adapt this number using fastlane snapshot --number_of_retries 3 Add photos and/or videos to the simulator before running snapshot fastlane snapshot --add_photos MyTestApp/Assets/demo.jpg --add_videos MyTestApp/Assets/demo.mp4 For a list for all available options run fastlane action snapshot After running snapshot you will get a nice summary: Snapfile All of the available options can also be stored in a configuration file called the Snapfile . Since most values will not change often for your project, it is recommended to store them there: First make sure to have a Snapfile (you get it for free when running fastlane snapshot init ) The Snapfile can contain all the options that are also available on fastlane action snapshot scheme(\"UITests\") devices([ \"iPad (7th generation)\", \"iPad Air (3rd generation)\", \"iPad Pro (11-inch)\", \"iPad Pro (12.9-inch) (3rd generation)\", \"iPad Pro (9.7-inch)\", \"iPhone 11\", \"iPhone 11 Pro\", \"iPhone 11 Pro Max\", \"iPhone 8\", \"iPhone 8 Plus\" ]) languages([ \"en-US\", \"de-DE\", \"es-ES\", [\"pt\", \"pt_BR\"] # Portuguese with Brazilian locale ]) launch_arguments([\"-username Felix\"]) # The directory in which the screenshots should be stored output_directory('./screenshots') clear_previous_screenshots(true) override_status_bar(true) add_photos([\"MyTestApp/Assets/demo.jpg\"]) Completely reset all simulators You can run this command in the terminal to delete and re-create all iOS and tvOS simulators: fastlane snapshot reset_simulators Warning : This will delete all your simulators and replace by new ones! This is useful, if you run into weird problems when running snapshot . You can use the environment variable SNAPSHOT_FORCE_DELETE to stop asking for confirmation before deleting. SNAPSHOT_FORCE_DELETE=1 fastlane snapshot reset_simulators Update snapshot helpers Some updates require the helper files to be updated. snapshot will automatically warn you and tell you how to update. Basically you can run fastlane snapshot update to update your SnapshotHelper.swift files. In case you modified your SnapshotHelper.swift and want to manually update the file, check out SnapshotHelper.swift . Launch Arguments You can provide additional arguments to your app on launch. These strings will be available in your app (e.g. not in the testing target) through ProcessInfo.processInfo.arguments . Alternatively, use user-default syntax ( -key value ) and they will be available as key-value pairs in UserDefaults.standard . launch_arguments([ \"-firstName Felix -lastName Krause\" ]) name.text = UserDefaults.standard.string(forKey: \"firstName\") // name.text = \"Felix\" snapshot includes -FASTLANE_SNAPSHOT YES , which will set a temporary user default for the key FASTLANE_SNAPSHOT , you may use this to detect when the app is run by snapshot . if UserDefaults.standard.bool(forKey: \"FASTLANE_SNAPSHOT\") { // runtime check that we are in snapshot mode } Specify multiple argument strings and snapshot will generate screenshots for each combination of arguments, devices, and languages. This is useful for comparing the same screenshots with different feature flags, dynamic text sizes, and different data sets. # Snapfile for A/B Test Comparison launch_arguments([ \"-secretFeatureEnabled YES\", \"-secretFeatureEnabled NO\" ]) Xcode Environment Variables snapshot includes FASTLANE_SNAPSHOT=YES and FASTLANE_LANGUAGE= as arguments when executing xcodebuild . This means you may use these environment variables in a custom build phase run script to do any additional configuration. How does it work? The easiest solution would be to just render the UIWindow into a file. That's not possible because UI Tests don't run on a main thread. So snapshot uses a different approach: When you run unit tests in Xcode, the reporter generates a plist file, documenting all events that occurred during the tests ( More Information ). Additionally, Xcode generates screenshots before, during and after each of these events. There is no way to manually trigger a screenshot event. The screenshots and the plist files are stored in the DerivedData directory, which snapshot stores in a temporary folder. When the user calls snapshot(...) in the UI Tests (Swift or Objective C) the script actually does a rotation to .Unknown which doesn't have any effect on the actual app, but is enough to trigger a screenshot. It has no effect to the application and is not something you would do in your tests. The goal was to find some event that a user would never trigger, so that we know it's from snapshot . On tvOS, there is no orientation so we ask for a count of app views with type \"Browser\" (which should never exist on tvOS). snapshot then iterates through all test events and check where we either did this weird rotation (on iOS) or searched for browsers (on tvOS). Once snapshot has all events triggered by snapshot it collects a ordered list of all the file names of the actual screenshots of the application. In the test output, the Swift snapshot function will print out something like this snapshot: [some random text here] snapshot finds all these entries using a regex. The number of snapshot outputs in the terminal and the number of snapshot events in the plist file should be the same. Knowing that, snapshot automatically matches these 2 lists to identify the name of each of these screenshots. They are then copied over to the output directory and separated by language and device. 2 thing have to be passed on from snapshot to the xcodebuild command line tool: The device type is passed via the destination parameter of the xcodebuild parameter The language is passed via a temporary file which is written by snapshot before running the tests and read by the UI Tests when launching the application If you find a better way to do any of this, please submit an issue on GitHub or even a pull request :+1: Radar 23062925 has been resolved with Xcode 8.3, so it's now possible to actually take screenshots from the simulator. We'll keep using the old approach for now, since many of you still want to use older versions of Xcode. Tips Check out the new fastlane documentation on how to generate screenshots Frame the screenshots If you want to add frames around the screenshots and even put a title on top, check out frameit . Available language codes ALL_LANGUAGES = [\"da\", \"de-DE\", \"el\", \"en-AU\", \"en-CA\", \"en-GB\", \"en-US\", \"es-ES\", \"es-MX\", \"fi\", \"fr-CA\", \"fr-FR\", \"id\", \"it\", \"ja\", \"ko\", \"ms\", \"nl-NL\", \"no\", \"pt-BR\", \"pt-PT\", \"ru\", \"sv\", \"th\", \"tr\", \"vi\", \"zh-Hans\", \"zh-Hant\"] To get more information about language and locale codes please read Internationalization and Localization Guide . Use a clean status bar You can set override_status_bar to true to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available. Editing the Snapfile Change syntax highlighting to Ruby . Simulator doesn't launch the application When the app dies directly after the application is launched there might be 2 problems The simulator is somehow in a broken state and you need to re-create it. You can use snapshot reset_simulators to reset all simulators (this will remove all installed apps) A restart helps very often Determine language To detect the currently used localization in your tests, access the deviceLanguage variable from SnapshotHelper.swift . Speed up snapshots A lot of time in UI tests is spent waiting for animations. You can disable UIView animations in your app to make the tests faster: if ProcessInfo().arguments.contains(\"SKIP_ANIMATIONS\") { UIView.setAnimationsEnabled(false) } This requires you to pass the launch argument like so: snapshot(launch_arguments: [\"SKIP_ANIMATIONS\"]) By default, snapshot will wait for a short time for the animations to finish. If you're skipping the animations, this wait time is unnecessary and can be skipped: setupSnapshot(app, waitForAnimations: false) capture_ios_screenshots Supported platforms ios, mac Author @KrauseFx 3 Examples capture_ios_screenshots snapshot # alias for \"capture_ios_screenshots\" capture_ios_screenshots( skip_open_summary: true, clean: true ) Parameters Key Description Default workspace Path the workspace file project Path the project file xcargs Pass additional arguments to xcodebuild for the test phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app devices A list of devices you want to take the screenshots from languages A list of languages which should be used [\"en-US\"] launch_arguments A list of launch arguments which should be used [\"\"] output_directory The directory where to store the screenshots * output_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false ios_version By default, the latest version should be used automatically. If you want to change it, do it here skip_open_summary Don't open the HTML summary after running snapshot false skip_helper_version_check Do not check for most recent SnapshotHelper code false clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running snapshot false reinstall_app Enabling this option will automatically uninstall the application before running it false erase_simulator Enabling this option will automatically erase the simulator before running the application false headless Enabling this option will prevent displaying the simulator window true override_status_bar Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception (Adjust 'SNAPSHOT_SIMULATOR_WAIT_FOR_BOOT_TIMEOUT' environment variable if override status bar is not working. Might be because simulator is not fully booted. Defaults to 10 seconds) false override_status_bar_arguments Fully customize the status bar by setting each option here. Requires override_status_bar to be set to true . See xcrun simctl status_bar --help localize_simulator Enabling this option will configure the Simulator's system language false dark_mode Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark) app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * add_photos A list of photos that should be added to the simulator before running the application add_videos A list of videos that should be added to the simulator before running the application html_template A path to screenshots.html template buildlog_path The directory where to store the build log * clean Should the project be cleaned before building it? false test_without_building Test without building, requires a derived data path configuration The configuration to use when building the app. Defaults to 'Release' * sdk The SDK that should be used for building the application scheme The scheme you want to use, this must be the scheme for the UI Tests number_of_retries The number of times a test can fail before snapshot should stop retrying 1 stop_after_first_error Should snapshot stop immediately after the tests completely failed on one device? false derived_data_path The directory where build products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false test_target_name The name of the target you want to test (if you desire to override the Target Application from Xcode) namespace_log_files Separate the log files per device and per language concurrent_simulators Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9 true disable_slide_to_type Disable the simulator from showing the 'Slide to type' prompt false cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false testplan The testplan associated with the scheme that should be used for testing only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * xcpretty_args DEPRECATED! Use xcodebuild_formatter: '' instead - Additional xcpretty arguments disable_xcpretty Disable xcpretty formatting of build suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The capture_ios_screenshots action generates the following Lane Variables: SharedValue Description SharedValues::SNAPSHOT_SCREENSHOTS_PATH The path to the screenshots To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action capture_ios_screenshots CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run capture_ios_screenshots To pass parameters, make use of the : symbol, for example fastlane run capture_ios_screenshots parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Capture ios screenshots"},{"location":"generated/actions/capture_ios_screenshots/#capture_ios_screenshots","text":"Generate new localized screenshots on multiple devices (via snapshot )","title":"capture_ios_screenshots"},{"location":"generated/actions/capture_ios_screenshots/#features","text":"Create hundreds of screenshots in multiple languages on all simulators Take screenshots in multiple device simulators concurrently to cut down execution time (Xcode 9 only) Configure it once, store the configuration in git Do something else, while the computer takes the screenshots for you Integrates with fastlane and deliver Generates a beautiful web page, which shows all screenshots on all devices. This is perfect to send to QA or the marketing team snapshot automatically waits for network requests to be finished before taking a screenshot (we don't want loading images in the App Store screenshots) After snapshot successfully created new screenshots, it will generate a beautiful HTML file to get a quick overview of all screens:","title":"Features"},{"location":"generated/actions/capture_ios_screenshots/#why","text":"This tool automatically switches the language and device type and runs UI Tests for every combination.","title":"Why?"},{"location":"generated/actions/capture_ios_screenshots/#ui-tests","text":"","title":"UI Tests"},{"location":"generated/actions/capture_ios_screenshots/#getting-started","text":"This project uses Apple's newly announced UI Tests. We will not go into detail on how to write scripts. Here a few links to get started: WWDC 2015 Introduction to UI Tests A first look into UI Tests UI Testing in Xcode 7 HSTestingBackchannel : \u2018Cheat\u2019 by communicating directly with your app Automating App Store screenshots using fastlane snapshot and frameit","title":"Getting started"},{"location":"generated/actions/capture_ios_screenshots/#quick-start","text":"Create a new UI Test target in your Xcode project ( top part of this article ) Run fastlane snapshot init in your project folder Add the ./SnapshotHelper.swift to your UI Test target (You can move the file anywhere you want) (Xcode 8 only) add the ./SnapshotHelperXcode8.swift to your UI Test target (Objective C only) add the bridging header to your test class: #import \"MYUITests-Swift.h\" (The bridging header is named after your test target with -Swift.h appended.) In your UI Test class, click the Record button on the bottom left and record your interaction To take a snapshot, call the following between interactions Swift: snapshot(\"01LoginScreen\") Objective C: [Snapshot snapshot:@\"01LoginScreen\" timeWaitingForIdle:10]; Add the following code to your setUp() method: Swift: let app = XCUIApplication() setupSnapshot(app) app.launch() Objective C: XCUIApplication *app = [[XCUIApplication alloc] init]; [Snapshot setupSnapshot:app waitForAnimations:NO]; [app launch]; Make sure you only have one launch call in your test class, as Xcode adds one automatically on new test files. You can try the snapshot example project by cloning this repo. To quick start your UI tests, you can use the UI Test recorder. You only have to interact with the simulator, and Xcode will generate the UI Test code for you. You can find the red record button on the bottom of the screen (more information in this blog post )","title":"Quick Start"},{"location":"generated/actions/capture_ios_screenshots/#usage","text":"fastlane snapshot Your screenshots will be stored in the ./screenshots/ folder by default (or ./fastlane/screenshots if you're using fastlane ) New with Xcode 9, snapshot can run multiple simulators concurrently. This is the default behavior in order to take your screenshots as quickly as possible. This can be disabled to run each device, one at a time, by setting the :concurrent_simulators option to false . Note: While running snapshot with Xcode 9, the simulators will not be visibly spawned. So, while you won't see the simulators running your tests, they will, in fact, be taking your screenshots. If any error occurs while running the snapshot script on a device, that device will not have any screenshots, and snapshot will continue with the next device or language. To stop the flow after the first error, run fastlane snapshot --stop_after_first_error Also by default, snapshot will open the HTML after all is done. This can be skipped with the following command fastlane snapshot --stop_after_first_error --skip_open_summary There are a lot of options available that define how to build your app, for example fastlane snapshot --scheme \"UITests\" --configuration \"Release\" --sdk \"iphonesimulator\" Reinstall the app before running snapshot fastlane snapshot --reinstall_app --app_identifier \"tools.fastlane.app\" By default snapshot automatically retries running UI Tests if they fail. This is due to randomly failing UI Tests (e.g. #2517 ). You can adapt this number using fastlane snapshot --number_of_retries 3 Add photos and/or videos to the simulator before running snapshot fastlane snapshot --add_photos MyTestApp/Assets/demo.jpg --add_videos MyTestApp/Assets/demo.mp4 For a list for all available options run fastlane action snapshot After running snapshot you will get a nice summary:","title":"Usage"},{"location":"generated/actions/capture_ios_screenshots/#snapfile","text":"All of the available options can also be stored in a configuration file called the Snapfile . Since most values will not change often for your project, it is recommended to store them there: First make sure to have a Snapfile (you get it for free when running fastlane snapshot init ) The Snapfile can contain all the options that are also available on fastlane action snapshot scheme(\"UITests\") devices([ \"iPad (7th generation)\", \"iPad Air (3rd generation)\", \"iPad Pro (11-inch)\", \"iPad Pro (12.9-inch) (3rd generation)\", \"iPad Pro (9.7-inch)\", \"iPhone 11\", \"iPhone 11 Pro\", \"iPhone 11 Pro Max\", \"iPhone 8\", \"iPhone 8 Plus\" ]) languages([ \"en-US\", \"de-DE\", \"es-ES\", [\"pt\", \"pt_BR\"] # Portuguese with Brazilian locale ]) launch_arguments([\"-username Felix\"]) # The directory in which the screenshots should be stored output_directory('./screenshots') clear_previous_screenshots(true) override_status_bar(true) add_photos([\"MyTestApp/Assets/demo.jpg\"])","title":"Snapfile"},{"location":"generated/actions/capture_ios_screenshots/#update-snapshot-helpers","text":"Some updates require the helper files to be updated. snapshot will automatically warn you and tell you how to update. Basically you can run fastlane snapshot update to update your SnapshotHelper.swift files. In case you modified your SnapshotHelper.swift and want to manually update the file, check out SnapshotHelper.swift .","title":"Update snapshot helpers"},{"location":"generated/actions/capture_ios_screenshots/#launch-arguments","text":"You can provide additional arguments to your app on launch. These strings will be available in your app (e.g. not in the testing target) through ProcessInfo.processInfo.arguments . Alternatively, use user-default syntax ( -key value ) and they will be available as key-value pairs in UserDefaults.standard . launch_arguments([ \"-firstName Felix -lastName Krause\" ]) name.text = UserDefaults.standard.string(forKey: \"firstName\") // name.text = \"Felix\" snapshot includes -FASTLANE_SNAPSHOT YES , which will set a temporary user default for the key FASTLANE_SNAPSHOT , you may use this to detect when the app is run by snapshot . if UserDefaults.standard.bool(forKey: \"FASTLANE_SNAPSHOT\") { // runtime check that we are in snapshot mode } Specify multiple argument strings and snapshot will generate screenshots for each combination of arguments, devices, and languages. This is useful for comparing the same screenshots with different feature flags, dynamic text sizes, and different data sets. # Snapfile for A/B Test Comparison launch_arguments([ \"-secretFeatureEnabled YES\", \"-secretFeatureEnabled NO\" ])","title":"Launch Arguments"},{"location":"generated/actions/capture_ios_screenshots/#xcode-environment-variables","text":"snapshot includes FASTLANE_SNAPSHOT=YES and FASTLANE_LANGUAGE= as arguments when executing xcodebuild . This means you may use these environment variables in a custom build phase run script to do any additional configuration.","title":"Xcode Environment Variables"},{"location":"generated/actions/capture_ios_screenshots/#how-does-it-work","text":"The easiest solution would be to just render the UIWindow into a file. That's not possible because UI Tests don't run on a main thread. So snapshot uses a different approach: When you run unit tests in Xcode, the reporter generates a plist file, documenting all events that occurred during the tests ( More Information ). Additionally, Xcode generates screenshots before, during and after each of these events. There is no way to manually trigger a screenshot event. The screenshots and the plist files are stored in the DerivedData directory, which snapshot stores in a temporary folder. When the user calls snapshot(...) in the UI Tests (Swift or Objective C) the script actually does a rotation to .Unknown which doesn't have any effect on the actual app, but is enough to trigger a screenshot. It has no effect to the application and is not something you would do in your tests. The goal was to find some event that a user would never trigger, so that we know it's from snapshot . On tvOS, there is no orientation so we ask for a count of app views with type \"Browser\" (which should never exist on tvOS). snapshot then iterates through all test events and check where we either did this weird rotation (on iOS) or searched for browsers (on tvOS). Once snapshot has all events triggered by snapshot it collects a ordered list of all the file names of the actual screenshots of the application. In the test output, the Swift snapshot function will print out something like this snapshot: [some random text here] snapshot finds all these entries using a regex. The number of snapshot outputs in the terminal and the number of snapshot events in the plist file should be the same. Knowing that, snapshot automatically matches these 2 lists to identify the name of each of these screenshots. They are then copied over to the output directory and separated by language and device. 2 thing have to be passed on from snapshot to the xcodebuild command line tool: The device type is passed via the destination parameter of the xcodebuild parameter The language is passed via a temporary file which is written by snapshot before running the tests and read by the UI Tests when launching the application If you find a better way to do any of this, please submit an issue on GitHub or even a pull request :+1: Radar 23062925 has been resolved with Xcode 8.3, so it's now possible to actually take screenshots from the simulator. We'll keep using the old approach for now, since many of you still want to use older versions of Xcode.","title":"How does it work?"},{"location":"generated/actions/capture_ios_screenshots/#tips","text":"","title":"Tips"},{"location":"generated/actions/capture_ios_screenshots/#frame-the-screenshots","text":"If you want to add frames around the screenshots and even put a title on top, check out frameit .","title":"Frame the screenshots"},{"location":"generated/actions/capture_ios_screenshots/#available-language-codes","text":"ALL_LANGUAGES = [\"da\", \"de-DE\", \"el\", \"en-AU\", \"en-CA\", \"en-GB\", \"en-US\", \"es-ES\", \"es-MX\", \"fi\", \"fr-CA\", \"fr-FR\", \"id\", \"it\", \"ja\", \"ko\", \"ms\", \"nl-NL\", \"no\", \"pt-BR\", \"pt-PT\", \"ru\", \"sv\", \"th\", \"tr\", \"vi\", \"zh-Hans\", \"zh-Hant\"] To get more information about language and locale codes please read Internationalization and Localization Guide .","title":"Available language codes"},{"location":"generated/actions/capture_ios_screenshots/#use-a-clean-status-bar","text":"You can set override_status_bar to true to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available.","title":"Use a clean status bar"},{"location":"generated/actions/capture_ios_screenshots/#editing-the-snapfile","text":"Change syntax highlighting to Ruby .","title":"Editing the Snapfile"},{"location":"generated/actions/capture_ios_screenshots/#determine-language","text":"To detect the currently used localization in your tests, access the deviceLanguage variable from SnapshotHelper.swift .","title":"Determine language"},{"location":"generated/actions/capture_ios_screenshots/#speed-up-snapshots","text":"A lot of time in UI tests is spent waiting for animations. You can disable UIView animations in your app to make the tests faster: if ProcessInfo().arguments.contains(\"SKIP_ANIMATIONS\") { UIView.setAnimationsEnabled(false) } This requires you to pass the launch argument like so: snapshot(launch_arguments: [\"SKIP_ANIMATIONS\"]) By default, snapshot will wait for a short time for the animations to finish. If you're skipping the animations, this wait time is unnecessary and can be skipped: setupSnapshot(app, waitForAnimations: false) capture_ios_screenshots Supported platforms ios, mac Author @KrauseFx","title":"Speed up snapshots"},{"location":"generated/actions/capture_ios_screenshots/#3-examples","text":"capture_ios_screenshots snapshot # alias for \"capture_ios_screenshots\" capture_ios_screenshots( skip_open_summary: true, clean: true )","title":"3 Examples"},{"location":"generated/actions/capture_ios_screenshots/#parameters","text":"Key Description Default workspace Path the workspace file project Path the project file xcargs Pass additional arguments to xcodebuild for the test phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app devices A list of devices you want to take the screenshots from languages A list of languages which should be used [\"en-US\"] launch_arguments A list of launch arguments which should be used [\"\"] output_directory The directory where to store the screenshots * output_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false ios_version By default, the latest version should be used automatically. If you want to change it, do it here skip_open_summary Don't open the HTML summary after running snapshot false skip_helper_version_check Do not check for most recent SnapshotHelper code false clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running snapshot false reinstall_app Enabling this option will automatically uninstall the application before running it false erase_simulator Enabling this option will automatically erase the simulator before running the application false headless Enabling this option will prevent displaying the simulator window true override_status_bar Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception (Adjust 'SNAPSHOT_SIMULATOR_WAIT_FOR_BOOT_TIMEOUT' environment variable if override status bar is not working. Might be because simulator is not fully booted. Defaults to 10 seconds) false override_status_bar_arguments Fully customize the status bar by setting each option here. Requires override_status_bar to be set to true . See xcrun simctl status_bar --help localize_simulator Enabling this option will configure the Simulator's system language false dark_mode Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark) app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * add_photos A list of photos that should be added to the simulator before running the application add_videos A list of videos that should be added to the simulator before running the application html_template A path to screenshots.html template buildlog_path The directory where to store the build log * clean Should the project be cleaned before building it? false test_without_building Test without building, requires a derived data path configuration The configuration to use when building the app. Defaults to 'Release' * sdk The SDK that should be used for building the application scheme The scheme you want to use, this must be the scheme for the UI Tests number_of_retries The number of times a test can fail before snapshot should stop retrying 1 stop_after_first_error Should snapshot stop immediately after the tests completely failed on one device? false derived_data_path The directory where build products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false test_target_name The name of the target you want to test (if you desire to override the Target Application from Xcode) namespace_log_files Separate the log files per device and per language concurrent_simulators Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9 true disable_slide_to_type Disable the simulator from showing the 'Slide to type' prompt false cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false testplan The testplan associated with the scheme that should be used for testing only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * xcpretty_args DEPRECATED! Use xcodebuild_formatter: '' instead - Additional xcpretty arguments disable_xcpretty Disable xcpretty formatting of build suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/capture_ios_screenshots/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The capture_ios_screenshots action generates the following Lane Variables: SharedValue Description SharedValues::SNAPSHOT_SCREENSHOTS_PATH The path to the screenshots To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/capture_ios_screenshots/#documentation","text":"To show the documentation in your terminal, run fastlane action capture_ios_screenshots","title":"Documentation"},{"location":"generated/actions/capture_ios_screenshots/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run capture_ios_screenshots To pass parameters, make use of the : symbol, for example fastlane run capture_ios_screenshots parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/capture_ios_screenshots/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/capture_screenshots/","text":"capture_screenshots Alias for the capture_ios_screenshots action Automate taking localized screenshots of your iOS, tvOS, and watchOS apps on every device Check out the new fastlane documentation on how to generate screenshots snapshot generates localized iOS, tvOS, and watchOS screenshots for different device types and languages for the App Store and can be uploaded using ( deliver ). You have to manually create 20 (languages) x 6 (devices) x 5 (screenshots) = 600 screenshots . It's hard to get everything right! New screenshots with every (design) update No loading indicators Same content / screens Clean Status Bar Uploading screenshots ( deliver is your friend) More information about creating perfect screenshots . snapshot runs completely in the background - you can do something else, while your computer takes the screenshots for you. Features \u2022 UI Tests \u2022 Quick Start \u2022 Usage \u2022 Tips \u2022 How? Features Create hundreds of screenshots in multiple languages on all simulators Take screenshots in multiple device simulators concurrently to cut down execution time (Xcode 9 only) Configure it once, store the configuration in git Do something else, while the computer takes the screenshots for you Integrates with fastlane and deliver Generates a beautiful web page, which shows all screenshots on all devices. This is perfect to send to QA or the marketing team snapshot automatically waits for network requests to be finished before taking a screenshot (we don't want loading images in the App Store screenshots) After snapshot successfully created new screenshots, it will generate a beautiful HTML file to get a quick overview of all screens: Why? This tool automatically switches the language and device type and runs UI Tests for every combination. Why should I automate this process? It takes hours to take screenshots You get a great overview of all your screens, running on all available simulators without the need to manually start it hundreds of times Easy verification for translators (without an iDevice) that translations do make sense in real App context Easy verification that localizations fit into labels on all screen dimensions It is an integration test: You can test for UI elements and other things inside your scripts Be so nice, and provide new screenshots with every App Store update. Your customers deserve it You realize, there is a spelling mistake in one of the screens? Well, just correct it and re-run the script UI Tests Getting started This project uses Apple's newly announced UI Tests. We will not go into detail on how to write scripts. Here a few links to get started: WWDC 2015 Introduction to UI Tests A first look into UI Tests UI Testing in Xcode 7 HSTestingBackchannel : \u2018Cheat\u2019 by communicating directly with your app Automating App Store screenshots using fastlane snapshot and frameit Quick Start Create a new UI Test target in your Xcode project ( top part of this article ) Run fastlane snapshot init in your project folder Add the ./SnapshotHelper.swift to your UI Test target (You can move the file anywhere you want) (Xcode 8 only) add the ./SnapshotHelperXcode8.swift to your UI Test target (Objective C only) add the bridging header to your test class: #import \"MYUITests-Swift.h\" (The bridging header is named after your test target with -Swift.h appended.) In your UI Test class, click the Record button on the bottom left and record your interaction To take a snapshot, call the following between interactions Swift: snapshot(\"01LoginScreen\") Objective C: [Snapshot snapshot:@\"01LoginScreen\" timeWaitingForIdle:10]; Add the following code to your setUp() method: Swift: let app = XCUIApplication() setupSnapshot(app) app.launch() Objective C: XCUIApplication *app = [[XCUIApplication alloc] init]; [Snapshot setupSnapshot:app waitForAnimations:NO]; [app launch]; Make sure you only have one launch call in your test class, as Xcode adds one automatically on new test files. You can try the snapshot example project by cloning this repo. To quick start your UI tests, you can use the UI Test recorder. You only have to interact with the simulator, and Xcode will generate the UI Test code for you. You can find the red record button on the bottom of the screen (more information in this blog post ) Usage fastlane snapshot Your screenshots will be stored in the ./screenshots/ folder by default (or ./fastlane/screenshots if you're using fastlane ) New with Xcode 9, snapshot can run multiple simulators concurrently. This is the default behavior in order to take your screenshots as quickly as possible. This can be disabled to run each device, one at a time, by setting the :concurrent_simulators option to false . Note: While running snapshot with Xcode 9, the simulators will not be visibly spawned. So, while you won't see the simulators running your tests, they will, in fact, be taking your screenshots. If any error occurs while running the snapshot script on a device, that device will not have any screenshots, and snapshot will continue with the next device or language. To stop the flow after the first error, run fastlane snapshot --stop_after_first_error Also by default, snapshot will open the HTML after all is done. This can be skipped with the following command fastlane snapshot --stop_after_first_error --skip_open_summary There are a lot of options available that define how to build your app, for example fastlane snapshot --scheme \"UITests\" --configuration \"Release\" --sdk \"iphonesimulator\" Reinstall the app before running snapshot fastlane snapshot --reinstall_app --app_identifier \"tools.fastlane.app\" By default snapshot automatically retries running UI Tests if they fail. This is due to randomly failing UI Tests (e.g. #2517 ). You can adapt this number using fastlane snapshot --number_of_retries 3 Add photos and/or videos to the simulator before running snapshot fastlane snapshot --add_photos MyTestApp/Assets/demo.jpg --add_videos MyTestApp/Assets/demo.mp4 For a list for all available options run fastlane action snapshot After running snapshot you will get a nice summary: Snapfile All of the available options can also be stored in a configuration file called the Snapfile . Since most values will not change often for your project, it is recommended to store them there: First make sure to have a Snapfile (you get it for free when running fastlane snapshot init ) The Snapfile can contain all the options that are also available on fastlane action snapshot scheme(\"UITests\") devices([ \"iPad (7th generation)\", \"iPad Air (3rd generation)\", \"iPad Pro (11-inch)\", \"iPad Pro (12.9-inch) (3rd generation)\", \"iPad Pro (9.7-inch)\", \"iPhone 11\", \"iPhone 11 Pro\", \"iPhone 11 Pro Max\", \"iPhone 8\", \"iPhone 8 Plus\" ]) languages([ \"en-US\", \"de-DE\", \"es-ES\", [\"pt\", \"pt_BR\"] # Portuguese with Brazilian locale ]) launch_arguments([\"-username Felix\"]) # The directory in which the screenshots should be stored output_directory('./screenshots') clear_previous_screenshots(true) override_status_bar(true) add_photos([\"MyTestApp/Assets/demo.jpg\"]) Completely reset all simulators You can run this command in the terminal to delete and re-create all iOS and tvOS simulators: fastlane snapshot reset_simulators Warning : This will delete all your simulators and replace by new ones! This is useful, if you run into weird problems when running snapshot . You can use the environment variable SNAPSHOT_FORCE_DELETE to stop asking for confirmation before deleting. SNAPSHOT_FORCE_DELETE=1 fastlane snapshot reset_simulators Update snapshot helpers Some updates require the helper files to be updated. snapshot will automatically warn you and tell you how to update. Basically you can run fastlane snapshot update to update your SnapshotHelper.swift files. In case you modified your SnapshotHelper.swift and want to manually update the file, check out SnapshotHelper.swift . Launch Arguments You can provide additional arguments to your app on launch. These strings will be available in your app (e.g. not in the testing target) through ProcessInfo.processInfo.arguments . Alternatively, use user-default syntax ( -key value ) and they will be available as key-value pairs in UserDefaults.standard . launch_arguments([ \"-firstName Felix -lastName Krause\" ]) name.text = UserDefaults.standard.string(forKey: \"firstName\") // name.text = \"Felix\" snapshot includes -FASTLANE_SNAPSHOT YES , which will set a temporary user default for the key FASTLANE_SNAPSHOT , you may use this to detect when the app is run by snapshot . if UserDefaults.standard.bool(forKey: \"FASTLANE_SNAPSHOT\") { // runtime check that we are in snapshot mode } Specify multiple argument strings and snapshot will generate screenshots for each combination of arguments, devices, and languages. This is useful for comparing the same screenshots with different feature flags, dynamic text sizes, and different data sets. # Snapfile for A/B Test Comparison launch_arguments([ \"-secretFeatureEnabled YES\", \"-secretFeatureEnabled NO\" ]) Xcode Environment Variables snapshot includes FASTLANE_SNAPSHOT=YES and FASTLANE_LANGUAGE= as arguments when executing xcodebuild . This means you may use these environment variables in a custom build phase run script to do any additional configuration. How does it work? The easiest solution would be to just render the UIWindow into a file. That's not possible because UI Tests don't run on a main thread. So snapshot uses a different approach: When you run unit tests in Xcode, the reporter generates a plist file, documenting all events that occurred during the tests ( More Information ). Additionally, Xcode generates screenshots before, during and after each of these events. There is no way to manually trigger a screenshot event. The screenshots and the plist files are stored in the DerivedData directory, which snapshot stores in a temporary folder. When the user calls snapshot(...) in the UI Tests (Swift or Objective C) the script actually does a rotation to .Unknown which doesn't have any effect on the actual app, but is enough to trigger a screenshot. It has no effect to the application and is not something you would do in your tests. The goal was to find some event that a user would never trigger, so that we know it's from snapshot . On tvOS, there is no orientation so we ask for a count of app views with type \"Browser\" (which should never exist on tvOS). snapshot then iterates through all test events and check where we either did this weird rotation (on iOS) or searched for browsers (on tvOS). Once snapshot has all events triggered by snapshot it collects a ordered list of all the file names of the actual screenshots of the application. In the test output, the Swift snapshot function will print out something like this snapshot: [some random text here] snapshot finds all these entries using a regex. The number of snapshot outputs in the terminal and the number of snapshot events in the plist file should be the same. Knowing that, snapshot automatically matches these 2 lists to identify the name of each of these screenshots. They are then copied over to the output directory and separated by language and device. 2 thing have to be passed on from snapshot to the xcodebuild command line tool: The device type is passed via the destination parameter of the xcodebuild parameter The language is passed via a temporary file which is written by snapshot before running the tests and read by the UI Tests when launching the application If you find a better way to do any of this, please submit an issue on GitHub or even a pull request :+1: Radar 23062925 has been resolved with Xcode 8.3, so it's now possible to actually take screenshots from the simulator. We'll keep using the old approach for now, since many of you still want to use older versions of Xcode. Tips Check out the new fastlane documentation on how to generate screenshots Frame the screenshots If you want to add frames around the screenshots and even put a title on top, check out frameit . Available language codes ALL_LANGUAGES = [\"da\", \"de-DE\", \"el\", \"en-AU\", \"en-CA\", \"en-GB\", \"en-US\", \"es-ES\", \"es-MX\", \"fi\", \"fr-CA\", \"fr-FR\", \"id\", \"it\", \"ja\", \"ko\", \"ms\", \"nl-NL\", \"no\", \"pt-BR\", \"pt-PT\", \"ru\", \"sv\", \"th\", \"tr\", \"vi\", \"zh-Hans\", \"zh-Hant\"] To get more information about language and locale codes please read Internationalization and Localization Guide . Use a clean status bar You can set override_status_bar to true to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available. Editing the Snapfile Change syntax highlighting to Ruby . Simulator doesn't launch the application When the app dies directly after the application is launched there might be 2 problems The simulator is somehow in a broken state and you need to re-create it. You can use snapshot reset_simulators to reset all simulators (this will remove all installed apps) A restart helps very often Determine language To detect the currently used localization in your tests, access the deviceLanguage variable from SnapshotHelper.swift . Speed up snapshots A lot of time in UI tests is spent waiting for animations. You can disable UIView animations in your app to make the tests faster: if ProcessInfo().arguments.contains(\"SKIP_ANIMATIONS\") { UIView.setAnimationsEnabled(false) } This requires you to pass the launch argument like so: snapshot(launch_arguments: [\"SKIP_ANIMATIONS\"]) By default, snapshot will wait for a short time for the animations to finish. If you're skipping the animations, this wait time is unnecessary and can be skipped: setupSnapshot(app, waitForAnimations: false) capture_screenshots Supported platforms ios, mac Author @KrauseFx 3 Examples capture_ios_screenshots snapshot # alias for \"capture_ios_screenshots\" capture_ios_screenshots( skip_open_summary: true, clean: true ) Parameters Key Description Default workspace Path the workspace file project Path the project file xcargs Pass additional arguments to xcodebuild for the test phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app devices A list of devices you want to take the screenshots from languages A list of languages which should be used [\"en-US\"] launch_arguments A list of launch arguments which should be used [\"\"] output_directory The directory where to store the screenshots * output_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false ios_version By default, the latest version should be used automatically. If you want to change it, do it here skip_open_summary Don't open the HTML summary after running snapshot false skip_helper_version_check Do not check for most recent SnapshotHelper code false clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running snapshot false reinstall_app Enabling this option will automatically uninstall the application before running it false erase_simulator Enabling this option will automatically erase the simulator before running the application false headless Enabling this option will prevent displaying the simulator window true override_status_bar Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception (Adjust 'SNAPSHOT_SIMULATOR_WAIT_FOR_BOOT_TIMEOUT' environment variable if override status bar is not working. Might be because simulator is not fully booted. Defaults to 10 seconds) false override_status_bar_arguments Fully customize the status bar by setting each option here. Requires override_status_bar to be set to true . See xcrun simctl status_bar --help localize_simulator Enabling this option will configure the Simulator's system language false dark_mode Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark) app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * add_photos A list of photos that should be added to the simulator before running the application add_videos A list of videos that should be added to the simulator before running the application html_template A path to screenshots.html template buildlog_path The directory where to store the build log * clean Should the project be cleaned before building it? false test_without_building Test without building, requires a derived data path configuration The configuration to use when building the app. Defaults to 'Release' * sdk The SDK that should be used for building the application scheme The scheme you want to use, this must be the scheme for the UI Tests number_of_retries The number of times a test can fail before snapshot should stop retrying 1 stop_after_first_error Should snapshot stop immediately after the tests completely failed on one device? false derived_data_path The directory where build products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false test_target_name The name of the target you want to test (if you desire to override the Target Application from Xcode) namespace_log_files Separate the log files per device and per language concurrent_simulators Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9 true disable_slide_to_type Disable the simulator from showing the 'Slide to type' prompt false cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false testplan The testplan associated with the scheme that should be used for testing only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * xcpretty_args DEPRECATED! Use xcodebuild_formatter: '' instead - Additional xcpretty arguments disable_xcpretty Disable xcpretty formatting of build suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The capture_screenshots action generates the following Lane Variables: SharedValue Description SharedValues::SNAPSHOT_SCREENSHOTS_PATH The path to the screenshots To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action capture_screenshots CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run capture_screenshots To pass parameters, make use of the : symbol, for example fastlane run capture_screenshots parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Capture screenshots"},{"location":"generated/actions/capture_screenshots/#capture_screenshots","text":"Alias for the capture_ios_screenshots action","title":"capture_screenshots"},{"location":"generated/actions/capture_screenshots/#features","text":"Create hundreds of screenshots in multiple languages on all simulators Take screenshots in multiple device simulators concurrently to cut down execution time (Xcode 9 only) Configure it once, store the configuration in git Do something else, while the computer takes the screenshots for you Integrates with fastlane and deliver Generates a beautiful web page, which shows all screenshots on all devices. This is perfect to send to QA or the marketing team snapshot automatically waits for network requests to be finished before taking a screenshot (we don't want loading images in the App Store screenshots) After snapshot successfully created new screenshots, it will generate a beautiful HTML file to get a quick overview of all screens:","title":"Features"},{"location":"generated/actions/capture_screenshots/#why","text":"This tool automatically switches the language and device type and runs UI Tests for every combination.","title":"Why?"},{"location":"generated/actions/capture_screenshots/#ui-tests","text":"","title":"UI Tests"},{"location":"generated/actions/capture_screenshots/#getting-started","text":"This project uses Apple's newly announced UI Tests. We will not go into detail on how to write scripts. Here a few links to get started: WWDC 2015 Introduction to UI Tests A first look into UI Tests UI Testing in Xcode 7 HSTestingBackchannel : \u2018Cheat\u2019 by communicating directly with your app Automating App Store screenshots using fastlane snapshot and frameit","title":"Getting started"},{"location":"generated/actions/capture_screenshots/#quick-start","text":"Create a new UI Test target in your Xcode project ( top part of this article ) Run fastlane snapshot init in your project folder Add the ./SnapshotHelper.swift to your UI Test target (You can move the file anywhere you want) (Xcode 8 only) add the ./SnapshotHelperXcode8.swift to your UI Test target (Objective C only) add the bridging header to your test class: #import \"MYUITests-Swift.h\" (The bridging header is named after your test target with -Swift.h appended.) In your UI Test class, click the Record button on the bottom left and record your interaction To take a snapshot, call the following between interactions Swift: snapshot(\"01LoginScreen\") Objective C: [Snapshot snapshot:@\"01LoginScreen\" timeWaitingForIdle:10]; Add the following code to your setUp() method: Swift: let app = XCUIApplication() setupSnapshot(app) app.launch() Objective C: XCUIApplication *app = [[XCUIApplication alloc] init]; [Snapshot setupSnapshot:app waitForAnimations:NO]; [app launch]; Make sure you only have one launch call in your test class, as Xcode adds one automatically on new test files. You can try the snapshot example project by cloning this repo. To quick start your UI tests, you can use the UI Test recorder. You only have to interact with the simulator, and Xcode will generate the UI Test code for you. You can find the red record button on the bottom of the screen (more information in this blog post )","title":"Quick Start"},{"location":"generated/actions/capture_screenshots/#usage","text":"fastlane snapshot Your screenshots will be stored in the ./screenshots/ folder by default (or ./fastlane/screenshots if you're using fastlane ) New with Xcode 9, snapshot can run multiple simulators concurrently. This is the default behavior in order to take your screenshots as quickly as possible. This can be disabled to run each device, one at a time, by setting the :concurrent_simulators option to false . Note: While running snapshot with Xcode 9, the simulators will not be visibly spawned. So, while you won't see the simulators running your tests, they will, in fact, be taking your screenshots. If any error occurs while running the snapshot script on a device, that device will not have any screenshots, and snapshot will continue with the next device or language. To stop the flow after the first error, run fastlane snapshot --stop_after_first_error Also by default, snapshot will open the HTML after all is done. This can be skipped with the following command fastlane snapshot --stop_after_first_error --skip_open_summary There are a lot of options available that define how to build your app, for example fastlane snapshot --scheme \"UITests\" --configuration \"Release\" --sdk \"iphonesimulator\" Reinstall the app before running snapshot fastlane snapshot --reinstall_app --app_identifier \"tools.fastlane.app\" By default snapshot automatically retries running UI Tests if they fail. This is due to randomly failing UI Tests (e.g. #2517 ). You can adapt this number using fastlane snapshot --number_of_retries 3 Add photos and/or videos to the simulator before running snapshot fastlane snapshot --add_photos MyTestApp/Assets/demo.jpg --add_videos MyTestApp/Assets/demo.mp4 For a list for all available options run fastlane action snapshot After running snapshot you will get a nice summary:","title":"Usage"},{"location":"generated/actions/capture_screenshots/#snapfile","text":"All of the available options can also be stored in a configuration file called the Snapfile . Since most values will not change often for your project, it is recommended to store them there: First make sure to have a Snapfile (you get it for free when running fastlane snapshot init ) The Snapfile can contain all the options that are also available on fastlane action snapshot scheme(\"UITests\") devices([ \"iPad (7th generation)\", \"iPad Air (3rd generation)\", \"iPad Pro (11-inch)\", \"iPad Pro (12.9-inch) (3rd generation)\", \"iPad Pro (9.7-inch)\", \"iPhone 11\", \"iPhone 11 Pro\", \"iPhone 11 Pro Max\", \"iPhone 8\", \"iPhone 8 Plus\" ]) languages([ \"en-US\", \"de-DE\", \"es-ES\", [\"pt\", \"pt_BR\"] # Portuguese with Brazilian locale ]) launch_arguments([\"-username Felix\"]) # The directory in which the screenshots should be stored output_directory('./screenshots') clear_previous_screenshots(true) override_status_bar(true) add_photos([\"MyTestApp/Assets/demo.jpg\"])","title":"Snapfile"},{"location":"generated/actions/capture_screenshots/#update-snapshot-helpers","text":"Some updates require the helper files to be updated. snapshot will automatically warn you and tell you how to update. Basically you can run fastlane snapshot update to update your SnapshotHelper.swift files. In case you modified your SnapshotHelper.swift and want to manually update the file, check out SnapshotHelper.swift .","title":"Update snapshot helpers"},{"location":"generated/actions/capture_screenshots/#launch-arguments","text":"You can provide additional arguments to your app on launch. These strings will be available in your app (e.g. not in the testing target) through ProcessInfo.processInfo.arguments . Alternatively, use user-default syntax ( -key value ) and they will be available as key-value pairs in UserDefaults.standard . launch_arguments([ \"-firstName Felix -lastName Krause\" ]) name.text = UserDefaults.standard.string(forKey: \"firstName\") // name.text = \"Felix\" snapshot includes -FASTLANE_SNAPSHOT YES , which will set a temporary user default for the key FASTLANE_SNAPSHOT , you may use this to detect when the app is run by snapshot . if UserDefaults.standard.bool(forKey: \"FASTLANE_SNAPSHOT\") { // runtime check that we are in snapshot mode } Specify multiple argument strings and snapshot will generate screenshots for each combination of arguments, devices, and languages. This is useful for comparing the same screenshots with different feature flags, dynamic text sizes, and different data sets. # Snapfile for A/B Test Comparison launch_arguments([ \"-secretFeatureEnabled YES\", \"-secretFeatureEnabled NO\" ])","title":"Launch Arguments"},{"location":"generated/actions/capture_screenshots/#xcode-environment-variables","text":"snapshot includes FASTLANE_SNAPSHOT=YES and FASTLANE_LANGUAGE= as arguments when executing xcodebuild . This means you may use these environment variables in a custom build phase run script to do any additional configuration.","title":"Xcode Environment Variables"},{"location":"generated/actions/capture_screenshots/#how-does-it-work","text":"The easiest solution would be to just render the UIWindow into a file. That's not possible because UI Tests don't run on a main thread. So snapshot uses a different approach: When you run unit tests in Xcode, the reporter generates a plist file, documenting all events that occurred during the tests ( More Information ). Additionally, Xcode generates screenshots before, during and after each of these events. There is no way to manually trigger a screenshot event. The screenshots and the plist files are stored in the DerivedData directory, which snapshot stores in a temporary folder. When the user calls snapshot(...) in the UI Tests (Swift or Objective C) the script actually does a rotation to .Unknown which doesn't have any effect on the actual app, but is enough to trigger a screenshot. It has no effect to the application and is not something you would do in your tests. The goal was to find some event that a user would never trigger, so that we know it's from snapshot . On tvOS, there is no orientation so we ask for a count of app views with type \"Browser\" (which should never exist on tvOS). snapshot then iterates through all test events and check where we either did this weird rotation (on iOS) or searched for browsers (on tvOS). Once snapshot has all events triggered by snapshot it collects a ordered list of all the file names of the actual screenshots of the application. In the test output, the Swift snapshot function will print out something like this snapshot: [some random text here] snapshot finds all these entries using a regex. The number of snapshot outputs in the terminal and the number of snapshot events in the plist file should be the same. Knowing that, snapshot automatically matches these 2 lists to identify the name of each of these screenshots. They are then copied over to the output directory and separated by language and device. 2 thing have to be passed on from snapshot to the xcodebuild command line tool: The device type is passed via the destination parameter of the xcodebuild parameter The language is passed via a temporary file which is written by snapshot before running the tests and read by the UI Tests when launching the application If you find a better way to do any of this, please submit an issue on GitHub or even a pull request :+1: Radar 23062925 has been resolved with Xcode 8.3, so it's now possible to actually take screenshots from the simulator. We'll keep using the old approach for now, since many of you still want to use older versions of Xcode.","title":"How does it work?"},{"location":"generated/actions/capture_screenshots/#tips","text":"","title":"Tips"},{"location":"generated/actions/capture_screenshots/#frame-the-screenshots","text":"If you want to add frames around the screenshots and even put a title on top, check out frameit .","title":"Frame the screenshots"},{"location":"generated/actions/capture_screenshots/#available-language-codes","text":"ALL_LANGUAGES = [\"da\", \"de-DE\", \"el\", \"en-AU\", \"en-CA\", \"en-GB\", \"en-US\", \"es-ES\", \"es-MX\", \"fi\", \"fr-CA\", \"fr-FR\", \"id\", \"it\", \"ja\", \"ko\", \"ms\", \"nl-NL\", \"no\", \"pt-BR\", \"pt-PT\", \"ru\", \"sv\", \"th\", \"tr\", \"vi\", \"zh-Hans\", \"zh-Hant\"] To get more information about language and locale codes please read Internationalization and Localization Guide .","title":"Available language codes"},{"location":"generated/actions/capture_screenshots/#use-a-clean-status-bar","text":"You can set override_status_bar to true to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available.","title":"Use a clean status bar"},{"location":"generated/actions/capture_screenshots/#editing-the-snapfile","text":"Change syntax highlighting to Ruby .","title":"Editing the Snapfile"},{"location":"generated/actions/capture_screenshots/#determine-language","text":"To detect the currently used localization in your tests, access the deviceLanguage variable from SnapshotHelper.swift .","title":"Determine language"},{"location":"generated/actions/capture_screenshots/#speed-up-snapshots","text":"A lot of time in UI tests is spent waiting for animations. You can disable UIView animations in your app to make the tests faster: if ProcessInfo().arguments.contains(\"SKIP_ANIMATIONS\") { UIView.setAnimationsEnabled(false) } This requires you to pass the launch argument like so: snapshot(launch_arguments: [\"SKIP_ANIMATIONS\"]) By default, snapshot will wait for a short time for the animations to finish. If you're skipping the animations, this wait time is unnecessary and can be skipped: setupSnapshot(app, waitForAnimations: false) capture_screenshots Supported platforms ios, mac Author @KrauseFx","title":"Speed up snapshots"},{"location":"generated/actions/capture_screenshots/#3-examples","text":"capture_ios_screenshots snapshot # alias for \"capture_ios_screenshots\" capture_ios_screenshots( skip_open_summary: true, clean: true )","title":"3 Examples"},{"location":"generated/actions/capture_screenshots/#parameters","text":"Key Description Default workspace Path the workspace file project Path the project file xcargs Pass additional arguments to xcodebuild for the test phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app devices A list of devices you want to take the screenshots from languages A list of languages which should be used [\"en-US\"] launch_arguments A list of launch arguments which should be used [\"\"] output_directory The directory where to store the screenshots * output_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false ios_version By default, the latest version should be used automatically. If you want to change it, do it here skip_open_summary Don't open the HTML summary after running snapshot false skip_helper_version_check Do not check for most recent SnapshotHelper code false clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running snapshot false reinstall_app Enabling this option will automatically uninstall the application before running it false erase_simulator Enabling this option will automatically erase the simulator before running the application false headless Enabling this option will prevent displaying the simulator window true override_status_bar Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception (Adjust 'SNAPSHOT_SIMULATOR_WAIT_FOR_BOOT_TIMEOUT' environment variable if override status bar is not working. Might be because simulator is not fully booted. Defaults to 10 seconds) false override_status_bar_arguments Fully customize the status bar by setting each option here. Requires override_status_bar to be set to true . See xcrun simctl status_bar --help localize_simulator Enabling this option will configure the Simulator's system language false dark_mode Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark) app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * add_photos A list of photos that should be added to the simulator before running the application add_videos A list of videos that should be added to the simulator before running the application html_template A path to screenshots.html template buildlog_path The directory where to store the build log * clean Should the project be cleaned before building it? false test_without_building Test without building, requires a derived data path configuration The configuration to use when building the app. Defaults to 'Release' * sdk The SDK that should be used for building the application scheme The scheme you want to use, this must be the scheme for the UI Tests number_of_retries The number of times a test can fail before snapshot should stop retrying 1 stop_after_first_error Should snapshot stop immediately after the tests completely failed on one device? false derived_data_path The directory where build products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false test_target_name The name of the target you want to test (if you desire to override the Target Application from Xcode) namespace_log_files Separate the log files per device and per language concurrent_simulators Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9 true disable_slide_to_type Disable the simulator from showing the 'Slide to type' prompt false cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false testplan The testplan associated with the scheme that should be used for testing only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * xcpretty_args DEPRECATED! Use xcodebuild_formatter: '' instead - Additional xcpretty arguments disable_xcpretty Disable xcpretty formatting of build suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/capture_screenshots/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The capture_screenshots action generates the following Lane Variables: SharedValue Description SharedValues::SNAPSHOT_SCREENSHOTS_PATH The path to the screenshots To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/capture_screenshots/#documentation","text":"To show the documentation in your terminal, run fastlane action capture_screenshots","title":"Documentation"},{"location":"generated/actions/capture_screenshots/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run capture_screenshots To pass parameters, make use of the : symbol, for example fastlane run capture_screenshots parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/capture_screenshots/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/carthage/","text":"carthage Runs carthage for your project carthage Supported platforms ios, mac Author @bassrock, @petester42, @jschmid, @JaviSoto, @uny, @phatblat, @bfcrampton, @antondomashnev, @gbrhaz 2 Examples carthage carthage( frameworks: [\"MyFramework1\", \"MyFramework2\"], # Specify which frameworks to archive (only for the archive command) output: \"MyFrameworkBundle.framework.zip\", # Specify the output archive name (only for the archive command) command: \"bootstrap\", # One of: build, bootstrap, update, archive. (default: bootstrap) dependencies: [\"Alamofire\", \"Notice\"],# Specify which dependencies to update or build (only for update, build and bootstrap commands) use_ssh: false, # Use SSH for downloading GitHub repositories. use_submodules: false, # Add dependencies as Git submodules. use_binaries: true, # Check out dependency repositories even when prebuilt frameworks exist no_build: false, # When bootstrapping Carthage do not build no_skip_current: false, # Don't skip building the current project (only for frameworks) verbose: false, # Print xcodebuild output inline platform: \"all\", # Define which platform to build for (one of \u2018all\u2019, \u2018Mac\u2019, \u2018iOS\u2019, \u2018watchOS\u2019, \u2018tvOS\u2018, or comma-separated values of the formers except for \u2018all\u2019) configuration: \"Release\", # Build configuration to use when building cache_builds: true, # By default Carthage will rebuild a dependency regardless of whether its the same resolved version as before. toolchain: \"com.apple.dt.toolchain.Swift_2_3\", # Specify the xcodebuild toolchain new_resolver: false, # Use the new resolver to resolve dependency graph log_path: \"carthage.log\" # Path to the xcode build output ) Parameters Key Description Default command Carthage command (one of: build, bootstrap, update, archive) bootstrap dependencies Carthage dependencies to update, build or bootstrap [] use_ssh Use SSH for downloading GitHub repositories use_submodules Add dependencies as Git submodules use_netrc Use .netrc for downloading frameworks use_binaries Check out dependency repositories even when prebuilt frameworks exist no_checkout When bootstrapping Carthage do not checkout no_build When bootstrapping Carthage do not build no_skip_current Don't skip building the Carthage project (in addition to its dependencies) derived_data Use derived data folder at path verbose Print xcodebuild output inline platform Define which platform to build for cache_builds By default Carthage will rebuild a dependency regardless of whether it's the same resolved version as before. Passing the --cache-builds will cause carthage to avoid rebuilding a dependency if it can false frameworks Framework name or names to archive, could be applied only along with the archive command [] output Output name for the archive, could be applied only along with the archive command. Use following format *.framework.zip configuration Define which build configuration to use when building toolchain Define which xcodebuild toolchain to use when building project_directory Define the directory containing the Carthage project new_resolver Use new resolver when resolving dependency graph log_path Path to the xcode build output use_xcframeworks Create xcframework bundles instead of one framework per platform (requires Xcode 12+) false archive Archive built frameworks from the current project false executable Path to the carthage executable on your machine carthage * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action carthage CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run carthage To pass parameters, make use of the : symbol, for example fastlane run carthage parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Carthage"},{"location":"generated/actions/carthage/#carthage","text":"Runs carthage for your project carthage Supported platforms ios, mac Author @bassrock, @petester42, @jschmid, @JaviSoto, @uny, @phatblat, @bfcrampton, @antondomashnev, @gbrhaz","title":"carthage"},{"location":"generated/actions/carthage/#2-examples","text":"carthage carthage( frameworks: [\"MyFramework1\", \"MyFramework2\"], # Specify which frameworks to archive (only for the archive command) output: \"MyFrameworkBundle.framework.zip\", # Specify the output archive name (only for the archive command) command: \"bootstrap\", # One of: build, bootstrap, update, archive. (default: bootstrap) dependencies: [\"Alamofire\", \"Notice\"],# Specify which dependencies to update or build (only for update, build and bootstrap commands) use_ssh: false, # Use SSH for downloading GitHub repositories. use_submodules: false, # Add dependencies as Git submodules. use_binaries: true, # Check out dependency repositories even when prebuilt frameworks exist no_build: false, # When bootstrapping Carthage do not build no_skip_current: false, # Don't skip building the current project (only for frameworks) verbose: false, # Print xcodebuild output inline platform: \"all\", # Define which platform to build for (one of \u2018all\u2019, \u2018Mac\u2019, \u2018iOS\u2019, \u2018watchOS\u2019, \u2018tvOS\u2018, or comma-separated values of the formers except for \u2018all\u2019) configuration: \"Release\", # Build configuration to use when building cache_builds: true, # By default Carthage will rebuild a dependency regardless of whether its the same resolved version as before. toolchain: \"com.apple.dt.toolchain.Swift_2_3\", # Specify the xcodebuild toolchain new_resolver: false, # Use the new resolver to resolve dependency graph log_path: \"carthage.log\" # Path to the xcode build output )","title":"2 Examples"},{"location":"generated/actions/carthage/#parameters","text":"Key Description Default command Carthage command (one of: build, bootstrap, update, archive) bootstrap dependencies Carthage dependencies to update, build or bootstrap [] use_ssh Use SSH for downloading GitHub repositories use_submodules Add dependencies as Git submodules use_netrc Use .netrc for downloading frameworks use_binaries Check out dependency repositories even when prebuilt frameworks exist no_checkout When bootstrapping Carthage do not checkout no_build When bootstrapping Carthage do not build no_skip_current Don't skip building the Carthage project (in addition to its dependencies) derived_data Use derived data folder at path verbose Print xcodebuild output inline platform Define which platform to build for cache_builds By default Carthage will rebuild a dependency regardless of whether it's the same resolved version as before. Passing the --cache-builds will cause carthage to avoid rebuilding a dependency if it can false frameworks Framework name or names to archive, could be applied only along with the archive command [] output Output name for the archive, could be applied only along with the archive command. Use following format *.framework.zip configuration Define which build configuration to use when building toolchain Define which xcodebuild toolchain to use when building project_directory Define the directory containing the Carthage project new_resolver Use new resolver when resolving dependency graph log_path Path to the xcode build output use_xcframeworks Create xcframework bundles instead of one framework per platform (requires Xcode 12+) false archive Archive built frameworks from the current project false executable Path to the carthage executable on your machine carthage * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/carthage/#documentation","text":"To show the documentation in your terminal, run fastlane action carthage","title":"Documentation"},{"location":"generated/actions/carthage/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run carthage To pass parameters, make use of the : symbol, for example fastlane run carthage parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/carthage/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/cert/","text":"cert Alias for the get_certificates action Why? \u2022 Usage \u2022 How does it work? \u2022 Tips cert is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. In the gif we used cert && sigh , which will first create an iOS code signing certificate and then a provisioning profile for your app if cert succeeded. Usage Note : It is recommended to use match according to the codesigning.guide for generating and maintaining your certificates. Use cert directly only if you want full control over what's going on and know more about codesigning. fastlane cert This will check if any of the available signing certificates is installed on your local machine. Only if a new certificate needs to be created, cert will Create a new private key Create a new signing request Generate, downloads and installs the certificate Import all the generated files into your Keychain cert will never revoke your existing certificates. If you can't create any more certificates, cert will raise an exception, which means, you have to revoke one of the existing certificates to make room for a new one. You can pass your Apple ID: fastlane cert -u cert@krausefx.com For a list of available commands run fastlane action cert Keep in mind, there is no way for cert to download existing certificates + private keys from the Apple Developer Portal, as the private key never leaves your computer. Environment Variables Run fastlane action cert to get a list of all available environment variables. Use with sigh cert becomes really interesting when used in fastlane in combination with sigh . Update your Fastfile to contain the following code: lane :beta do cert sigh(force: true) end force: true will make sure to re-generate the provisioning profile on each run. This will result in sigh always using the correct signing certificate, which is installed on the local machine. How is my password stored? cert uses the password manager from fastlane . Take a look the CredentialsManager README for more information. Tips Use 'ProvisionQL' for advanced Quick Look in Finder Install ProvisionQL . It will show you mobileprovision files like this: cert Supported platforms ios Author @KrauseFx 3 Examples get_certificates cert # alias for \"get_certificates\" get_certificates( development: true, username: \"user@email.com\" ) Parameters Key Description Default development Create a development certificate instead of a distribution one false type Create specific certificate type (takes precedence over :development) force Create a certificate even if an existing certificate exists false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * filename The filename of certificate to store output_path The path to a directory in which all certificates and private keys should be stored . keychain_path Path to a custom keychain * keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false platform Set the provisioning profile's platform (ios, macos, tvos) ios * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The cert action generates the following Lane Variables: SharedValue Description SharedValues::CERT_FILE_PATH The path to the certificate SharedValues::CERT_CERTIFICATE_ID The id of the certificate To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action cert CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run cert To pass parameters, make use of the : symbol, for example fastlane run cert parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Cert"},{"location":"generated/actions/cert/#cert","text":"Alias for the get_certificates action Why? \u2022 Usage \u2022 How does it work? \u2022 Tips","title":"cert"},{"location":"generated/actions/cert/#usage","text":"Note : It is recommended to use match according to the codesigning.guide for generating and maintaining your certificates. Use cert directly only if you want full control over what's going on and know more about codesigning. fastlane cert This will check if any of the available signing certificates is installed on your local machine. Only if a new certificate needs to be created, cert will Create a new private key Create a new signing request Generate, downloads and installs the certificate Import all the generated files into your Keychain cert will never revoke your existing certificates. If you can't create any more certificates, cert will raise an exception, which means, you have to revoke one of the existing certificates to make room for a new one. You can pass your Apple ID: fastlane cert -u cert@krausefx.com For a list of available commands run fastlane action cert Keep in mind, there is no way for cert to download existing certificates + private keys from the Apple Developer Portal, as the private key never leaves your computer.","title":"Usage"},{"location":"generated/actions/cert/#environment-variables","text":"Run fastlane action cert to get a list of all available environment variables.","title":"Environment Variables"},{"location":"generated/actions/cert/#use-with-sigh","text":"cert becomes really interesting when used in fastlane in combination with sigh . Update your Fastfile to contain the following code: lane :beta do cert sigh(force: true) end force: true will make sure to re-generate the provisioning profile on each run. This will result in sigh always using the correct signing certificate, which is installed on the local machine.","title":"Use with sigh"},{"location":"generated/actions/cert/#how-is-my-password-stored","text":"cert uses the password manager from fastlane . Take a look the CredentialsManager README for more information.","title":"How is my password stored?"},{"location":"generated/actions/cert/#tips","text":"","title":"Tips"},{"location":"generated/actions/cert/#use-provisionql-for-advanced-quick-look-in-finder","text":"Install ProvisionQL . It will show you mobileprovision files like this: cert Supported platforms ios Author @KrauseFx","title":"Use 'ProvisionQL' for advanced Quick Look in Finder"},{"location":"generated/actions/cert/#3-examples","text":"get_certificates cert # alias for \"get_certificates\" get_certificates( development: true, username: \"user@email.com\" )","title":"3 Examples"},{"location":"generated/actions/cert/#parameters","text":"Key Description Default development Create a development certificate instead of a distribution one false type Create specific certificate type (takes precedence over :development) force Create a certificate even if an existing certificate exists false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * filename The filename of certificate to store output_path The path to a directory in which all certificates and private keys should be stored . keychain_path Path to a custom keychain * keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false platform Set the provisioning profile's platform (ios, macos, tvos) ios * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/cert/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The cert action generates the following Lane Variables: SharedValue Description SharedValues::CERT_FILE_PATH The path to the certificate SharedValues::CERT_CERTIFICATE_ID The id of the certificate To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/cert/#documentation","text":"To show the documentation in your terminal, run fastlane action cert","title":"Documentation"},{"location":"generated/actions/cert/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run cert To pass parameters, make use of the : symbol, for example fastlane run cert parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/cert/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/changelog_from_git_commits/","text":"changelog_from_git_commits Collect git commit messages into a changelog By default, messages will be collected back to the last tag, but the range can be controlled changelog_from_git_commits Supported platforms ios, android, mac Author @mfurtak, @asfalcone, @SiarheiFedartsou, @allewun Returns Returns a String containing your formatted git commits 2 Examples changelog_from_git_commits changelog_from_git_commits( between: [\"7b092b3\", \"HEAD\"], # Optional, lets you specify a revision/tag range between which to collect commit info pretty: \"- (%ae) %s\",# Optional, lets you provide a custom format to apply to each commit when generating the changelog text date_format: \"short\",# Optional, lets you provide an additional date format to dates within the pretty-formatted string match_lightweight_tag: false, # Optional, lets you ignore lightweight (non-annotated) tags when searching for the last tag merge_commit_filtering: \"exclude_merges\" # Optional, lets you filter out merge commits ) Parameters Key Description Default between Array containing two Git revision values between which to collect messages, you mustn't use it with :commits_count key at the same time commits_count Number of commits to include in changelog, you mustn't use it with :between key at the same time path Path of the git repository ./ pretty The format applied to each commit while generating the collected value %B date_format The date format applied to each commit while generating the collected value ancestry_path Whether or not to use ancestry-path param false tag_match_pattern A glob(7) pattern to match against when finding the last git tag match_lightweight_tag Whether or not to match a lightweight tag when searching for the last one true quiet Whether or not to disable changelog output false include_merges DEPRECATED! Use :merge_commit_filtering instead - Whether or not to include any commits that are merges merge_commit_filtering Controls inclusion of merge commits when collecting the changelog. Valid values: 'include_merges', 'exclude_merges', 'only_include_merges' include_merges * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The changelog_from_git_commits action generates the following Lane Variables: SharedValue Description SharedValues::FL_CHANGELOG The changelog string generated from the collected git commit messages To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action changelog_from_git_commits CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run changelog_from_git_commits To pass parameters, make use of the : symbol, for example fastlane run changelog_from_git_commits parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Changelog from git commits"},{"location":"generated/actions/changelog_from_git_commits/#changelog_from_git_commits","text":"Collect git commit messages into a changelog By default, messages will be collected back to the last tag, but the range can be controlled changelog_from_git_commits Supported platforms ios, android, mac Author @mfurtak, @asfalcone, @SiarheiFedartsou, @allewun Returns Returns a String containing your formatted git commits","title":"changelog_from_git_commits"},{"location":"generated/actions/changelog_from_git_commits/#2-examples","text":"changelog_from_git_commits changelog_from_git_commits( between: [\"7b092b3\", \"HEAD\"], # Optional, lets you specify a revision/tag range between which to collect commit info pretty: \"- (%ae) %s\",# Optional, lets you provide a custom format to apply to each commit when generating the changelog text date_format: \"short\",# Optional, lets you provide an additional date format to dates within the pretty-formatted string match_lightweight_tag: false, # Optional, lets you ignore lightweight (non-annotated) tags when searching for the last tag merge_commit_filtering: \"exclude_merges\" # Optional, lets you filter out merge commits )","title":"2 Examples"},{"location":"generated/actions/changelog_from_git_commits/#parameters","text":"Key Description Default between Array containing two Git revision values between which to collect messages, you mustn't use it with :commits_count key at the same time commits_count Number of commits to include in changelog, you mustn't use it with :between key at the same time path Path of the git repository ./ pretty The format applied to each commit while generating the collected value %B date_format The date format applied to each commit while generating the collected value ancestry_path Whether or not to use ancestry-path param false tag_match_pattern A glob(7) pattern to match against when finding the last git tag match_lightweight_tag Whether or not to match a lightweight tag when searching for the last one true quiet Whether or not to disable changelog output false include_merges DEPRECATED! Use :merge_commit_filtering instead - Whether or not to include any commits that are merges merge_commit_filtering Controls inclusion of merge commits when collecting the changelog. Valid values: 'include_merges', 'exclude_merges', 'only_include_merges' include_merges * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/changelog_from_git_commits/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The changelog_from_git_commits action generates the following Lane Variables: SharedValue Description SharedValues::FL_CHANGELOG The changelog string generated from the collected git commit messages To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/changelog_from_git_commits/#documentation","text":"To show the documentation in your terminal, run fastlane action changelog_from_git_commits","title":"Documentation"},{"location":"generated/actions/changelog_from_git_commits/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run changelog_from_git_commits To pass parameters, make use of the : symbol, for example fastlane run changelog_from_git_commits parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/changelog_from_git_commits/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/chatwork/","text":"chatwork Send a success/error message to ChatWork Information on how to obtain an API token: http://developer.chatwork.com/ja/authenticate.html chatwork Supported platforms ios, android, mac Author @astronaughts 1 Example chatwork( message: \"App successfully released!\", roomid: 12345, success: true, api_token: \"Your Token\" ) Parameters Key Description Default api_token ChatWork API Token message The message to post on ChatWork roomid The room ID success Was this build successful? (true/false) true * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action chatwork CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run chatwork To pass parameters, make use of the : symbol, for example fastlane run chatwork parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Chatwork"},{"location":"generated/actions/chatwork/#chatwork","text":"Send a success/error message to ChatWork Information on how to obtain an API token: http://developer.chatwork.com/ja/authenticate.html chatwork Supported platforms ios, android, mac Author @astronaughts","title":"chatwork"},{"location":"generated/actions/chatwork/#1-example","text":"chatwork( message: \"App successfully released!\", roomid: 12345, success: true, api_token: \"Your Token\" )","title":"1 Example"},{"location":"generated/actions/chatwork/#parameters","text":"Key Description Default api_token ChatWork API Token message The message to post on ChatWork roomid The room ID success Was this build successful? (true/false) true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/chatwork/#documentation","text":"To show the documentation in your terminal, run fastlane action chatwork","title":"Documentation"},{"location":"generated/actions/chatwork/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run chatwork To pass parameters, make use of the : symbol, for example fastlane run chatwork parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/chatwork/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/check_app_store_metadata/","text":"check_app_store_metadata Check your app's metadata before you submit your app to review (via precheck ) precheck Check your app using a community driven set of App Store review rules to avoid being rejected Apple rejects builds for many avoidable metadata issues like including swear words \ud83d\ude2e, other companies\u2019 trademarks, or even mentioning an iOS bug \ud83d\udc1b. fastlane precheck takes a lot of the guess work out by scanning your app\u2019s details in App Store Connect for avoidable problems. fastlane precheck helps you get your app through app review without rejections so you can ship faster \ud83d\ude80 Features \u2022 Usage \u2022 Example \u2022 How does it work? Features precheck Features \ud83d\udc1b \uf8ff product bug mentions \ud83d\ude45 Swear word checker \ud83e\udd16 Mentioning other platforms \ud83d\ude35 URL reachability checker \ud83d\udcdd Placeholder/test words/mentioning future features \ud83d\udcc5 Copyright date checking \ud83d\ude48 Customizable word list checking \ud83d\udce2 You can decide if you want to warn about potential problems and continue or have fastlane show an error and stop after all scans are done Usage Run fastlane precheck to check the app metadata from App Store Connect fastlane precheck To get a list of available options run fastlane action precheck Example Since you might want to manually trigger precheck but don't want to specify all the parameters every time, you can store your defaults in a so called Precheckfile . Run fastlane precheck init to create a new configuration file. Example: # indicates that your metadata will not be checked by this rule negative_apple_sentiment(level: :skip) # when triggered, this rule will warn you of a potential problem curse_words(level: :warn) # show error and prevent any further commands from running after fastlane precheck finishes unreachable_urls(level: :error) # pass in whatever words you want to check for custom_text(data: [\"chrome\", \"webos\"], level: :warn) Use with fastlane precheck is fully integrated with deliver another fastlane tool. Update your Fastfile to contain the following code: lane :production do # ... # by default deliver will call precheck and warn you of any problems # if you want precheck to halt submitting to app review, you can pass # precheck_default_rule_level: :error deliver(precheck_default_rule_level: :error) # ... end # or if you prefer, you can run precheck alone lane :check_metadata do precheck end How does it work? precheck will access App Store Connect to download your app's metadata. It uses spaceship to communicate with Apple's web services. Want to improve precheck's rules? Please submit an issue on GitHub and provide information about your App Store rejection! Make sure you scrub out any personally identifiable information since this will be public. check_app_store_metadata Supported platforms ios Author @taquitos Returns true if precheck passes, else, false 2 Examples check_app_store_metadata( negative_apple_sentiment: [level: :skip], # Set to skip to not run the `negative_apple_sentiment` rule curse_words: [level: :warn] # Set to warn to only warn on curse word check failures ) precheck # alias for \"check_app_store_metadata\" Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * platform The platform to use (optional) ios default_rule_level The default rule level unless otherwise configured :error include_in_app_purchases Should check in-app purchases? true use_live Should force check live app? false negative_apple_sentiment mentioning \uf8ff in a way that could be considered negative placeholder_text using placeholder text (e.g.:\"lorem ipsum\", \"text here\", etc...) other_platforms mentioning other platforms, like Android or Blackberry future_functionality mentioning features or content that is not currently available in your app test_words using text indicating this release is a test curse_words including words that might be considered objectionable free_stuff_in_iap using text indicating that your IAP is free custom_text mentioning any of the user-specified words passed to custom_text(data: [words]) copyright_date using a copyright date that is any different from this current year, or missing a date unreachable_urls unreachable URLs in app metadata * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action check_app_store_metadata CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run check_app_store_metadata To pass parameters, make use of the : symbol, for example fastlane run check_app_store_metadata parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Check app store metadata"},{"location":"generated/actions/check_app_store_metadata/#check_app_store_metadata","text":"Check your app's metadata before you submit your app to review (via precheck )","title":"check_app_store_metadata"},{"location":"generated/actions/check_app_store_metadata/#precheck","text":"","title":"precheck"},{"location":"generated/actions/check_app_store_metadata/#features","text":"precheck Features \ud83d\udc1b \uf8ff product bug mentions \ud83d\ude45 Swear word checker \ud83e\udd16 Mentioning other platforms \ud83d\ude35 URL reachability checker \ud83d\udcdd Placeholder/test words/mentioning future features \ud83d\udcc5 Copyright date checking \ud83d\ude48 Customizable word list checking \ud83d\udce2 You can decide if you want to warn about potential problems and continue or have fastlane show an error and stop after all scans are done","title":"Features"},{"location":"generated/actions/check_app_store_metadata/#usage","text":"Run fastlane precheck to check the app metadata from App Store Connect fastlane precheck To get a list of available options run fastlane action precheck","title":"Usage"},{"location":"generated/actions/check_app_store_metadata/#example","text":"Since you might want to manually trigger precheck but don't want to specify all the parameters every time, you can store your defaults in a so called Precheckfile . Run fastlane precheck init to create a new configuration file. Example: # indicates that your metadata will not be checked by this rule negative_apple_sentiment(level: :skip) # when triggered, this rule will warn you of a potential problem curse_words(level: :warn) # show error and prevent any further commands from running after fastlane precheck finishes unreachable_urls(level: :error) # pass in whatever words you want to check for custom_text(data: [\"chrome\", \"webos\"], level: :warn)","title":"Example"},{"location":"generated/actions/check_app_store_metadata/#how-does-it-work","text":"precheck will access App Store Connect to download your app's metadata. It uses spaceship to communicate with Apple's web services.","title":"How does it work?"},{"location":"generated/actions/check_app_store_metadata/#want-to-improve-prechecks-rules","text":"Please submit an issue on GitHub and provide information about your App Store rejection! Make sure you scrub out any personally identifiable information since this will be public. check_app_store_metadata Supported platforms ios Author @taquitos Returns true if precheck passes, else, false","title":"Want to improve precheck's rules?"},{"location":"generated/actions/check_app_store_metadata/#2-examples","text":"check_app_store_metadata( negative_apple_sentiment: [level: :skip], # Set to skip to not run the `negative_apple_sentiment` rule curse_words: [level: :warn] # Set to warn to only warn on curse word check failures ) precheck # alias for \"check_app_store_metadata\"","title":"2 Examples"},{"location":"generated/actions/check_app_store_metadata/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * platform The platform to use (optional) ios default_rule_level The default rule level unless otherwise configured :error include_in_app_purchases Should check in-app purchases? true use_live Should force check live app? false negative_apple_sentiment mentioning \uf8ff in a way that could be considered negative placeholder_text using placeholder text (e.g.:\"lorem ipsum\", \"text here\", etc...) other_platforms mentioning other platforms, like Android or Blackberry future_functionality mentioning features or content that is not currently available in your app test_words using text indicating this release is a test curse_words including words that might be considered objectionable free_stuff_in_iap using text indicating that your IAP is free custom_text mentioning any of the user-specified words passed to custom_text(data: [words]) copyright_date using a copyright date that is any different from this current year, or missing a date unreachable_urls unreachable URLs in app metadata * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/check_app_store_metadata/#documentation","text":"To show the documentation in your terminal, run fastlane action check_app_store_metadata","title":"Documentation"},{"location":"generated/actions/check_app_store_metadata/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run check_app_store_metadata To pass parameters, make use of the : symbol, for example fastlane run check_app_store_metadata parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/check_app_store_metadata/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/clean_build_artifacts/","text":"clean_build_artifacts Deletes files created as result of running gym, cert, sigh or download_dsyms This action deletes the files that get created in your repo as a result of running the gym and sigh commands. It doesn't delete the fastlane/report.xml though, this is probably more suited for the .gitignore. Useful if you quickly want to send out a test build by dropping down to the command line and typing something like fastlane beta , without leaving your repo in a messy state afterwards. clean_build_artifacts Supported platforms ios, mac Author @lmirosevic 1 Example clean_build_artifacts Parameters Key Description Default exclude_pattern Exclude all files from clearing that match the given Regex pattern: e.g. '.*.mobileprovision' * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action clean_build_artifacts CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run clean_build_artifacts To pass parameters, make use of the : symbol, for example fastlane run clean_build_artifacts parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Clean build artifacts"},{"location":"generated/actions/clean_build_artifacts/#clean_build_artifacts","text":"Deletes files created as result of running gym, cert, sigh or download_dsyms This action deletes the files that get created in your repo as a result of running the gym and sigh commands. It doesn't delete the fastlane/report.xml though, this is probably more suited for the .gitignore. Useful if you quickly want to send out a test build by dropping down to the command line and typing something like fastlane beta , without leaving your repo in a messy state afterwards. clean_build_artifacts Supported platforms ios, mac Author @lmirosevic","title":"clean_build_artifacts"},{"location":"generated/actions/clean_build_artifacts/#1-example","text":"clean_build_artifacts","title":"1 Example"},{"location":"generated/actions/clean_build_artifacts/#parameters","text":"Key Description Default exclude_pattern Exclude all files from clearing that match the given Regex pattern: e.g. '.*.mobileprovision' * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/clean_build_artifacts/#documentation","text":"To show the documentation in your terminal, run fastlane action clean_build_artifacts","title":"Documentation"},{"location":"generated/actions/clean_build_artifacts/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run clean_build_artifacts To pass parameters, make use of the : symbol, for example fastlane run clean_build_artifacts parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/clean_build_artifacts/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/clean_cocoapods_cache/","text":"clean_cocoapods_cache Remove the cache for pods clean_cocoapods_cache Supported platforms ios, mac Author @alexmx 2 Examples clean_cocoapods_cache clean_cocoapods_cache(name: \"CACHED_POD\") Parameters Key Description Default name Pod name to be removed from cache no_ansi Show output without ANSI codes false verbose Show more debugging information false silent Show nothing false allow_root Allows CocoaPods to run as root false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action clean_cocoapods_cache CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run clean_cocoapods_cache To pass parameters, make use of the : symbol, for example fastlane run clean_cocoapods_cache parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Clean cocoapods cache"},{"location":"generated/actions/clean_cocoapods_cache/#clean_cocoapods_cache","text":"Remove the cache for pods clean_cocoapods_cache Supported platforms ios, mac Author @alexmx","title":"clean_cocoapods_cache"},{"location":"generated/actions/clean_cocoapods_cache/#2-examples","text":"clean_cocoapods_cache clean_cocoapods_cache(name: \"CACHED_POD\")","title":"2 Examples"},{"location":"generated/actions/clean_cocoapods_cache/#parameters","text":"Key Description Default name Pod name to be removed from cache no_ansi Show output without ANSI codes false verbose Show more debugging information false silent Show nothing false allow_root Allows CocoaPods to run as root false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/clean_cocoapods_cache/#documentation","text":"To show the documentation in your terminal, run fastlane action clean_cocoapods_cache","title":"Documentation"},{"location":"generated/actions/clean_cocoapods_cache/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run clean_cocoapods_cache To pass parameters, make use of the : symbol, for example fastlane run clean_cocoapods_cache parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/clean_cocoapods_cache/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/clear_derived_data/","text":"clear_derived_data Deletes the Xcode Derived Data Deletes the Derived Data from path set on Xcode or a supplied path clear_derived_data Supported platforms ios, mac Author @KrauseFx 2 Examples clear_derived_data clear_derived_data(derived_data_path: \"/custom/\") Parameters Key Description Default derived_data_path Custom path for derivedData * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action clear_derived_data CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run clear_derived_data To pass parameters, make use of the : symbol, for example fastlane run clear_derived_data parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Clear derived data"},{"location":"generated/actions/clear_derived_data/#clear_derived_data","text":"Deletes the Xcode Derived Data Deletes the Derived Data from path set on Xcode or a supplied path clear_derived_data Supported platforms ios, mac Author @KrauseFx","title":"clear_derived_data"},{"location":"generated/actions/clear_derived_data/#2-examples","text":"clear_derived_data clear_derived_data(derived_data_path: \"/custom/\")","title":"2 Examples"},{"location":"generated/actions/clear_derived_data/#parameters","text":"Key Description Default derived_data_path Custom path for derivedData * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/clear_derived_data/#documentation","text":"To show the documentation in your terminal, run fastlane action clear_derived_data","title":"Documentation"},{"location":"generated/actions/clear_derived_data/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run clear_derived_data To pass parameters, make use of the : symbol, for example fastlane run clear_derived_data parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/clear_derived_data/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/clipboard/","text":"clipboard Copies a given string into the clipboard. Works only on macOS clipboard Supported platforms ios, android, mac Author @KrauseFx, @joshdholtz, @rogerluan 2 Examples clipboard(value: \"https://docs.fastlane.tools/\") clipboard(value: lane_context[SharedValues::HOCKEY_DOWNLOAD_LINK] || \"\") Parameters Key Description Default value The string that should be copied into the clipboard * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action clipboard CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run clipboard To pass parameters, make use of the : symbol, for example fastlane run clipboard parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Clipboard"},{"location":"generated/actions/clipboard/#clipboard","text":"Copies a given string into the clipboard. Works only on macOS clipboard Supported platforms ios, android, mac Author @KrauseFx, @joshdholtz, @rogerluan","title":"clipboard"},{"location":"generated/actions/clipboard/#2-examples","text":"clipboard(value: \"https://docs.fastlane.tools/\") clipboard(value: lane_context[SharedValues::HOCKEY_DOWNLOAD_LINK] || \"\")","title":"2 Examples"},{"location":"generated/actions/clipboard/#parameters","text":"Key Description Default value The string that should be copied into the clipboard * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/clipboard/#documentation","text":"To show the documentation in your terminal, run fastlane action clipboard","title":"Documentation"},{"location":"generated/actions/clipboard/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run clipboard To pass parameters, make use of the : symbol, for example fastlane run clipboard parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/clipboard/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/cloc/","text":"cloc Generates a Code Count that can be read by Jenkins (xml format) This action will run cloc to generate a SLOC report that the Jenkins SLOCCount plugin can read. See https://wiki.jenkins-ci.org/display/JENKINS/SLOCCount+Plugin and https://github.com/AlDanial/cloc for more information. cloc Supported platforms ios, mac Author @intere 1 Example cloc( exclude_dir: \"ThirdParty,Resources\", output_directory: \"reports\", source_directory: \"MyCoolApp\" ) Parameters Key Description Default binary_path Where the cloc binary lives on your system (full path including 'cloc') /usr/local/bin/cloc exclude_dir Comma separated list of directories to exclude output_directory Where to put the generated report file build source_directory Where to look for the source code (relative to the project root folder) '' xml Should we generate an XML File (if false, it will generate a plain text file)? true * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action cloc CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run cloc To pass parameters, make use of the : symbol, for example fastlane run cloc parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Cloc"},{"location":"generated/actions/cloc/#cloc","text":"Generates a Code Count that can be read by Jenkins (xml format) This action will run cloc to generate a SLOC report that the Jenkins SLOCCount plugin can read. See https://wiki.jenkins-ci.org/display/JENKINS/SLOCCount+Plugin and https://github.com/AlDanial/cloc for more information. cloc Supported platforms ios, mac Author @intere","title":"cloc"},{"location":"generated/actions/cloc/#1-example","text":"cloc( exclude_dir: \"ThirdParty,Resources\", output_directory: \"reports\", source_directory: \"MyCoolApp\" )","title":"1 Example"},{"location":"generated/actions/cloc/#parameters","text":"Key Description Default binary_path Where the cloc binary lives on your system (full path including 'cloc') /usr/local/bin/cloc exclude_dir Comma separated list of directories to exclude output_directory Where to put the generated report file build source_directory Where to look for the source code (relative to the project root folder) '' xml Should we generate an XML File (if false, it will generate a plain text file)? true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/cloc/#documentation","text":"To show the documentation in your terminal, run fastlane action cloc","title":"Documentation"},{"location":"generated/actions/cloc/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run cloc To pass parameters, make use of the : symbol, for example fastlane run cloc parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/cloc/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/clubmate/","text":"clubmate Print a Club Mate in your build output clubmate | -----|---- Supported platforms | ios, android, mac Author | @KrauseFx To show the documentation in your terminal, run fastlane action clubmate View source code Back to actions","title":"Clubmate"},{"location":"generated/actions/clubmate/#clubmate","text":"Print a Club Mate in your build output clubmate | -----|---- Supported platforms | ios, android, mac Author | @KrauseFx To show the documentation in your terminal, run fastlane action clubmate View source code Back to actions","title":"clubmate"},{"location":"generated/actions/cocoapods/","text":"cocoapods Runs pod install for the project If you use CocoaPods you can use the cocoapods integration to run pod install before building your app. cocoapods Supported platforms ios, mac Author @KrauseFx, @tadpol, @birmacher, @Liquidsoul 2 Examples cocoapods cocoapods( clean_install: true, podfile: \"./CustomPodfile\" ) Parameters Key Description Default repo_update Add --repo-update flag to pod install command false clean_install Execute a full pod installation ignoring the content of the project cache false silent Execute command without logging output false verbose Show more debugging information false ansi Show output with ANSI codes true use_bundle_exec Use bundle exec when there is a Gemfile presented true podfile Explicitly specify the path to the Cocoapods' Podfile. You can either set it to the Podfile's path or to the folder containing the Podfile file error_callback A callback invoked with the command output if there is a non-zero exit status try_repo_update_on_error Retry with --repo-update if action was finished with error false deployment Disallow any changes to the Podfile or the Podfile.lock during installation false allow_root Allows CocoaPods to run as root false clean DEPRECATED! (Option renamed as clean_install) Remove SCM directories true integrate DEPRECATED! (Option removed from cocoapods) Integrate the Pods libraries into the Xcode project(s) true * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action cocoapods CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run cocoapods To pass parameters, make use of the : symbol, for example fastlane run cocoapods parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Cocoapods"},{"location":"generated/actions/cocoapods/#cocoapods","text":"Runs pod install for the project If you use CocoaPods you can use the cocoapods integration to run pod install before building your app. cocoapods Supported platforms ios, mac Author @KrauseFx, @tadpol, @birmacher, @Liquidsoul","title":"cocoapods"},{"location":"generated/actions/cocoapods/#2-examples","text":"cocoapods cocoapods( clean_install: true, podfile: \"./CustomPodfile\" )","title":"2 Examples"},{"location":"generated/actions/cocoapods/#parameters","text":"Key Description Default repo_update Add --repo-update flag to pod install command false clean_install Execute a full pod installation ignoring the content of the project cache false silent Execute command without logging output false verbose Show more debugging information false ansi Show output with ANSI codes true use_bundle_exec Use bundle exec when there is a Gemfile presented true podfile Explicitly specify the path to the Cocoapods' Podfile. You can either set it to the Podfile's path or to the folder containing the Podfile file error_callback A callback invoked with the command output if there is a non-zero exit status try_repo_update_on_error Retry with --repo-update if action was finished with error false deployment Disallow any changes to the Podfile or the Podfile.lock during installation false allow_root Allows CocoaPods to run as root false clean DEPRECATED! (Option renamed as clean_install) Remove SCM directories true integrate DEPRECATED! (Option removed from cocoapods) Integrate the Pods libraries into the Xcode project(s) true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/cocoapods/#documentation","text":"To show the documentation in your terminal, run fastlane action cocoapods","title":"Documentation"},{"location":"generated/actions/cocoapods/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run cocoapods To pass parameters, make use of the : symbol, for example fastlane run cocoapods parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/cocoapods/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/commit_github_file/","text":"commit_github_file This will commit a file directly on GitHub via the API Commits a file directly to GitHub. You must provide your GitHub Personal token (get one from https://github.com/settings/tokens/new ), the repository name and the relative file path from the root git project. Out parameters provide the commit sha created, which can be used for later usage for examples such as releases, the direct download link and the full response JSON. Documentation: https://developer.github.com/v3/repos/contents/#create-a-file . commit_github_file Supported platforms ios, android, mac Author @tommeier Returns A hash containing all relevant information for this commit Access things like 'html_url', 'sha', 'message' 1 Example response = commit_github_file( repository_name: \"fastlane/fastlane\", server_url: \"https://api.github.com\", api_token: ENV[\"GITHUB_TOKEN\"], message: \"Add my new file\", branch: \"master\", path: \"assets/my_new_file.xcarchive\" ) Parameters Key Description Default repository_name The path to your repo, e.g. 'fastlane/fastlane' server_url The server url. e.g. 'https://your.internal.github.host/api/v3' (Default: 'https://api.github.com') https://api.github.com api_token Personal API Token for GitHub - generate one at https://github.com/settings/tokens * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable branch The branch that the file should be committed on (default: master) master path The relative path to your file from project root e.g. assets/my_app.xcarchive message The commit message. Defaults to the file name * secure Optionally disable secure requests (ssl_verify_peer) true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The commit_github_file action generates the following Lane Variables: SharedValue Description SharedValues::COMMIT_GITHUB_FILE_HTML_LINK Link to your committed file SharedValues::COMMIT_GITHUB_FILE_SHA Commit SHA generated SharedValues::COMMIT_GITHUB_FILE_JSON The whole commit JSON object response To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action commit_github_file CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run commit_github_file To pass parameters, make use of the : symbol, for example fastlane run commit_github_file parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Commit github file"},{"location":"generated/actions/commit_github_file/#commit_github_file","text":"This will commit a file directly on GitHub via the API Commits a file directly to GitHub. You must provide your GitHub Personal token (get one from https://github.com/settings/tokens/new ), the repository name and the relative file path from the root git project. Out parameters provide the commit sha created, which can be used for later usage for examples such as releases, the direct download link and the full response JSON. Documentation: https://developer.github.com/v3/repos/contents/#create-a-file . commit_github_file Supported platforms ios, android, mac Author @tommeier Returns A hash containing all relevant information for this commit Access things like 'html_url', 'sha', 'message'","title":"commit_github_file"},{"location":"generated/actions/commit_github_file/#1-example","text":"response = commit_github_file( repository_name: \"fastlane/fastlane\", server_url: \"https://api.github.com\", api_token: ENV[\"GITHUB_TOKEN\"], message: \"Add my new file\", branch: \"master\", path: \"assets/my_new_file.xcarchive\" )","title":"1 Example"},{"location":"generated/actions/commit_github_file/#parameters","text":"Key Description Default repository_name The path to your repo, e.g. 'fastlane/fastlane' server_url The server url. e.g. 'https://your.internal.github.host/api/v3' (Default: 'https://api.github.com') https://api.github.com api_token Personal API Token for GitHub - generate one at https://github.com/settings/tokens * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable branch The branch that the file should be committed on (default: master) master path The relative path to your file from project root e.g. assets/my_app.xcarchive message The commit message. Defaults to the file name * secure Optionally disable secure requests (ssl_verify_peer) true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/commit_github_file/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The commit_github_file action generates the following Lane Variables: SharedValue Description SharedValues::COMMIT_GITHUB_FILE_HTML_LINK Link to your committed file SharedValues::COMMIT_GITHUB_FILE_SHA Commit SHA generated SharedValues::COMMIT_GITHUB_FILE_JSON The whole commit JSON object response To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/commit_github_file/#documentation","text":"To show the documentation in your terminal, run fastlane action commit_github_file","title":"Documentation"},{"location":"generated/actions/commit_github_file/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run commit_github_file To pass parameters, make use of the : symbol, for example fastlane run commit_github_file parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/commit_github_file/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/commit_version_bump/","text":"commit_version_bump Creates a 'Version Bump' commit. Run after increment_build_number This action will create a 'Version Bump' commit in your repo. Useful in conjunction with increment_build_number . It checks the repo to make sure that only the relevant files have changed. These are the files that increment_build_number ( agvtool ) touches: All .plist files The .xcodeproj/project.pbxproj file Then commits those files to the repo. Customize the message with the :message option. It defaults to 'Version Bump'. If you have other uncommitted changes in your repo, this action will fail. If you started off in a clean repo, and used the ipa and or sigh actions, then you can use the clean_build_artifacts action to clean those temporary files up before running this action. commit_version_bump Supported platforms ios, mac Author @lmirosevic 8 Examples commit_version_bump commit_version_bump( message: \"Version Bump\",# create a commit with a custom message xcodeproj: \"./path/to/MyProject.xcodeproj\" # optional, if you have multiple Xcode project files, you must specify your main project here ) commit_version_bump( settings: true # Include Settings.bundle/Root.plist ) commit_version_bump( settings: \"About.plist\" # Include Settings.bundle/About.plist ) commit_version_bump( settings: %w[About.plist Root.plist] # Include more than one plist from Settings.bundle ) commit_version_bump( include: %w[package.json custom.cfg] # include other updated files as part of the version bump ) commit_version_bump( ignore: /OtherProject/ # ignore files matching a regular expression ) commit_version_bump( no_verify: true # optional, default: false ) Parameters Key Description Default message The commit message when committing the version bump xcodeproj The path to your project file (Not the workspace). If you have only one, this is optional force Forces the commit, even if other files than the ones containing the version number have been modified false settings Include Settings.bundle/Root.plist with version bump false ignore A regular expression used to filter matched plist files to be modified include A list of extra files to be included in the version bump (string array or comma-separated string) [] no_verify Whether or not to use --no-verify false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The commit_version_bump action generates the following Lane Variables: SharedValue Description SharedValues::MODIFIED_FILES The list of paths of modified files To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action commit_version_bump CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run commit_version_bump To pass parameters, make use of the : symbol, for example fastlane run commit_version_bump parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Commit version bump"},{"location":"generated/actions/commit_version_bump/#commit_version_bump","text":"Creates a 'Version Bump' commit. Run after increment_build_number This action will create a 'Version Bump' commit in your repo. Useful in conjunction with increment_build_number . It checks the repo to make sure that only the relevant files have changed. These are the files that increment_build_number ( agvtool ) touches: All .plist files The .xcodeproj/project.pbxproj file Then commits those files to the repo. Customize the message with the :message option. It defaults to 'Version Bump'. If you have other uncommitted changes in your repo, this action will fail. If you started off in a clean repo, and used the ipa and or sigh actions, then you can use the clean_build_artifacts action to clean those temporary files up before running this action. commit_version_bump Supported platforms ios, mac Author @lmirosevic","title":"commit_version_bump"},{"location":"generated/actions/commit_version_bump/#8-examples","text":"commit_version_bump commit_version_bump( message: \"Version Bump\",# create a commit with a custom message xcodeproj: \"./path/to/MyProject.xcodeproj\" # optional, if you have multiple Xcode project files, you must specify your main project here ) commit_version_bump( settings: true # Include Settings.bundle/Root.plist ) commit_version_bump( settings: \"About.plist\" # Include Settings.bundle/About.plist ) commit_version_bump( settings: %w[About.plist Root.plist] # Include more than one plist from Settings.bundle ) commit_version_bump( include: %w[package.json custom.cfg] # include other updated files as part of the version bump ) commit_version_bump( ignore: /OtherProject/ # ignore files matching a regular expression ) commit_version_bump( no_verify: true # optional, default: false )","title":"8 Examples"},{"location":"generated/actions/commit_version_bump/#parameters","text":"Key Description Default message The commit message when committing the version bump xcodeproj The path to your project file (Not the workspace). If you have only one, this is optional force Forces the commit, even if other files than the ones containing the version number have been modified false settings Include Settings.bundle/Root.plist with version bump false ignore A regular expression used to filter matched plist files to be modified include A list of extra files to be included in the version bump (string array or comma-separated string) [] no_verify Whether or not to use --no-verify false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/commit_version_bump/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The commit_version_bump action generates the following Lane Variables: SharedValue Description SharedValues::MODIFIED_FILES The list of paths of modified files To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/commit_version_bump/#documentation","text":"To show the documentation in your terminal, run fastlane action commit_version_bump","title":"Documentation"},{"location":"generated/actions/commit_version_bump/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run commit_version_bump To pass parameters, make use of the : symbol, for example fastlane run commit_version_bump parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/commit_version_bump/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/copy_artifacts/","text":"copy_artifacts Copy and save your build artifacts (useful when you use reset_git_repo) This action copies artifacts to a target directory. It's useful if you have a CI that will pick up these artifacts and attach them to the build. Useful e.g. for storing your .ipa s, .dSYM.zip s, .mobileprovision s, .cert s. Make sure your :target_path is ignored from git, and if you use reset_git_repo , make sure the artifacts are added to the exclude list. copy_artifacts Supported platforms ios, android, mac Author @lmirosevic 2 Examples copy_artifacts( target_path: \"artifacts\", artifacts: [\"*.cer\", \"*.mobileprovision\", \"*.ipa\", \"*.dSYM.zip\", \"path/to/file.txt\", \"another/path/*.extension\"] ) # Reset the git repo to a clean state, but leave our artifacts in place reset_git_repo( exclude: \"artifacts\" ) # Copy the .ipa created by _gym_ if it was successfully created artifacts = [] artifacts << lane_context[SharedValues::IPA_OUTPUT_PATH] if lane_context[SharedValues::IPA_OUTPUT_PATH] copy_artifacts( artifacts: artifacts ) Parameters Key Description Default keep_original Set this to false if you want move, rather than copy, the found artifacts true target_path The directory in which you want your artifacts placed artifacts artifacts An array of file patterns of the files/folders you want to preserve [] fail_on_missing Fail when a source file isn't found false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action copy_artifacts CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run copy_artifacts To pass parameters, make use of the : symbol, for example fastlane run copy_artifacts parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Copy artifacts"},{"location":"generated/actions/copy_artifacts/#copy_artifacts","text":"Copy and save your build artifacts (useful when you use reset_git_repo) This action copies artifacts to a target directory. It's useful if you have a CI that will pick up these artifacts and attach them to the build. Useful e.g. for storing your .ipa s, .dSYM.zip s, .mobileprovision s, .cert s. Make sure your :target_path is ignored from git, and if you use reset_git_repo , make sure the artifacts are added to the exclude list. copy_artifacts Supported platforms ios, android, mac Author @lmirosevic","title":"copy_artifacts"},{"location":"generated/actions/copy_artifacts/#2-examples","text":"copy_artifacts( target_path: \"artifacts\", artifacts: [\"*.cer\", \"*.mobileprovision\", \"*.ipa\", \"*.dSYM.zip\", \"path/to/file.txt\", \"another/path/*.extension\"] ) # Reset the git repo to a clean state, but leave our artifacts in place reset_git_repo( exclude: \"artifacts\" ) # Copy the .ipa created by _gym_ if it was successfully created artifacts = [] artifacts << lane_context[SharedValues::IPA_OUTPUT_PATH] if lane_context[SharedValues::IPA_OUTPUT_PATH] copy_artifacts( artifacts: artifacts )","title":"2 Examples"},{"location":"generated/actions/copy_artifacts/#parameters","text":"Key Description Default keep_original Set this to false if you want move, rather than copy, the found artifacts true target_path The directory in which you want your artifacts placed artifacts artifacts An array of file patterns of the files/folders you want to preserve [] fail_on_missing Fail when a source file isn't found false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/copy_artifacts/#documentation","text":"To show the documentation in your terminal, run fastlane action copy_artifacts","title":"Documentation"},{"location":"generated/actions/copy_artifacts/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run copy_artifacts To pass parameters, make use of the : symbol, for example fastlane run copy_artifacts parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/copy_artifacts/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/create_app_on_managed_play_store/","text":"create_app_on_managed_play_store Create Managed Google Play Apps Create new apps on Managed Google Play. create_app_on_managed_play_store Supported platforms android Author @janpio 1 Example create_app_on_managed_play_store( json_key: 'path/to/you/json/key/file', developer_account_id: 'developer_account_id', # obtained using the `get_managed_play_store_publishing_rights` action (or looking at the Play Console url) app_title: 'Your app title', language: 'en_US', # primary app language in BCP 47 format apk: '/files/app-release.apk' ) Parameters Key Description Default json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * developer_account_id The ID of your Google Play Console account. Can be obtained from the URL when you log in ( https://play.google.com/apps/publish/?account=... or when you 'Obtain private app publishing rights' (https://developers.google.com/android/work/play/custom-app-api/get-started#retrieve_the_developer_account_id) * apk Path to the APK file to upload * app_title App Title language Default app language (e.g. 'en_US') en_US root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action create_app_on_managed_play_store CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_app_on_managed_play_store To pass parameters, make use of the : symbol, for example fastlane run create_app_on_managed_play_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Create app on managed play store"},{"location":"generated/actions/create_app_on_managed_play_store/#create_app_on_managed_play_store","text":"Create Managed Google Play Apps Create new apps on Managed Google Play. create_app_on_managed_play_store Supported platforms android Author @janpio","title":"create_app_on_managed_play_store"},{"location":"generated/actions/create_app_on_managed_play_store/#1-example","text":"create_app_on_managed_play_store( json_key: 'path/to/you/json/key/file', developer_account_id: 'developer_account_id', # obtained using the `get_managed_play_store_publishing_rights` action (or looking at the Play Console url) app_title: 'Your app title', language: 'en_US', # primary app language in BCP 47 format apk: '/files/app-release.apk' )","title":"1 Example"},{"location":"generated/actions/create_app_on_managed_play_store/#parameters","text":"Key Description Default json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * developer_account_id The ID of your Google Play Console account. Can be obtained from the URL when you log in ( https://play.google.com/apps/publish/?account=... or when you 'Obtain private app publishing rights' (https://developers.google.com/android/work/play/custom-app-api/get-started#retrieve_the_developer_account_id) * apk Path to the APK file to upload * app_title App Title language Default app language (e.g. 'en_US') en_US root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/create_app_on_managed_play_store/#documentation","text":"To show the documentation in your terminal, run fastlane action create_app_on_managed_play_store","title":"Documentation"},{"location":"generated/actions/create_app_on_managed_play_store/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_app_on_managed_play_store To pass parameters, make use of the : symbol, for example fastlane run create_app_on_managed_play_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/create_app_on_managed_play_store/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/create_app_online/","text":"create_app_online Creates the given application on iTC and the Dev Portal (via produce ) Create new iOS apps on App Store Connect and Apple Developer Portal using your command line produce creates new iOS apps on both the Apple Developer Portal and App Store Connect with the minimum required information. Features \u2022 Usage \u2022 How does it work? Features Create new apps on both App Store Connect and the Apple Developer Portal Modify Application Services on the Apple Developer Portal Create App Groups on the Apple Developer Portal Associate apps with App Groups on the Apple Developer Portal Create iCloud Containers on the Apple Developer Portal Associate apps with iCloud Containers on the Apple Developer Portal Create Merchant Identifiers on the Apple Developer Portal Associate apps with Merchant Identifiers on the Apple Developer Portal Support for multiple Apple accounts , storing your credentials securely in the Keychain Usage Creating a new application fastlane produce To get a list of all available parameters: fastlane produce --help Commands: (* default) associate_group Associate with a group, which is created if needed or simply located otherwise associate_merchant Associate with a merchant for use with Apple Pay. Apple Pay will be enabled for this app create * Creates a new app on App Store Connect and the Apple Developer Portal disable_services Disable specific Application Services for a specific app on the Apple Developer Portal enable_services Enable specific Application Services for a specific app on the Apple Developer Portal group Ensure that a specific App Group exists cloud_container Ensure that a specific iCloud Container exists help Display global or [command] help documentation merchant Ensure that a specific Merchant exists Global Options: --verbose -h, --help Display help documentation -v, --version Display version information Options for create: -u, --username STRING Your Apple ID Username (PRODUCE_USERNAME) -a, --app_identifier STRING App Identifier (Bundle ID, e.g. com.krausefx.app) (PRODUCE_APP_IDENTIFIER) -e, --bundle_identifier_suffix STRING App Identifier Suffix (Ignored if App Identifier does not ends with .*) (PRODUCE_APP_IDENTIFIER_SUFFIX) -q, --app_name STRING App Name (PRODUCE_APP_NAME) -z, --app_version STRING Initial version number (e.g. '1.0') (PRODUCE_VERSION) -y, --sku STRING SKU Number (e.g. '1234') (PRODUCE_SKU) -j, --platform STRING The platform to use (optional) (PRODUCE_PLATFORM) -m, --language STRING Primary Language (e.g. 'English', 'German') (PRODUCE_LANGUAGE) -c, --company_name STRING The name of your company. It's used to set company name on App Store Connect team's app pages. Only required if it's the first app you create (PRODUCE_COMPANY_NAME) -i, --skip_itc [VALUE] Skip the creation of the app on App Store Connect (PRODUCE_SKIP_ITC) -d, --skip_devcenter [VALUE] Skip the creation of the app on the Apple Developer Portal (PRODUCE_SKIP_DEVCENTER) -s, --itc_users ARRAY Array of App Store Connect users. If provided, you can limit access to this newly created app for users with the App Manager, Developer, Marketer or Sales roles (ITC_USERS) -b, --team_id STRING The ID of your Developer Portal team if you're in multiple teams (PRODUCE_TEAM_ID) -l, --team_name STRING The name of your Developer Portal team if you're in multiple teams (PRODUCE_TEAM_NAME) -k, --itc_team_id [VALUE] The ID of your App Store Connect team if you're in multiple teams (PRODUCE_ITC_TEAM_ID) -p, --itc_team_name STRING The name of your App Store Connect team if you're in multiple teams (PRODUCE_ITC_TEAM_NAME) Enabling / Disabling Application Services If you want to enable Application Services for an App ID (HomeKit and HealthKit in this example): fastlane produce enable_services --homekit --healthkit If you want to disable Application Services for an App ID (iCloud in this case): fastlane produce disable_services --icloud If you want to create a new App Group: fastlane produce group -g group.krausefx -n \"Example App Group\" If you want to associate an app with an App Group: fastlane produce associate_group -a com.krausefx.app group.krausefx If you want to create a new iCloud Container: fastlane produce cloud_container -g iCloud.com.krausefx.app -n \"Example iCloud Container\" If you want to associate an app with an iCloud Container: fastlane produce associate_cloud_container -a com.krausefx.app iCloud.com.krausefx.app If you want to associate an app with multiple iCloud Containers: fastlane produce associate_cloud_container -a com.krausefx.app iCloud.com.krausefx.app1 iCloud.com.krausefx.app2 Parameters Get a list of all available options using fastlane produce enable_services --help --access-wifi Enable Access Wifi --app-attest Enable App Attest --app-group Enable App Group --apple-pay Enable Apple Pay --associated-domains Enable Associated Domains --auto-fill-credential Enable Auto Fill Credential --class-kit Enable Class Kit --icloud STRING Enable iCloud, suitable values are \"xcode5_compatible\" and \"xcode6_compatible\" --custom-network-protocol Enable Custom Network Protocol --data-protection STRING Enable Data Protection, suitable values are \"complete\", \"unlessopen\" and \"untilfirstauth\" --extended-virtual-address-space Enable Extended Virtual Address Space --game-center STRING Enable Game Center, suitable values are \"ios\" and \"macos --health-kit Enable Health Kit --hls-interstitial-preview Enable Hls Interstitial Preview --home-kit Enable Home Kit --hotspot Enable Hotspot --in-app-purchase Enable In App Purchase --inter-app-audio Enable Inter App Audio --low-latency-hls Enable Low Latency Hls --managed-associated-domains Enable Managed Associated Domains --maps Enable Maps --multipath Enable Multipath --network-extension Enable Network Extension --nfc-tag-reading Enable NFC Tag Reading --personal-vpn Enable Personal VPN --passbook Enable Passbook (deprecated) --push-notification Enable Push Notification --sign-in-with-apple Enable Sign In With Apple --siri-kit Enable Siri Kit --system-extension Enable System Extension --user-management Enable User Management --vpn-configuration Enable Vpn Configuration (deprecated) --wallet Enable Wallet --wireless-accessory Enable Wireless Accessory --car-play-audio-app Enable Car Play Audio App --car-play-messaging-app Enable Car Play Messaging App --car-play-navigation-app Enable Car Play Navigation App --car-play-voip-calling-app Enable Car Play Voip Calling App --critical-alerts Enable Critical Alerts --hotspot-helper Enable Hotspot Helper --driver-kit Enable DriverKit --driver-kit-endpoint-security Enable DriverKit Endpoint Security --driver-kit-family-hid-device Enable DriverKit Family HID Device --driver-kit-family-networking Enable DriverKit Family Networking --driver-kit-family-serial Enable DriverKit Family Serial --driver-kit-hid-event-service Enable DriverKit HID EventService --driver-kit-transport-hid Enable DriverKit Transport HID --multitasking-camera-access Enable Multitasking Camera Access --sf-universal-link-api Enable SFUniversalLink API --vp9-decoder Enable VP9 Decoder --music-kit Enable MusicKit --shazam-kit Enable ShazamKit --communication-notifications Enable Communication Notifications --group-activities Enable Group Activities --health-kit-estimate-recalibration Enable HealthKit Estimate Recalibration --time-sensitive-notifications Enable Time Sensitive Notifications fastlane produce disable_services --help --access-wifi Disable Access Wifi --app-attest Disable App Attest --app-group Disable App Group --apple-pay Disable Apple Pay --associated-domains Disable Associated Domains --auto-fill-credential Disable Auto Fill Credential --class-kit Disable Class Kit --icloud STRING Disable iCloud --custom-network-protocol Disable Custom Network Protocol --data-protection STRING Disable Data Protection --extended-virtual-address-space Disable Extended Virtual Address Space --game-center STRING Disable Game Center --health-kit Disable Health Kit --hls-interstitial-preview Disable Hls Interstitial Preview --home-kit Disable Home Kit --hotspot Disable Hotspot --in-app-purchase Disable In App Purchase --inter-app-audio Disable Inter App Audio --low-latency-hls Disable Low Latency Hls --managed-associated-domains Disable Managed Associated Domains --maps Disable Maps --multipath Disable Multipath --network-extension Disable Network Extension --nfc-tag-reading Disable NFC Tag Reading --personal-vpn Disable Personal VPN --passbook Disable Passbook (deprecated) --push-notification Disable Push Notification --sign-in-with-apple Disable Sign In With Apple --siri-kit Disable Siri Kit --system-extension Disable System Extension --user-management Disable User Management --vpn-configuration Disable Vpn Configuration (deprecated) --wallet Disable Wallet --wireless-accessory Disable Wireless Accessory --car-play-audio-app Disable Car Play Audio App --car-play-messaging-app Disable Car Play Messaging App --car-play-navigation-app Disable Car Play Navigation App --car-play-voip-calling-app Disable Car Play Voip Calling App --critical-alerts Disable Critical Alerts --hotspot-helper Disable Hotspot Helper --driver-kit Disable DriverKit --driver-kit-endpoint-security Disable DriverKit Endpoint Security --driver-kit-family-hid-device Disable DriverKit Family HID Device --driver-kit-family-networking Disable DriverKit Family Networking --driver-kit-family-serial Disable DriverKit Family Serial --driver-kit-hid-event-service Disable DriverKit HID EventService --driver-kit-transport-hid Disable DriverKit Transport HID --multitasking-camera-access Disable Multitasking Camera Access --sf-universal-link-api Disable SFUniversalLink API --vp9-decoder Disable VP9 Decoder --music-kit Disable MusicKit --shazam-kit Disable ShazamKit --communication-notifications Disable Communication Notifications --group-activities Disable Group Activities --health-kit-estimate-recalibration Disable HealthKit Estimate Recalibration --time-sensitive-notifications Disable Time Sensitive Notifications Creating Apple Pay merchants and associating them with an App ID If you want to create a new Apple Pay Merchant Identifier: fastlane produce merchant -o merchant.com.example.production -r \"Example Merchant Production\" Use --help for more information about all available parameters fastlane produce merchant --help If you want to associate an app with a Merchant Identifier: fastlane produce associate_merchant -a com.krausefx.app merchant.com.example.production If you want to associate an app with multiple Merchant Identifiers: fastlane produce associate_merchant -a com.krausefx.app merchant.com.example.production merchant.com.example.sandbox Use --help for more information about all available parameters fastlane produce associate_merchant --help Environment Variables All available values can also be passed using environment variables, run fastlane produce --help to get a list of all available parameters. fastlane Integration Your Fastfile should look like this lane :release do produce( username: 'felix@krausefx.com', app_identifier: 'com.krausefx.app', app_name: 'MyApp', language: 'English', app_version: '1.0', sku: '123', team_name: 'SunApps GmbH', # only necessary when in multiple teams # Optional # App services can be enabled during app creation enable_services: { access_wifi: \"on\", # Valid values: \"on\", \"off\" app_attest: \"on\", # Valid values: \"on\", \"off\" app_group: \"on\", # Valid values: \"on\", \"off\" apple_pay: \"on\", # Valid values: \"on\", \"off\" associated_domains: \"on\", # Valid values: \"on\", \"off\" auto_fill_credential: \"on\", # Valid values: \"on\", \"off\" car_play_audio_app: \"on\", # Valid values: \"on\", \"off\" car_play_messaging_app: \"on\", # Valid values: \"on\", \"off\" car_play_navigation_app: \"on\", # Valid values: \"on\", \"off\" car_play_voip_calling_app: \"on\", # Valid values: \"on\", \"off\" class_kit: \"on\", # Valid values: \"on\", \"off\" icloud: \"xcode5_compatible\", # Valid values: \"xcode5_compatible\", \"xcode6_compatible\", \"off\" critical_alerts: \"on\", # Valid values: \"on\", \"off\" custom_network_protocol: \"on\", # Valid values: \"on\", \"off\" data_protection: \"complete\", # Valid values: \"complete\", \"unlessopen\", \"untilfirstauth\", \"off\" extended_virtual_address_space: \"on\", # Valid values: \"on\", \"off\" file_provider_testing_mode: \"on\", # Valid values: \"on\", \"off\" fonts: \"on\", # Valid values: \"on\", \"off\" game_center: \"ios\", # Valid values: \"ios\", \"macos\", off\" health_kit: \"on\", # Valid values: \"on\", \"off\" hls_interstitial_preview: \"on\", # Valid values: \"on\", \"off\" home_kit: \"on\", # Valid values: \"on\", \"off\" hotspot: \"on\", # Valid values: \"on\", \"off\" hotspot_helper: \"on\", # Valid values: \"on\", \"off\" in_app_purchase: \"on\", # Valid values: \"on\", \"off\" inter_app_audio: \"on\", # Valid values: \"on\", \"off\" low_latency_hls: \"on\", # Valid values: \"on\", \"off\" managed_associated_domains: \"on\", # Valid values: \"on\", \"off\" maps: \"on\", # Valid values: \"on\", \"off\" multipath: \"on\", # Valid values: \"on\", \"off\" network_extension: \"on\", # Valid values: \"on\", \"off\" nfc_tag_reading: \"on\", # Valid values: \"on\", \"off\" passbook: \"on\", # Valid values: \"on\", \"off\" (deprecated) personal_vpn: \"on\", # Valid values: \"on\", \"off\" push_notification: \"on\", # Valid values: \"on\", \"off\" sign_in_with_apple: \"on\", # Valid values: \"on\", \"off\" siri_kit: \"on\", # Valid values: \"on\", \"off\" system_extension: \"on\", # Valid values: \"on\", \"off\" user_management: \"on\", # Valid values: \"on\", \"off\" vpn_configuration: \"on\", # Valid values: \"on\", \"off\" (deprecated) wallet: \"on\", # Valid values: \"on\", \"off\" wireless_accessory: \"on\", # Valid values: \"on\", \"off\" driver_kit: \"on\", # Valid values: \"on\", \"off\" driver_kit_endpoint_security: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_hid_device: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_networking: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_serial: \"on\", # Valid values: \"on\", \"off\" driver_kit_hid_event_service: \"on\", # Valid values: \"on\", \"off\" driver_kit_transport_hid: \"on\", # Valid values: \"on\", \"off\" multitasking_camera_access: \"on\", # Valid values: \"on\", \"off\" sf_universal_link_api: \"on\", # Valid values: \"on\", \"off\" vp9_decoder: \"on\", # Valid values: \"on\", \"off\" music_kit: \"on\", # Valid values: \"on\", \"off\" shazam_kit: \"on\", # Valid values: \"on\", \"off\" communication_notifications: \"on\", # Valid values: \"on\", \"off\" group_activities: \"on\", # Valid values: \"on\", \"off\" health_kit_estimate_recalibration: \"on\", # Valid values: \"on\", \"off\" time_sensitive_notifications: \"on\", # Valid values: \"on\", \"off\" } ) deliver end To use the newly generated app in deliver , you need to add this line to your Deliverfile : apple_id(ENV['PRODUCE_APPLE_ID']) This will tell deliver , which App ID to use, since the app is not yet available in the App Store. You'll still have to fill out the remaining information (like screenshots, app description and pricing). You can use deliver to upload your app metadata using a CLI How is my password stored? produce uses the password manager from fastlane . Take a look the CredentialsManager README for more information. create_app_online Supported platforms ios Author @KrauseFx 2 Examples create_app_online( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", app_name: \"MyApp\", language: \"English\", app_version: \"1.0\", sku: \"123\", team_name: \"SunApps GmbH\" # Only necessary when in multiple teams. ) produce # alias for \"create_app_online\" Parameters Key Description Default username Your Apple ID Username * app_identifier App Identifier (Bundle ID, e.g. com.krausefx.app) * bundle_identifier_suffix App Identifier Suffix (Ignored if App Identifier does not end with .*) app_name App Name app_version Initial version number (e.g. '1.0') sku SKU Number (e.g. '1234') * platform The platform to use (optional) ios platforms The platforms to use (optional) language Primary Language (e.g. 'en-US', 'fr-FR') English company_name The name of your company. It's used to set company name on App Store Connect team's app pages. Only required if it's the first app you create skip_itc Skip the creation of the app on App Store Connect false itc_users Array of App Store Connect users. If provided, you can limit access to this newly created app for users with the App Manager, Developer, Marketer or Sales roles enabled_features DEPRECATED! Please use enable_services instead - Array with Spaceship App Services {} enable_services Array with Spaceship App Services (e.g. access_wifi: (on|off), app_attest: (on|off), app_group: (on|off), apple_pay: (on|off), associated_domains: (on|off), auto_fill_credential: (on|off), class_kit: (on|off), icloud: (legacy|cloudkit), custom_network_protocol: (on|off), data_protection: (complete|unlessopen|untilfirstauth), extended_virtual_address_space: (on|off), family_controls: (on|off), file_provider_testing_mode: (on|off), fonts: (on|off), game_center: (ios|mac), health_kit: (on|off), hls_interstitial_preview: (on|off), home_kit: (on|off), hotspot: (on|off), in_app_purchase: (on|off), inter_app_audio: (on|off), low_latency_hls: (on|off), managed_associated_domains: (on|off), maps: (on|off), multipath: (on|off), network_extension: (on|off), nfc_tag_reading: (on|off), personal_vpn: (on|off), passbook: (on|off), push_notification: (on|off), sign_in_with_apple: (on), siri_kit: (on|off), system_extension: (on|off), user_management: (on|off), vpn_configuration: (on|off), wallet: (on|off), wireless_accessory: (on|off), car_play_audio_app: (on|off), car_play_messaging_app: (on|off), car_play_navigation_app: (on|off), car_play_voip_calling_app: (on|off), critical_alerts: (on|off), hotspot_helper: (on|off), driver_kit: (on|off), driver_kit_endpoint_security: (on|off), driver_kit_family_hid_device: (on|off), driver_kit_family_networking: (on|off), driver_kit_family_serial: (on|off), driver_kit_hid_event_service: (on|off), driver_kit_transport_hid: (on|off), multitasking_camera_access: (on|off), sf_universal_link_api: (on|off), vp9_decoder: (on|off), music_kit: (on|off), shazam_kit: (on|off), communication_notifications: (on|off), group_activities: (on|off), health_kit_estimate_recalibration: (on|off), time_sensitive_notifications: (on|off)) {} skip_devcenter Skip the creation of the app on the Apple Developer Portal false team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * itc_team_id The ID of your App Store Connect team if you're in multiple teams * itc_team_name The name of your App Store Connect team if you're in multiple teams * * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The create_app_online action generates the following Lane Variables: SharedValue Description SharedValues::PRODUCE_APPLE_ID The Apple ID of the newly created app. You probably need it for deliver To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action create_app_online CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_app_online To pass parameters, make use of the : symbol, for example fastlane run create_app_online parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Create app online"},{"location":"generated/actions/create_app_online/#create_app_online","text":"Creates the given application on iTC and the Dev Portal (via produce )","title":"create_app_online"},{"location":"generated/actions/create_app_online/#features","text":"Create new apps on both App Store Connect and the Apple Developer Portal Modify Application Services on the Apple Developer Portal Create App Groups on the Apple Developer Portal Associate apps with App Groups on the Apple Developer Portal Create iCloud Containers on the Apple Developer Portal Associate apps with iCloud Containers on the Apple Developer Portal Create Merchant Identifiers on the Apple Developer Portal Associate apps with Merchant Identifiers on the Apple Developer Portal Support for multiple Apple accounts , storing your credentials securely in the Keychain","title":"Features"},{"location":"generated/actions/create_app_online/#usage","text":"","title":"Usage"},{"location":"generated/actions/create_app_online/#creating-a-new-application","text":"fastlane produce To get a list of all available parameters: fastlane produce --help Commands: (* default) associate_group Associate with a group, which is created if needed or simply located otherwise associate_merchant Associate with a merchant for use with Apple Pay. Apple Pay will be enabled for this app create * Creates a new app on App Store Connect and the Apple Developer Portal disable_services Disable specific Application Services for a specific app on the Apple Developer Portal enable_services Enable specific Application Services for a specific app on the Apple Developer Portal group Ensure that a specific App Group exists cloud_container Ensure that a specific iCloud Container exists help Display global or [command] help documentation merchant Ensure that a specific Merchant exists Global Options: --verbose -h, --help Display help documentation -v, --version Display version information Options for create: -u, --username STRING Your Apple ID Username (PRODUCE_USERNAME) -a, --app_identifier STRING App Identifier (Bundle ID, e.g. com.krausefx.app) (PRODUCE_APP_IDENTIFIER) -e, --bundle_identifier_suffix STRING App Identifier Suffix (Ignored if App Identifier does not ends with .*) (PRODUCE_APP_IDENTIFIER_SUFFIX) -q, --app_name STRING App Name (PRODUCE_APP_NAME) -z, --app_version STRING Initial version number (e.g. '1.0') (PRODUCE_VERSION) -y, --sku STRING SKU Number (e.g. '1234') (PRODUCE_SKU) -j, --platform STRING The platform to use (optional) (PRODUCE_PLATFORM) -m, --language STRING Primary Language (e.g. 'English', 'German') (PRODUCE_LANGUAGE) -c, --company_name STRING The name of your company. It's used to set company name on App Store Connect team's app pages. Only required if it's the first app you create (PRODUCE_COMPANY_NAME) -i, --skip_itc [VALUE] Skip the creation of the app on App Store Connect (PRODUCE_SKIP_ITC) -d, --skip_devcenter [VALUE] Skip the creation of the app on the Apple Developer Portal (PRODUCE_SKIP_DEVCENTER) -s, --itc_users ARRAY Array of App Store Connect users. If provided, you can limit access to this newly created app for users with the App Manager, Developer, Marketer or Sales roles (ITC_USERS) -b, --team_id STRING The ID of your Developer Portal team if you're in multiple teams (PRODUCE_TEAM_ID) -l, --team_name STRING The name of your Developer Portal team if you're in multiple teams (PRODUCE_TEAM_NAME) -k, --itc_team_id [VALUE] The ID of your App Store Connect team if you're in multiple teams (PRODUCE_ITC_TEAM_ID) -p, --itc_team_name STRING The name of your App Store Connect team if you're in multiple teams (PRODUCE_ITC_TEAM_NAME)","title":"Creating a new application"},{"location":"generated/actions/create_app_online/#enabling-disabling-application-services","text":"If you want to enable Application Services for an App ID (HomeKit and HealthKit in this example): fastlane produce enable_services --homekit --healthkit If you want to disable Application Services for an App ID (iCloud in this case): fastlane produce disable_services --icloud If you want to create a new App Group: fastlane produce group -g group.krausefx -n \"Example App Group\" If you want to associate an app with an App Group: fastlane produce associate_group -a com.krausefx.app group.krausefx If you want to create a new iCloud Container: fastlane produce cloud_container -g iCloud.com.krausefx.app -n \"Example iCloud Container\" If you want to associate an app with an iCloud Container: fastlane produce associate_cloud_container -a com.krausefx.app iCloud.com.krausefx.app If you want to associate an app with multiple iCloud Containers: fastlane produce associate_cloud_container -a com.krausefx.app iCloud.com.krausefx.app1 iCloud.com.krausefx.app2","title":"Enabling / Disabling Application Services"},{"location":"generated/actions/create_app_online/#parameters","text":"Get a list of all available options using fastlane produce enable_services --help --access-wifi Enable Access Wifi --app-attest Enable App Attest --app-group Enable App Group --apple-pay Enable Apple Pay --associated-domains Enable Associated Domains --auto-fill-credential Enable Auto Fill Credential --class-kit Enable Class Kit --icloud STRING Enable iCloud, suitable values are \"xcode5_compatible\" and \"xcode6_compatible\" --custom-network-protocol Enable Custom Network Protocol --data-protection STRING Enable Data Protection, suitable values are \"complete\", \"unlessopen\" and \"untilfirstauth\" --extended-virtual-address-space Enable Extended Virtual Address Space --game-center STRING Enable Game Center, suitable values are \"ios\" and \"macos --health-kit Enable Health Kit --hls-interstitial-preview Enable Hls Interstitial Preview --home-kit Enable Home Kit --hotspot Enable Hotspot --in-app-purchase Enable In App Purchase --inter-app-audio Enable Inter App Audio --low-latency-hls Enable Low Latency Hls --managed-associated-domains Enable Managed Associated Domains --maps Enable Maps --multipath Enable Multipath --network-extension Enable Network Extension --nfc-tag-reading Enable NFC Tag Reading --personal-vpn Enable Personal VPN --passbook Enable Passbook (deprecated) --push-notification Enable Push Notification --sign-in-with-apple Enable Sign In With Apple --siri-kit Enable Siri Kit --system-extension Enable System Extension --user-management Enable User Management --vpn-configuration Enable Vpn Configuration (deprecated) --wallet Enable Wallet --wireless-accessory Enable Wireless Accessory --car-play-audio-app Enable Car Play Audio App --car-play-messaging-app Enable Car Play Messaging App --car-play-navigation-app Enable Car Play Navigation App --car-play-voip-calling-app Enable Car Play Voip Calling App --critical-alerts Enable Critical Alerts --hotspot-helper Enable Hotspot Helper --driver-kit Enable DriverKit --driver-kit-endpoint-security Enable DriverKit Endpoint Security --driver-kit-family-hid-device Enable DriverKit Family HID Device --driver-kit-family-networking Enable DriverKit Family Networking --driver-kit-family-serial Enable DriverKit Family Serial --driver-kit-hid-event-service Enable DriverKit HID EventService --driver-kit-transport-hid Enable DriverKit Transport HID --multitasking-camera-access Enable Multitasking Camera Access --sf-universal-link-api Enable SFUniversalLink API --vp9-decoder Enable VP9 Decoder --music-kit Enable MusicKit --shazam-kit Enable ShazamKit --communication-notifications Enable Communication Notifications --group-activities Enable Group Activities --health-kit-estimate-recalibration Enable HealthKit Estimate Recalibration --time-sensitive-notifications Enable Time Sensitive Notifications fastlane produce disable_services --help --access-wifi Disable Access Wifi --app-attest Disable App Attest --app-group Disable App Group --apple-pay Disable Apple Pay --associated-domains Disable Associated Domains --auto-fill-credential Disable Auto Fill Credential --class-kit Disable Class Kit --icloud STRING Disable iCloud --custom-network-protocol Disable Custom Network Protocol --data-protection STRING Disable Data Protection --extended-virtual-address-space Disable Extended Virtual Address Space --game-center STRING Disable Game Center --health-kit Disable Health Kit --hls-interstitial-preview Disable Hls Interstitial Preview --home-kit Disable Home Kit --hotspot Disable Hotspot --in-app-purchase Disable In App Purchase --inter-app-audio Disable Inter App Audio --low-latency-hls Disable Low Latency Hls --managed-associated-domains Disable Managed Associated Domains --maps Disable Maps --multipath Disable Multipath --network-extension Disable Network Extension --nfc-tag-reading Disable NFC Tag Reading --personal-vpn Disable Personal VPN --passbook Disable Passbook (deprecated) --push-notification Disable Push Notification --sign-in-with-apple Disable Sign In With Apple --siri-kit Disable Siri Kit --system-extension Disable System Extension --user-management Disable User Management --vpn-configuration Disable Vpn Configuration (deprecated) --wallet Disable Wallet --wireless-accessory Disable Wireless Accessory --car-play-audio-app Disable Car Play Audio App --car-play-messaging-app Disable Car Play Messaging App --car-play-navigation-app Disable Car Play Navigation App --car-play-voip-calling-app Disable Car Play Voip Calling App --critical-alerts Disable Critical Alerts --hotspot-helper Disable Hotspot Helper --driver-kit Disable DriverKit --driver-kit-endpoint-security Disable DriverKit Endpoint Security --driver-kit-family-hid-device Disable DriverKit Family HID Device --driver-kit-family-networking Disable DriverKit Family Networking --driver-kit-family-serial Disable DriverKit Family Serial --driver-kit-hid-event-service Disable DriverKit HID EventService --driver-kit-transport-hid Disable DriverKit Transport HID --multitasking-camera-access Disable Multitasking Camera Access --sf-universal-link-api Disable SFUniversalLink API --vp9-decoder Disable VP9 Decoder --music-kit Disable MusicKit --shazam-kit Disable ShazamKit --communication-notifications Disable Communication Notifications --group-activities Disable Group Activities --health-kit-estimate-recalibration Disable HealthKit Estimate Recalibration --time-sensitive-notifications Disable Time Sensitive Notifications","title":"Parameters"},{"location":"generated/actions/create_app_online/#creating-apple-pay-merchants-and-associating-them-with-an-app-id","text":"If you want to create a new Apple Pay Merchant Identifier: fastlane produce merchant -o merchant.com.example.production -r \"Example Merchant Production\" Use --help for more information about all available parameters fastlane produce merchant --help If you want to associate an app with a Merchant Identifier: fastlane produce associate_merchant -a com.krausefx.app merchant.com.example.production If you want to associate an app with multiple Merchant Identifiers: fastlane produce associate_merchant -a com.krausefx.app merchant.com.example.production merchant.com.example.sandbox Use --help for more information about all available parameters fastlane produce associate_merchant --help","title":"Creating Apple Pay merchants and associating them with an App ID"},{"location":"generated/actions/create_app_online/#environment-variables","text":"All available values can also be passed using environment variables, run fastlane produce --help to get a list of all available parameters.","title":"Environment Variables"},{"location":"generated/actions/create_app_online/#fastlane-integration","text":"Your Fastfile should look like this lane :release do produce( username: 'felix@krausefx.com', app_identifier: 'com.krausefx.app', app_name: 'MyApp', language: 'English', app_version: '1.0', sku: '123', team_name: 'SunApps GmbH', # only necessary when in multiple teams # Optional # App services can be enabled during app creation enable_services: { access_wifi: \"on\", # Valid values: \"on\", \"off\" app_attest: \"on\", # Valid values: \"on\", \"off\" app_group: \"on\", # Valid values: \"on\", \"off\" apple_pay: \"on\", # Valid values: \"on\", \"off\" associated_domains: \"on\", # Valid values: \"on\", \"off\" auto_fill_credential: \"on\", # Valid values: \"on\", \"off\" car_play_audio_app: \"on\", # Valid values: \"on\", \"off\" car_play_messaging_app: \"on\", # Valid values: \"on\", \"off\" car_play_navigation_app: \"on\", # Valid values: \"on\", \"off\" car_play_voip_calling_app: \"on\", # Valid values: \"on\", \"off\" class_kit: \"on\", # Valid values: \"on\", \"off\" icloud: \"xcode5_compatible\", # Valid values: \"xcode5_compatible\", \"xcode6_compatible\", \"off\" critical_alerts: \"on\", # Valid values: \"on\", \"off\" custom_network_protocol: \"on\", # Valid values: \"on\", \"off\" data_protection: \"complete\", # Valid values: \"complete\", \"unlessopen\", \"untilfirstauth\", \"off\" extended_virtual_address_space: \"on\", # Valid values: \"on\", \"off\" file_provider_testing_mode: \"on\", # Valid values: \"on\", \"off\" fonts: \"on\", # Valid values: \"on\", \"off\" game_center: \"ios\", # Valid values: \"ios\", \"macos\", off\" health_kit: \"on\", # Valid values: \"on\", \"off\" hls_interstitial_preview: \"on\", # Valid values: \"on\", \"off\" home_kit: \"on\", # Valid values: \"on\", \"off\" hotspot: \"on\", # Valid values: \"on\", \"off\" hotspot_helper: \"on\", # Valid values: \"on\", \"off\" in_app_purchase: \"on\", # Valid values: \"on\", \"off\" inter_app_audio: \"on\", # Valid values: \"on\", \"off\" low_latency_hls: \"on\", # Valid values: \"on\", \"off\" managed_associated_domains: \"on\", # Valid values: \"on\", \"off\" maps: \"on\", # Valid values: \"on\", \"off\" multipath: \"on\", # Valid values: \"on\", \"off\" network_extension: \"on\", # Valid values: \"on\", \"off\" nfc_tag_reading: \"on\", # Valid values: \"on\", \"off\" passbook: \"on\", # Valid values: \"on\", \"off\" (deprecated) personal_vpn: \"on\", # Valid values: \"on\", \"off\" push_notification: \"on\", # Valid values: \"on\", \"off\" sign_in_with_apple: \"on\", # Valid values: \"on\", \"off\" siri_kit: \"on\", # Valid values: \"on\", \"off\" system_extension: \"on\", # Valid values: \"on\", \"off\" user_management: \"on\", # Valid values: \"on\", \"off\" vpn_configuration: \"on\", # Valid values: \"on\", \"off\" (deprecated) wallet: \"on\", # Valid values: \"on\", \"off\" wireless_accessory: \"on\", # Valid values: \"on\", \"off\" driver_kit: \"on\", # Valid values: \"on\", \"off\" driver_kit_endpoint_security: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_hid_device: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_networking: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_serial: \"on\", # Valid values: \"on\", \"off\" driver_kit_hid_event_service: \"on\", # Valid values: \"on\", \"off\" driver_kit_transport_hid: \"on\", # Valid values: \"on\", \"off\" multitasking_camera_access: \"on\", # Valid values: \"on\", \"off\" sf_universal_link_api: \"on\", # Valid values: \"on\", \"off\" vp9_decoder: \"on\", # Valid values: \"on\", \"off\" music_kit: \"on\", # Valid values: \"on\", \"off\" shazam_kit: \"on\", # Valid values: \"on\", \"off\" communication_notifications: \"on\", # Valid values: \"on\", \"off\" group_activities: \"on\", # Valid values: \"on\", \"off\" health_kit_estimate_recalibration: \"on\", # Valid values: \"on\", \"off\" time_sensitive_notifications: \"on\", # Valid values: \"on\", \"off\" } ) deliver end To use the newly generated app in deliver , you need to add this line to your Deliverfile : apple_id(ENV['PRODUCE_APPLE_ID']) This will tell deliver , which App ID to use, since the app is not yet available in the App Store. You'll still have to fill out the remaining information (like screenshots, app description and pricing). You can use deliver to upload your app metadata using a CLI","title":"fastlane Integration"},{"location":"generated/actions/create_app_online/#how-is-my-password-stored","text":"produce uses the password manager from fastlane . Take a look the CredentialsManager README for more information. create_app_online Supported platforms ios Author @KrauseFx","title":"How is my password stored?"},{"location":"generated/actions/create_app_online/#2-examples","text":"create_app_online( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", app_name: \"MyApp\", language: \"English\", app_version: \"1.0\", sku: \"123\", team_name: \"SunApps GmbH\" # Only necessary when in multiple teams. ) produce # alias for \"create_app_online\"","title":"2 Examples"},{"location":"generated/actions/create_app_online/#parameters_1","text":"Key Description Default username Your Apple ID Username * app_identifier App Identifier (Bundle ID, e.g. com.krausefx.app) * bundle_identifier_suffix App Identifier Suffix (Ignored if App Identifier does not end with .*) app_name App Name app_version Initial version number (e.g. '1.0') sku SKU Number (e.g. '1234') * platform The platform to use (optional) ios platforms The platforms to use (optional) language Primary Language (e.g. 'en-US', 'fr-FR') English company_name The name of your company. It's used to set company name on App Store Connect team's app pages. Only required if it's the first app you create skip_itc Skip the creation of the app on App Store Connect false itc_users Array of App Store Connect users. If provided, you can limit access to this newly created app for users with the App Manager, Developer, Marketer or Sales roles enabled_features DEPRECATED! Please use enable_services instead - Array with Spaceship App Services {} enable_services Array with Spaceship App Services (e.g. access_wifi: (on|off), app_attest: (on|off), app_group: (on|off), apple_pay: (on|off), associated_domains: (on|off), auto_fill_credential: (on|off), class_kit: (on|off), icloud: (legacy|cloudkit), custom_network_protocol: (on|off), data_protection: (complete|unlessopen|untilfirstauth), extended_virtual_address_space: (on|off), family_controls: (on|off), file_provider_testing_mode: (on|off), fonts: (on|off), game_center: (ios|mac), health_kit: (on|off), hls_interstitial_preview: (on|off), home_kit: (on|off), hotspot: (on|off), in_app_purchase: (on|off), inter_app_audio: (on|off), low_latency_hls: (on|off), managed_associated_domains: (on|off), maps: (on|off), multipath: (on|off), network_extension: (on|off), nfc_tag_reading: (on|off), personal_vpn: (on|off), passbook: (on|off), push_notification: (on|off), sign_in_with_apple: (on), siri_kit: (on|off), system_extension: (on|off), user_management: (on|off), vpn_configuration: (on|off), wallet: (on|off), wireless_accessory: (on|off), car_play_audio_app: (on|off), car_play_messaging_app: (on|off), car_play_navigation_app: (on|off), car_play_voip_calling_app: (on|off), critical_alerts: (on|off), hotspot_helper: (on|off), driver_kit: (on|off), driver_kit_endpoint_security: (on|off), driver_kit_family_hid_device: (on|off), driver_kit_family_networking: (on|off), driver_kit_family_serial: (on|off), driver_kit_hid_event_service: (on|off), driver_kit_transport_hid: (on|off), multitasking_camera_access: (on|off), sf_universal_link_api: (on|off), vp9_decoder: (on|off), music_kit: (on|off), shazam_kit: (on|off), communication_notifications: (on|off), group_activities: (on|off), health_kit_estimate_recalibration: (on|off), time_sensitive_notifications: (on|off)) {} skip_devcenter Skip the creation of the app on the Apple Developer Portal false team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * itc_team_id The ID of your App Store Connect team if you're in multiple teams * itc_team_name The name of your App Store Connect team if you're in multiple teams * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/create_app_online/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The create_app_online action generates the following Lane Variables: SharedValue Description SharedValues::PRODUCE_APPLE_ID The Apple ID of the newly created app. You probably need it for deliver To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/create_app_online/#documentation","text":"To show the documentation in your terminal, run fastlane action create_app_online","title":"Documentation"},{"location":"generated/actions/create_app_online/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_app_online To pass parameters, make use of the : symbol, for example fastlane run create_app_online parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/create_app_online/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/create_keychain/","text":"create_keychain Create a new Keychain create_keychain Supported platforms ios, android, mac Author @gin0606 1 Example create_keychain( name: \"KeychainName\", default_keychain: true, unlock: true, timeout: 3600, lock_when_sleeps: true ) Parameters Key Description Default name Keychain name path Path to keychain password Password for the keychain default_keychain Should the newly created Keychain be the new system default keychain false unlock Unlock keychain after create false timeout timeout interval in seconds. Set 0 if you want to specify \"no time-out\" 300 lock_when_sleeps Lock keychain when the system sleeps false lock_after_timeout Lock keychain after timeout interval false add_to_search_list Add keychain to search list true require_create Fail the action if the Keychain already exists false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The create_keychain action generates the following Lane Variables: SharedValue Description SharedValues::ORIGINAL_DEFAULT_KEYCHAIN The path to the default keychain SharedValues::KEYCHAIN_PATH The path of the keychain To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action create_keychain CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_keychain To pass parameters, make use of the : symbol, for example fastlane run create_keychain parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Create keychain"},{"location":"generated/actions/create_keychain/#create_keychain","text":"Create a new Keychain create_keychain Supported platforms ios, android, mac Author @gin0606","title":"create_keychain"},{"location":"generated/actions/create_keychain/#1-example","text":"create_keychain( name: \"KeychainName\", default_keychain: true, unlock: true, timeout: 3600, lock_when_sleeps: true )","title":"1 Example"},{"location":"generated/actions/create_keychain/#parameters","text":"Key Description Default name Keychain name path Path to keychain password Password for the keychain default_keychain Should the newly created Keychain be the new system default keychain false unlock Unlock keychain after create false timeout timeout interval in seconds. Set 0 if you want to specify \"no time-out\" 300 lock_when_sleeps Lock keychain when the system sleeps false lock_after_timeout Lock keychain after timeout interval false add_to_search_list Add keychain to search list true require_create Fail the action if the Keychain already exists false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/create_keychain/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The create_keychain action generates the following Lane Variables: SharedValue Description SharedValues::ORIGINAL_DEFAULT_KEYCHAIN The path to the default keychain SharedValues::KEYCHAIN_PATH The path of the keychain To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/create_keychain/#documentation","text":"To show the documentation in your terminal, run fastlane action create_keychain","title":"Documentation"},{"location":"generated/actions/create_keychain/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_keychain To pass parameters, make use of the : symbol, for example fastlane run create_keychain parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/create_keychain/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/create_pull_request/","text":"create_pull_request This will create a new pull request on GitHub create_pull_request Supported platforms ios, android, mac Author @seei, @tommeier, @marumemomo, @elneruda, @kagemiku Returns The pull request URL when successful 1 Example create_pull_request( api_token: \"secret\", # optional, defaults to ENV[\"GITHUB_API_TOKEN\"] repo: \"fastlane/fastlane\", title: \"Amazing new feature\", head: \"my-feature\", # optional, defaults to current branch name base: \"master\", # optional, defaults to \"master\" body: \"Please pull this in!\", # optional api_url: \"http://yourdomain/api/v3\" # optional, for GitHub Enterprise, defaults to \"https://api.github.com\" ) Parameters Key Description Default api_token Personal API Token for GitHub - generate one at https://github.com/settings/tokens * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable repo The name of the repository you want to submit the pull request to title The title of the pull request body The contents of the pull request draft Indicates whether the pull request is a draft labels The labels for the pull request milestone The milestone ID (Integer) for the pull request head The name of the branch where your changes are implemented (defaults to the current branch name) * base The name of the branch you want your changes pulled into (defaults to master ) master api_url The URL of GitHub API - used when the Enterprise (default to https://api.github.com ) https://api.github.com assignees The assignees for the pull request reviewers The reviewers (slug) for the pull request team_reviewers The team reviewers (slug) for the pull request * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The create_pull_request action generates the following Lane Variables: SharedValue Description SharedValues::CREATE_PULL_REQUEST_HTML_URL The HTML URL to the created pull request SharedValues::CREATE_PULL_REQUEST_NUMBER The identifier number of the created pull request To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action create_pull_request CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_pull_request To pass parameters, make use of the : symbol, for example fastlane run create_pull_request parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Create pull request"},{"location":"generated/actions/create_pull_request/#create_pull_request","text":"This will create a new pull request on GitHub create_pull_request Supported platforms ios, android, mac Author @seei, @tommeier, @marumemomo, @elneruda, @kagemiku Returns The pull request URL when successful","title":"create_pull_request"},{"location":"generated/actions/create_pull_request/#1-example","text":"create_pull_request( api_token: \"secret\", # optional, defaults to ENV[\"GITHUB_API_TOKEN\"] repo: \"fastlane/fastlane\", title: \"Amazing new feature\", head: \"my-feature\", # optional, defaults to current branch name base: \"master\", # optional, defaults to \"master\" body: \"Please pull this in!\", # optional api_url: \"http://yourdomain/api/v3\" # optional, for GitHub Enterprise, defaults to \"https://api.github.com\" )","title":"1 Example"},{"location":"generated/actions/create_pull_request/#parameters","text":"Key Description Default api_token Personal API Token for GitHub - generate one at https://github.com/settings/tokens * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable repo The name of the repository you want to submit the pull request to title The title of the pull request body The contents of the pull request draft Indicates whether the pull request is a draft labels The labels for the pull request milestone The milestone ID (Integer) for the pull request head The name of the branch where your changes are implemented (defaults to the current branch name) * base The name of the branch you want your changes pulled into (defaults to master ) master api_url The URL of GitHub API - used when the Enterprise (default to https://api.github.com ) https://api.github.com assignees The assignees for the pull request reviewers The reviewers (slug) for the pull request team_reviewers The team reviewers (slug) for the pull request * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/create_pull_request/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The create_pull_request action generates the following Lane Variables: SharedValue Description SharedValues::CREATE_PULL_REQUEST_HTML_URL The HTML URL to the created pull request SharedValues::CREATE_PULL_REQUEST_NUMBER The identifier number of the created pull request To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/create_pull_request/#documentation","text":"To show the documentation in your terminal, run fastlane action create_pull_request","title":"Documentation"},{"location":"generated/actions/create_pull_request/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_pull_request To pass parameters, make use of the : symbol, for example fastlane run create_pull_request parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/create_pull_request/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/create_xcframework/","text":"create_xcframework Package multiple build configs of a library/framework into a single xcframework Utility for packaging multiple build configurations of a given library or framework into a single xcframework. If you want to package several frameworks just provide one of: * An array containing the list of frameworks using the :frameworks parameter (if they have no associated dSYMs): ['FrameworkA.framework', 'FrameworkB.framework'] * A hash containing the list of frameworks with their dSYMs using the :frameworks_with_dsyms parameter: { 'FrameworkA.framework' => {}, 'FrameworkB.framework' => { dsyms: 'FrameworkB.framework.dSYM' } } If you want to package several libraries just provide one of: * An array containing the list of libraries using the :libraries parameter (if they have no associated headers or dSYMs): ['LibraryA.so', 'LibraryB.so'] * A hash containing the list of libraries with their headers and dSYMs using the :libraries_with_headers_or_dsyms parameter: { 'LibraryA.so' => { dsyms: 'libraryA.so.dSYM' }, 'LibraryB.so' => { headers: 'headers' } } Finally specify the location of the xcframework to be generated using the :output parameter. create_xcframework Supported platforms ios, mac Author @jgongo 4 Examples create_xcframework(frameworks: ['FrameworkA.framework', 'FrameworkB.framework'], output: 'UniversalFramework.xcframework') create_xcframework(frameworks_with_dsyms: {'FrameworkA.framework' => {}, 'FrameworkB.framework' => { dsyms: 'FrameworkB.framework.dSYM' } }, output: 'UniversalFramework.xcframework') create_xcframework(libraries: ['LibraryA.so', 'LibraryB.so'], output: 'UniversalFramework.xcframework') create_xcframework(libraries_with_headers_or_dsyms: { 'LibraryA.so' => { dsyms: 'libraryA.so.dSYM' }, 'LibraryB.so' => { headers: 'LibraryBHeaders' } }, output: 'UniversalFramework.xcframework') Parameters Key Description Default frameworks Frameworks (without dSYMs) to add to the target xcframework frameworks_with_dsyms Frameworks (with dSYMs) to add to the target xcframework libraries Libraries (without headers or dSYMs) to add to the target xcframework libraries_with_headers_or_dsyms Libraries (with headers or dSYMs) to add to the target xcframework output The path to write the xcframework to allow_internal_distribution Specifies that the created xcframework contains information not suitable for public distribution false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The create_xcframework action generates the following Lane Variables: SharedValue Description SharedValues::XCFRAMEWORK_PATH Location of the generated xcframework To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action create_xcframework CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_xcframework To pass parameters, make use of the : symbol, for example fastlane run create_xcframework parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Create xcframework"},{"location":"generated/actions/create_xcframework/#create_xcframework","text":"Package multiple build configs of a library/framework into a single xcframework Utility for packaging multiple build configurations of a given library or framework into a single xcframework. If you want to package several frameworks just provide one of: * An array containing the list of frameworks using the :frameworks parameter (if they have no associated dSYMs): ['FrameworkA.framework', 'FrameworkB.framework'] * A hash containing the list of frameworks with their dSYMs using the :frameworks_with_dsyms parameter: { 'FrameworkA.framework' => {}, 'FrameworkB.framework' => { dsyms: 'FrameworkB.framework.dSYM' } } If you want to package several libraries just provide one of: * An array containing the list of libraries using the :libraries parameter (if they have no associated headers or dSYMs): ['LibraryA.so', 'LibraryB.so'] * A hash containing the list of libraries with their headers and dSYMs using the :libraries_with_headers_or_dsyms parameter: { 'LibraryA.so' => { dsyms: 'libraryA.so.dSYM' }, 'LibraryB.so' => { headers: 'headers' } } Finally specify the location of the xcframework to be generated using the :output parameter. create_xcframework Supported platforms ios, mac Author @jgongo","title":"create_xcframework"},{"location":"generated/actions/create_xcframework/#4-examples","text":"create_xcframework(frameworks: ['FrameworkA.framework', 'FrameworkB.framework'], output: 'UniversalFramework.xcframework') create_xcframework(frameworks_with_dsyms: {'FrameworkA.framework' => {}, 'FrameworkB.framework' => { dsyms: 'FrameworkB.framework.dSYM' } }, output: 'UniversalFramework.xcframework') create_xcframework(libraries: ['LibraryA.so', 'LibraryB.so'], output: 'UniversalFramework.xcframework') create_xcframework(libraries_with_headers_or_dsyms: { 'LibraryA.so' => { dsyms: 'libraryA.so.dSYM' }, 'LibraryB.so' => { headers: 'LibraryBHeaders' } }, output: 'UniversalFramework.xcframework')","title":"4 Examples"},{"location":"generated/actions/create_xcframework/#parameters","text":"Key Description Default frameworks Frameworks (without dSYMs) to add to the target xcframework frameworks_with_dsyms Frameworks (with dSYMs) to add to the target xcframework libraries Libraries (without headers or dSYMs) to add to the target xcframework libraries_with_headers_or_dsyms Libraries (with headers or dSYMs) to add to the target xcframework output The path to write the xcframework to allow_internal_distribution Specifies that the created xcframework contains information not suitable for public distribution false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/create_xcframework/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The create_xcframework action generates the following Lane Variables: SharedValue Description SharedValues::XCFRAMEWORK_PATH Location of the generated xcframework To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/create_xcframework/#documentation","text":"To show the documentation in your terminal, run fastlane action create_xcframework","title":"Documentation"},{"location":"generated/actions/create_xcframework/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_xcframework To pass parameters, make use of the : symbol, for example fastlane run create_xcframework parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/create_xcframework/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/danger/","text":"danger Runs danger for the project Formalize your Pull Request etiquette. More information: https://github.com/danger/danger . danger Supported platforms ios, android, mac Author @KrauseFx 2 Examples danger danger( danger_id: \"unit-tests\", dangerfile: \"tests/MyOtherDangerFile\", github_api_token: ENV[\"GITHUB_API_TOKEN\"], verbose: true ) Parameters Key Description Default use_bundle_exec Use bundle exec when there is a Gemfile presented true verbose Show more debugging information false danger_id The identifier of this Danger instance dangerfile The location of your Dangerfile github_api_token GitHub API token for danger github_enterprise_host GitHub host URL for GitHub Enterprise github_enterprise_api_base_url GitHub API base URL for GitHub Enterprise fail_on_errors Should always fail the build process, defaults to false false new_comment Makes Danger post a new comment instead of editing its previous one false remove_previous_comments Makes Danger remove all previous comment and create a new one in the end of the list false base A branch/tag/commit to use as the base of the diff. [master|dev|stable] head A branch/tag/commit to use as the head. [master|dev|stable] pr Run danger on a specific pull request. e.g. \"https://github.com/danger/danger/pull/518\" fail_if_no_pr Fail Danger execution if no PR is found false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action danger CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run danger To pass parameters, make use of the : symbol, for example fastlane run danger parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Danger"},{"location":"generated/actions/danger/#danger","text":"Runs danger for the project Formalize your Pull Request etiquette. More information: https://github.com/danger/danger . danger Supported platforms ios, android, mac Author @KrauseFx","title":"danger"},{"location":"generated/actions/danger/#2-examples","text":"danger danger( danger_id: \"unit-tests\", dangerfile: \"tests/MyOtherDangerFile\", github_api_token: ENV[\"GITHUB_API_TOKEN\"], verbose: true )","title":"2 Examples"},{"location":"generated/actions/danger/#parameters","text":"Key Description Default use_bundle_exec Use bundle exec when there is a Gemfile presented true verbose Show more debugging information false danger_id The identifier of this Danger instance dangerfile The location of your Dangerfile github_api_token GitHub API token for danger github_enterprise_host GitHub host URL for GitHub Enterprise github_enterprise_api_base_url GitHub API base URL for GitHub Enterprise fail_on_errors Should always fail the build process, defaults to false false new_comment Makes Danger post a new comment instead of editing its previous one false remove_previous_comments Makes Danger remove all previous comment and create a new one in the end of the list false base A branch/tag/commit to use as the base of the diff. [master|dev|stable] head A branch/tag/commit to use as the head. [master|dev|stable] pr Run danger on a specific pull request. e.g. \"https://github.com/danger/danger/pull/518\" fail_if_no_pr Fail Danger execution if no PR is found false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/danger/#documentation","text":"To show the documentation in your terminal, run fastlane action danger","title":"Documentation"},{"location":"generated/actions/danger/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run danger To pass parameters, make use of the : symbol, for example fastlane run danger parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/danger/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/debug/","text":"debug Print out an overview of the lane context values debug Supported platforms ios, android, mac Author @KrauseFx 1 Example debug Documentation To show the documentation in your terminal, run fastlane action debug CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run debug To pass parameters, make use of the : symbol, for example fastlane run debug parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Debug"},{"location":"generated/actions/debug/#debug","text":"Print out an overview of the lane context values debug Supported platforms ios, android, mac Author @KrauseFx","title":"debug"},{"location":"generated/actions/debug/#1-example","text":"debug","title":"1 Example"},{"location":"generated/actions/debug/#documentation","text":"To show the documentation in your terminal, run fastlane action debug","title":"Documentation"},{"location":"generated/actions/debug/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run debug To pass parameters, make use of the : symbol, for example fastlane run debug parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/debug/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/default_platform/","text":"default_platform Defines a default platform to not have to specify the platform default_platform Supported platforms ios, android, mac Author @KrauseFx 1 Example default_platform(:android) Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The default_platform action generates the following Lane Variables: SharedValue Description SharedValues::DEFAULT_PLATFORM The default platform To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action default_platform CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run default_platform To pass parameters, make use of the : symbol, for example fastlane run default_platform parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Default platform"},{"location":"generated/actions/default_platform/#default_platform","text":"Defines a default platform to not have to specify the platform default_platform Supported platforms ios, android, mac Author @KrauseFx","title":"default_platform"},{"location":"generated/actions/default_platform/#1-example","text":"default_platform(:android)","title":"1 Example"},{"location":"generated/actions/default_platform/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The default_platform action generates the following Lane Variables: SharedValue Description SharedValues::DEFAULT_PLATFORM The default platform To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/default_platform/#documentation","text":"To show the documentation in your terminal, run fastlane action default_platform","title":"Documentation"},{"location":"generated/actions/default_platform/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run default_platform To pass parameters, make use of the : symbol, for example fastlane run default_platform parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/default_platform/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/delete_keychain/","text":"delete_keychain Delete keychains and remove them from the search list Keychains can be deleted after being created with create_keychain delete_keychain Supported platforms ios, android, mac Author @gin0606, @koenpunt 2 Examples delete_keychain(name: \"KeychainName\") delete_keychain(keychain_path: \"/keychains/project.keychain\") Parameters Key Description Default name Keychain name keychain_path Keychain path * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action delete_keychain CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run delete_keychain To pass parameters, make use of the : symbol, for example fastlane run delete_keychain parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Delete keychain"},{"location":"generated/actions/delete_keychain/#delete_keychain","text":"Delete keychains and remove them from the search list Keychains can be deleted after being created with create_keychain delete_keychain Supported platforms ios, android, mac Author @gin0606, @koenpunt","title":"delete_keychain"},{"location":"generated/actions/delete_keychain/#2-examples","text":"delete_keychain(name: \"KeychainName\") delete_keychain(keychain_path: \"/keychains/project.keychain\")","title":"2 Examples"},{"location":"generated/actions/delete_keychain/#parameters","text":"Key Description Default name Keychain name keychain_path Keychain path * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/delete_keychain/#documentation","text":"To show the documentation in your terminal, run fastlane action delete_keychain","title":"Documentation"},{"location":"generated/actions/delete_keychain/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run delete_keychain To pass parameters, make use of the : symbol, for example fastlane run delete_keychain parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/delete_keychain/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/deliver/","text":"deliver Alias for the upload_to_app_store action deliver uploads screenshots, metadata and binaries to App Store Connect. Use deliver to submit your app for App Store review. Features \u2022 Quick Start \u2022 Usage \u2022 Tips deliver is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Features Upload hundreds of localized screenshots completely automatically Upload a new ipa/pkg file to App Store Connect without Xcode from any Mac Maintain your app metadata locally and push changes back to App Store Connect Easily implement a real Continuous Deployment process using fastlane Store the configuration in git to easily deploy from any Mac, including your Continuous Integration server Get a HTML preview of the fetched metadata before uploading the app metadata and screenshots to iTC Automatically uses precheck to ensure your app has the highest chances of passing app review the first time To upload builds to TestFlight check out pilot . Quick Start The guide will create all the necessary files for you, using the existing app metadata from App Store Connect. cd [your_project_folder] fastlane deliver init Enter your App Store Connect credentials Enter your app identifier Enjoy a good drink, while the computer does all the work for you From now on, you can run fastlane deliver to deploy a new update, or just upload new app metadata and screenshots. Usage Check out your local ./fastlane/metadata and ./fastlane/screenshots folders (if you don't use fastlane it's ./metadata instead) You'll see your metadata from App Store Connect. Feel free to store the metadata in git (not the screenshots). You can now modify it locally and push the changes back to App Store Connect. Run fastlane deliver to upload the app metadata from your local machine fastlane deliver Provide the path to an ipa file to upload and submit your app for review: fastlane deliver --ipa \"App.ipa\" --submit_for_review or you can specify path to pkg file for macOS apps: fastlane deliver --pkg \"MacApp.pkg\" If you use fastlane you don't have to manually specify the path to your ipa / pkg file. This is just a small sub-set of what you can do with deliver , check out the full documentation in #more-options Download existing screenshots from App Store Connect fastlane deliver download_screenshots Download existing metadata from App Store Connect fastlane deliver download_metadata To get a list of available options run fastlane action deliver Use in a Fastfile deliver deliver( submit_for_review: true, force: true, metadata_path: \"./metadata\" ) More options View all available options and their valid values Available options All the options below can easily be added to your Deliverfile . The great thing: if you use fastlane you can use all these options from your Fastfile too, for example: deliver( submit_for_review: true, metadata_path: \"../folder\" ) app_identifier The bundle identifier (e.g. \"com.krausefx.app\") username Your Apple ID email address ipa A path to a signed ipa file, which will be uploaded. If you don't provide this value, only app metadata will be uploaded. If you want to submit the app for review make sure to either use fastlane deliver --submit_for_review or add submit_for_review true to your Deliverfile ipa(\"App.ipa\") if you use fastlane the ipa file will automatically be detected. pkg A path to a signed pkg file, which will be uploaded. Submission logic of ipa applies to pkg files. pkg(\"MacApp.pkg\") app_version Optional, as it is usually automatically detected. Specify the version that should be created / edited on App Store Connect: app_version(\"2.0\") skip_app_version_update In the case if deliver uploads your application to App Store Connect it will automatically update \"Prepare for submission\" app version (which could be found on App Store Connect->My Apps->App Store page) The option allows uploading your app without updating \"Prepare for submission\" version. This could be useful in the case if you are generating a lot of uploads while not submitting the latest build for Apple review. The default value is false. skip_app_version_update(true) submit_for_review Add this to your Deliverfile to automatically submit the app for review after uploading metadata/binary. This will select the latest build. submit_for_review(true) screenshots_path A path to a folder containing subfolders for each language. This will automatically detect the device type based on the image resolution. Also includes \uf8ff Watch Support. metadata_path Path to the metadata you want to use. The folder has to be structured like this If you run deliver init this will automatically be created for you. force force(true) If set to true , no HTML report will be generated before the actual upload. You can also pass --force when calling deliver . price_tier Pass the price tier as number. This will be active from the current day. price_tier 0 trade_representative_contact_information Trade Representative Contact information for Korean App Store. Available options: first_name , last_name , address_line1 , address_line2 , address_line3 , city_name , state , country , postal_code , phone_number , email_address , is_displayed_on_app_store . trade_representative_contact_information( first_name: \"Felix\", last_name: \"Krause\", address_line1: \"1 Infinite Loop\", address_line2: \"\", address_line3: null, city_name: \"Cupertino\", state: \"California\", country: \"United States\", postal_code: \"95014\", phone_number: \"+43 123123123\", email_address: \"github@krausefx.com\", ) You can also provide these values by creating files in a metadata/trade_representative_contact_information/ directory. The file names must match the pattern .txt (e.g. first_name.txt , address_line1.txt etc.). The contents of each file will be used as the value for the matching key. Values provided in the Deliverfile or Fastfile will be take priority over values from these files. is_displayed_on_app_store is the option on App Store Connect described as: Display Trade Representative Contact Information on the Korean App Store app_review_information Contact information for the app review team. Available options: first_name , last_name , phone_number , email_address , demo_user , demo_password , notes . app_review_information( first_name: \"Felix\", last_name: \"Krause\", phone_number: \"+43 123123123\", email_address: \"github@krausefx.com\", demo_user: \"demoUser\", demo_password: \"demoPass\", notes: \"such notes, very text\" ) You can also provide these values by creating files in a metadata/review_information/ directory. The file names must match the pattern .txt (e.g. first_name.txt , notes.txt etc.). The contents of each file will be used as the value for the matching key. Values provided in the Deliverfile or Fastfile will be take priority over values from these files. app_review_attachment_file You can provide additional information to the app review team as a file attachment. As of this writing, Apple supports following file attachment formats: .pdf, .doc, .docx, .rtf, .pages, .xls, .xlsx, .numbers, .zip, .rar, .plist, .crash, .jpg, .png, .mp4, or .avi. Provide an empty string (i.e. \"\", not null) to remove the existing attachment file (if any) from the review information being edited. app_review_attachment_file: \"./readme.txt\" submission_information Must be a hash. This is used as the last step for the deployment process, where you define if you use third party content or use encryption. A list of available options . submission_information({ add_id_info_serves_ads: true, ... }) automatic_release Should the app be released to all users once Apple approves it? If set to false , you'll have to manually release the update once it got approved. automatic_release(true) # or automatic_release(false) phased_release Enable or disable the phased releases feature of App Store Connect. If set to true , the update will be released over a 7 day period. Default behavior is to leave whatever you defined on App Store Connect. phased_release(true) # or phased_release(false) reset_ratings Reset your app's summary rating for all territories. If set to true , it will reset rating when this version is released. Default behavior is to keep existing rating. reset_ratings(true) # or reset_ratings(false) app_rating_config_path You can set the app age ratings using deliver . You'll have to create and store a JSON configuration file. Copy the template to your project folder and pass the path to the JSON file using the app_rating_config_path option. The keys/values on the top allow one of 3 strings: \"NONE\", \"INFREQUENT_OR_MILD\" or \"FREQUENT_OR_INTENSE\", and the items on the bottom allow false or true. More information in #reference . Metadata All options below are useful if you want to specify certain app metadata in your Deliverfile or Fastfile Localized Localized values should be set like this description({ 'en-US' => \"English Description here\", 'de-DE' => \"Deutsche Beschreibung hier\" }) name The title/name of the app subtitle Localized subtitle of the app subtitle( \"en-US\" => \"Awesome English subtitle here\", \"de-DE\" => \"Jetzt mit deutschen Untertiteln!\" ) description The description of the app release_notes The release_notes (What's new / Changelog) of the latest version support_url, marketing_url, privacy_url These URLs are shown in the AppStore keywords Keywords separated using a comma. keywords( \"en-US\" => \"Keyword1, Keyword2\" ) promotional_text Localized promotional text promotional_text( \"en-US\" => \"Hey, you should totally buy our app, it's the best\", \"de-DE\" => \"App kaufen bitte\" ) app_icon A path to a new app icon, which must be exactly 1024x1024px app_icon('./AppIcon.png') apple_watch_app_icon A path to a new app icon for the \uf8ff Watch, which must be exactly 1024x1024px apple_watch_app_icon('./AppleWatchAppIcon.png') platform The platform of your application (a.e. ios, osx). This option is optional. The default value is \"ios\" and deliver should be able to figure out the platform from your binary. However, in the case if multiple binaries present, you can specify a platform which you want to deliver explicitly. The available options: 'ios' 'appletvos' 'osx' Non-Localized copyright The up to date copyright information. copyright(\"#{Time.now.year} Felix Krause\") primary_category The english name of the category you want to set (e.g. Business , Books ) See #reference for a list of available categories secondary_category The english name of the secondary category you want to set primary_first_sub_category The english name of the primary first sub category you want to set primary_second_sub_category The english name of the primary second sub category you want to set secondary_first_sub_category The english name of the secondary first sub category you want to set secondary_second_sub_category The english name of the secondary second sub category you want to set Submit Build deliver allows you to promote an existing build to production. Below are examples to select a previously uploaded build and submit it for review. fastlane deliver submit_build --build_number 830 Submit build in a Fastfile lane :submit_review do deliver( build_number: '830', submit_for_review: true, automatic_release: true, force: true, # Skip HTMl report verification skip_metadata: true, skip_screenshots: true, skip_binary_upload: true ) end Omit build_number to let fastlane automatically select the latest build number for the current version being edited for release from App Store Connect. Compliance and IDFA settings Use the submission_information parameter for additional submission specifiers, including compliance and IDFA settings. Look at the Spaceship's app_submission.rb file for options. See this example . fastlane deliver submit_build --build_number 830 --submission_information \"{\\\"export_compliance_uses_encryption\\\": false, \\\"add_id_info_uses_idfa\\\": false }\" App Privacy Details Starting on December 8, 2020, Apple announced that developers are required to provide app privacy details that will help users understand an app's privacy practies. deliver does not allow for updating of this information but this can be done with the upload_app_privacy_details_to_app_store action. More information on Uploading App Privacy Details Credentials A detailed description about how your credentials are handled is available in a credentials_manager . How does this thing even work? Is magic involved? \ud83c\udfa9 Your password will be stored in the macOS keychain, but can also be passed using environment variables. (More information available on CredentialsManager ) Before actually uploading anything to iTunes, deliver will generate a HTML summary of the collected data. deliver uses the following techniques under the hood: The iTMSTransporter tool is used to upload the binary to App Store Connect. iTMSTransporter is a command line tool provided by Apple. For all metadata related actions deliver uses spaceship Tips Available language codes ar-SA, ca, cs, da, de-DE, el, en-AU, en-CA, en-GB, en-US, es-ES, es-MX, fi, fr-CA, fr-FR, he, hi, hr, hu, id, it, ja, ko, ms, nl-NL, no, pl, pt-BR, pt-PT, ro, ru, sk, sv, th, tr, uk, vi, zh-Hans, zh-Hant Available Metadata Folder Options deliver allows for metadata to be set through .txt files in the metadata folder. This metadata folder location is defaulted to ./fastlane/metadata but can be overridden through the metadata_path parameter. Below are all allowed metadata options. Non-Localized Metadata Key Editable While Live Directory Filename copyright Yes copyright.txt primary_category No primary_category.txt secondary_category No secondary_category.txt primary_first_sub_category No primary_first_sub_category.txt primary_second_sub_category No primary_second_sub_category.txt secondary_first_sub_category No secondary_first_sub_category.txt secondary_second_sub_category No secondary_second_sub_category.txt Localized Metadata Key Editable While Live Directory Filename name No // name.txt subtitle No // subtitle.txt privacy_url Yes // privacy_url.txt apple_tv_privacy_policy No // apple_tv_privacy_policy.txt description Yes // description.txt keywords No // keywords.txt release_notes Yes // release_notes.txt support_url Yes // support_url.txt marketing_url Yes // marketing_url.txt promotional_text Yes // promotional_text.txt Review Information Metadata Key Editable While Live Directory Filename Deprecated Filename first_name Yes /review_information first_name.txt review_first_name.txt last_name Yes /review_information last_name.txt review_last_name.txt phone_number Yes /review_information phone_number.txt review_phone_number.txt email_address Yes /review_information email_address.txt review_email.txt demo_user Yes /review_information demo_user.txt review_demo_user.txt demo_password Yes /review_information demo_password.txt review_demo_password.txt notes Yes /review_information notes.txt review_notes.txt Reference View all available categories, etc. Available Categories FOOD_AND_DRINK BUSINESS EDUCATION SOCIAL_NETWORKING BOOKS SPORTS FINANCE REFERENCE GRAPHICS_AND_DESIGN DEVELOPER_TOOLS HEALTH_AND_FITNESS MUSIC WEATHER TRAVEL ENTERTAINMENT STICKERS GAMES LIFESTYLE MEDICAL MAGAZINES_AND_NEWSPAPERS UTILITIES SHOPPING PRODUCTIVITY NEWS PHOTO_AND_VIDEO NAVIGATION Available Game Subcategories MZGenre.Action MZGenre.Adventure MZGenre.Arcade MZGenre.Board MZGenre.Card MZGenre.Casino MZGenre.Dice MZGenre.Educational MZGenre.Family MZGenre.Music MZGenre.Puzzle MZGenre.Racing MZGenre.RolePlaying MZGenre.Simulation MZGenre.Sports MZGenre.Strategy MZGenre.Trivia MZGenre.Word GAMES_SPORTS GAMES_WORD GAMES_MUSIC GAMES_ADVENTURE GAMES_ACTION GAMES_ROLE_PLAYING GAMES_CASUAL GAMES_BOARD GAMES_TRIVIA GAMES_CARD GAMES_PUZZLE GAMES_CASINO GAMES_STRATEGY GAMES_SIMULATION GAMES_RACING GAMES_FAMILY Available Stickers Subcategories STICKERS_PLACES_AND_OBJECTS STICKERS_EMOJI_AND_EXPRESSIONS STICKERS_CELEBRATIONS STICKERS_CELEBRITIES STICKERS_MOVIES_AND_TV STICKERS_SPORTS_AND_ACTIVITIES STICKERS_EATING_AND_DRINKING STICKERS_CHARACTERS STICKERS_ANIMALS STICKERS_FASHION STICKERS_ART STICKERS_GAMING STICKERS_KIDS_AND_FAMILY STICKERS_PEOPLE STICKERS_MUSIC Available age rating groups Non Boolean Values 0: None (Legacy value, use NONE instead) 1: Infrequent/Mild (Legacy value, use INFREQUENT_OR_MILD instead) 2: Frequent/Intense (Legacy value, use FREQUENT_OR_INTENSE instead) NONE INFREQUENT_OR_MILD FREQUENT_OR_INTENSE Keys 'alcoholTobaccoOrDrugUseOrReferences' 'contests' 'gamblingSimulated' 'medicalOrTreatmentInformation' 'profanityOrCrudeHumor' 'sexualContentGraphicAndNudity' 'sexualContentOrNudity' 'horrorOrFearThemes' 'matureOrSuggestiveThemes' 'unrestrictedWebAccess' 'violenceCartoonOrFantasy' 'violenceRealisticProlongedGraphicOrSadistic' 'violenceRealistic' 'kidsAgeBand' Boolean Keys gambling 'seventeenPlus' unrestrictedWebAccess Kids Age Values FIVE_AND_UNDER SIX_TO_EIGHT NINE_TO_ELEVEN null Keys kidsAgeBand Default values Deliver has a special default language code which allows you to provide values that are not localized, and which will be used as defaults when you don\u2019t provide a specific localized value. In order to use default , you will need to tell deliver which languages your app uses. You can do this in either of two ways: Create the folders named with the language in the metadata folder (i.e. fastlane/metadata/en-US or fastlane/metadata/de-DE) Add the following to your Deliverfile languages(['en-US','de-DE']) You can use this either in json within your Deliverfile and/or as folders in your metadata folder. deliver will take the union of both language sets from the Deliverfile and from the metadata folder and create on single set of languages which will be enabled. Imagine that you have localized data for the following language codes: en-US, de-DE, el, it You can set the following in your Deliverfile release_notes({ 'default' => \"Shiny and new\", 'de-DE' => \"glaenzend und neu\" }) Deliver will use \"Shiny and new\" for en-US, el and it. It will use \"glaenzend und neu\" for de-DE. You can do the same with folders default keywords.txt marketing_url.txt name.txt privacy_url.txt support_url.txt release_notes.txt en-US description.txt de-DE description.txt el description.txt it description.txt In this case, default values for keywords, urls, name and release notes are used in all localizations, but each language has a fully localized description Uploading screenshots for \"iPad Pro (12.9-inch) (3rd generation)\" Starting March 20, 2019 Apple's App Store requires 12.9-inch iPad Pro (3rd generation) screenshots additionally to the iPad Pro 2nd generation screenshots . As fastlane historically uses the screenshot dimensions to determine the \"display family\" of a screenshot, this poses a problem as both use the same dimensions and are recognized as the same device family. To solve this a screenshot of a 12.9-inch iPad Pro (3rd generation) must contain either the string iPad Pro (12.9-inch) (3rd generation) , IPAD_PRO_3GEN_129 , or ipadPro129 (Apple's internal naming of the display family for the 3rd generation iPad Pro) in its filename to be assigned the correct display family and to be uploaded to the correct screenshot slot in your app's metadata. Automatically create screenshots If you want to integrate deliver with snapshot , check out fastlane ! Jenkins integration Detailed instructions about how to set up deliver and fastlane in Jenkins can be found in the fastlane README . Firewall Issues deliver uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" fastlane deliver HTTP Proxy iTunes Transporter is a Java application bundled with Xcode. In addition to utilizing the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" , you need to configure the transporter application to use the proxy independently from the system proxy or any environment proxy settings. You can find the configuration file within Xcode: for Xcode11 and later TOOLS_PATH=$( xcode-select -p ) REL_PATH='../SharedFrameworks/ContentDeliveryServices.framework/Versions/A/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" for Xcode10 or earlier TOOLS_PATH=$( xcode-select -p ) REL_PATH='../Applications/Application Loader.app/Contents/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" Add necessary proxy configuration values to the net.properties according to Java Proxy Configuration . As an alternative to editing the properties files, proxy configuration can be specified on the command line directly: DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV -Dhttp.proxyHost=myproxy.com -Dhttp.proxyPort=8080\" Limit App Store Connect has a limit of 150 binary uploads per day. Editing the Deliverfile Change syntax highlighting to Ruby . Provider Short Name If you are on multiple App Store Connect teams, deliver needs a provider short name to know where to upload your binary. deliver will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option. deliver Supported platforms ios, mac Author @KrauseFx 3 Examples upload_to_app_store( force: true, # Set to true to skip verification of HTML preview itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) deliver # alias for \"upload_to_app_store\" appstore # alias for \"upload_to_app_store\" Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of your app * app_version The version that should be edited or created ipa Path to your ipa file * pkg Path to your pkg file * build_number If set the given build number (already uploaded to iTC) will be used instead of the current built one platform The platform to use (optional) ios edit_live Modify live metadata, this option disables ipa upload and screenshot upload false use_live_version Force usage of live version rather than edit version false metadata_path Path to the folder containing the metadata files screenshots_path Path to the folder containing the screenshots skip_binary_upload Skip uploading an ipa or pkg to App Store Connect false skip_screenshots Don't upload the screenshots false skip_metadata Don't upload the metadata (e.g. title, description). This will still upload screenshots false skip_app_version_update Don\u2019t create or update the app version that is being prepared for submission false force Skip verification of HTML preview file false overwrite_screenshots Clear all previously uploaded screenshots before uploading the new ones false sync_screenshots Sync screenshots with local ones. This is currently beta option so set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well false submit_for_review Submit the new version for Review after uploading everything false verify_only Verifies archive with App Store Connect without uploading false reject_if_possible Rejects the previously submitted build if it's in a state where it's possible false automatic_release Should the app be automatically released once it's approved? (Can not be used together with auto_release_date ) auto_release_date Date in milliseconds for automatically releasing on pending approval (Can not be used together with automatic_release ) phased_release Enable the phased release feature of iTC false reset_ratings Reset the summary rating when you release a new version of the application false price_tier The price tier of this application app_rating_config_path Path to the app rating's config submission_information Extra information for the submission (e.g. compliance specifications, IDFA settings) team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your Developer Portal team, if you're in multiple teams. Different from your iTC team ID! * dev_portal_team_name The name of your Developer Portal team if you're in multiple teams * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column * run_precheck_before_submit Run precheck before submitting to app review true precheck_default_rule_level The default precheck rule level unless otherwise configured :warn individual_metadata_items DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - An array of localized metadata items to upload individually by language so that errors can be identified. E.g. ['name', 'keywords', 'description']. Note: slow app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the app icon apple_watch_app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the Apple Watch app icon copyright Metadata: The copyright notice primary_category Metadata: The english name of the primary category (e.g. Business , Books ) secondary_category Metadata: The english name of the secondary category (e.g. Business , Books ) primary_first_sub_category Metadata: The english name of the primary first sub category (e.g. Educational , Puzzle ) primary_second_sub_category Metadata: The english name of the primary second sub category (e.g. Educational , Puzzle ) secondary_first_sub_category Metadata: The english name of the secondary first sub category (e.g. Educational , Puzzle ) secondary_second_sub_category Metadata: The english name of the secondary second sub category (e.g. Educational , Puzzle ) trade_representative_contact_information DEPRECATED! This is no longer used by App Store Connect - Metadata: A hash containing the trade representative contact information app_review_information Metadata: A hash containing the review information app_review_attachment_file Metadata: Path to the app review attachment file description Metadata: The localised app description name Metadata: The localised app name subtitle Metadata: The localised app subtitle keywords Metadata: An array of localised keywords promotional_text Metadata: An array of localised promotional texts release_notes Metadata: Localised release notes for this version privacy_url Metadata: Localised privacy url apple_tv_privacy_policy Metadata: Localised Apple TV privacy policy text support_url Metadata: Localised support url marketing_url Metadata: Localised marketing url languages Metadata: List of languages to activate ignore_language_directory_validation Ignore errors when invalid languages are found in metadata and screenshot directories false precheck_include_in_app_purchases Should precheck check in-app purchases? true app The (spaceship) app ID of the app you want to use/modify * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action deliver CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run deliver To pass parameters, make use of the : symbol, for example fastlane run deliver parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Deliver"},{"location":"generated/actions/deliver/#deliver","text":"Alias for the upload_to_app_store action deliver uploads screenshots, metadata and binaries to App Store Connect. Use deliver to submit your app for App Store review. Features \u2022 Quick Start \u2022 Usage \u2022 Tips","title":"deliver"},{"location":"generated/actions/deliver/#features","text":"Upload hundreds of localized screenshots completely automatically Upload a new ipa/pkg file to App Store Connect without Xcode from any Mac Maintain your app metadata locally and push changes back to App Store Connect Easily implement a real Continuous Deployment process using fastlane Store the configuration in git to easily deploy from any Mac, including your Continuous Integration server Get a HTML preview of the fetched metadata before uploading the app metadata and screenshots to iTC Automatically uses precheck to ensure your app has the highest chances of passing app review the first time To upload builds to TestFlight check out pilot .","title":"Features"},{"location":"generated/actions/deliver/#quick-start","text":"The guide will create all the necessary files for you, using the existing app metadata from App Store Connect. cd [your_project_folder] fastlane deliver init Enter your App Store Connect credentials Enter your app identifier Enjoy a good drink, while the computer does all the work for you From now on, you can run fastlane deliver to deploy a new update, or just upload new app metadata and screenshots.","title":"Quick Start"},{"location":"generated/actions/deliver/#usage","text":"Check out your local ./fastlane/metadata and ./fastlane/screenshots folders (if you don't use fastlane it's ./metadata instead) You'll see your metadata from App Store Connect. Feel free to store the metadata in git (not the screenshots). You can now modify it locally and push the changes back to App Store Connect. Run fastlane deliver to upload the app metadata from your local machine fastlane deliver Provide the path to an ipa file to upload and submit your app for review: fastlane deliver --ipa \"App.ipa\" --submit_for_review or you can specify path to pkg file for macOS apps: fastlane deliver --pkg \"MacApp.pkg\" If you use fastlane you don't have to manually specify the path to your ipa / pkg file. This is just a small sub-set of what you can do with deliver , check out the full documentation in #more-options Download existing screenshots from App Store Connect fastlane deliver download_screenshots Download existing metadata from App Store Connect fastlane deliver download_metadata To get a list of available options run fastlane action deliver","title":"Usage"},{"location":"generated/actions/deliver/#more-options","text":"View all available options and their valid values","title":"More options"},{"location":"generated/actions/deliver/#available-options","text":"All the options below can easily be added to your Deliverfile . The great thing: if you use fastlane you can use all these options from your Fastfile too, for example: deliver( submit_for_review: true, metadata_path: \"../folder\" )","title":"Available options"},{"location":"generated/actions/deliver/#metadata","text":"All options below are useful if you want to specify certain app metadata in your Deliverfile or Fastfile","title":"Metadata"},{"location":"generated/actions/deliver/#submit-build","text":"deliver allows you to promote an existing build to production. Below are examples to select a previously uploaded build and submit it for review. fastlane deliver submit_build --build_number 830","title":"Submit Build"},{"location":"generated/actions/deliver/#credentials","text":"A detailed description about how your credentials are handled is available in a credentials_manager .","title":"Credentials"},{"location":"generated/actions/deliver/#tips","text":"","title":"Tips"},{"location":"generated/actions/deliver/#available-language-codes","text":"ar-SA, ca, cs, da, de-DE, el, en-AU, en-CA, en-GB, en-US, es-ES, es-MX, fi, fr-CA, fr-FR, he, hi, hr, hu, id, it, ja, ko, ms, nl-NL, no, pl, pt-BR, pt-PT, ro, ru, sk, sv, th, tr, uk, vi, zh-Hans, zh-Hant","title":"Available language codes"},{"location":"generated/actions/deliver/#available-metadata-folder-options","text":"deliver allows for metadata to be set through .txt files in the metadata folder. This metadata folder location is defaulted to ./fastlane/metadata but can be overridden through the metadata_path parameter. Below are all allowed metadata options.","title":"Available Metadata Folder Options"},{"location":"generated/actions/deliver/#reference","text":"View all available categories, etc.","title":"Reference"},{"location":"generated/actions/deliver/#default-values","text":"Deliver has a special default language code which allows you to provide values that are not localized, and which will be used as defaults when you don\u2019t provide a specific localized value. In order to use default , you will need to tell deliver which languages your app uses. You can do this in either of two ways: Create the folders named with the language in the metadata folder (i.e. fastlane/metadata/en-US or fastlane/metadata/de-DE) Add the following to your Deliverfile languages(['en-US','de-DE']) You can use this either in json within your Deliverfile and/or as folders in your metadata folder. deliver will take the union of both language sets from the Deliverfile and from the metadata folder and create on single set of languages which will be enabled. Imagine that you have localized data for the following language codes: en-US, de-DE, el, it You can set the following in your Deliverfile release_notes({ 'default' => \"Shiny and new\", 'de-DE' => \"glaenzend und neu\" }) Deliver will use \"Shiny and new\" for en-US, el and it. It will use \"glaenzend und neu\" for de-DE. You can do the same with folders default keywords.txt marketing_url.txt name.txt privacy_url.txt support_url.txt release_notes.txt en-US description.txt de-DE description.txt el description.txt it description.txt In this case, default values for keywords, urls, name and release notes are used in all localizations, but each language has a fully localized description","title":"Default values"},{"location":"generated/actions/deliver/#uploading-screenshots-for-ipad-pro-129-inch-3rd-generation","text":"Starting March 20, 2019 Apple's App Store requires 12.9-inch iPad Pro (3rd generation) screenshots additionally to the iPad Pro 2nd generation screenshots . As fastlane historically uses the screenshot dimensions to determine the \"display family\" of a screenshot, this poses a problem as both use the same dimensions and are recognized as the same device family. To solve this a screenshot of a 12.9-inch iPad Pro (3rd generation) must contain either the string iPad Pro (12.9-inch) (3rd generation) , IPAD_PRO_3GEN_129 , or ipadPro129 (Apple's internal naming of the display family for the 3rd generation iPad Pro) in its filename to be assigned the correct display family and to be uploaded to the correct screenshot slot in your app's metadata.","title":"Uploading screenshots for \"iPad Pro (12.9-inch) (3rd generation)\""},{"location":"generated/actions/deliver/#automatically-create-screenshots","text":"If you want to integrate deliver with snapshot , check out fastlane !","title":"Automatically create screenshots"},{"location":"generated/actions/deliver/#jenkins-integration","text":"Detailed instructions about how to set up deliver and fastlane in Jenkins can be found in the fastlane README .","title":"Jenkins integration"},{"location":"generated/actions/deliver/#firewall-issues","text":"deliver uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" fastlane deliver","title":"Firewall Issues"},{"location":"generated/actions/deliver/#http-proxy","text":"iTunes Transporter is a Java application bundled with Xcode. In addition to utilizing the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" , you need to configure the transporter application to use the proxy independently from the system proxy or any environment proxy settings. You can find the configuration file within Xcode: for Xcode11 and later TOOLS_PATH=$( xcode-select -p ) REL_PATH='../SharedFrameworks/ContentDeliveryServices.framework/Versions/A/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" for Xcode10 or earlier TOOLS_PATH=$( xcode-select -p ) REL_PATH='../Applications/Application Loader.app/Contents/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" Add necessary proxy configuration values to the net.properties according to Java Proxy Configuration . As an alternative to editing the properties files, proxy configuration can be specified on the command line directly: DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV -Dhttp.proxyHost=myproxy.com -Dhttp.proxyPort=8080\"","title":"HTTP Proxy"},{"location":"generated/actions/deliver/#limit","text":"App Store Connect has a limit of 150 binary uploads per day.","title":"Limit"},{"location":"generated/actions/deliver/#editing-the-deliverfile","text":"Change syntax highlighting to Ruby .","title":"Editing the Deliverfile"},{"location":"generated/actions/deliver/#provider-short-name","text":"If you are on multiple App Store Connect teams, deliver needs a provider short name to know where to upload your binary. deliver will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option. deliver Supported platforms ios, mac Author @KrauseFx","title":"Provider Short Name"},{"location":"generated/actions/deliver/#3-examples","text":"upload_to_app_store( force: true, # Set to true to skip verification of HTML preview itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) deliver # alias for \"upload_to_app_store\" appstore # alias for \"upload_to_app_store\"","title":"3 Examples"},{"location":"generated/actions/deliver/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of your app * app_version The version that should be edited or created ipa Path to your ipa file * pkg Path to your pkg file * build_number If set the given build number (already uploaded to iTC) will be used instead of the current built one platform The platform to use (optional) ios edit_live Modify live metadata, this option disables ipa upload and screenshot upload false use_live_version Force usage of live version rather than edit version false metadata_path Path to the folder containing the metadata files screenshots_path Path to the folder containing the screenshots skip_binary_upload Skip uploading an ipa or pkg to App Store Connect false skip_screenshots Don't upload the screenshots false skip_metadata Don't upload the metadata (e.g. title, description). This will still upload screenshots false skip_app_version_update Don\u2019t create or update the app version that is being prepared for submission false force Skip verification of HTML preview file false overwrite_screenshots Clear all previously uploaded screenshots before uploading the new ones false sync_screenshots Sync screenshots with local ones. This is currently beta option so set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well false submit_for_review Submit the new version for Review after uploading everything false verify_only Verifies archive with App Store Connect without uploading false reject_if_possible Rejects the previously submitted build if it's in a state where it's possible false automatic_release Should the app be automatically released once it's approved? (Can not be used together with auto_release_date ) auto_release_date Date in milliseconds for automatically releasing on pending approval (Can not be used together with automatic_release ) phased_release Enable the phased release feature of iTC false reset_ratings Reset the summary rating when you release a new version of the application false price_tier The price tier of this application app_rating_config_path Path to the app rating's config submission_information Extra information for the submission (e.g. compliance specifications, IDFA settings) team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your Developer Portal team, if you're in multiple teams. Different from your iTC team ID! * dev_portal_team_name The name of your Developer Portal team if you're in multiple teams * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column * run_precheck_before_submit Run precheck before submitting to app review true precheck_default_rule_level The default precheck rule level unless otherwise configured :warn individual_metadata_items DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - An array of localized metadata items to upload individually by language so that errors can be identified. E.g. ['name', 'keywords', 'description']. Note: slow app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the app icon apple_watch_app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the Apple Watch app icon copyright Metadata: The copyright notice primary_category Metadata: The english name of the primary category (e.g. Business , Books ) secondary_category Metadata: The english name of the secondary category (e.g. Business , Books ) primary_first_sub_category Metadata: The english name of the primary first sub category (e.g. Educational , Puzzle ) primary_second_sub_category Metadata: The english name of the primary second sub category (e.g. Educational , Puzzle ) secondary_first_sub_category Metadata: The english name of the secondary first sub category (e.g. Educational , Puzzle ) secondary_second_sub_category Metadata: The english name of the secondary second sub category (e.g. Educational , Puzzle ) trade_representative_contact_information DEPRECATED! This is no longer used by App Store Connect - Metadata: A hash containing the trade representative contact information app_review_information Metadata: A hash containing the review information app_review_attachment_file Metadata: Path to the app review attachment file description Metadata: The localised app description name Metadata: The localised app name subtitle Metadata: The localised app subtitle keywords Metadata: An array of localised keywords promotional_text Metadata: An array of localised promotional texts release_notes Metadata: Localised release notes for this version privacy_url Metadata: Localised privacy url apple_tv_privacy_policy Metadata: Localised Apple TV privacy policy text support_url Metadata: Localised support url marketing_url Metadata: Localised marketing url languages Metadata: List of languages to activate ignore_language_directory_validation Ignore errors when invalid languages are found in metadata and screenshot directories false precheck_include_in_app_purchases Should precheck check in-app purchases? true app The (spaceship) app ID of the app you want to use/modify * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/deliver/#documentation","text":"To show the documentation in your terminal, run fastlane action deliver","title":"Documentation"},{"location":"generated/actions/deliver/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run deliver To pass parameters, make use of the : symbol, for example fastlane run deliver parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/deliver/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/deploygate/","text":"deploygate Upload a new build to DeployGate You can retrieve your username and API token on your settings page . More information about the available options can be found in the DeployGate Push API document . deploygate Supported platforms ios, android Author @tnj, @tomorrowkey 2 Examples deploygate( api_token: \"...\", user: \"target username or organization name\", ipa: \"./ipa_file.ipa\", message: \"Build #{lane_context[SharedValues::BUILD_NUMBER]}\", distribution_key: \"(Optional) Target Distribution Key\", distribution_name: \"(Optional) Target Distribution Name\" ) deploygate( api_token: \"...\", user: \"target username or organization name\", apk: \"./apk_file.apk\", message: \"Build #{lane_context[SharedValues::BUILD_NUMBER]}\", distribution_key: \"(Optional) Target Distribution Key\", distribution_name: \"(Optional) Target Distribution Name\" ) Parameters Key Description Default api_token Deploygate API Token user Target username or organization name ipa Path to your IPA file. Optional if you use the gym or xcodebuild action * apk Path to your APK file * message Release Notes No changelog provided distribution_key Target Distribution Key release_note Release note for distribution page disable_notify Disables Push notification emails false distribution_name Target Distribution Name * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The deploygate action generates the following Lane Variables: SharedValue Description SharedValues::DEPLOYGATE_URL URL of the newly uploaded build SharedValues::DEPLOYGATE_REVISION auto incremented revision number SharedValues::DEPLOYGATE_APP_INFO Contains app revision, bundle identifier, etc. To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action deploygate CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run deploygate To pass parameters, make use of the : symbol, for example fastlane run deploygate parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Deploygate"},{"location":"generated/actions/deploygate/#deploygate","text":"Upload a new build to DeployGate You can retrieve your username and API token on your settings page . More information about the available options can be found in the DeployGate Push API document . deploygate Supported platforms ios, android Author @tnj, @tomorrowkey","title":"deploygate"},{"location":"generated/actions/deploygate/#2-examples","text":"deploygate( api_token: \"...\", user: \"target username or organization name\", ipa: \"./ipa_file.ipa\", message: \"Build #{lane_context[SharedValues::BUILD_NUMBER]}\", distribution_key: \"(Optional) Target Distribution Key\", distribution_name: \"(Optional) Target Distribution Name\" ) deploygate( api_token: \"...\", user: \"target username or organization name\", apk: \"./apk_file.apk\", message: \"Build #{lane_context[SharedValues::BUILD_NUMBER]}\", distribution_key: \"(Optional) Target Distribution Key\", distribution_name: \"(Optional) Target Distribution Name\" )","title":"2 Examples"},{"location":"generated/actions/deploygate/#parameters","text":"Key Description Default api_token Deploygate API Token user Target username or organization name ipa Path to your IPA file. Optional if you use the gym or xcodebuild action * apk Path to your APK file * message Release Notes No changelog provided distribution_key Target Distribution Key release_note Release note for distribution page disable_notify Disables Push notification emails false distribution_name Target Distribution Name * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/deploygate/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The deploygate action generates the following Lane Variables: SharedValue Description SharedValues::DEPLOYGATE_URL URL of the newly uploaded build SharedValues::DEPLOYGATE_REVISION auto incremented revision number SharedValues::DEPLOYGATE_APP_INFO Contains app revision, bundle identifier, etc. To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/deploygate/#documentation","text":"To show the documentation in your terminal, run fastlane action deploygate","title":"Documentation"},{"location":"generated/actions/deploygate/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run deploygate To pass parameters, make use of the : symbol, for example fastlane run deploygate parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/deploygate/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/dotgpg_environment/","text":"dotgpg_environment Reads in production secrets set in a dotgpg file and puts them in ENV More information about dotgpg can be found at https://github.com/ConradIrwin/dotgpg . dotgpg_environment Supported platforms ios, android, mac Author @simonlevy5 1 Example dotgpg_environment(dotgpg_file: './path/to/gpgfile') Parameters Key Description Default dotgpg_file Path to your gpg file * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action dotgpg_environment CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run dotgpg_environment To pass parameters, make use of the : symbol, for example fastlane run dotgpg_environment parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Dotgpg environment"},{"location":"generated/actions/dotgpg_environment/#dotgpg_environment","text":"Reads in production secrets set in a dotgpg file and puts them in ENV More information about dotgpg can be found at https://github.com/ConradIrwin/dotgpg . dotgpg_environment Supported platforms ios, android, mac Author @simonlevy5","title":"dotgpg_environment"},{"location":"generated/actions/dotgpg_environment/#1-example","text":"dotgpg_environment(dotgpg_file: './path/to/gpgfile')","title":"1 Example"},{"location":"generated/actions/dotgpg_environment/#parameters","text":"Key Description Default dotgpg_file Path to your gpg file * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/dotgpg_environment/#documentation","text":"To show the documentation in your terminal, run fastlane action dotgpg_environment","title":"Documentation"},{"location":"generated/actions/dotgpg_environment/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run dotgpg_environment To pass parameters, make use of the : symbol, for example fastlane run dotgpg_environment parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/dotgpg_environment/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/download/","text":"download Download a file from a remote server (e.g. JSON file) Specify the URL to download and get the content as a return value. Automatically parses JSON into a Ruby data structure. For more advanced networking code, use the Ruby functions instead: http://docs.ruby-lang.org/en/2.0.0/Net/HTTP.html . download Supported platforms ios, android, mac Author @KrauseFx 1 Example data = download(url: \"https://host.com/api.json\") Parameters Key Description Default url The URL that should be downloaded * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The download action generates the following Lane Variables: SharedValue Description SharedValues::DOWNLOAD_CONTENT The content of the file we just downloaded To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action download CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download To pass parameters, make use of the : symbol, for example fastlane run download parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Download"},{"location":"generated/actions/download/#download","text":"Download a file from a remote server (e.g. JSON file) Specify the URL to download and get the content as a return value. Automatically parses JSON into a Ruby data structure. For more advanced networking code, use the Ruby functions instead: http://docs.ruby-lang.org/en/2.0.0/Net/HTTP.html . download Supported platforms ios, android, mac Author @KrauseFx","title":"download"},{"location":"generated/actions/download/#1-example","text":"data = download(url: \"https://host.com/api.json\")","title":"1 Example"},{"location":"generated/actions/download/#parameters","text":"Key Description Default url The URL that should be downloaded * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/download/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The download action generates the following Lane Variables: SharedValue Description SharedValues::DOWNLOAD_CONTENT The content of the file we just downloaded To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/download/#documentation","text":"To show the documentation in your terminal, run fastlane action download","title":"Documentation"},{"location":"generated/actions/download/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download To pass parameters, make use of the : symbol, for example fastlane run download parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/download/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/download_app_privacy_details_from_app_store/","text":"download_app_privacy_details_from_app_store Download App Privacy Details from an app in App Store Connect Download App Privacy Details from an app in App Store Connect. For more detail information, view https://docs.fastlane.tools/uploading-app-privacy-details download_app_privacy_details_from_app_store Supported platforms ios, mac Author @igor-makarov 2 Examples download_app_privacy_details_from_app_store( username: \"your@email.com\", team_name: \"Your Team\", app_identifier: \"com.your.bundle\" ) download_app_privacy_details_from_app_store( username: \"your@email.com\", team_name: \"Your Team\", app_identifier: \"com.your.bundle\", output_json_path: \"fastlane/app_data_usages.json\" ) Parameters Key Description Default username Your Apple ID Username for App Store Connect * app_identifier The bundle identifier of your app * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * output_json_path Path to the app usage data JSON file generated by interactive questions ./fastlane/app_privacy_details.json * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action download_app_privacy_details_from_app_store CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download_app_privacy_details_from_app_store To pass parameters, make use of the : symbol, for example fastlane run download_app_privacy_details_from_app_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Download app privacy details from app store"},{"location":"generated/actions/download_app_privacy_details_from_app_store/#download_app_privacy_details_from_app_store","text":"Download App Privacy Details from an app in App Store Connect Download App Privacy Details from an app in App Store Connect. For more detail information, view https://docs.fastlane.tools/uploading-app-privacy-details download_app_privacy_details_from_app_store Supported platforms ios, mac Author @igor-makarov","title":"download_app_privacy_details_from_app_store"},{"location":"generated/actions/download_app_privacy_details_from_app_store/#2-examples","text":"download_app_privacy_details_from_app_store( username: \"your@email.com\", team_name: \"Your Team\", app_identifier: \"com.your.bundle\" ) download_app_privacy_details_from_app_store( username: \"your@email.com\", team_name: \"Your Team\", app_identifier: \"com.your.bundle\", output_json_path: \"fastlane/app_data_usages.json\" )","title":"2 Examples"},{"location":"generated/actions/download_app_privacy_details_from_app_store/#parameters","text":"Key Description Default username Your Apple ID Username for App Store Connect * app_identifier The bundle identifier of your app * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * output_json_path Path to the app usage data JSON file generated by interactive questions ./fastlane/app_privacy_details.json * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/download_app_privacy_details_from_app_store/#documentation","text":"To show the documentation in your terminal, run fastlane action download_app_privacy_details_from_app_store","title":"Documentation"},{"location":"generated/actions/download_app_privacy_details_from_app_store/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download_app_privacy_details_from_app_store To pass parameters, make use of the : symbol, for example fastlane run download_app_privacy_details_from_app_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/download_app_privacy_details_from_app_store/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/download_dsyms/","text":"download_dsyms Download dSYM files from App Store Connect for Bitcode apps This action downloads dSYM files from App Store Connect after the ipa gets re-compiled by Apple. Useful if you have Bitcode enabled. lane :refresh_dsyms do download_dsyms # Download dSYM files from iTC upload_symbols_to_crashlytics # Upload them to Crashlytics clean_build_artifacts # Delete the local dSYM files end download_dsyms Supported platforms ios Author @KrauseFx 6 Examples download_dsyms download_dsyms(version: \"1.0.0\", build_number: \"345\") download_dsyms(version: \"1.0.1\", build_number: 42) download_dsyms(version: \"live\") download_dsyms(min_version: \"1.2.3\") download_dsyms(after_uploaded_date: \"2020-09-11T19:00:00+01:00\") Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option) * username Your Apple ID Username for App Store Connect * app_identifier The bundle identifier of your app * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * platform The app platform for dSYMs you wish to download (ios, appletvos) :ios version The app version for dSYMs you wish to download, pass in 'latest' to download only the latest build's dSYMs or 'live' to download only the live version dSYMs build_number The app build_number for dSYMs you wish to download min_version The minimum app version for dSYMs you wish to download after_uploaded_date The uploaded date after which you wish to download dSYMs output_directory Where to save the download dSYMs, defaults to the current path wait_for_dsym_processing Wait for dSYMs to process false wait_timeout Number of seconds to wait for dSYMs to process 300 * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The download_dsyms action generates the following Lane Variables: SharedValue Description SharedValues::DSYM_PATHS An array to all the zipped dSYM files SharedValues::DSYM_LATEST_UPLOADED_DATE Date of the most recent uploaded time of successfully downloaded dSYM files To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action download_dsyms CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download_dsyms To pass parameters, make use of the : symbol, for example fastlane run download_dsyms parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Download dsyms"},{"location":"generated/actions/download_dsyms/#download_dsyms","text":"Download dSYM files from App Store Connect for Bitcode apps This action downloads dSYM files from App Store Connect after the ipa gets re-compiled by Apple. Useful if you have Bitcode enabled. lane :refresh_dsyms do download_dsyms # Download dSYM files from iTC upload_symbols_to_crashlytics # Upload them to Crashlytics clean_build_artifacts # Delete the local dSYM files end download_dsyms Supported platforms ios Author @KrauseFx","title":"download_dsyms"},{"location":"generated/actions/download_dsyms/#6-examples","text":"download_dsyms download_dsyms(version: \"1.0.0\", build_number: \"345\") download_dsyms(version: \"1.0.1\", build_number: 42) download_dsyms(version: \"live\") download_dsyms(min_version: \"1.2.3\") download_dsyms(after_uploaded_date: \"2020-09-11T19:00:00+01:00\")","title":"6 Examples"},{"location":"generated/actions/download_dsyms/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option) * username Your Apple ID Username for App Store Connect * app_identifier The bundle identifier of your app * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * platform The app platform for dSYMs you wish to download (ios, appletvos) :ios version The app version for dSYMs you wish to download, pass in 'latest' to download only the latest build's dSYMs or 'live' to download only the live version dSYMs build_number The app build_number for dSYMs you wish to download min_version The minimum app version for dSYMs you wish to download after_uploaded_date The uploaded date after which you wish to download dSYMs output_directory Where to save the download dSYMs, defaults to the current path wait_for_dsym_processing Wait for dSYMs to process false wait_timeout Number of seconds to wait for dSYMs to process 300 * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/download_dsyms/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The download_dsyms action generates the following Lane Variables: SharedValue Description SharedValues::DSYM_PATHS An array to all the zipped dSYM files SharedValues::DSYM_LATEST_UPLOADED_DATE Date of the most recent uploaded time of successfully downloaded dSYM files To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/download_dsyms/#documentation","text":"To show the documentation in your terminal, run fastlane action download_dsyms","title":"Documentation"},{"location":"generated/actions/download_dsyms/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download_dsyms To pass parameters, make use of the : symbol, for example fastlane run download_dsyms parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/download_dsyms/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/download_from_play_store/","text":"download_from_play_store Download metadata and binaries from Google Play (via supply ) More information: https://docs.fastlane.tools/actions/download_from_play_store/ download_from_play_store Supported platforms android Author @janpio 1 Example download_from_play_store Parameters Key Description Default package_name The package name of the application to use * version_name Version name (used when uploading new apks/aabs) - defaults to 'versionName' in build.gradle or AndroidManifest.xml * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production metadata_path Path to the directory containing the metadata files * key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action download_from_play_store CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download_from_play_store To pass parameters, make use of the : symbol, for example fastlane run download_from_play_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Download from play store"},{"location":"generated/actions/download_from_play_store/#download_from_play_store","text":"Download metadata and binaries from Google Play (via supply ) More information: https://docs.fastlane.tools/actions/download_from_play_store/ download_from_play_store Supported platforms android Author @janpio","title":"download_from_play_store"},{"location":"generated/actions/download_from_play_store/#1-example","text":"download_from_play_store","title":"1 Example"},{"location":"generated/actions/download_from_play_store/#parameters","text":"Key Description Default package_name The package name of the application to use * version_name Version name (used when uploading new apks/aabs) - defaults to 'versionName' in build.gradle or AndroidManifest.xml * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production metadata_path Path to the directory containing the metadata files * key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/download_from_play_store/#documentation","text":"To show the documentation in your terminal, run fastlane action download_from_play_store","title":"Documentation"},{"location":"generated/actions/download_from_play_store/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download_from_play_store To pass parameters, make use of the : symbol, for example fastlane run download_from_play_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/download_from_play_store/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/download_universal_apk_from_google_play/","text":"download_universal_apk_from_google_play Download the Universal APK of a given version code from the Google Play Console Download the universal APK of a given version code from the Google Play Console. This uses fastlane supply (and the AndroidPublisher Google API) to download the Universal APK generated by Google after you uploaded an .aab bundle to the Play Console. See https://developers.google.com/android-publisher/api-ref/rest/v3/generatedapks/list download_universal_apk_from_google_play Supported platforms android Author @Automattic Returns The path to the downloaded Universal APK. The action will raise an exception if it failed to find or download the APK in Google Play Parameters Key Description Default package_name The package name of the application to use * version_code The versionCode for which to download the generated APK * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 destination The path on disk where to download the Generated Universal APK certificate_sha256_hash The SHA256 hash of the signing key for which to download the Universal, Code-Signed APK for. Use 'xx:xx:xx:\u2026' format (32 hex bytes separated by colons), as printed by keytool -list -keystore . Only useful to provide if you have multiple signing keys configured on GPC, to specify which generated APK to download * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action download_universal_apk_from_google_play CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download_universal_apk_from_google_play To pass parameters, make use of the : symbol, for example fastlane run download_universal_apk_from_google_play parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Download universal apk from google play"},{"location":"generated/actions/download_universal_apk_from_google_play/#download_universal_apk_from_google_play","text":"Download the Universal APK of a given version code from the Google Play Console Download the universal APK of a given version code from the Google Play Console. This uses fastlane supply (and the AndroidPublisher Google API) to download the Universal APK generated by Google after you uploaded an .aab bundle to the Play Console. See https://developers.google.com/android-publisher/api-ref/rest/v3/generatedapks/list download_universal_apk_from_google_play Supported platforms android Author @Automattic Returns The path to the downloaded Universal APK. The action will raise an exception if it failed to find or download the APK in Google Play","title":"download_universal_apk_from_google_play"},{"location":"generated/actions/download_universal_apk_from_google_play/#parameters","text":"Key Description Default package_name The package name of the application to use * version_code The versionCode for which to download the generated APK * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 destination The path on disk where to download the Generated Universal APK certificate_sha256_hash The SHA256 hash of the signing key for which to download the Universal, Code-Signed APK for. Use 'xx:xx:xx:\u2026' format (32 hex bytes separated by colons), as printed by keytool -list -keystore . Only useful to provide if you have multiple signing keys configured on GPC, to specify which generated APK to download * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/download_universal_apk_from_google_play/#documentation","text":"To show the documentation in your terminal, run fastlane action download_universal_apk_from_google_play","title":"Documentation"},{"location":"generated/actions/download_universal_apk_from_google_play/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download_universal_apk_from_google_play To pass parameters, make use of the : symbol, for example fastlane run download_universal_apk_from_google_play parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/download_universal_apk_from_google_play/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/dsym_zip/","text":"dsym_zip Creates a zipped dSYM in the project root from the .xcarchive You can manually specify the path to the xcarchive (not needed if you use xcodebuild / xcarchive to build your archive) dsym_zip Supported platforms ios, mac Author @lmirosevic 2 Examples dsym_zip dsym_zip( archive_path: \"MyApp.xcarchive\" ) Parameters Key Description Default archive_path Path to your xcarchive file. Optional if you use the xcodebuild action * dsym_path Path for generated dsym. Optional, default is your apps root directory all Whether or not all dSYM files are to be included. Optional, default is false in which only your app dSYM is included false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The dsym_zip action generates the following Lane Variables: SharedValue Description SharedValues::DSYM_ZIP_PATH The named of the zipped dSYM To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action dsym_zip CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run dsym_zip To pass parameters, make use of the : symbol, for example fastlane run dsym_zip parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Dsym zip"},{"location":"generated/actions/dsym_zip/#dsym_zip","text":"Creates a zipped dSYM in the project root from the .xcarchive You can manually specify the path to the xcarchive (not needed if you use xcodebuild / xcarchive to build your archive) dsym_zip Supported platforms ios, mac Author @lmirosevic","title":"dsym_zip"},{"location":"generated/actions/dsym_zip/#2-examples","text":"dsym_zip dsym_zip( archive_path: \"MyApp.xcarchive\" )","title":"2 Examples"},{"location":"generated/actions/dsym_zip/#parameters","text":"Key Description Default archive_path Path to your xcarchive file. Optional if you use the xcodebuild action * dsym_path Path for generated dsym. Optional, default is your apps root directory all Whether or not all dSYM files are to be included. Optional, default is false in which only your app dSYM is included false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/dsym_zip/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The dsym_zip action generates the following Lane Variables: SharedValue Description SharedValues::DSYM_ZIP_PATH The named of the zipped dSYM To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/dsym_zip/#documentation","text":"To show the documentation in your terminal, run fastlane action dsym_zip","title":"Documentation"},{"location":"generated/actions/dsym_zip/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run dsym_zip To pass parameters, make use of the : symbol, for example fastlane run dsym_zip parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/dsym_zip/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/echo/","text":"echo Alias for the puts action echo Supported platforms ios, android, mac Author @KrauseFx 1 Example puts \"Hi there\" Parameters Key Description Default message Message to be printed out * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action echo CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run echo To pass parameters, make use of the : symbol, for example fastlane run echo parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Echo"},{"location":"generated/actions/echo/#echo","text":"Alias for the puts action echo Supported platforms ios, android, mac Author @KrauseFx","title":"echo"},{"location":"generated/actions/echo/#1-example","text":"puts \"Hi there\"","title":"1 Example"},{"location":"generated/actions/echo/#parameters","text":"Key Description Default message Message to be printed out * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/echo/#documentation","text":"To show the documentation in your terminal, run fastlane action echo","title":"Documentation"},{"location":"generated/actions/echo/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run echo To pass parameters, make use of the : symbol, for example fastlane run echo parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/echo/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/ensure_bundle_exec/","text":"ensure_bundle_exec Raises an exception if not using bundle exec to run fastlane This action will check if you are using bundle exec to run fastlane. You can put it into before_all to make sure that fastlane is ran using the bundle exec fastlane command. ensure_bundle_exec Supported platforms ios, android, mac Author @rishabhtayal 1 Example ensure_bundle_exec Documentation To show the documentation in your terminal, run fastlane action ensure_bundle_exec CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_bundle_exec To pass parameters, make use of the : symbol, for example fastlane run ensure_bundle_exec parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Ensure bundle exec"},{"location":"generated/actions/ensure_bundle_exec/#ensure_bundle_exec","text":"Raises an exception if not using bundle exec to run fastlane This action will check if you are using bundle exec to run fastlane. You can put it into before_all to make sure that fastlane is ran using the bundle exec fastlane command. ensure_bundle_exec Supported platforms ios, android, mac Author @rishabhtayal","title":"ensure_bundle_exec"},{"location":"generated/actions/ensure_bundle_exec/#1-example","text":"ensure_bundle_exec","title":"1 Example"},{"location":"generated/actions/ensure_bundle_exec/#documentation","text":"To show the documentation in your terminal, run fastlane action ensure_bundle_exec","title":"Documentation"},{"location":"generated/actions/ensure_bundle_exec/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_bundle_exec To pass parameters, make use of the : symbol, for example fastlane run ensure_bundle_exec parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/ensure_bundle_exec/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/ensure_env_vars/","text":"ensure_env_vars Raises an exception if the specified env vars are not set This action will check if some environment variables are set. ensure_env_vars Supported platforms ios, android, mac Author @revolter 1 Example ensure_env_vars( env_vars: ['GITHUB_USER_NAME', 'GITHUB_API_TOKEN'] ) Parameters Key Description Default env_vars The environment variables names that should be checked * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action ensure_env_vars CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_env_vars To pass parameters, make use of the : symbol, for example fastlane run ensure_env_vars parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Ensure env vars"},{"location":"generated/actions/ensure_env_vars/#ensure_env_vars","text":"Raises an exception if the specified env vars are not set This action will check if some environment variables are set. ensure_env_vars Supported platforms ios, android, mac Author @revolter","title":"ensure_env_vars"},{"location":"generated/actions/ensure_env_vars/#1-example","text":"ensure_env_vars( env_vars: ['GITHUB_USER_NAME', 'GITHUB_API_TOKEN'] )","title":"1 Example"},{"location":"generated/actions/ensure_env_vars/#parameters","text":"Key Description Default env_vars The environment variables names that should be checked * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/ensure_env_vars/#documentation","text":"To show the documentation in your terminal, run fastlane action ensure_env_vars","title":"Documentation"},{"location":"generated/actions/ensure_env_vars/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_env_vars To pass parameters, make use of the : symbol, for example fastlane run ensure_env_vars parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/ensure_env_vars/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/ensure_git_branch/","text":"ensure_git_branch Raises an exception if not on a specific git branch This action will check if your git repo is checked out to a specific branch. You may only want to make releases from a specific branch, so ensure_git_branch will stop a lane if it was accidentally executed on an incorrect branch. ensure_git_branch Supported platforms ios, android, mac Author @dbachrach, @Liquidsoul 2 Examples ensure_git_branch # defaults to `master` branch ensure_git_branch( branch: 'develop' ) Parameters Key Description Default branch The branch that should be checked for. String that can be either the full name of the branch or a regex e.g. ^feature/.*$ to match master * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action ensure_git_branch CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_git_branch To pass parameters, make use of the : symbol, for example fastlane run ensure_git_branch parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Ensure git branch"},{"location":"generated/actions/ensure_git_branch/#ensure_git_branch","text":"Raises an exception if not on a specific git branch This action will check if your git repo is checked out to a specific branch. You may only want to make releases from a specific branch, so ensure_git_branch will stop a lane if it was accidentally executed on an incorrect branch. ensure_git_branch Supported platforms ios, android, mac Author @dbachrach, @Liquidsoul","title":"ensure_git_branch"},{"location":"generated/actions/ensure_git_branch/#2-examples","text":"ensure_git_branch # defaults to `master` branch ensure_git_branch( branch: 'develop' )","title":"2 Examples"},{"location":"generated/actions/ensure_git_branch/#parameters","text":"Key Description Default branch The branch that should be checked for. String that can be either the full name of the branch or a regex e.g. ^feature/.*$ to match master * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/ensure_git_branch/#documentation","text":"To show the documentation in your terminal, run fastlane action ensure_git_branch","title":"Documentation"},{"location":"generated/actions/ensure_git_branch/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_git_branch To pass parameters, make use of the : symbol, for example fastlane run ensure_git_branch parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/ensure_git_branch/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/ensure_git_status_clean/","text":"ensure_git_status_clean Raises an exception if there are uncommitted git changes A sanity check to make sure you are working in a repo that is clean. Especially useful to put at the beginning of your Fastfile in the before_all block, if some of your other actions will touch your filesystem, do things to your git repo, or just as a general reminder to save your work. Also needed as a prerequisite for some other actions like reset_git_repo . ensure_git_status_clean Supported platforms ios, android, mac Author @lmirosevic, @antondomashnev 1 Example ensure_git_status_clean Parameters Key Description Default show_uncommitted_changes The flag whether to show uncommitted changes if the repo is dirty false show_diff The flag whether to show the git diff if the repo is dirty false ignored The handling mode of the ignored files. The available options are: 'traditional' , 'none' (default) and 'matching' . Specifying 'none' to this parameter is the same as not specifying the parameter at all, which means that no ignored file will be used to check if the repo is dirty or not. Specifying 'traditional' or 'matching' causes some ignored files to be used to check if the repo is dirty or not (more info in the official docs: https://git-scm.com/docs/git-status#Documentation/git-status.txt---ignoredltmodegt) ignore_files Array of files to ignore * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The ensure_git_status_clean action generates the following Lane Variables: SharedValue Description SharedValues::GIT_REPO_WAS_CLEAN_ON_START Stores the fact that the git repo was clean at some point To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action ensure_git_status_clean CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_git_status_clean To pass parameters, make use of the : symbol, for example fastlane run ensure_git_status_clean parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Ensure git status clean"},{"location":"generated/actions/ensure_git_status_clean/#ensure_git_status_clean","text":"Raises an exception if there are uncommitted git changes A sanity check to make sure you are working in a repo that is clean. Especially useful to put at the beginning of your Fastfile in the before_all block, if some of your other actions will touch your filesystem, do things to your git repo, or just as a general reminder to save your work. Also needed as a prerequisite for some other actions like reset_git_repo . ensure_git_status_clean Supported platforms ios, android, mac Author @lmirosevic, @antondomashnev","title":"ensure_git_status_clean"},{"location":"generated/actions/ensure_git_status_clean/#1-example","text":"ensure_git_status_clean","title":"1 Example"},{"location":"generated/actions/ensure_git_status_clean/#parameters","text":"Key Description Default show_uncommitted_changes The flag whether to show uncommitted changes if the repo is dirty false show_diff The flag whether to show the git diff if the repo is dirty false ignored The handling mode of the ignored files. The available options are: 'traditional' , 'none' (default) and 'matching' . Specifying 'none' to this parameter is the same as not specifying the parameter at all, which means that no ignored file will be used to check if the repo is dirty or not. Specifying 'traditional' or 'matching' causes some ignored files to be used to check if the repo is dirty or not (more info in the official docs: https://git-scm.com/docs/git-status#Documentation/git-status.txt---ignoredltmodegt) ignore_files Array of files to ignore * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/ensure_git_status_clean/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The ensure_git_status_clean action generates the following Lane Variables: SharedValue Description SharedValues::GIT_REPO_WAS_CLEAN_ON_START Stores the fact that the git repo was clean at some point To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/ensure_git_status_clean/#documentation","text":"To show the documentation in your terminal, run fastlane action ensure_git_status_clean","title":"Documentation"},{"location":"generated/actions/ensure_git_status_clean/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_git_status_clean To pass parameters, make use of the : symbol, for example fastlane run ensure_git_status_clean parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/ensure_git_status_clean/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/ensure_no_debug_code/","text":"ensure_no_debug_code Ensures the given text is nowhere in the code base You don't want any debug code to slip into production. This can be used to check if there is any debug code still in your codebase or if you have things like // TO DO or similar. ensure_no_debug_code Supported platforms ios, android, mac Author @KrauseFx 5 Examples ensure_no_debug_code(text: \"// TODO\") ensure_no_debug_code(text: \"Log.v\", extension: \"java\") ensure_no_debug_code(text: \"NSLog\", path: \"./lib\", extension: \"m\") ensure_no_debug_code(text: \"(^#define DEBUG|NSLog)\", path: \"./lib\", extension: \"m\") ensure_no_debug_code(text: \"<<<<<<\", extensions: [\"m\", \"swift\", \"java\"]) Parameters Key Description Default text The text that must not be in the code base path The directory containing all the source files . extension The extension that should be searched for extensions An array of file extensions that should be searched for exclude Exclude a certain pattern from the search exclude_dirs An array of dirs that should not be included in the search * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action ensure_no_debug_code CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_no_debug_code To pass parameters, make use of the : symbol, for example fastlane run ensure_no_debug_code parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Ensure no debug code"},{"location":"generated/actions/ensure_no_debug_code/#ensure_no_debug_code","text":"Ensures the given text is nowhere in the code base You don't want any debug code to slip into production. This can be used to check if there is any debug code still in your codebase or if you have things like // TO DO or similar. ensure_no_debug_code Supported platforms ios, android, mac Author @KrauseFx","title":"ensure_no_debug_code"},{"location":"generated/actions/ensure_no_debug_code/#5-examples","text":"ensure_no_debug_code(text: \"// TODO\") ensure_no_debug_code(text: \"Log.v\", extension: \"java\") ensure_no_debug_code(text: \"NSLog\", path: \"./lib\", extension: \"m\") ensure_no_debug_code(text: \"(^#define DEBUG|NSLog)\", path: \"./lib\", extension: \"m\") ensure_no_debug_code(text: \"<<<<<<\", extensions: [\"m\", \"swift\", \"java\"])","title":"5 Examples"},{"location":"generated/actions/ensure_no_debug_code/#parameters","text":"Key Description Default text The text that must not be in the code base path The directory containing all the source files . extension The extension that should be searched for extensions An array of file extensions that should be searched for exclude Exclude a certain pattern from the search exclude_dirs An array of dirs that should not be included in the search * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/ensure_no_debug_code/#documentation","text":"To show the documentation in your terminal, run fastlane action ensure_no_debug_code","title":"Documentation"},{"location":"generated/actions/ensure_no_debug_code/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_no_debug_code To pass parameters, make use of the : symbol, for example fastlane run ensure_no_debug_code parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/ensure_no_debug_code/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/ensure_xcode_version/","text":"ensure_xcode_version Ensure the right version of Xcode is used The xcode-install gem, which this action depends on, has been sunset. Please migrate to xcodes . You can find a migration guide here: xcpretty/xcode-install/MIGRATION.md If building your app requires a specific version of Xcode, you can invoke this command before using gym. For example, to ensure that a beta version of Xcode is not accidentally selected to build, which would make uploading to TestFlight fail. You can either manually provide a specific version using version: or you make use of the .xcode-version file. Using the strict parameter, you can either verify the full set of version numbers strictly (i.e. 11.3.1 ) or only a subset of them (i.e. 11.3 or 11 ). ensure_xcode_version Supported platforms ios, mac Author @JaviSoto, @KrauseFx 1 Example ensure_xcode_version(version: \"12.5\") Parameters Key Description Default version Xcode version to verify that is selected strict Should the version be verified strictly (all 3 version numbers), or matching only the given version numbers (i.e. 11.3 == 11.3.x ) true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The ensure_xcode_version action generates the following Lane Variables: SharedValue Description SharedValues::FL_ENSURE_XCODE_VERSION Xcode version to verify that is selected To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action ensure_xcode_version CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_xcode_version To pass parameters, make use of the : symbol, for example fastlane run ensure_xcode_version parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Ensure xcode version"},{"location":"generated/actions/ensure_xcode_version/#ensure_xcode_version","text":"Ensure the right version of Xcode is used The xcode-install gem, which this action depends on, has been sunset. Please migrate to xcodes . You can find a migration guide here: xcpretty/xcode-install/MIGRATION.md If building your app requires a specific version of Xcode, you can invoke this command before using gym. For example, to ensure that a beta version of Xcode is not accidentally selected to build, which would make uploading to TestFlight fail. You can either manually provide a specific version using version: or you make use of the .xcode-version file. Using the strict parameter, you can either verify the full set of version numbers strictly (i.e. 11.3.1 ) or only a subset of them (i.e. 11.3 or 11 ). ensure_xcode_version Supported platforms ios, mac Author @JaviSoto, @KrauseFx","title":"ensure_xcode_version"},{"location":"generated/actions/ensure_xcode_version/#1-example","text":"ensure_xcode_version(version: \"12.5\")","title":"1 Example"},{"location":"generated/actions/ensure_xcode_version/#parameters","text":"Key Description Default version Xcode version to verify that is selected strict Should the version be verified strictly (all 3 version numbers), or matching only the given version numbers (i.e. 11.3 == 11.3.x ) true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/ensure_xcode_version/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The ensure_xcode_version action generates the following Lane Variables: SharedValue Description SharedValues::FL_ENSURE_XCODE_VERSION Xcode version to verify that is selected To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/ensure_xcode_version/#documentation","text":"To show the documentation in your terminal, run fastlane action ensure_xcode_version","title":"Documentation"},{"location":"generated/actions/ensure_xcode_version/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_xcode_version To pass parameters, make use of the : symbol, for example fastlane run ensure_xcode_version parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/ensure_xcode_version/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/environment_variable/","text":"environment_variable Sets/gets env vars for Fastlane.swift. Don't use in ruby, use ENV[key] = val environment_variable Supported platforms ios, android, mac Author @taquitos Parameters Key Description Default set Set the environment variables named get Get the environment variable named remove Remove the environment variable named * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action environment_variable CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run environment_variable To pass parameters, make use of the : symbol, for example fastlane run environment_variable parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Environment variable"},{"location":"generated/actions/environment_variable/#environment_variable","text":"Sets/gets env vars for Fastlane.swift. Don't use in ruby, use ENV[key] = val environment_variable Supported platforms ios, android, mac Author @taquitos","title":"environment_variable"},{"location":"generated/actions/environment_variable/#parameters","text":"Key Description Default set Set the environment variables named get Get the environment variable named remove Remove the environment variable named * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/environment_variable/#documentation","text":"To show the documentation in your terminal, run fastlane action environment_variable","title":"Documentation"},{"location":"generated/actions/environment_variable/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run environment_variable To pass parameters, make use of the : symbol, for example fastlane run environment_variable parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/environment_variable/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/erb/","text":"erb Allows to Generate output files based on ERB templates Renders an ERB template with :placeholders given as a hash via parameter. If no :destination is set, it returns the rendered template as string. erb Supported platforms ios, android, mac Author @hjanuschka 1 Example # Example `erb` template: # Variable1 <%= var1 %> # Variable2 <%= var2 %> # <% for item in var3 %> # <%= item %> # <% end %> erb( template: \"1.erb\", destination: \"/tmp/rendered.out\", placeholders: { :var1 => 123, :var2 => \"string\", :var3 => [\"element1\", \"element2\"] } ) Parameters Key Description Default template ERB Template File destination Destination file placeholders Placeholders given as a hash {} trim_mode Trim mode applied to the ERB * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action erb CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run erb To pass parameters, make use of the : symbol, for example fastlane run erb parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Erb"},{"location":"generated/actions/erb/#erb","text":"Allows to Generate output files based on ERB templates Renders an ERB template with :placeholders given as a hash via parameter. If no :destination is set, it returns the rendered template as string. erb Supported platforms ios, android, mac Author @hjanuschka","title":"erb"},{"location":"generated/actions/erb/#1-example","text":"# Example `erb` template: # Variable1 <%= var1 %> # Variable2 <%= var2 %> # <% for item in var3 %> # <%= item %> # <% end %> erb( template: \"1.erb\", destination: \"/tmp/rendered.out\", placeholders: { :var1 => 123, :var2 => \"string\", :var3 => [\"element1\", \"element2\"] } )","title":"1 Example"},{"location":"generated/actions/erb/#parameters","text":"Key Description Default template ERB Template File destination Destination file placeholders Placeholders given as a hash {} trim_mode Trim mode applied to the ERB * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/erb/#documentation","text":"To show the documentation in your terminal, run fastlane action erb","title":"Documentation"},{"location":"generated/actions/erb/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run erb To pass parameters, make use of the : symbol, for example fastlane run erb parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/erb/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/fastlane_version/","text":"fastlane_version Alias for the min_fastlane_version action Add this to your Fastfile to require a certain version of fastlane . Use it if you use an action that just recently came out and you need it. fastlane_version Supported platforms ios, android, mac Author @KrauseFx 1 Example min_fastlane_version(\"1.50.0\") Documentation To show the documentation in your terminal, run fastlane action fastlane_version CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run fastlane_version To pass parameters, make use of the : symbol, for example fastlane run fastlane_version parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Fastlane version"},{"location":"generated/actions/fastlane_version/#fastlane_version","text":"Alias for the min_fastlane_version action Add this to your Fastfile to require a certain version of fastlane . Use it if you use an action that just recently came out and you need it. fastlane_version Supported platforms ios, android, mac Author @KrauseFx","title":"fastlane_version"},{"location":"generated/actions/fastlane_version/#1-example","text":"min_fastlane_version(\"1.50.0\")","title":"1 Example"},{"location":"generated/actions/fastlane_version/#documentation","text":"To show the documentation in your terminal, run fastlane action fastlane_version","title":"Documentation"},{"location":"generated/actions/fastlane_version/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run fastlane_version To pass parameters, make use of the : symbol, for example fastlane run fastlane_version parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/fastlane_version/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/flock/","text":"flock Send a message to a Flock group To obtain the token, create a new incoming message webhook in your Flock admin panel. flock Supported platforms ios, android, mac Author @Manav 1 Example flock( message: \"Hello\", token: \"xxx\" ) Parameters Key Description Default message Message text token Token for the Flock incoming webhook base_url Base URL of the Flock incoming message webhook https://api.flock.co/hooks/sendMessage * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action flock CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run flock To pass parameters, make use of the : symbol, for example fastlane run flock parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Flock"},{"location":"generated/actions/flock/#flock","text":"Send a message to a Flock group To obtain the token, create a new incoming message webhook in your Flock admin panel. flock Supported platforms ios, android, mac Author @Manav","title":"flock"},{"location":"generated/actions/flock/#1-example","text":"flock( message: \"Hello\", token: \"xxx\" )","title":"1 Example"},{"location":"generated/actions/flock/#parameters","text":"Key Description Default message Message text token Token for the Flock incoming webhook base_url Base URL of the Flock incoming message webhook https://api.flock.co/hooks/sendMessage * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/flock/#documentation","text":"To show the documentation in your terminal, run fastlane action flock","title":"Documentation"},{"location":"generated/actions/flock/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run flock To pass parameters, make use of the : symbol, for example fastlane run flock parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/flock/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/frame_screenshots/","text":"frame_screenshots Adds device frames around all screenshots (via frameit ) Easily put your screenshots into the right device frames frameit allows you to put a gorgeous device frame around your iOS, macOS and Android screenshots just by running one simple command. Use frameit to prepare perfect screenshots for the App Store, your website, QA or emails. Features \u2022 Usage \u2022 Tips frameit is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Features Frame screenshot Put a gorgeous device frame around your iOS, macOS and Android screenshots just by running one simple command. Support for: iPhone, iPad and Mac Set of Android devices Portrait and Landscape modes Several device frame colors The complete and updated list of supported devices and colors can be found here Here is a nice gif, that shows frameit in action: Advanced Features Put framed screenshot on colored background, define padding add text above or under framed screenshot keyword + text choose text font and color multi line text \"intelligent\" positioning of text that always looks good(ish) Results The frameit 2.0 update was kindly sponsored by MindNode , seen in the screenshots above. The first time that frameit is executed the frames will be downloaded automatically. Originally the frames are coming from Facebook frameset and they are kept on this repo . More information about this process and how to update the frames can be found here Usage Basic Usage Why should you have to use Photoshop, just to add a frame around your screenshots? Just navigate to your folder of screenshots and use the following command (iOS and Mac OS are default platforms for backward compatibility): fastlane frameit To frame Android screenshots: fastlane frameit android To use the silver version of the frames: fastlane frameit silver To download the latest frames fastlane frameit download_frames Note: When using frameit without titles on top, the screenshots will have the full resolution, which means they can't be uploaded to the App Store directly. They are supposed to be used for websites, print media and emails. Check out the section below to use the screenshots for the App Store. Advanced Usage (optional) Text and Background With frameit it's possible to add a custom background and text below or above the framed screenshots in fonts and colors you define. A working example can be found in the fastlane examples project. Framefile.json The Framefile allows to define general and screenshot specific information. It has the following general JSON structure: { \"device_frame_version\": \"latest\", \"default\": { ... }, \"data\": [ ... ] } General parameters The general parameters are defined in the default key and can be: Key Description Default value background The background that should be used for the framed screenshot. Specify the (relative) path to the image file (e.g. *.jpg ). This parameter is mandatory. NA keyword An object that contains up to 3 keys to describe the optional keyword. See table below. NA title An object that contains up to 3 keys to describe the mandatory title. See table below. NA stack_title Specifies whether frameit should display the keyword above the title when both keyword and title are defined. If it is false, the title and keyword will be displayed side by side when both keyword and title are defined. false title_below_image Specifies whether frameit should place the title and optional keyword below the device frame. If it is false, it will be placed above the device frame. false show_complete_frame Specifies whether frameit should shrink the device frame so that it is completely shown in the framed screenshot. If it is false, clipping of the device frame might occur at the bottom (when title_below_image is false ) or top (when title_below_image is true ) of the framed screenshot. false padding The content of the framed screenshot will be resized to match the specified padding around all edges. The vertical padding is also applied between the text and the top or bottom (depending on title_below_image ) of the device frame. There are 3 different options of specifying the padding: 1. Default: An integer value that defines both horizontal and vertical padding in pixels. 2. A string that defines (different) padding values in pixels for horizontal and vertical padding. The syntax is \"x\" , e.g. \"30x60\" . 3. A string that defines (different) padding values in percentage for horizontal and vertical padding. The syntax is \"%x%\" , e.g. \"5%x10%\" . Note: The percentage is calculated from the smallest image dimension (height or width). A combination of option 2 and 3 is possible, e.g. \"5%x40\" . 50 interline_spacing Specifies whether frameit should add or subtract this many pixels between the individual lines of text. This only applies to a multi-line title and/or keyword to expand or squash together the individual lines of text. 0 font_scale_factor Specifies whether frameit should increase or decrease the font size of the text. Is ignored for keyword or title , if font_size is specified. 0.1 frame Overrides the color of the frame to be used. (Valid values are BLACK , WHITE , GOLD and ROSE_GOLD ) NA title_min_height Specifies a height always reserved for the title. Value can be a percentage of the height or an absolute value. The device will be placed below (or above) this area. Convenient to ensure the device top (or bottom) will be consistently placed at the same height on the different screenshots. NA use_platform Overrides the platform used for the screenshot. Valid values are IOS , ANDROID and ANY . IOS force_device_type Forces a specific device. Valid values are: Huawei P8, Motorola Moto E, Motorola Moto G, Nexus 4, Nexus 5X, Nexus 6P, Nexus 9, Samsung Galaxy Grand Prime, Samsung Galaxy Note 5, Samsung Galaxy S Duos, Samsung Galaxy S3, Samsung Galaxy S5, Samsung Galaxy S7, Samsung Galaxy S8, Samsung Galaxy S9, iPhone 5s, iPhone 5c, iPhone SE, iPhone 6s, iPhone 6s Plus, iPhone 7, iPhone 7 Plus, iPhone 8, iPhone 8 Plus, iPhone X, iPhone XS, iPhone XR, iPhone XS Max, iPad Air 2, iPad Mini 4, iPad Pro, MacBook, Google Pixel 3, Google Pixel 3 XL, HTC One A9, HTC One M8 NA Specific parameters The screenshot specific parameters are related to the keyword and title texts. These are defined in the data key. This is an array with the following keys for each screenshot: Key Description filter This is mandatory to link the individual configuration to the screenshot, based on part of the file name. Example: If a screenshot is named iPhone 8-Brainstorming.png you can use value Brainstorming for filter . If there are more than one filter matching an entry, they will all be applied in order (which means that the last one has the highest precedence). All other keys from that array element will only be applied on this specific screenshot. keyword Similar use as in default , except that parameter text can be used here because it is screenshot specific. title Similar use as in default , except that parameter text can be used here because it is screenshot specific. frame Overrides the color of the frame to be used. (Valid values are BLACK , WHITE , GOLD and ROSE_GOLD ) use_platform Overrides the platform used for the screenshot. Valid values are IOS , ANDROID and ANY . force_device_type Forces a specific device. Valid values are the same as for the general parameter. Framefile keyword and title parameters The keyword and title parameters are both used in default and data . They both consist of the following optional keys: Key Description Default value color The font color for the text. Specify a HEX/HTML color code. #000000 (black) font The font family for the text. Specify the (relative) path to the font file (e.g. an OpenType Font). The default imagemagick font, which is system dependent. font_size The font size for the text specified in points. If not specified or 0 , font will be scaled automatically to fit the available space. frameit still shrinks the text, if it would not fit. NA font_weight The font weight for the text . Specify an integer value (e.g. 900). NA text The text that should be used for the keyword or title . Note: If you want to use localised text, use .strings files . NA Example { \"device_frame_version\": \"latest\", \"default\": { \"keyword\": { \"font\": \"./fonts/MyFont-Rg.otf\" }, \"title\": { \"font\": \"./fonts/MyFont-Th.otf\", \"font_size\": 128, \"color\": \"#545454\" }, \"background\": \"./background.jpg\", \"padding\": 50, \"show_complete_frame\": false, \"stack_title\" : false, \"title_below_image\": true, \"frame\": \"WHITE\", \"use_platform\": \"IOS\" }, \"data\": [ { \"filter\": \"Brainstorming\", \"keyword\": { \"color\": \"#d21559\" } }, { \"filter\": \"Organizing\", \"keyword\": { \"color\": \"#feb909\" }, \"frame\": \"ROSE_GOLD\" }, { \"filter\": \"Sharing\", \"keyword\": { \"color\": \"#aa4dbc\" } }, { \"filter\": \"Styling\", \"keyword\": { \"color\": \"#31bb48\" } }, { \"filter\": \"Android\", \"use_platform\": \"ANDROID\" } ] } You can find a more complex configuration to also support Chinese, Japanese and Korean languages. The Framefile.json should be in the screenshots folder, as seen in the example . .strings files To define the title and optionally the keyword, put two .strings files into the language folder (e.g. en-US in the example project ) The keyword.strings and title.strings are standard .strings file you already use for your iOS apps, making it easy to use your existing translation service to get localized titles. Notes These .strings files MUST be utf-8 (UTF-8) or utf-16 encoded (UTF-16 BE with BOM). They also must begin with an empty line. If you are having trouble see issue #1740 You MUST provide a background if you want titles. frameit will not add the titles if a background is not specified. Screenshot orientation By default frameit adds a frame to your screenshot based on an orientation you took it. For a portrait (vertical orientation) it is going to add portrait frame and for a landscape (horizontal orientation) - landscape left (= Home button on the left side ). One way to override the default behavior is editing the file name by adding force_landscaperight to the end. force_orientation_block If the default behavior doesn't fit your needs and you don't want or can't rename your screenshots, you can customize frameit 's orientation behavior by setting a force_orientation_block parameter. The valid values are: :landscape_left (home button on the left side), :landscape_right (home button on the right side), :portrait (home button on the bottom), nil (home button on the right side). Examples # It matches the filename to the framed device orientation frameit( path: \"./fastlane/screenshots\", force_orientation_block: proc do |filename| case filename when \"iPad Pro (12.9-inch)-01LoginScreen\" :landscape_right when \"iPhone 6 Plus-01LoginScreen\" :portrait # and so on end end ) # It frames the screenshots in landscape right whenever the filename contains `landscape` word frameit( silver: true, path: \"./fastlane/screenshots\", force_orientation_block: proc do |filename| f = filename.downcase if f.include?(\"landscape\") :landscape_right end end ) Mac With frameit it's possible to also frame macOS Application screenshots. You have to provide the following: A (relative) path to a background image file, which should contain both the background and the Mac. The offset information so frameit knows where to position your screenshot on the background : offset : A string that specifies the horizontal and vertical offset in pixels, with respect to the top left corner of the background image. The syntax is \"++\" , e.g. \"+200+150\" . titleHeight : The height in pixels that should be used for the title. Example { \"default\": { \"title\": { \"color\": \"#545454\" }, \"background\": \"Mac.jpg\", \"offset\": { \"offset\": \"+676+479\", \"titleHeight\": 320 } }, \"data\": [ { \"filter\": \"Brainstorming\", \"keyword\": { \"color\": \"#d21559\" } } ] } Check out the MindNode example project . Tips Generate localized screenshots Check out snapshot to automatically generate screenshots using UI Automation . Resume framing Framing screenshots is a slow operation. In case you need to resume framing, or just frame a couple updated screenshots again, you can rely on the --resume flag. Only screenshots which have not been framed yet \u2013 or for which there isn't an up-to-date framed image \u2013 will be framed. This feature uses the file modification dates and will reframe screenshots if the screenshot is newer than the framed file. Upload screenshots Use deliver to upload iOS screenshots to App Store Connect, or supply to upload Android screenshots to Play Store completely automatically \ud83d\ude80 Use a clean status bar You can set override_status_bar to true in snapshot to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available. Examples # Sets the time to 9:41AM with full battery and reception, with the default carrier name: Carrier capture_ios_screenshots( override_status_bar: true ) # Set the time to 9:41AM, battery at 75% and charging, on the TELUS LTE network capture_ios_screenshots( override_status_bar: true, override_status_bar_arguments: \"--time 9:41 --dataNetwork lte --cellularMode active --cellularBars 4 --batteryState charging --batteryLevel 75 --operatorName TELUS\" ) Gray artifacts around text If you run into any quality issues, like having a border around the font, it usually helps to just re-install imagemagick . You can do so by running brew uninstall imagemagick brew install imagemagick Uninstall gem uninstall fastlane rm -rf ~/.frameit frame_screenshots Supported platforms ios, android, mac Author @KrauseFx 6 Examples frame_screenshots frameit # alias for \"frame_screenshots\" frame_screenshots(use_platform: \"ANDROID\") frame_screenshots(silver: true) frame_screenshots(path: \"/screenshots\") frame_screenshots(rose_gold: true) Parameters Key Description Default white Use white device frames silver Use white device frames. Alias for :white rose_gold Use rose gold device frames. Alias for :rose_gold gold Use gold device frames. Alias for :gold force_device_type Forces a given device type, useful for Mac screenshots, as their sizes vary use_legacy_iphone5s Use iPhone 5s instead of iPhone SE frames false use_legacy_iphone6s Use iPhone 6s frames instead of iPhone 7 frames false use_legacy_iphone7 Use iPhone 7 frames instead of iPhone 8 frames false use_legacy_iphonex Use iPhone X instead of iPhone XS frames false use_legacy_iphonexr Use iPhone XR instead of iPhone 11 frames false use_legacy_iphonexs Use iPhone XS instead of iPhone 11 Pro frames false use_legacy_iphonexsmax Use iPhone XS Max instead of iPhone 11 Pro Max frames false force_orientation_block [Advanced] A block to customize your screenshots' device orientation * debug_mode Output debug information in framed screenshots false resume Resume frameit instead of reprocessing all screenshots false use_platform Choose a platform, the valid options are IOS, ANDROID and ANY (default is either general platform defined in the fastfile or IOS to ensure backward compatibility) * path The path to the directory containing the screenshots * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action frame_screenshots CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run frame_screenshots To pass parameters, make use of the : symbol, for example fastlane run frame_screenshots parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Frame screenshots"},{"location":"generated/actions/frame_screenshots/#frame_screenshots","text":"Adds device frames around all screenshots (via frameit )","title":"frame_screenshots"},{"location":"generated/actions/frame_screenshots/#features","text":"","title":"Features"},{"location":"generated/actions/frame_screenshots/#frame-screenshot","text":"Put a gorgeous device frame around your iOS, macOS and Android screenshots just by running one simple command. Support for: iPhone, iPad and Mac Set of Android devices Portrait and Landscape modes Several device frame colors The complete and updated list of supported devices and colors can be found here Here is a nice gif, that shows frameit in action:","title":"Frame screenshot"},{"location":"generated/actions/frame_screenshots/#advanced-features","text":"Put framed screenshot on colored background, define padding add text above or under framed screenshot keyword + text choose text font and color multi line text \"intelligent\" positioning of text that always looks good(ish)","title":"Advanced Features"},{"location":"generated/actions/frame_screenshots/#results","text":"","title":"Results"},{"location":"generated/actions/frame_screenshots/#usage","text":"","title":"Usage"},{"location":"generated/actions/frame_screenshots/#basic-usage","text":"Why should you have to use Photoshop, just to add a frame around your screenshots? Just navigate to your folder of screenshots and use the following command (iOS and Mac OS are default platforms for backward compatibility): fastlane frameit To frame Android screenshots: fastlane frameit android To use the silver version of the frames: fastlane frameit silver To download the latest frames fastlane frameit download_frames Note: When using frameit without titles on top, the screenshots will have the full resolution, which means they can't be uploaded to the App Store directly. They are supposed to be used for websites, print media and emails. Check out the section below to use the screenshots for the App Store.","title":"Basic Usage"},{"location":"generated/actions/frame_screenshots/#advanced-usage-optional","text":"","title":"Advanced Usage (optional)"},{"location":"generated/actions/frame_screenshots/#mac","text":"With frameit it's possible to also frame macOS Application screenshots. You have to provide the following: A (relative) path to a background image file, which should contain both the background and the Mac. The offset information so frameit knows where to position your screenshot on the background : offset : A string that specifies the horizontal and vertical offset in pixels, with respect to the top left corner of the background image. The syntax is \"++\" , e.g. \"+200+150\" . titleHeight : The height in pixels that should be used for the title.","title":"Mac"},{"location":"generated/actions/frame_screenshots/#example_1","text":"{ \"default\": { \"title\": { \"color\": \"#545454\" }, \"background\": \"Mac.jpg\", \"offset\": { \"offset\": \"+676+479\", \"titleHeight\": 320 } }, \"data\": [ { \"filter\": \"Brainstorming\", \"keyword\": { \"color\": \"#d21559\" } } ] } Check out the MindNode example project .","title":"Example"},{"location":"generated/actions/frame_screenshots/#tips","text":"","title":"Tips"},{"location":"generated/actions/frame_screenshots/#generate-localized-screenshots","text":"Check out snapshot to automatically generate screenshots using UI Automation .","title":"Generate localized screenshots"},{"location":"generated/actions/frame_screenshots/#resume-framing","text":"Framing screenshots is a slow operation. In case you need to resume framing, or just frame a couple updated screenshots again, you can rely on the --resume flag. Only screenshots which have not been framed yet \u2013 or for which there isn't an up-to-date framed image \u2013 will be framed. This feature uses the file modification dates and will reframe screenshots if the screenshot is newer than the framed file.","title":"Resume framing"},{"location":"generated/actions/frame_screenshots/#upload-screenshots","text":"Use deliver to upload iOS screenshots to App Store Connect, or supply to upload Android screenshots to Play Store completely automatically \ud83d\ude80","title":"Upload screenshots"},{"location":"generated/actions/frame_screenshots/#use-a-clean-status-bar","text":"You can set override_status_bar to true in snapshot to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available.","title":"Use a clean status bar"},{"location":"generated/actions/frame_screenshots/#gray-artifacts-around-text","text":"If you run into any quality issues, like having a border around the font, it usually helps to just re-install imagemagick . You can do so by running brew uninstall imagemagick brew install imagemagick","title":"Gray artifacts around text"},{"location":"generated/actions/frame_screenshots/#uninstall","text":"gem uninstall fastlane rm -rf ~/.frameit frame_screenshots Supported platforms ios, android, mac Author @KrauseFx","title":"Uninstall"},{"location":"generated/actions/frame_screenshots/#6-examples","text":"frame_screenshots frameit # alias for \"frame_screenshots\" frame_screenshots(use_platform: \"ANDROID\") frame_screenshots(silver: true) frame_screenshots(path: \"/screenshots\") frame_screenshots(rose_gold: true)","title":"6 Examples"},{"location":"generated/actions/frame_screenshots/#parameters","text":"Key Description Default white Use white device frames silver Use white device frames. Alias for :white rose_gold Use rose gold device frames. Alias for :rose_gold gold Use gold device frames. Alias for :gold force_device_type Forces a given device type, useful for Mac screenshots, as their sizes vary use_legacy_iphone5s Use iPhone 5s instead of iPhone SE frames false use_legacy_iphone6s Use iPhone 6s frames instead of iPhone 7 frames false use_legacy_iphone7 Use iPhone 7 frames instead of iPhone 8 frames false use_legacy_iphonex Use iPhone X instead of iPhone XS frames false use_legacy_iphonexr Use iPhone XR instead of iPhone 11 frames false use_legacy_iphonexs Use iPhone XS instead of iPhone 11 Pro frames false use_legacy_iphonexsmax Use iPhone XS Max instead of iPhone 11 Pro Max frames false force_orientation_block [Advanced] A block to customize your screenshots' device orientation * debug_mode Output debug information in framed screenshots false resume Resume frameit instead of reprocessing all screenshots false use_platform Choose a platform, the valid options are IOS, ANDROID and ANY (default is either general platform defined in the fastfile or IOS to ensure backward compatibility) * path The path to the directory containing the screenshots * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/frame_screenshots/#documentation","text":"To show the documentation in your terminal, run fastlane action frame_screenshots","title":"Documentation"},{"location":"generated/actions/frame_screenshots/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run frame_screenshots To pass parameters, make use of the : symbol, for example fastlane run frame_screenshots parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/frame_screenshots/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/frameit/","text":"frameit Alias for the frame_screenshots action Easily put your screenshots into the right device frames frameit allows you to put a gorgeous device frame around your iOS, macOS and Android screenshots just by running one simple command. Use frameit to prepare perfect screenshots for the App Store, your website, QA or emails. Features \u2022 Usage \u2022 Tips frameit is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Features Frame screenshot Put a gorgeous device frame around your iOS, macOS and Android screenshots just by running one simple command. Support for: iPhone, iPad and Mac Set of Android devices Portrait and Landscape modes Several device frame colors The complete and updated list of supported devices and colors can be found here Here is a nice gif, that shows frameit in action: Advanced Features Put framed screenshot on colored background, define padding add text above or under framed screenshot keyword + text choose text font and color multi line text \"intelligent\" positioning of text that always looks good(ish) Results The frameit 2.0 update was kindly sponsored by MindNode , seen in the screenshots above. The first time that frameit is executed the frames will be downloaded automatically. Originally the frames are coming from Facebook frameset and they are kept on this repo . More information about this process and how to update the frames can be found here Usage Basic Usage Why should you have to use Photoshop, just to add a frame around your screenshots? Just navigate to your folder of screenshots and use the following command (iOS and Mac OS are default platforms for backward compatibility): fastlane frameit To frame Android screenshots: fastlane frameit android To use the silver version of the frames: fastlane frameit silver To download the latest frames fastlane frameit download_frames Note: When using frameit without titles on top, the screenshots will have the full resolution, which means they can't be uploaded to the App Store directly. They are supposed to be used for websites, print media and emails. Check out the section below to use the screenshots for the App Store. Advanced Usage (optional) Text and Background With frameit it's possible to add a custom background and text below or above the framed screenshots in fonts and colors you define. A working example can be found in the fastlane examples project. Framefile.json The Framefile allows to define general and screenshot specific information. It has the following general JSON structure: { \"device_frame_version\": \"latest\", \"default\": { ... }, \"data\": [ ... ] } General parameters The general parameters are defined in the default key and can be: Key Description Default value background The background that should be used for the framed screenshot. Specify the (relative) path to the image file (e.g. *.jpg ). This parameter is mandatory. NA keyword An object that contains up to 3 keys to describe the optional keyword. See table below. NA title An object that contains up to 3 keys to describe the mandatory title. See table below. NA stack_title Specifies whether frameit should display the keyword above the title when both keyword and title are defined. If it is false, the title and keyword will be displayed side by side when both keyword and title are defined. false title_below_image Specifies whether frameit should place the title and optional keyword below the device frame. If it is false, it will be placed above the device frame. false show_complete_frame Specifies whether frameit should shrink the device frame so that it is completely shown in the framed screenshot. If it is false, clipping of the device frame might occur at the bottom (when title_below_image is false ) or top (when title_below_image is true ) of the framed screenshot. false padding The content of the framed screenshot will be resized to match the specified padding around all edges. The vertical padding is also applied between the text and the top or bottom (depending on title_below_image ) of the device frame. There are 3 different options of specifying the padding: 1. Default: An integer value that defines both horizontal and vertical padding in pixels. 2. A string that defines (different) padding values in pixels for horizontal and vertical padding. The syntax is \"x\" , e.g. \"30x60\" . 3. A string that defines (different) padding values in percentage for horizontal and vertical padding. The syntax is \"%x%\" , e.g. \"5%x10%\" . Note: The percentage is calculated from the smallest image dimension (height or width). A combination of option 2 and 3 is possible, e.g. \"5%x40\" . 50 interline_spacing Specifies whether frameit should add or subtract this many pixels between the individual lines of text. This only applies to a multi-line title and/or keyword to expand or squash together the individual lines of text. 0 font_scale_factor Specifies whether frameit should increase or decrease the font size of the text. Is ignored for keyword or title , if font_size is specified. 0.1 frame Overrides the color of the frame to be used. (Valid values are BLACK , WHITE , GOLD and ROSE_GOLD ) NA title_min_height Specifies a height always reserved for the title. Value can be a percentage of the height or an absolute value. The device will be placed below (or above) this area. Convenient to ensure the device top (or bottom) will be consistently placed at the same height on the different screenshots. NA use_platform Overrides the platform used for the screenshot. Valid values are IOS , ANDROID and ANY . IOS force_device_type Forces a specific device. Valid values are: Huawei P8, Motorola Moto E, Motorola Moto G, Nexus 4, Nexus 5X, Nexus 6P, Nexus 9, Samsung Galaxy Grand Prime, Samsung Galaxy Note 5, Samsung Galaxy S Duos, Samsung Galaxy S3, Samsung Galaxy S5, Samsung Galaxy S7, Samsung Galaxy S8, Samsung Galaxy S9, iPhone 5s, iPhone 5c, iPhone SE, iPhone 6s, iPhone 6s Plus, iPhone 7, iPhone 7 Plus, iPhone 8, iPhone 8 Plus, iPhone X, iPhone XS, iPhone XR, iPhone XS Max, iPad Air 2, iPad Mini 4, iPad Pro, MacBook, Google Pixel 3, Google Pixel 3 XL, HTC One A9, HTC One M8 NA Specific parameters The screenshot specific parameters are related to the keyword and title texts. These are defined in the data key. This is an array with the following keys for each screenshot: Key Description filter This is mandatory to link the individual configuration to the screenshot, based on part of the file name. Example: If a screenshot is named iPhone 8-Brainstorming.png you can use value Brainstorming for filter . If there are more than one filter matching an entry, they will all be applied in order (which means that the last one has the highest precedence). All other keys from that array element will only be applied on this specific screenshot. keyword Similar use as in default , except that parameter text can be used here because it is screenshot specific. title Similar use as in default , except that parameter text can be used here because it is screenshot specific. frame Overrides the color of the frame to be used. (Valid values are BLACK , WHITE , GOLD and ROSE_GOLD ) use_platform Overrides the platform used for the screenshot. Valid values are IOS , ANDROID and ANY . force_device_type Forces a specific device. Valid values are the same as for the general parameter. Framefile keyword and title parameters The keyword and title parameters are both used in default and data . They both consist of the following optional keys: Key Description Default value color The font color for the text. Specify a HEX/HTML color code. #000000 (black) font The font family for the text. Specify the (relative) path to the font file (e.g. an OpenType Font). The default imagemagick font, which is system dependent. font_size The font size for the text specified in points. If not specified or 0 , font will be scaled automatically to fit the available space. frameit still shrinks the text, if it would not fit. NA font_weight The font weight for the text . Specify an integer value (e.g. 900). NA text The text that should be used for the keyword or title . Note: If you want to use localised text, use .strings files . NA Example { \"device_frame_version\": \"latest\", \"default\": { \"keyword\": { \"font\": \"./fonts/MyFont-Rg.otf\" }, \"title\": { \"font\": \"./fonts/MyFont-Th.otf\", \"font_size\": 128, \"color\": \"#545454\" }, \"background\": \"./background.jpg\", \"padding\": 50, \"show_complete_frame\": false, \"stack_title\" : false, \"title_below_image\": true, \"frame\": \"WHITE\", \"use_platform\": \"IOS\" }, \"data\": [ { \"filter\": \"Brainstorming\", \"keyword\": { \"color\": \"#d21559\" } }, { \"filter\": \"Organizing\", \"keyword\": { \"color\": \"#feb909\" }, \"frame\": \"ROSE_GOLD\" }, { \"filter\": \"Sharing\", \"keyword\": { \"color\": \"#aa4dbc\" } }, { \"filter\": \"Styling\", \"keyword\": { \"color\": \"#31bb48\" } }, { \"filter\": \"Android\", \"use_platform\": \"ANDROID\" } ] } You can find a more complex configuration to also support Chinese, Japanese and Korean languages. The Framefile.json should be in the screenshots folder, as seen in the example . .strings files To define the title and optionally the keyword, put two .strings files into the language folder (e.g. en-US in the example project ) The keyword.strings and title.strings are standard .strings file you already use for your iOS apps, making it easy to use your existing translation service to get localized titles. Notes These .strings files MUST be utf-8 (UTF-8) or utf-16 encoded (UTF-16 BE with BOM). They also must begin with an empty line. If you are having trouble see issue #1740 You MUST provide a background if you want titles. frameit will not add the titles if a background is not specified. Screenshot orientation By default frameit adds a frame to your screenshot based on an orientation you took it. For a portrait (vertical orientation) it is going to add portrait frame and for a landscape (horizontal orientation) - landscape left (= Home button on the left side ). One way to override the default behavior is editing the file name by adding force_landscaperight to the end. force_orientation_block If the default behavior doesn't fit your needs and you don't want or can't rename your screenshots, you can customize frameit 's orientation behavior by setting a force_orientation_block parameter. The valid values are: :landscape_left (home button on the left side), :landscape_right (home button on the right side), :portrait (home button on the bottom), nil (home button on the right side). Examples # It matches the filename to the framed device orientation frameit( path: \"./fastlane/screenshots\", force_orientation_block: proc do |filename| case filename when \"iPad Pro (12.9-inch)-01LoginScreen\" :landscape_right when \"iPhone 6 Plus-01LoginScreen\" :portrait # and so on end end ) # It frames the screenshots in landscape right whenever the filename contains `landscape` word frameit( silver: true, path: \"./fastlane/screenshots\", force_orientation_block: proc do |filename| f = filename.downcase if f.include?(\"landscape\") :landscape_right end end ) Mac With frameit it's possible to also frame macOS Application screenshots. You have to provide the following: A (relative) path to a background image file, which should contain both the background and the Mac. The offset information so frameit knows where to position your screenshot on the background : offset : A string that specifies the horizontal and vertical offset in pixels, with respect to the top left corner of the background image. The syntax is \"++\" , e.g. \"+200+150\" . titleHeight : The height in pixels that should be used for the title. Example { \"default\": { \"title\": { \"color\": \"#545454\" }, \"background\": \"Mac.jpg\", \"offset\": { \"offset\": \"+676+479\", \"titleHeight\": 320 } }, \"data\": [ { \"filter\": \"Brainstorming\", \"keyword\": { \"color\": \"#d21559\" } } ] } Check out the MindNode example project . Tips Generate localized screenshots Check out snapshot to automatically generate screenshots using UI Automation . Resume framing Framing screenshots is a slow operation. In case you need to resume framing, or just frame a couple updated screenshots again, you can rely on the --resume flag. Only screenshots which have not been framed yet \u2013 or for which there isn't an up-to-date framed image \u2013 will be framed. This feature uses the file modification dates and will reframe screenshots if the screenshot is newer than the framed file. Upload screenshots Use deliver to upload iOS screenshots to App Store Connect, or supply to upload Android screenshots to Play Store completely automatically \ud83d\ude80 Use a clean status bar You can set override_status_bar to true in snapshot to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available. Examples # Sets the time to 9:41AM with full battery and reception, with the default carrier name: Carrier capture_ios_screenshots( override_status_bar: true ) # Set the time to 9:41AM, battery at 75% and charging, on the TELUS LTE network capture_ios_screenshots( override_status_bar: true, override_status_bar_arguments: \"--time 9:41 --dataNetwork lte --cellularMode active --cellularBars 4 --batteryState charging --batteryLevel 75 --operatorName TELUS\" ) Gray artifacts around text If you run into any quality issues, like having a border around the font, it usually helps to just re-install imagemagick . You can do so by running brew uninstall imagemagick brew install imagemagick Uninstall gem uninstall fastlane rm -rf ~/.frameit frameit Supported platforms ios, android, mac Author @KrauseFx 6 Examples frame_screenshots frameit # alias for \"frame_screenshots\" frame_screenshots(use_platform: \"ANDROID\") frame_screenshots(silver: true) frame_screenshots(path: \"/screenshots\") frame_screenshots(rose_gold: true) Parameters Key Description Default white Use white device frames silver Use white device frames. Alias for :white rose_gold Use rose gold device frames. Alias for :rose_gold gold Use gold device frames. Alias for :gold force_device_type Forces a given device type, useful for Mac screenshots, as their sizes vary use_legacy_iphone5s Use iPhone 5s instead of iPhone SE frames false use_legacy_iphone6s Use iPhone 6s frames instead of iPhone 7 frames false use_legacy_iphone7 Use iPhone 7 frames instead of iPhone 8 frames false use_legacy_iphonex Use iPhone X instead of iPhone XS frames false use_legacy_iphonexr Use iPhone XR instead of iPhone 11 frames false use_legacy_iphonexs Use iPhone XS instead of iPhone 11 Pro frames false use_legacy_iphonexsmax Use iPhone XS Max instead of iPhone 11 Pro Max frames false force_orientation_block [Advanced] A block to customize your screenshots' device orientation * debug_mode Output debug information in framed screenshots false resume Resume frameit instead of reprocessing all screenshots false use_platform Choose a platform, the valid options are IOS, ANDROID and ANY (default is either general platform defined in the fastfile or IOS to ensure backward compatibility) * path The path to the directory containing the screenshots * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action frameit CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run frameit To pass parameters, make use of the : symbol, for example fastlane run frameit parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Frameit"},{"location":"generated/actions/frameit/#frameit","text":"Alias for the frame_screenshots action","title":"frameit"},{"location":"generated/actions/frameit/#features","text":"","title":"Features"},{"location":"generated/actions/frameit/#frame-screenshot","text":"Put a gorgeous device frame around your iOS, macOS and Android screenshots just by running one simple command. Support for: iPhone, iPad and Mac Set of Android devices Portrait and Landscape modes Several device frame colors The complete and updated list of supported devices and colors can be found here Here is a nice gif, that shows frameit in action:","title":"Frame screenshot"},{"location":"generated/actions/frameit/#advanced-features","text":"Put framed screenshot on colored background, define padding add text above or under framed screenshot keyword + text choose text font and color multi line text \"intelligent\" positioning of text that always looks good(ish)","title":"Advanced Features"},{"location":"generated/actions/frameit/#results","text":"","title":"Results"},{"location":"generated/actions/frameit/#usage","text":"","title":"Usage"},{"location":"generated/actions/frameit/#basic-usage","text":"Why should you have to use Photoshop, just to add a frame around your screenshots? Just navigate to your folder of screenshots and use the following command (iOS and Mac OS are default platforms for backward compatibility): fastlane frameit To frame Android screenshots: fastlane frameit android To use the silver version of the frames: fastlane frameit silver To download the latest frames fastlane frameit download_frames Note: When using frameit without titles on top, the screenshots will have the full resolution, which means they can't be uploaded to the App Store directly. They are supposed to be used for websites, print media and emails. Check out the section below to use the screenshots for the App Store.","title":"Basic Usage"},{"location":"generated/actions/frameit/#advanced-usage-optional","text":"","title":"Advanced Usage (optional)"},{"location":"generated/actions/frameit/#mac","text":"With frameit it's possible to also frame macOS Application screenshots. You have to provide the following: A (relative) path to a background image file, which should contain both the background and the Mac. The offset information so frameit knows where to position your screenshot on the background : offset : A string that specifies the horizontal and vertical offset in pixels, with respect to the top left corner of the background image. The syntax is \"++\" , e.g. \"+200+150\" . titleHeight : The height in pixels that should be used for the title.","title":"Mac"},{"location":"generated/actions/frameit/#example_1","text":"{ \"default\": { \"title\": { \"color\": \"#545454\" }, \"background\": \"Mac.jpg\", \"offset\": { \"offset\": \"+676+479\", \"titleHeight\": 320 } }, \"data\": [ { \"filter\": \"Brainstorming\", \"keyword\": { \"color\": \"#d21559\" } } ] } Check out the MindNode example project .","title":"Example"},{"location":"generated/actions/frameit/#tips","text":"","title":"Tips"},{"location":"generated/actions/frameit/#generate-localized-screenshots","text":"Check out snapshot to automatically generate screenshots using UI Automation .","title":"Generate localized screenshots"},{"location":"generated/actions/frameit/#resume-framing","text":"Framing screenshots is a slow operation. In case you need to resume framing, or just frame a couple updated screenshots again, you can rely on the --resume flag. Only screenshots which have not been framed yet \u2013 or for which there isn't an up-to-date framed image \u2013 will be framed. This feature uses the file modification dates and will reframe screenshots if the screenshot is newer than the framed file.","title":"Resume framing"},{"location":"generated/actions/frameit/#upload-screenshots","text":"Use deliver to upload iOS screenshots to App Store Connect, or supply to upload Android screenshots to Play Store completely automatically \ud83d\ude80","title":"Upload screenshots"},{"location":"generated/actions/frameit/#use-a-clean-status-bar","text":"You can set override_status_bar to true in snapshot to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available.","title":"Use a clean status bar"},{"location":"generated/actions/frameit/#gray-artifacts-around-text","text":"If you run into any quality issues, like having a border around the font, it usually helps to just re-install imagemagick . You can do so by running brew uninstall imagemagick brew install imagemagick","title":"Gray artifacts around text"},{"location":"generated/actions/frameit/#uninstall","text":"gem uninstall fastlane rm -rf ~/.frameit frameit Supported platforms ios, android, mac Author @KrauseFx","title":"Uninstall"},{"location":"generated/actions/frameit/#6-examples","text":"frame_screenshots frameit # alias for \"frame_screenshots\" frame_screenshots(use_platform: \"ANDROID\") frame_screenshots(silver: true) frame_screenshots(path: \"/screenshots\") frame_screenshots(rose_gold: true)","title":"6 Examples"},{"location":"generated/actions/frameit/#parameters","text":"Key Description Default white Use white device frames silver Use white device frames. Alias for :white rose_gold Use rose gold device frames. Alias for :rose_gold gold Use gold device frames. Alias for :gold force_device_type Forces a given device type, useful for Mac screenshots, as their sizes vary use_legacy_iphone5s Use iPhone 5s instead of iPhone SE frames false use_legacy_iphone6s Use iPhone 6s frames instead of iPhone 7 frames false use_legacy_iphone7 Use iPhone 7 frames instead of iPhone 8 frames false use_legacy_iphonex Use iPhone X instead of iPhone XS frames false use_legacy_iphonexr Use iPhone XR instead of iPhone 11 frames false use_legacy_iphonexs Use iPhone XS instead of iPhone 11 Pro frames false use_legacy_iphonexsmax Use iPhone XS Max instead of iPhone 11 Pro Max frames false force_orientation_block [Advanced] A block to customize your screenshots' device orientation * debug_mode Output debug information in framed screenshots false resume Resume frameit instead of reprocessing all screenshots false use_platform Choose a platform, the valid options are IOS, ANDROID and ANY (default is either general platform defined in the fastfile or IOS to ensure backward compatibility) * path The path to the directory containing the screenshots * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/frameit/#documentation","text":"To show the documentation in your terminal, run fastlane action frameit","title":"Documentation"},{"location":"generated/actions/frameit/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run frameit To pass parameters, make use of the : symbol, for example fastlane run frameit parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/frameit/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/gcovr/","text":"gcovr Runs test coverage reports for your Xcode project Generate summarized code coverage reports using gcovr gcovr Supported platforms ios Author @dtrenz 1 Example gcovr( html: true, html_details: true, output: \"./code-coverage/report.html\" ) Documentation To show the documentation in your terminal, run fastlane action gcovr CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run gcovr To pass parameters, make use of the : symbol, for example fastlane run gcovr parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Gcovr"},{"location":"generated/actions/gcovr/#gcovr","text":"Runs test coverage reports for your Xcode project Generate summarized code coverage reports using gcovr gcovr Supported platforms ios Author @dtrenz","title":"gcovr"},{"location":"generated/actions/gcovr/#1-example","text":"gcovr( html: true, html_details: true, output: \"./code-coverage/report.html\" )","title":"1 Example"},{"location":"generated/actions/gcovr/#documentation","text":"To show the documentation in your terminal, run fastlane action gcovr","title":"Documentation"},{"location":"generated/actions/gcovr/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run gcovr To pass parameters, make use of the : symbol, for example fastlane run gcovr parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/gcovr/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/get_build_number/","text":"get_build_number Get the build number of your project This action will return the current build number set on your project. You first have to set up your Xcode project, if you haven't done it already: https://developer.apple.com/library/ios/qa/qa1827/_index.html . get_build_number Supported platforms ios, mac Author @Liquidsoul 1 Example build_number = get_build_number(xcodeproj: \"Project.xcodeproj\") Parameters Key Description Default xcodeproj optional, you must specify the path to your main Xcode project if it is not in the project root directory hide_error_when_versioning_disabled Used during fastlane init to hide the error message false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_build_number action generates the following Lane Variables: SharedValue Description SharedValues::BUILD_NUMBER The build number To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action get_build_number CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_build_number To pass parameters, make use of the : symbol, for example fastlane run get_build_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Get build number"},{"location":"generated/actions/get_build_number/#get_build_number","text":"Get the build number of your project This action will return the current build number set on your project. You first have to set up your Xcode project, if you haven't done it already: https://developer.apple.com/library/ios/qa/qa1827/_index.html . get_build_number Supported platforms ios, mac Author @Liquidsoul","title":"get_build_number"},{"location":"generated/actions/get_build_number/#1-example","text":"build_number = get_build_number(xcodeproj: \"Project.xcodeproj\")","title":"1 Example"},{"location":"generated/actions/get_build_number/#parameters","text":"Key Description Default xcodeproj optional, you must specify the path to your main Xcode project if it is not in the project root directory hide_error_when_versioning_disabled Used during fastlane init to hide the error message false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/get_build_number/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_build_number action generates the following Lane Variables: SharedValue Description SharedValues::BUILD_NUMBER The build number To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/get_build_number/#documentation","text":"To show the documentation in your terminal, run fastlane action get_build_number","title":"Documentation"},{"location":"generated/actions/get_build_number/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_build_number To pass parameters, make use of the : symbol, for example fastlane run get_build_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/get_build_number/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/get_build_number_repository/","text":"get_build_number_repository Get the build number from the current repository This action will get the build number according to what the SCM HEAD reports. Currently supported SCMs are svn (uses root revision), git-svn (uses svn revision), git (uses short hash) and mercurial (uses short hash or revision number). There is an option, :use_hg_revision_number , which allows to use mercurial revision number instead of hash. get_build_number_repository Supported platforms ios, mac Author @bartoszj, @pbrooks, @armadsen Returns The build number from the current repository 1 Example get_build_number_repository Parameters Key Description Default use_hg_revision_number Use hg revision number instead of hash (ignored for non-hg repos) false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_build_number_repository action generates the following Lane Variables: SharedValue Description SharedValues::BUILD_NUMBER_REPOSITORY The build number from the current repository To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action get_build_number_repository CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_build_number_repository To pass parameters, make use of the : symbol, for example fastlane run get_build_number_repository parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Get build number repository"},{"location":"generated/actions/get_build_number_repository/#get_build_number_repository","text":"Get the build number from the current repository This action will get the build number according to what the SCM HEAD reports. Currently supported SCMs are svn (uses root revision), git-svn (uses svn revision), git (uses short hash) and mercurial (uses short hash or revision number). There is an option, :use_hg_revision_number , which allows to use mercurial revision number instead of hash. get_build_number_repository Supported platforms ios, mac Author @bartoszj, @pbrooks, @armadsen Returns The build number from the current repository","title":"get_build_number_repository"},{"location":"generated/actions/get_build_number_repository/#1-example","text":"get_build_number_repository","title":"1 Example"},{"location":"generated/actions/get_build_number_repository/#parameters","text":"Key Description Default use_hg_revision_number Use hg revision number instead of hash (ignored for non-hg repos) false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/get_build_number_repository/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_build_number_repository action generates the following Lane Variables: SharedValue Description SharedValues::BUILD_NUMBER_REPOSITORY The build number from the current repository To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/get_build_number_repository/#documentation","text":"To show the documentation in your terminal, run fastlane action get_build_number_repository","title":"Documentation"},{"location":"generated/actions/get_build_number_repository/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_build_number_repository To pass parameters, make use of the : symbol, for example fastlane run get_build_number_repository parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/get_build_number_repository/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/get_certificates/","text":"get_certificates Create new iOS code signing certificates (via cert ) Why? \u2022 Usage \u2022 How does it work? \u2022 Tips cert is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. In the gif we used cert && sigh , which will first create an iOS code signing certificate and then a provisioning profile for your app if cert succeeded. Usage Note : It is recommended to use match according to the codesigning.guide for generating and maintaining your certificates. Use cert directly only if you want full control over what's going on and know more about codesigning. fastlane cert This will check if any of the available signing certificates is installed on your local machine. Only if a new certificate needs to be created, cert will Create a new private key Create a new signing request Generate, downloads and installs the certificate Import all the generated files into your Keychain cert will never revoke your existing certificates. If you can't create any more certificates, cert will raise an exception, which means, you have to revoke one of the existing certificates to make room for a new one. You can pass your Apple ID: fastlane cert -u cert@krausefx.com For a list of available commands run fastlane action cert Keep in mind, there is no way for cert to download existing certificates + private keys from the Apple Developer Portal, as the private key never leaves your computer. Environment Variables Run fastlane action cert to get a list of all available environment variables. Use with sigh cert becomes really interesting when used in fastlane in combination with sigh . Update your Fastfile to contain the following code: lane :beta do cert sigh(force: true) end force: true will make sure to re-generate the provisioning profile on each run. This will result in sigh always using the correct signing certificate, which is installed on the local machine. How is my password stored? cert uses the password manager from fastlane . Take a look the CredentialsManager README for more information. Tips Use 'ProvisionQL' for advanced Quick Look in Finder Install ProvisionQL . It will show you mobileprovision files like this: get_certificates Supported platforms ios Author @KrauseFx 3 Examples get_certificates cert # alias for \"get_certificates\" get_certificates( development: true, username: \"user@email.com\" ) Parameters Key Description Default development Create a development certificate instead of a distribution one false type Create specific certificate type (takes precedence over :development) force Create a certificate even if an existing certificate exists false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * filename The filename of certificate to store output_path The path to a directory in which all certificates and private keys should be stored . keychain_path Path to a custom keychain * keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false platform Set the provisioning profile's platform (ios, macos, tvos) ios * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_certificates action generates the following Lane Variables: SharedValue Description SharedValues::CERT_FILE_PATH The path to the certificate SharedValues::CERT_CERTIFICATE_ID The id of the certificate To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action get_certificates CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_certificates To pass parameters, make use of the : symbol, for example fastlane run get_certificates parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Get certificates"},{"location":"generated/actions/get_certificates/#get_certificates","text":"Create new iOS code signing certificates (via cert ) Why? \u2022 Usage \u2022 How does it work? \u2022 Tips","title":"get_certificates"},{"location":"generated/actions/get_certificates/#usage","text":"Note : It is recommended to use match according to the codesigning.guide for generating and maintaining your certificates. Use cert directly only if you want full control over what's going on and know more about codesigning. fastlane cert This will check if any of the available signing certificates is installed on your local machine. Only if a new certificate needs to be created, cert will Create a new private key Create a new signing request Generate, downloads and installs the certificate Import all the generated files into your Keychain cert will never revoke your existing certificates. If you can't create any more certificates, cert will raise an exception, which means, you have to revoke one of the existing certificates to make room for a new one. You can pass your Apple ID: fastlane cert -u cert@krausefx.com For a list of available commands run fastlane action cert Keep in mind, there is no way for cert to download existing certificates + private keys from the Apple Developer Portal, as the private key never leaves your computer.","title":"Usage"},{"location":"generated/actions/get_certificates/#environment-variables","text":"Run fastlane action cert to get a list of all available environment variables.","title":"Environment Variables"},{"location":"generated/actions/get_certificates/#use-with-sigh","text":"cert becomes really interesting when used in fastlane in combination with sigh . Update your Fastfile to contain the following code: lane :beta do cert sigh(force: true) end force: true will make sure to re-generate the provisioning profile on each run. This will result in sigh always using the correct signing certificate, which is installed on the local machine.","title":"Use with sigh"},{"location":"generated/actions/get_certificates/#how-is-my-password-stored","text":"cert uses the password manager from fastlane . Take a look the CredentialsManager README for more information.","title":"How is my password stored?"},{"location":"generated/actions/get_certificates/#tips","text":"","title":"Tips"},{"location":"generated/actions/get_certificates/#use-provisionql-for-advanced-quick-look-in-finder","text":"Install ProvisionQL . It will show you mobileprovision files like this: get_certificates Supported platforms ios Author @KrauseFx","title":"Use 'ProvisionQL' for advanced Quick Look in Finder"},{"location":"generated/actions/get_certificates/#3-examples","text":"get_certificates cert # alias for \"get_certificates\" get_certificates( development: true, username: \"user@email.com\" )","title":"3 Examples"},{"location":"generated/actions/get_certificates/#parameters","text":"Key Description Default development Create a development certificate instead of a distribution one false type Create specific certificate type (takes precedence over :development) force Create a certificate even if an existing certificate exists false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * filename The filename of certificate to store output_path The path to a directory in which all certificates and private keys should be stored . keychain_path Path to a custom keychain * keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false platform Set the provisioning profile's platform (ios, macos, tvos) ios * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/get_certificates/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_certificates action generates the following Lane Variables: SharedValue Description SharedValues::CERT_FILE_PATH The path to the certificate SharedValues::CERT_CERTIFICATE_ID The id of the certificate To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/get_certificates/#documentation","text":"To show the documentation in your terminal, run fastlane action get_certificates","title":"Documentation"},{"location":"generated/actions/get_certificates/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_certificates To pass parameters, make use of the : symbol, for example fastlane run get_certificates parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/get_certificates/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/get_github_release/","text":"get_github_release This will verify if a given release version is available on GitHub This will return all information about a release. For example: { \"url\"=>\"https://api.github.com/repos/KrauseFx/fastlane/releases/1537713\", \"assets_url\"=>\"https://api.github.com/repos/KrauseFx/fastlane/releases/1537713/assets\", \"upload_url\"=>\"https://uploads.github.com/repos/KrauseFx/fastlane/releases/1537713/assets{?name}\", \"html_url\"=>\"https://github.com/fastlane/fastlane/releases/tag/1.8.0\", \"id\"=>1537713, \"tag_name\"=>\"1.8.0\", \"target_commitish\"=>\"master\", \"name\"=>\"1.8.0 Switch Lanes & Pass Parameters\", \"draft\"=>false, \"author\"=> {\"login\"=>\"KrauseFx\", \"id\"=>869950, \"avatar_url\"=>\"https://avatars.githubusercontent.com/u/869950?v=3\", \"gravatar_id\"=>\"\", \"url\"=>\"https://api.github.com/users/KrauseFx\", \"html_url\"=>\"https://github.com/fastlane\", \"followers_url\"=>\"https://api.github.com/users/KrauseFx/followers\", \"following_url\"=>\"https://api.github.com/users/KrauseFx/following{/other_user}\", \"gists_url\"=>\"https://api.github.com/users/KrauseFx/gists{/gist_id}\", \"starred_url\"=>\"https://api.github.com/users/KrauseFx/starred{/owner}{/repo}\", \"subscriptions_url\"=>\"https://api.github.com/users/KrauseFx/subscriptions\", \"organizations_url\"=>\"https://api.github.com/users/KrauseFx/orgs\", \"repos_url\"=>\"https://api.github.com/users/KrauseFx/repos\", \"events_url\"=>\"https://api.github.com/users/KrauseFx/events{/privacy}\", \"received_events_url\"=>\"https://api.github.com/users/KrauseFx/received_events\", \"type\"=>\"User\", \"site_admin\"=>false}, \"prerelease\"=>false, \"created_at\"=>\"2015-07-14T23:33:01Z\", \"published_at\"=>\"2015-07-14T23:44:10Z\", \"assets\"=>[], \"tarball_url\"=>\"https://api.github.com/repos/KrauseFx/fastlane/tarball/1.8.0\", \"zipball_url\"=>\"https://api.github.com/repos/KrauseFx/fastlane/zipball/1.8.0\", \"body\"=> ...Markdown... \"This is one of the biggest updates of _fastlane_ yet\" } get_github_release Supported platforms ios, android, mac Author @KrauseFx, @czechboy0, @jaleksynas, @tommeier 1 Example release = get_github_release(url: \"fastlane/fastlane\", version: \"1.0.0\") puts release[\"name\"] Parameters Key Description Default url The path to your repo, e.g. 'KrauseFx/fastlane' server_url The server url. e.g. 'https://your.github.server/api/v3' (Default: 'https://api.github.com') https://api.github.com version The version tag of the release to check api_token GitHub Personal Token (required for private repositories) * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_github_release action generates the following Lane Variables: SharedValue Description SharedValues::GET_GITHUB_RELEASE_INFO Contains all the information about this release To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action get_github_release CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_github_release To pass parameters, make use of the : symbol, for example fastlane run get_github_release parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Get github release"},{"location":"generated/actions/get_github_release/#get_github_release","text":"This will verify if a given release version is available on GitHub This will return all information about a release. For example: { \"url\"=>\"https://api.github.com/repos/KrauseFx/fastlane/releases/1537713\", \"assets_url\"=>\"https://api.github.com/repos/KrauseFx/fastlane/releases/1537713/assets\", \"upload_url\"=>\"https://uploads.github.com/repos/KrauseFx/fastlane/releases/1537713/assets{?name}\", \"html_url\"=>\"https://github.com/fastlane/fastlane/releases/tag/1.8.0\", \"id\"=>1537713, \"tag_name\"=>\"1.8.0\", \"target_commitish\"=>\"master\", \"name\"=>\"1.8.0 Switch Lanes & Pass Parameters\", \"draft\"=>false, \"author\"=> {\"login\"=>\"KrauseFx\", \"id\"=>869950, \"avatar_url\"=>\"https://avatars.githubusercontent.com/u/869950?v=3\", \"gravatar_id\"=>\"\", \"url\"=>\"https://api.github.com/users/KrauseFx\", \"html_url\"=>\"https://github.com/fastlane\", \"followers_url\"=>\"https://api.github.com/users/KrauseFx/followers\", \"following_url\"=>\"https://api.github.com/users/KrauseFx/following{/other_user}\", \"gists_url\"=>\"https://api.github.com/users/KrauseFx/gists{/gist_id}\", \"starred_url\"=>\"https://api.github.com/users/KrauseFx/starred{/owner}{/repo}\", \"subscriptions_url\"=>\"https://api.github.com/users/KrauseFx/subscriptions\", \"organizations_url\"=>\"https://api.github.com/users/KrauseFx/orgs\", \"repos_url\"=>\"https://api.github.com/users/KrauseFx/repos\", \"events_url\"=>\"https://api.github.com/users/KrauseFx/events{/privacy}\", \"received_events_url\"=>\"https://api.github.com/users/KrauseFx/received_events\", \"type\"=>\"User\", \"site_admin\"=>false}, \"prerelease\"=>false, \"created_at\"=>\"2015-07-14T23:33:01Z\", \"published_at\"=>\"2015-07-14T23:44:10Z\", \"assets\"=>[], \"tarball_url\"=>\"https://api.github.com/repos/KrauseFx/fastlane/tarball/1.8.0\", \"zipball_url\"=>\"https://api.github.com/repos/KrauseFx/fastlane/zipball/1.8.0\", \"body\"=> ...Markdown... \"This is one of the biggest updates of _fastlane_ yet\" } get_github_release Supported platforms ios, android, mac Author @KrauseFx, @czechboy0, @jaleksynas, @tommeier","title":"get_github_release"},{"location":"generated/actions/get_github_release/#1-example","text":"release = get_github_release(url: \"fastlane/fastlane\", version: \"1.0.0\") puts release[\"name\"]","title":"1 Example"},{"location":"generated/actions/get_github_release/#parameters","text":"Key Description Default url The path to your repo, e.g. 'KrauseFx/fastlane' server_url The server url. e.g. 'https://your.github.server/api/v3' (Default: 'https://api.github.com') https://api.github.com version The version tag of the release to check api_token GitHub Personal Token (required for private repositories) * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/get_github_release/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_github_release action generates the following Lane Variables: SharedValue Description SharedValues::GET_GITHUB_RELEASE_INFO Contains all the information about this release To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/get_github_release/#documentation","text":"To show the documentation in your terminal, run fastlane action get_github_release","title":"Documentation"},{"location":"generated/actions/get_github_release/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_github_release To pass parameters, make use of the : symbol, for example fastlane run get_github_release parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/get_github_release/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/get_info_plist_value/","text":"get_info_plist_value Returns value from Info.plist of your project as native Ruby data structures Get a value from a plist file, which can be used to fetch the app identifier and more information about your app get_info_plist_value Supported platforms ios, mac Author @kohtenko 1 Example identifier = get_info_plist_value(path: \"./Info.plist\", key: \"CFBundleIdentifier\") Parameters Key Description Default key Name of parameter path Path to plist file you want to read * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_info_plist_value action generates the following Lane Variables: SharedValue Description SharedValues::GET_INFO_PLIST_VALUE_CUSTOM_VALUE The value of the last plist file that was parsed To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action get_info_plist_value CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_info_plist_value To pass parameters, make use of the : symbol, for example fastlane run get_info_plist_value parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Get info plist value"},{"location":"generated/actions/get_info_plist_value/#get_info_plist_value","text":"Returns value from Info.plist of your project as native Ruby data structures Get a value from a plist file, which can be used to fetch the app identifier and more information about your app get_info_plist_value Supported platforms ios, mac Author @kohtenko","title":"get_info_plist_value"},{"location":"generated/actions/get_info_plist_value/#1-example","text":"identifier = get_info_plist_value(path: \"./Info.plist\", key: \"CFBundleIdentifier\")","title":"1 Example"},{"location":"generated/actions/get_info_plist_value/#parameters","text":"Key Description Default key Name of parameter path Path to plist file you want to read * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/get_info_plist_value/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_info_plist_value action generates the following Lane Variables: SharedValue Description SharedValues::GET_INFO_PLIST_VALUE_CUSTOM_VALUE The value of the last plist file that was parsed To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/get_info_plist_value/#documentation","text":"To show the documentation in your terminal, run fastlane action get_info_plist_value","title":"Documentation"},{"location":"generated/actions/get_info_plist_value/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_info_plist_value To pass parameters, make use of the : symbol, for example fastlane run get_info_plist_value parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/get_info_plist_value/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/get_ipa_info_plist_value/","text":"get_ipa_info_plist_value Returns a value from Info.plist inside a .ipa file This is useful for introspecting Info.plist files for .ipa files that have already been built. get_ipa_info_plist_value Supported platforms ios, mac Author @johnboiles Returns Returns the value in the .ipa's Info.plist corresponding to the passed in Key 1 Example get_ipa_info_plist_value(ipa: \"path.ipa\", key: \"KEY_YOU_READ\") Parameters Key Description Default key Name of parameter ipa Path to IPA * * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_ipa_info_plist_value action generates the following Lane Variables: SharedValue Description SharedValues::GET_IPA_INFO_PLIST_VALUE_CUSTOM_VALUE The value of the last plist file that was parsed To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action get_ipa_info_plist_value CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_ipa_info_plist_value To pass parameters, make use of the : symbol, for example fastlane run get_ipa_info_plist_value parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Get ipa info plist value"},{"location":"generated/actions/get_ipa_info_plist_value/#get_ipa_info_plist_value","text":"Returns a value from Info.plist inside a .ipa file This is useful for introspecting Info.plist files for .ipa files that have already been built. get_ipa_info_plist_value Supported platforms ios, mac Author @johnboiles Returns Returns the value in the .ipa's Info.plist corresponding to the passed in Key","title":"get_ipa_info_plist_value"},{"location":"generated/actions/get_ipa_info_plist_value/#1-example","text":"get_ipa_info_plist_value(ipa: \"path.ipa\", key: \"KEY_YOU_READ\")","title":"1 Example"},{"location":"generated/actions/get_ipa_info_plist_value/#parameters","text":"Key Description Default key Name of parameter ipa Path to IPA * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/get_ipa_info_plist_value/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_ipa_info_plist_value action generates the following Lane Variables: SharedValue Description SharedValues::GET_IPA_INFO_PLIST_VALUE_CUSTOM_VALUE The value of the last plist file that was parsed To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/get_ipa_info_plist_value/#documentation","text":"To show the documentation in your terminal, run fastlane action get_ipa_info_plist_value","title":"Documentation"},{"location":"generated/actions/get_ipa_info_plist_value/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_ipa_info_plist_value To pass parameters, make use of the : symbol, for example fastlane run get_ipa_info_plist_value parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/get_ipa_info_plist_value/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/get_managed_play_store_publishing_rights/","text":"get_managed_play_store_publishing_rights Obtain publishing rights for custom apps on Managed Google Play Store If you haven't done so before, start by following the first two steps of Googles \"Get started with custom app publishing\" -> \"Preliminary setup\" instructions: \" Enable the Google Play Custom App Publishing API \" and \" Create a service account \". You need the \"service account's private key file\" to continue. Run the action and supply the \"private key file\" to it as the json_key parameter. The command will output a URL to visit. After logging in you are redirected to a page that outputs your \"Developer Account ID\" - take note of that, you will need it to be able to use create_app_on_managed_play_store . get_managed_play_store_publishing_rights Supported platforms android Author @janpio Returns An URI to obtain publishing rights for custom apps on Managed Play Store 1 Example get_managed_play_store_publishing_rights( json_key: \"path/to/your/json/key/file\" ) # it is probably easier to execute this action directly in the command line: # $ fastlane run get_managed_play_store_publishing_rights Parameters Key Description Default json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action get_managed_play_store_publishing_rights CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_managed_play_store_publishing_rights To pass parameters, make use of the : symbol, for example fastlane run get_managed_play_store_publishing_rights parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Get managed play store publishing rights"},{"location":"generated/actions/get_managed_play_store_publishing_rights/#get_managed_play_store_publishing_rights","text":"Obtain publishing rights for custom apps on Managed Google Play Store If you haven't done so before, start by following the first two steps of Googles \"Get started with custom app publishing\" -> \"Preliminary setup\" instructions: \" Enable the Google Play Custom App Publishing API \" and \" Create a service account \". You need the \"service account's private key file\" to continue. Run the action and supply the \"private key file\" to it as the json_key parameter. The command will output a URL to visit. After logging in you are redirected to a page that outputs your \"Developer Account ID\" - take note of that, you will need it to be able to use create_app_on_managed_play_store . get_managed_play_store_publishing_rights Supported platforms android Author @janpio Returns An URI to obtain publishing rights for custom apps on Managed Play Store","title":"get_managed_play_store_publishing_rights"},{"location":"generated/actions/get_managed_play_store_publishing_rights/#1-example","text":"get_managed_play_store_publishing_rights( json_key: \"path/to/your/json/key/file\" ) # it is probably easier to execute this action directly in the command line: # $ fastlane run get_managed_play_store_publishing_rights","title":"1 Example"},{"location":"generated/actions/get_managed_play_store_publishing_rights/#parameters","text":"Key Description Default json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/get_managed_play_store_publishing_rights/#documentation","text":"To show the documentation in your terminal, run fastlane action get_managed_play_store_publishing_rights","title":"Documentation"},{"location":"generated/actions/get_managed_play_store_publishing_rights/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_managed_play_store_publishing_rights To pass parameters, make use of the : symbol, for example fastlane run get_managed_play_store_publishing_rights parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/get_managed_play_store_publishing_rights/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/get_provisioning_profile/","text":"get_provisioning_profile Generates a provisioning profile, saving it in the current folder (via sigh ) Because you would rather spend your time building stuff than fighting provisioning sigh can create, renew, download and repair provisioning profiles (with one command). It supports App Store, Ad Hoc, Development and Enterprise profiles and supports nice features, like auto-adding all test devices. Features \u2022 Usage \u2022 Resign \u2022 How does it work? Features Download the latest provisioning profile for your app Renew a provisioning profile, when it has expired Repair a provisioning profile, when it is broken Create a new provisioning profile, if it doesn't exist already Supports App Store , Ad Hoc and Development profiles Support for multiple Apple accounts , storing your credentials securely in the Keychain Support for multiple Teams Support for Enterprise Profiles To automate iOS Push profiles you can use pem . Why not let Xcode do the work? sigh can easily be integrated into your CI-server (e.g. Jenkins) Xcode sometimes invalidates all existing profiles You have control over what happens You still get to have the signing files, which you can then use for your build scripts or store in git See sigh in action: Usage Note : It is recommended to use match according to the codesigning.guide for generating and maintaining your provisioning profiles. Use sigh directly only if you want full control over what's going on and know more about codesigning. fastlane sigh Yes, that's the whole command! sigh will create, repair and download profiles for the App Store by default. You can pass your bundle identifier and username like this: fastlane sigh -a com.krausefx.app -u username If you want to generate an Ad Hoc profile instead of an App Store profile: fastlane sigh --adhoc If you want to generate a Development profile: fastlane sigh --development To generate the profile in a specific directory: fastlane sigh -o \"~/Certificates/\" To download all your provisioning profiles use fastlane sigh download_all Optionally, use fastlane sigh download_all --download_xcode_profiles to also include the Xcode managed provisioning profiles For a list of available parameters and commands run fastlane action sigh Advanced By default, sigh will install the downloaded profile on your machine. If you just want to generate the profile and skip the installation, use the following flag: fastlane sigh --skip_install To save the provisioning profile under a specific name, use the -q option: fastlane sigh -a com.krausefx.app -u username -q \"myProfile.mobileprovision\" If for some reason you don't want sigh to verify that the code signing identity is installed on your local machine: fastlane sigh --skip_certificate_verification If you need the provisioning profile to be renewed regardless of its state use the --force option. This gives you a profile with the maximum lifetime. --force will also add all available devices to this profile. fastlane sigh --force By default, sigh will include all certificates on development profiles, and first certificate on other types. If you need to specify which certificate to use you can either use the environment variable SIGH_CERTIFICATE , or pass the name or expiry date of the certificate as argument: fastlane sigh -c \"SunApps GmbH\" For a list of available parameters and commands run fastlane action sigh Use with fastlane sigh becomes really interesting when used in fastlane in combination with cert . Update your Fastfile to contain the following code: lane :beta do cert sigh(force: true) end force: true will make sure to re-generate the provisioning profile on each run. This will result in sigh always using the correct signing certificate, which is installed on the local machine. Repair sigh can automatically repair all your existing provisioning profiles which are expired or just invalid. fastlane sigh repair Resign If you generated your ipa file but want to apply a different code signing onto the ipa file, you can use sigh resign : fastlane sigh resign sigh will find the ipa file and the provisioning profile for you if they are located in the current folder. You can pass more information using the command line: fastlane sigh resign ./path/app.ipa --signing_identity \"iPhone Distribution: Felix Krause\" -p \"my.mobileprovision\" Manage With sigh manage you can list all provisioning profiles installed locally. fastlane sigh manage Delete all expired provisioning profiles fastlane sigh manage -e Or delete all iOS Team Provisioning Profile by using a regular expression fastlane sigh manage -p \"iOS\\ ?Team Provisioning Profile:\" Environment Variables Run fastlane action sigh to get a list of all available environment variables. If you're using cert in combination with fastlane the signing certificate will automatically be selected for you. (make sure to run cert before sigh ) How does it work? sigh will access the iOS Dev Center to download, renew or generate the .mobileprovision file. It uses spaceship to communicate with Apple's web services. How is my password stored? sigh uses the CredentialsManager from fastlane . Tips Use 'ProvisionQL' for advanced Quick Look in Finder Install ProvisionQL . It will show you mobileprovision files like this: App Identifier couldn't be found If you also want to create a new App Identifier on the Apple Developer Portal, check out produce , which does exactly that. What happens to my Xcode managed profiles? sigh will never touch or use the profiles which are created and managed by Xcode. Instead sigh will manage its own set of provisioning profiles. get_provisioning_profile Supported platforms ios, mac Author @KrauseFx Returns The UUID of the profile sigh just fetched/generated 3 Examples get_provisioning_profile sigh # alias for \"get_provisioning_profile\" get_provisioning_profile( adhoc: true, force: true, filename: \"myFile.mobileprovision\" ) Parameters Key Description Default adhoc Setting this flag will generate AdHoc profiles instead of App Store Profiles false developer_id Setting this flag will generate Developer ID profiles instead of App Store Profiles false development Renew the development certificate instead of the production one false skip_install By default, the certificate will be added to your local machine. Setting this flag will skip this action false force Renew provisioning profiles regardless of its state - to automatically add all devices for ad hoc profiles false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false app_identifier The bundle identifier of your app * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * provisioning_name The name of the profile that is used on the Apple Developer Portal ignore_profiles_with_different_name Use in combination with :provisioning_name - when true only profiles matching this exact name will be downloaded false output_path Directory in which the profile should be stored . cert_id The ID of the code signing certificate to use (e.g. 78ADL6LVAA) cert_owner_name The certificate name to use for new profiles, or to renew with. (e.g. \"Felix Krause\") filename Filename to use for the generated provisioning profile (must include .mobileprovision) skip_fetch_profiles Skips the verification of existing profiles which is useful if you have thousands of profiles false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false skip_certificate_verification Skips the verification of the certificates for every existing profiles. This will make sure the provisioning profile can be used on the local machine * platform Set the provisioning profile's platform (i.e. ios, tvos, macos, catalyst) ios readonly Only fetch existing profile, don't generate new ones false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_provisioning_profile action generates the following Lane Variables: SharedValue Description SharedValues::SIGH_PROFILE_PATH A path in which certificates, key and profile are exported SharedValues::SIGH_PROFILE_PATHS Paths in which certificates, key and profile are exported SharedValues::SIGH_UUID UUID (Universally Unique IDentifier) of a provisioning profile SharedValues::SIGH_NAME The name of the profile SharedValues::SIGH_PROFILE_TYPE The profile type, can be app-store, ad-hoc, development, enterprise, developer-id, can be used in build_app as a default value for export_method To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action get_provisioning_profile CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_provisioning_profile To pass parameters, make use of the : symbol, for example fastlane run get_provisioning_profile parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Get provisioning profile"},{"location":"generated/actions/get_provisioning_profile/#get_provisioning_profile","text":"Generates a provisioning profile, saving it in the current folder (via sigh )","title":"get_provisioning_profile"},{"location":"generated/actions/get_provisioning_profile/#features","text":"Download the latest provisioning profile for your app Renew a provisioning profile, when it has expired Repair a provisioning profile, when it is broken Create a new provisioning profile, if it doesn't exist already Supports App Store , Ad Hoc and Development profiles Support for multiple Apple accounts , storing your credentials securely in the Keychain Support for multiple Teams Support for Enterprise Profiles To automate iOS Push profiles you can use pem .","title":"Features"},{"location":"generated/actions/get_provisioning_profile/#usage","text":"Note : It is recommended to use match according to the codesigning.guide for generating and maintaining your provisioning profiles. Use sigh directly only if you want full control over what's going on and know more about codesigning. fastlane sigh Yes, that's the whole command! sigh will create, repair and download profiles for the App Store by default. You can pass your bundle identifier and username like this: fastlane sigh -a com.krausefx.app -u username If you want to generate an Ad Hoc profile instead of an App Store profile: fastlane sigh --adhoc If you want to generate a Development profile: fastlane sigh --development To generate the profile in a specific directory: fastlane sigh -o \"~/Certificates/\" To download all your provisioning profiles use fastlane sigh download_all Optionally, use fastlane sigh download_all --download_xcode_profiles to also include the Xcode managed provisioning profiles For a list of available parameters and commands run fastlane action sigh","title":"Usage"},{"location":"generated/actions/get_provisioning_profile/#repair","text":"sigh can automatically repair all your existing provisioning profiles which are expired or just invalid. fastlane sigh repair","title":"Repair"},{"location":"generated/actions/get_provisioning_profile/#resign","text":"If you generated your ipa file but want to apply a different code signing onto the ipa file, you can use sigh resign : fastlane sigh resign sigh will find the ipa file and the provisioning profile for you if they are located in the current folder. You can pass more information using the command line: fastlane sigh resign ./path/app.ipa --signing_identity \"iPhone Distribution: Felix Krause\" -p \"my.mobileprovision\"","title":"Resign"},{"location":"generated/actions/get_provisioning_profile/#manage","text":"With sigh manage you can list all provisioning profiles installed locally. fastlane sigh manage Delete all expired provisioning profiles fastlane sigh manage -e Or delete all iOS Team Provisioning Profile by using a regular expression fastlane sigh manage -p \"iOS\\ ?Team Provisioning Profile:\"","title":"Manage"},{"location":"generated/actions/get_provisioning_profile/#environment-variables","text":"Run fastlane action sigh to get a list of all available environment variables. If you're using cert in combination with fastlane the signing certificate will automatically be selected for you. (make sure to run cert before sigh )","title":"Environment Variables"},{"location":"generated/actions/get_provisioning_profile/#how-does-it-work","text":"sigh will access the iOS Dev Center to download, renew or generate the .mobileprovision file. It uses spaceship to communicate with Apple's web services.","title":"How does it work?"},{"location":"generated/actions/get_provisioning_profile/#how-is-my-password-stored","text":"sigh uses the CredentialsManager from fastlane .","title":"How is my password stored?"},{"location":"generated/actions/get_provisioning_profile/#tips","text":"","title":"Tips"},{"location":"generated/actions/get_provisioning_profile/#use-provisionql-for-advanced-quick-look-in-finder","text":"Install ProvisionQL . It will show you mobileprovision files like this:","title":"Use 'ProvisionQL' for advanced Quick Look in Finder"},{"location":"generated/actions/get_provisioning_profile/#app-identifier-couldnt-be-found","text":"If you also want to create a new App Identifier on the Apple Developer Portal, check out produce , which does exactly that.","title":"App Identifier couldn't be found"},{"location":"generated/actions/get_provisioning_profile/#what-happens-to-my-xcode-managed-profiles","text":"sigh will never touch or use the profiles which are created and managed by Xcode. Instead sigh will manage its own set of provisioning profiles. get_provisioning_profile Supported platforms ios, mac Author @KrauseFx Returns The UUID of the profile sigh just fetched/generated","title":"What happens to my Xcode managed profiles?"},{"location":"generated/actions/get_provisioning_profile/#3-examples","text":"get_provisioning_profile sigh # alias for \"get_provisioning_profile\" get_provisioning_profile( adhoc: true, force: true, filename: \"myFile.mobileprovision\" )","title":"3 Examples"},{"location":"generated/actions/get_provisioning_profile/#parameters","text":"Key Description Default adhoc Setting this flag will generate AdHoc profiles instead of App Store Profiles false developer_id Setting this flag will generate Developer ID profiles instead of App Store Profiles false development Renew the development certificate instead of the production one false skip_install By default, the certificate will be added to your local machine. Setting this flag will skip this action false force Renew provisioning profiles regardless of its state - to automatically add all devices for ad hoc profiles false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false app_identifier The bundle identifier of your app * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * provisioning_name The name of the profile that is used on the Apple Developer Portal ignore_profiles_with_different_name Use in combination with :provisioning_name - when true only profiles matching this exact name will be downloaded false output_path Directory in which the profile should be stored . cert_id The ID of the code signing certificate to use (e.g. 78ADL6LVAA) cert_owner_name The certificate name to use for new profiles, or to renew with. (e.g. \"Felix Krause\") filename Filename to use for the generated provisioning profile (must include .mobileprovision) skip_fetch_profiles Skips the verification of existing profiles which is useful if you have thousands of profiles false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false skip_certificate_verification Skips the verification of the certificates for every existing profiles. This will make sure the provisioning profile can be used on the local machine * platform Set the provisioning profile's platform (i.e. ios, tvos, macos, catalyst) ios readonly Only fetch existing profile, don't generate new ones false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/get_provisioning_profile/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_provisioning_profile action generates the following Lane Variables: SharedValue Description SharedValues::SIGH_PROFILE_PATH A path in which certificates, key and profile are exported SharedValues::SIGH_PROFILE_PATHS Paths in which certificates, key and profile are exported SharedValues::SIGH_UUID UUID (Universally Unique IDentifier) of a provisioning profile SharedValues::SIGH_NAME The name of the profile SharedValues::SIGH_PROFILE_TYPE The profile type, can be app-store, ad-hoc, development, enterprise, developer-id, can be used in build_app as a default value for export_method To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/get_provisioning_profile/#documentation","text":"To show the documentation in your terminal, run fastlane action get_provisioning_profile","title":"Documentation"},{"location":"generated/actions/get_provisioning_profile/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_provisioning_profile To pass parameters, make use of the : symbol, for example fastlane run get_provisioning_profile parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/get_provisioning_profile/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/get_push_certificate/","text":"get_push_certificate Ensure a valid push profile is active, creating a new one if needed (via pem ) Automatically generate and renew your push notification profiles Tired of manually creating and maintaining your push notification profiles for your iOS apps? Tired of generating a pem file for your server? pem does all that for you, just by simply running pem . pem creates new .pem, .cer, and .p12 files to be uploaded to your push server if a valid push notification profile is needed. pem does not cover uploading the file to your server. To automate iOS Provisioning profiles you can use match . Features \u2022 Usage \u2022 How does it work? \u2022 Tips \u2022 Need help? pem is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Features Well, it's actually just one: Generate the pem file for your server. Check out this gif: Usage fastlane pem Yes, that's the whole command! This does the following: Create a new signing request Create a new push certification Downloads the certificate Generates a new .pem file in the current working directory, which you can upload to your server Note that pem will never revoke your existing certificates. pem can't download any of your existing push certificates, as the private key is only available on the machine it was created on. If you already have a push certificate enabled, which is active for at least 30 more days, pem will not create a new certificate. If you still want to create one, use the force : fastlane pem --force You can pass parameters like this: fastlane pem -a com.krausefx.app -u username If you want to generate a development certificate instead: fastlane pem --development If you want to generate a Website Push certificate: fastlane pem --website_push Set a password for your p12 file: fastlane pem -p \"MyPass\" You can specify a name for the output file: fastlane pem -o my.pem To get a list of available options run: fastlane action pem Note about empty p12 passwords and Keychain Access.app pem will produce a valid p12 without specifying a password, or using the empty-string as the password. While the file is valid, the Mac's Keychain Access will not allow you to open the file without specifying a passphrase. Instead, you may verify the file is valid using OpenSSL: openssl pkcs12 -info -in my.p12 If you need the p12 in your keychain, perhaps to test push with an app like Knuff or Pusher , you can use openssl to export the p12 to pem and back to p12 : % openssl pkcs12 -in my.p12 -out my.pem Enter Import Password: MAC verified OK Enter your pem passphrase: % openssl pkcs12 -export -in my.pem -out my-with-passphrase.p12 Enter pass phrase for temp.pem: Enter Export Password: Environment Variables Run fastlane action pem to get a list of available environment variables. How does it work? pem uses spaceship to communicate with the Apple Developer Portal to request a new push certificate for you. How is my password stored? pem uses the password manager from fastlane . Take a look the CredentialsManager README for more information. get_push_certificate Supported platforms ios, mac Author @KrauseFx 3 Examples get_push_certificate pem # alias for \"get_push_certificate\" get_push_certificate( force: true, # create a new profile, even if the old one is still valid app_identifier: \"net.sunapps.9\", # optional app identifier, save_private_key: true, new_profile: proc do |profile_path| # this block gets called when a new profile was generated puts profile_path # the absolute path to the new PEM file # insert the code to upload the PEM file to the server end ) Parameters Key Description Default platform Set certificate's platform. Used for creation of production & development certificates. Supported platforms: ios, macos ios development Renew the development push certificate instead of the production one false website_push Create a Website Push certificate false generate_p12 Generate a p12 file additionally to a PEM file true active_days_limit If the current certificate is active for less than this number of days, generate a new one 30 force Create a new push certificate, even if the current one is active for 30 (or PEM_ACTIVE_DAYS_LIMIT) more days false save_private_key Set to save the private RSA key true app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * p12_password The password that is used for your p12 file pem_name The file name of the generated .pem file output_path The path to a directory in which all certificates and private keys should be stored . new_profile Block that is called if there is a new profile * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action get_push_certificate CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_push_certificate To pass parameters, make use of the : symbol, for example fastlane run get_push_certificate parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Get push certificate"},{"location":"generated/actions/get_push_certificate/#get_push_certificate","text":"Ensure a valid push profile is active, creating a new one if needed (via pem )","title":"get_push_certificate"},{"location":"generated/actions/get_push_certificate/#features","text":"Well, it's actually just one: Generate the pem file for your server. Check out this gif:","title":"Features"},{"location":"generated/actions/get_push_certificate/#usage","text":"fastlane pem Yes, that's the whole command! This does the following: Create a new signing request Create a new push certification Downloads the certificate Generates a new .pem file in the current working directory, which you can upload to your server Note that pem will never revoke your existing certificates. pem can't download any of your existing push certificates, as the private key is only available on the machine it was created on. If you already have a push certificate enabled, which is active for at least 30 more days, pem will not create a new certificate. If you still want to create one, use the force : fastlane pem --force You can pass parameters like this: fastlane pem -a com.krausefx.app -u username If you want to generate a development certificate instead: fastlane pem --development If you want to generate a Website Push certificate: fastlane pem --website_push Set a password for your p12 file: fastlane pem -p \"MyPass\" You can specify a name for the output file: fastlane pem -o my.pem To get a list of available options run: fastlane action pem","title":"Usage"},{"location":"generated/actions/get_push_certificate/#environment-variables","text":"Run fastlane action pem to get a list of available environment variables.","title":"Environment Variables"},{"location":"generated/actions/get_push_certificate/#how-does-it-work","text":"pem uses spaceship to communicate with the Apple Developer Portal to request a new push certificate for you.","title":"How does it work?"},{"location":"generated/actions/get_push_certificate/#how-is-my-password-stored","text":"pem uses the password manager from fastlane . Take a look the CredentialsManager README for more information. get_push_certificate Supported platforms ios, mac Author @KrauseFx","title":"How is my password stored?"},{"location":"generated/actions/get_push_certificate/#3-examples","text":"get_push_certificate pem # alias for \"get_push_certificate\" get_push_certificate( force: true, # create a new profile, even if the old one is still valid app_identifier: \"net.sunapps.9\", # optional app identifier, save_private_key: true, new_profile: proc do |profile_path| # this block gets called when a new profile was generated puts profile_path # the absolute path to the new PEM file # insert the code to upload the PEM file to the server end )","title":"3 Examples"},{"location":"generated/actions/get_push_certificate/#parameters","text":"Key Description Default platform Set certificate's platform. Used for creation of production & development certificates. Supported platforms: ios, macos ios development Renew the development push certificate instead of the production one false website_push Create a Website Push certificate false generate_p12 Generate a p12 file additionally to a PEM file true active_days_limit If the current certificate is active for less than this number of days, generate a new one 30 force Create a new push certificate, even if the current one is active for 30 (or PEM_ACTIVE_DAYS_LIMIT) more days false save_private_key Set to save the private RSA key true app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * p12_password The password that is used for your p12 file pem_name The file name of the generated .pem file output_path The path to a directory in which all certificates and private keys should be stored . new_profile Block that is called if there is a new profile * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/get_push_certificate/#documentation","text":"To show the documentation in your terminal, run fastlane action get_push_certificate","title":"Documentation"},{"location":"generated/actions/get_push_certificate/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_push_certificate To pass parameters, make use of the : symbol, for example fastlane run get_push_certificate parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/get_push_certificate/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/get_version_number/","text":"get_version_number Get the version number of your project This action will return the current version number set on your project. It first looks in the plist and then for '$(MARKETING_VERSION)' in the build settings. get_version_number Supported platforms ios, mac Author @Liquidsoul, @joshdholtz 2 Examples version = get_version_number(xcodeproj: \"Project.xcodeproj\") version = get_version_number( xcodeproj: \"Project.xcodeproj\", target: \"App\" ) Parameters Key Description Default xcodeproj Path to the Xcode project to read version number from, or its containing directory, optional. If omitted, or if a directory is passed instead, it will use the first Xcode project found within the given directory, or the project root directory if none is passed target Target name, optional. Will be needed if you have more than one non-test target to avoid being prompted to select one configuration Configuration name, optional. Will be needed if you have altered the configurations from the default or your version number depends on the configuration selected * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_version_number action generates the following Lane Variables: SharedValue Description SharedValues::VERSION_NUMBER The version number To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action get_version_number CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_version_number To pass parameters, make use of the : symbol, for example fastlane run get_version_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Get version number"},{"location":"generated/actions/get_version_number/#get_version_number","text":"Get the version number of your project This action will return the current version number set on your project. It first looks in the plist and then for '$(MARKETING_VERSION)' in the build settings. get_version_number Supported platforms ios, mac Author @Liquidsoul, @joshdholtz","title":"get_version_number"},{"location":"generated/actions/get_version_number/#2-examples","text":"version = get_version_number(xcodeproj: \"Project.xcodeproj\") version = get_version_number( xcodeproj: \"Project.xcodeproj\", target: \"App\" )","title":"2 Examples"},{"location":"generated/actions/get_version_number/#parameters","text":"Key Description Default xcodeproj Path to the Xcode project to read version number from, or its containing directory, optional. If omitted, or if a directory is passed instead, it will use the first Xcode project found within the given directory, or the project root directory if none is passed target Target name, optional. Will be needed if you have more than one non-test target to avoid being prompted to select one configuration Configuration name, optional. Will be needed if you have altered the configurations from the default or your version number depends on the configuration selected * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/get_version_number/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_version_number action generates the following Lane Variables: SharedValue Description SharedValues::VERSION_NUMBER The version number To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/get_version_number/#documentation","text":"To show the documentation in your terminal, run fastlane action get_version_number","title":"Documentation"},{"location":"generated/actions/get_version_number/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_version_number To pass parameters, make use of the : symbol, for example fastlane run get_version_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/get_version_number/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/git_add/","text":"git_add Directly add the given file or all files git_add Supported platforms ios, android, mac Author @4brunu, @antondomashnev 7 Examples git_add git_add(path: \"./version.txt\") git_add(path: [\"./version.txt\", \"./changelog.txt\"]) git_add(path: \"./Frameworks/*\", shell_escape: false) git_add(path: [\"*.h\", \"*.m\"], shell_escape: false) git_add(path: \"./Frameworks/*\", shell_escape: false) git_add(path: \"*.txt\", shell_escape: false) Parameters Key Description Default path The file(s) and path(s) you want to add shell_escape Shell escapes paths (set to false if using wildcards or manually escaping spaces in :path) true pathspec DEPRECATED! Use --path instead - The pathspec you want to add files from * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action git_add CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_add To pass parameters, make use of the : symbol, for example fastlane run git_add parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Git add"},{"location":"generated/actions/git_add/#git_add","text":"Directly add the given file or all files git_add Supported platforms ios, android, mac Author @4brunu, @antondomashnev","title":"git_add"},{"location":"generated/actions/git_add/#7-examples","text":"git_add git_add(path: \"./version.txt\") git_add(path: [\"./version.txt\", \"./changelog.txt\"]) git_add(path: \"./Frameworks/*\", shell_escape: false) git_add(path: [\"*.h\", \"*.m\"], shell_escape: false) git_add(path: \"./Frameworks/*\", shell_escape: false) git_add(path: \"*.txt\", shell_escape: false)","title":"7 Examples"},{"location":"generated/actions/git_add/#parameters","text":"Key Description Default path The file(s) and path(s) you want to add shell_escape Shell escapes paths (set to false if using wildcards or manually escaping spaces in :path) true pathspec DEPRECATED! Use --path instead - The pathspec you want to add files from * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/git_add/#documentation","text":"To show the documentation in your terminal, run fastlane action git_add","title":"Documentation"},{"location":"generated/actions/git_add/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_add To pass parameters, make use of the : symbol, for example fastlane run git_add parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/git_add/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/git_branch/","text":"git_branch Returns the name of the current git branch, possibly as managed by CI ENV vars If no branch could be found, this action will return an empty string. This is a wrapper for the internal action Actions.git_branch git_branch Supported platforms ios, android, mac Author @KrauseFx 1 Example git_branch Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The git_branch action generates the following Lane Variables: SharedValue Description SharedValues::GIT_BRANCH_ENV_VARS The git branch environment variables To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action git_branch CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_branch To pass parameters, make use of the : symbol, for example fastlane run git_branch parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Git branch"},{"location":"generated/actions/git_branch/#git_branch","text":"Returns the name of the current git branch, possibly as managed by CI ENV vars If no branch could be found, this action will return an empty string. This is a wrapper for the internal action Actions.git_branch git_branch Supported platforms ios, android, mac Author @KrauseFx","title":"git_branch"},{"location":"generated/actions/git_branch/#1-example","text":"git_branch","title":"1 Example"},{"location":"generated/actions/git_branch/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The git_branch action generates the following Lane Variables: SharedValue Description SharedValues::GIT_BRANCH_ENV_VARS The git branch environment variables To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/git_branch/#documentation","text":"To show the documentation in your terminal, run fastlane action git_branch","title":"Documentation"},{"location":"generated/actions/git_branch/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_branch To pass parameters, make use of the : symbol, for example fastlane run git_branch parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/git_branch/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/git_commit/","text":"git_commit Directly commit the given file with the given message git_commit Supported platforms ios, android, mac Author @KrauseFx 4 Examples git_commit(path: \"./version.txt\", message: \"Version Bump\") git_commit(path: [\"./version.txt\", \"./changelog.txt\"], message: \"Version Bump\") git_commit(path: [\"./*.txt\", \"./*.md\"], message: \"Update documentation\") git_commit(path: [\"./*.txt\", \"./*.md\"], message: \"Update documentation\", skip_git_hooks: true) Parameters Key Description Default path The file(s) or directory(ies) you want to commit. You can pass an array of multiple file-paths or fileglobs \"*.txt\" to commit all matching files. The files already staged but not specified and untracked files won't be committed message The commit message that should be used skip_git_hooks Set to true to pass --no-verify to git false allow_nothing_to_commit Set to true to allow commit without any git changes in the files you want to commit false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action git_commit CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_commit To pass parameters, make use of the : symbol, for example fastlane run git_commit parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Git commit"},{"location":"generated/actions/git_commit/#git_commit","text":"Directly commit the given file with the given message git_commit Supported platforms ios, android, mac Author @KrauseFx","title":"git_commit"},{"location":"generated/actions/git_commit/#4-examples","text":"git_commit(path: \"./version.txt\", message: \"Version Bump\") git_commit(path: [\"./version.txt\", \"./changelog.txt\"], message: \"Version Bump\") git_commit(path: [\"./*.txt\", \"./*.md\"], message: \"Update documentation\") git_commit(path: [\"./*.txt\", \"./*.md\"], message: \"Update documentation\", skip_git_hooks: true)","title":"4 Examples"},{"location":"generated/actions/git_commit/#parameters","text":"Key Description Default path The file(s) or directory(ies) you want to commit. You can pass an array of multiple file-paths or fileglobs \"*.txt\" to commit all matching files. The files already staged but not specified and untracked files won't be committed message The commit message that should be used skip_git_hooks Set to true to pass --no-verify to git false allow_nothing_to_commit Set to true to allow commit without any git changes in the files you want to commit false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/git_commit/#documentation","text":"To show the documentation in your terminal, run fastlane action git_commit","title":"Documentation"},{"location":"generated/actions/git_commit/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_commit To pass parameters, make use of the : symbol, for example fastlane run git_commit parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/git_commit/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/git_pull/","text":"git_pull Executes a simple git pull command git_pull Supported platforms ios, android, mac Author @KrauseFx, @JaviSoto 3 Examples git_pull git_pull(only_tags: true) # only the tags, no commits git_pull(rebase: true) # use --rebase with pull Parameters Key Description Default only_tags Simply pull the tags, and not bring new commits to the current branch from the remote false rebase Rebase on top of the remote branch instead of merge false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action git_pull CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_pull To pass parameters, make use of the : symbol, for example fastlane run git_pull parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Git pull"},{"location":"generated/actions/git_pull/#git_pull","text":"Executes a simple git pull command git_pull Supported platforms ios, android, mac Author @KrauseFx, @JaviSoto","title":"git_pull"},{"location":"generated/actions/git_pull/#3-examples","text":"git_pull git_pull(only_tags: true) # only the tags, no commits git_pull(rebase: true) # use --rebase with pull","title":"3 Examples"},{"location":"generated/actions/git_pull/#parameters","text":"Key Description Default only_tags Simply pull the tags, and not bring new commits to the current branch from the remote false rebase Rebase on top of the remote branch instead of merge false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/git_pull/#documentation","text":"To show the documentation in your terminal, run fastlane action git_pull","title":"Documentation"},{"location":"generated/actions/git_pull/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_pull To pass parameters, make use of the : symbol, for example fastlane run git_pull parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/git_pull/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/git_remote_branch/","text":"git_remote_branch Returns the name of the current git remote default branch If no default remote branch could be found, this action will return nil. This is a wrapper for the internal action Actions.git_default_remote_branch_name git_remote_branch Supported platforms ios, android, mac Author @SeanMcNeil 2 Examples git_remote_branch # Query git for first available remote name git_remote_branch(remote_name:\"upstream\") # Provide a remote name Parameters Key Description Default remote_name The remote repository to check * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action git_remote_branch CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_remote_branch To pass parameters, make use of the : symbol, for example fastlane run git_remote_branch parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Git remote branch"},{"location":"generated/actions/git_remote_branch/#git_remote_branch","text":"Returns the name of the current git remote default branch If no default remote branch could be found, this action will return nil. This is a wrapper for the internal action Actions.git_default_remote_branch_name git_remote_branch Supported platforms ios, android, mac Author @SeanMcNeil","title":"git_remote_branch"},{"location":"generated/actions/git_remote_branch/#2-examples","text":"git_remote_branch # Query git for first available remote name git_remote_branch(remote_name:\"upstream\") # Provide a remote name","title":"2 Examples"},{"location":"generated/actions/git_remote_branch/#parameters","text":"Key Description Default remote_name The remote repository to check * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/git_remote_branch/#documentation","text":"To show the documentation in your terminal, run fastlane action git_remote_branch","title":"Documentation"},{"location":"generated/actions/git_remote_branch/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_remote_branch To pass parameters, make use of the : symbol, for example fastlane run git_remote_branch parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/git_remote_branch/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/git_submodule_update/","text":"git_submodule_update Executes a git submodule update command git_submodule_update Supported platforms ios, android, mac Author @braunico 4 Examples git_submodule_update git_submodule_update(recursive: true) git_submodule_update(init: true) git_submodule_update(recursive: true, init: true) Parameters Key Description Default recursive Should the submodules be updated recursively? false init Should the submodules be initiated before update? false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action git_submodule_update CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_submodule_update To pass parameters, make use of the : symbol, for example fastlane run git_submodule_update parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Git submodule update"},{"location":"generated/actions/git_submodule_update/#git_submodule_update","text":"Executes a git submodule update command git_submodule_update Supported platforms ios, android, mac Author @braunico","title":"git_submodule_update"},{"location":"generated/actions/git_submodule_update/#4-examples","text":"git_submodule_update git_submodule_update(recursive: true) git_submodule_update(init: true) git_submodule_update(recursive: true, init: true)","title":"4 Examples"},{"location":"generated/actions/git_submodule_update/#parameters","text":"Key Description Default recursive Should the submodules be updated recursively? false init Should the submodules be initiated before update? false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/git_submodule_update/#documentation","text":"To show the documentation in your terminal, run fastlane action git_submodule_update","title":"Documentation"},{"location":"generated/actions/git_submodule_update/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_submodule_update To pass parameters, make use of the : symbol, for example fastlane run git_submodule_update parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/git_submodule_update/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/git_tag_exists/","text":"git_tag_exists Checks if the git tag with the given name exists in the current repo git_tag_exists Supported platforms ios, android, mac Author @antondomashnev Returns Boolean value whether the tag exists or not 1 Example if git_tag_exists(tag: \"1.1.0\") UI.message(\"Found it \ud83d\ude80\") end Parameters Key Description Default tag The tag name that should be checked remote Whether to check remote. Defaults to false false remote_name The remote to check. Defaults to origin origin * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action git_tag_exists CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_tag_exists To pass parameters, make use of the : symbol, for example fastlane run git_tag_exists parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Git tag exists"},{"location":"generated/actions/git_tag_exists/#git_tag_exists","text":"Checks if the git tag with the given name exists in the current repo git_tag_exists Supported platforms ios, android, mac Author @antondomashnev Returns Boolean value whether the tag exists or not","title":"git_tag_exists"},{"location":"generated/actions/git_tag_exists/#1-example","text":"if git_tag_exists(tag: \"1.1.0\") UI.message(\"Found it \ud83d\ude80\") end","title":"1 Example"},{"location":"generated/actions/git_tag_exists/#parameters","text":"Key Description Default tag The tag name that should be checked remote Whether to check remote. Defaults to false false remote_name The remote to check. Defaults to origin origin * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/git_tag_exists/#documentation","text":"To show the documentation in your terminal, run fastlane action git_tag_exists","title":"Documentation"},{"location":"generated/actions/git_tag_exists/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_tag_exists To pass parameters, make use of the : symbol, for example fastlane run git_tag_exists parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/git_tag_exists/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/github_api/","text":"github_api Call a GitHub API endpoint and get the resulting JSON response Calls any GitHub API endpoint. You must provide your GitHub Personal token (get one from https://github.com/settings/tokens/new ). Out parameters provide the status code and the full response JSON if valid, otherwise the raw response body. Documentation: https://developer.github.com/v3 . github_api Supported platforms ios, android, mac Author @tommeier Returns A hash including the HTTP status code (:status), the response body (:body), and if valid JSON has been returned the parsed JSON (:json). 2 Examples result = github_api( server_url: \"https://api.github.com\", api_token: ENV[\"GITHUB_TOKEN\"], http_method: \"GET\", path: \"/repos/:owner/:repo/readme\", body: { ref: \"master\" } ) # Alternatively call directly with optional error handling or block usage GithubApiAction.run( server_url: \"https://api.github.com\", api_token: ENV[\"GITHUB_TOKEN\"], http_method: \"GET\", path: \"/repos/:owner/:repo/readme\", error_handlers: { 404 => proc do |result| UI.message(\"Something went wrong - I couldn't find it...\") end, '*' => proc do |result| UI.message(\"Handle all error codes other than 404\") end } ) do |result| UI.message(\"JSON returned: #{result[:json]}\") end Parameters Key Description Default server_url The server url. e.g. 'https://your.internal.github.host/api/v3' (Default: 'https://api.github.com') https://api.github.com api_token Personal API Token for GitHub - generate one at https://github.com/settings/tokens * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable http_method The HTTP method. e.g. GET / POST GET body The request body in JSON or hash format {} raw_body The request body taken verbatim instead of as JSON, useful for file uploads path The endpoint path. e.g. '/repos/:owner/:repo/readme' url The complete full url - used instead of path. e.g. 'https://uploads.github.com/repos/fastlane...' error_handlers Optional error handling hash based on status code, or pass '*' to handle all errors {} headers Optional headers to apply {} secure Optionally disable secure requests (ssl_verify_peer) true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The github_api action generates the following Lane Variables: SharedValue Description SharedValues::GITHUB_API_STATUS_CODE The status code returned from the request SharedValues::GITHUB_API_RESPONSE The full response body SharedValues::GITHUB_API_JSON The parsed json returned from GitHub To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action github_api CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run github_api To pass parameters, make use of the : symbol, for example fastlane run github_api parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Github api"},{"location":"generated/actions/github_api/#github_api","text":"Call a GitHub API endpoint and get the resulting JSON response Calls any GitHub API endpoint. You must provide your GitHub Personal token (get one from https://github.com/settings/tokens/new ). Out parameters provide the status code and the full response JSON if valid, otherwise the raw response body. Documentation: https://developer.github.com/v3 . github_api Supported platforms ios, android, mac Author @tommeier Returns A hash including the HTTP status code (:status), the response body (:body), and if valid JSON has been returned the parsed JSON (:json).","title":"github_api"},{"location":"generated/actions/github_api/#2-examples","text":"result = github_api( server_url: \"https://api.github.com\", api_token: ENV[\"GITHUB_TOKEN\"], http_method: \"GET\", path: \"/repos/:owner/:repo/readme\", body: { ref: \"master\" } ) # Alternatively call directly with optional error handling or block usage GithubApiAction.run( server_url: \"https://api.github.com\", api_token: ENV[\"GITHUB_TOKEN\"], http_method: \"GET\", path: \"/repos/:owner/:repo/readme\", error_handlers: { 404 => proc do |result| UI.message(\"Something went wrong - I couldn't find it...\") end, '*' => proc do |result| UI.message(\"Handle all error codes other than 404\") end } ) do |result| UI.message(\"JSON returned: #{result[:json]}\") end","title":"2 Examples"},{"location":"generated/actions/github_api/#parameters","text":"Key Description Default server_url The server url. e.g. 'https://your.internal.github.host/api/v3' (Default: 'https://api.github.com') https://api.github.com api_token Personal API Token for GitHub - generate one at https://github.com/settings/tokens * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable http_method The HTTP method. e.g. GET / POST GET body The request body in JSON or hash format {} raw_body The request body taken verbatim instead of as JSON, useful for file uploads path The endpoint path. e.g. '/repos/:owner/:repo/readme' url The complete full url - used instead of path. e.g. 'https://uploads.github.com/repos/fastlane...' error_handlers Optional error handling hash based on status code, or pass '*' to handle all errors {} headers Optional headers to apply {} secure Optionally disable secure requests (ssl_verify_peer) true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/github_api/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The github_api action generates the following Lane Variables: SharedValue Description SharedValues::GITHUB_API_STATUS_CODE The status code returned from the request SharedValues::GITHUB_API_RESPONSE The full response body SharedValues::GITHUB_API_JSON The parsed json returned from GitHub To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/github_api/#documentation","text":"To show the documentation in your terminal, run fastlane action github_api","title":"Documentation"},{"location":"generated/actions/github_api/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run github_api To pass parameters, make use of the : symbol, for example fastlane run github_api parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/github_api/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/google_play_track_release_names/","text":"google_play_track_release_names Retrieves release names for a Google Play track More information: https://docs.fastlane.tools/actions/supply/ google_play_track_release_names Supported platforms android Author @raldred Returns Array of strings representing the release names for the given Google Play track 1 Example google_play_track_release_names Parameters Key Description Default package_name The package name of the application to use * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action google_play_track_release_names CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run google_play_track_release_names To pass parameters, make use of the : symbol, for example fastlane run google_play_track_release_names parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Google play track release names"},{"location":"generated/actions/google_play_track_release_names/#google_play_track_release_names","text":"Retrieves release names for a Google Play track More information: https://docs.fastlane.tools/actions/supply/ google_play_track_release_names Supported platforms android Author @raldred Returns Array of strings representing the release names for the given Google Play track","title":"google_play_track_release_names"},{"location":"generated/actions/google_play_track_release_names/#1-example","text":"google_play_track_release_names","title":"1 Example"},{"location":"generated/actions/google_play_track_release_names/#parameters","text":"Key Description Default package_name The package name of the application to use * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/google_play_track_release_names/#documentation","text":"To show the documentation in your terminal, run fastlane action google_play_track_release_names","title":"Documentation"},{"location":"generated/actions/google_play_track_release_names/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run google_play_track_release_names To pass parameters, make use of the : symbol, for example fastlane run google_play_track_release_names parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/google_play_track_release_names/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/google_play_track_version_codes/","text":"google_play_track_version_codes Retrieves version codes for a Google Play track More information: https://docs.fastlane.tools/actions/supply/ google_play_track_version_codes Supported platforms android Author @panthomakos Returns Array of integers representing the version codes for the given Google Play track 1 Example google_play_track_version_codes Parameters Key Description Default package_name The package name of the application to use * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action google_play_track_version_codes CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run google_play_track_version_codes To pass parameters, make use of the : symbol, for example fastlane run google_play_track_version_codes parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Google play track version codes"},{"location":"generated/actions/google_play_track_version_codes/#google_play_track_version_codes","text":"Retrieves version codes for a Google Play track More information: https://docs.fastlane.tools/actions/supply/ google_play_track_version_codes Supported platforms android Author @panthomakos Returns Array of integers representing the version codes for the given Google Play track","title":"google_play_track_version_codes"},{"location":"generated/actions/google_play_track_version_codes/#1-example","text":"google_play_track_version_codes","title":"1 Example"},{"location":"generated/actions/google_play_track_version_codes/#parameters","text":"Key Description Default package_name The package name of the application to use * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/google_play_track_version_codes/#documentation","text":"To show the documentation in your terminal, run fastlane action google_play_track_version_codes","title":"Documentation"},{"location":"generated/actions/google_play_track_version_codes/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run google_play_track_version_codes To pass parameters, make use of the : symbol, for example fastlane run google_play_track_version_codes parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/google_play_track_version_codes/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/gradle/","text":"gradle All gradle related actions, including building and testing your Android app Run ./gradlew tasks to get a list of all available gradle tasks for your project gradle Supported platforms ios, android Author @KrauseFx, @lmirosevic Returns The output of running the gradle task 1 Example gradle( task: \"assemble\", flavor: \"WorldDomination\", build_type: \"Release\" ) To build an AAB use: gradle( task: \"bundle\", flavor: \"WorldDomination\", build_type: \"Release\" ) You can pass multiple gradle tasks: gradle( tasks: [\"assembleDebug\", \"bundleDebug\"] ) You can pass properties to gradle: gradle( # ... properties: { \"exampleNumber\" => 100, \"exampleString\" => \"1.0.0\", # ... } ) You can use this to change the version code and name of your app: gradle( # ... properties: { \"android.injected.version.code\" => 100, \"android.injected.version.name\" => \"1.0.0\", # ... } ) You can use this to automatically sign and zipalign your app: gradle( task: \"assemble\", build_type: \"Release\", print_command: false, properties: { \"android.injected.signing.store.file\" => \"keystore.jks\", \"android.injected.signing.store.password\" => \"store_password\", \"android.injected.signing.key.alias\" => \"key_alias\", \"android.injected.signing.key.password\" => \"key_password\", } ) If you need to pass sensitive information through the gradle action, and don't want the generated command to be printed before it is run, you can suppress that: gradle( # ... print_command: false ) You can also suppress printing the output generated by running the generated Gradle command: gradle( # ... print_command_output: false ) To pass any other CLI flags to gradle use: gradle( # ... flags: \"--exitcode --xml file.xml\" ) Delete the build directory, generated APKs and AABs gradle( task: \"clean\" ) Parameters Key Description Default task The gradle task you want to execute, e.g. assemble , bundle or test . For tasks such as assembleMyFlavorRelease you should use gradle(task: 'assemble', flavor: 'Myflavor', build_type: 'Release') flavor The flavor that you want the task for, e.g. MyFlavor . If you are running the assemble task in a multi-flavor project, and you rely on Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH] then you must specify a flavor here or else this value will be undefined build_type The build type that you want the task for, e.g. Release . Useful for some tasks such as assemble tasks The multiple gradle tasks that you want to execute, e.g. [assembleDebug, bundleDebug] flags All parameter flags you want to pass to the gradle command, e.g. --exitcode --xml file.xml project_dir The root directory of the gradle project . gradle_path The path to your gradlew . If you specify a relative path, it is assumed to be relative to the project_dir properties Gradle properties to be exposed to the gradle script system_properties Gradle system properties to be exposed to the gradle script serial Android serial, which device should be used for this command '' print_command Control whether the generated Gradle command is printed as output before running it (true/false) true print_command_output Control whether the output produced by given Gradle command is printed while running (true/false) true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The gradle action generates the following Lane Variables: SharedValue Description SharedValues::GRADLE_APK_OUTPUT_PATH The path to the newly generated apk file. Undefined in a multi-variant assemble scenario SharedValues::GRADLE_ALL_APK_OUTPUT_PATHS When running a multi-variant assemble , the array of signed apk's that were generated SharedValues::GRADLE_FLAVOR The flavor, e.g. MyFlavor SharedValues::GRADLE_BUILD_TYPE The build type, e.g. Release SharedValues::GRADLE_AAB_OUTPUT_PATH The path to the most recent Android app bundle SharedValues::GRADLE_ALL_AAB_OUTPUT_PATHS The paths to the most recent Android app bundles SharedValues::GRADLE_OUTPUT_JSON_OUTPUT_PATH The path to the most recent output.json file SharedValues::GRADLE_ALL_OUTPUT_JSON_OUTPUT_PATHS The path to the newly generated output.json files SharedValues::GRADLE_MAPPING_TXT_OUTPUT_PATH The path to the most recent mapping.txt file SharedValues::GRADLE_ALL_MAPPING_TXT_OUTPUT_PATHS The path to the newly generated mapping.txt files To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action gradle CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run gradle To pass parameters, make use of the : symbol, for example fastlane run gradle parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Gradle"},{"location":"generated/actions/gradle/#gradle","text":"All gradle related actions, including building and testing your Android app Run ./gradlew tasks to get a list of all available gradle tasks for your project gradle Supported platforms ios, android Author @KrauseFx, @lmirosevic Returns The output of running the gradle task","title":"gradle"},{"location":"generated/actions/gradle/#1-example","text":"gradle( task: \"assemble\", flavor: \"WorldDomination\", build_type: \"Release\" ) To build an AAB use: gradle( task: \"bundle\", flavor: \"WorldDomination\", build_type: \"Release\" ) You can pass multiple gradle tasks: gradle( tasks: [\"assembleDebug\", \"bundleDebug\"] ) You can pass properties to gradle: gradle( # ... properties: { \"exampleNumber\" => 100, \"exampleString\" => \"1.0.0\", # ... } ) You can use this to change the version code and name of your app: gradle( # ... properties: { \"android.injected.version.code\" => 100, \"android.injected.version.name\" => \"1.0.0\", # ... } ) You can use this to automatically sign and zipalign your app: gradle( task: \"assemble\", build_type: \"Release\", print_command: false, properties: { \"android.injected.signing.store.file\" => \"keystore.jks\", \"android.injected.signing.store.password\" => \"store_password\", \"android.injected.signing.key.alias\" => \"key_alias\", \"android.injected.signing.key.password\" => \"key_password\", } ) If you need to pass sensitive information through the gradle action, and don't want the generated command to be printed before it is run, you can suppress that: gradle( # ... print_command: false ) You can also suppress printing the output generated by running the generated Gradle command: gradle( # ... print_command_output: false ) To pass any other CLI flags to gradle use: gradle( # ... flags: \"--exitcode --xml file.xml\" ) Delete the build directory, generated APKs and AABs gradle( task: \"clean\" )","title":"1 Example"},{"location":"generated/actions/gradle/#parameters","text":"Key Description Default task The gradle task you want to execute, e.g. assemble , bundle or test . For tasks such as assembleMyFlavorRelease you should use gradle(task: 'assemble', flavor: 'Myflavor', build_type: 'Release') flavor The flavor that you want the task for, e.g. MyFlavor . If you are running the assemble task in a multi-flavor project, and you rely on Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH] then you must specify a flavor here or else this value will be undefined build_type The build type that you want the task for, e.g. Release . Useful for some tasks such as assemble tasks The multiple gradle tasks that you want to execute, e.g. [assembleDebug, bundleDebug] flags All parameter flags you want to pass to the gradle command, e.g. --exitcode --xml file.xml project_dir The root directory of the gradle project . gradle_path The path to your gradlew . If you specify a relative path, it is assumed to be relative to the project_dir properties Gradle properties to be exposed to the gradle script system_properties Gradle system properties to be exposed to the gradle script serial Android serial, which device should be used for this command '' print_command Control whether the generated Gradle command is printed as output before running it (true/false) true print_command_output Control whether the output produced by given Gradle command is printed while running (true/false) true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/gradle/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The gradle action generates the following Lane Variables: SharedValue Description SharedValues::GRADLE_APK_OUTPUT_PATH The path to the newly generated apk file. Undefined in a multi-variant assemble scenario SharedValues::GRADLE_ALL_APK_OUTPUT_PATHS When running a multi-variant assemble , the array of signed apk's that were generated SharedValues::GRADLE_FLAVOR The flavor, e.g. MyFlavor SharedValues::GRADLE_BUILD_TYPE The build type, e.g. Release SharedValues::GRADLE_AAB_OUTPUT_PATH The path to the most recent Android app bundle SharedValues::GRADLE_ALL_AAB_OUTPUT_PATHS The paths to the most recent Android app bundles SharedValues::GRADLE_OUTPUT_JSON_OUTPUT_PATH The path to the most recent output.json file SharedValues::GRADLE_ALL_OUTPUT_JSON_OUTPUT_PATHS The path to the newly generated output.json files SharedValues::GRADLE_MAPPING_TXT_OUTPUT_PATH The path to the most recent mapping.txt file SharedValues::GRADLE_ALL_MAPPING_TXT_OUTPUT_PATHS The path to the newly generated mapping.txt files To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/gradle/#documentation","text":"To show the documentation in your terminal, run fastlane action gradle","title":"Documentation"},{"location":"generated/actions/gradle/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run gradle To pass parameters, make use of the : symbol, for example fastlane run gradle parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/gradle/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/gym/","text":"gym Alias for the build_app action Features \u2022 Usage \u2022 Tips gym is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. What's gym? gym builds and packages iOS apps for you. It takes care of all the heavy lifting and makes it super easy to generate a signed ipa or app file \ud83d\udcaa gym is a replacement for shenzhen . Before gym xcodebuild clean archive -archivePath build/MyApp \\ -scheme MyApp xcodebuild -exportArchive \\ -exportFormat ipa \\ -archivePath \"build/MyApp.xcarchive\" \\ -exportPath \"build/MyApp.ipa\" \\ -exportProvisioningProfile \"ProvisioningProfileName\" With gym fastlane gym Why gym ? gym uses the latest APIs to build and sign your application which results in much faster build times. gym Features \ud83d\ude80 gym builds 30% faster than other build tools like shenzhen \ud83c\udfc1 Beautiful inline build output \ud83d\udcd6 Helps you resolve common build errors like code signing issues \ud83d\udea0 Sensible defaults: Automatically detect the project, its schemes and more \ud83d\udd17 Works perfectly with fastlane and other tools \ud83d\udce6 Automatically generates an ipa and a compressed dSYM file \ud83d\ude85 Don't remember any complicated build commands, just gym \ud83d\udd27 Easy and dynamic configuration using parameters and environment variables \ud83d\udcbe Store common build settings in a Gymfile \ud83d\udce4 All archives are stored and accessible in the Xcode Organizer \ud83d\udcbb Supports both iOS and Mac applications Usage fastlane gym That's all you need to build your application. If you want more control, here are some available parameters: fastlane gym --workspace \"Example.xcworkspace\" --scheme \"AppName\" --clean If you need to use a different Xcode installation, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" fastlane gym For a list of all available parameters use fastlane action gym If you run into any issues, use the verbose mode to get more information fastlane gym --verbose Set the right export method if you're not uploading to App Store or TestFlight: fastlane gym --export_method ad-hoc To pass boolean parameters make sure to use gym like this: fastlane gym --include_bitcode true --include_symbols false To access the raw xcodebuild output open ~/Library/Logs/gym Gymfile Since you might want to manually trigger a new build but don't want to specify all the parameters every time, you can store your defaults in a so called Gymfile . Run fastlane gym init to create a new configuration file. Example: scheme(\"Example\") sdk(\"iphoneos9.0\") clean(true) output_directory(\"./build\") # store the ipa in this folder output_name(\"MyApp\") # the name of the ipa file Export options Since Xcode 7, gym is using new Xcode API which allows us to specify export options using plist file. By default gym creates this file for you and you are able to modify some parameters by using export_method , export_team_id , include_symbols or include_bitcode . If you want to have more options, like creating manifest file for app thinning, you can provide your own plist file: export_options(\"./ExportOptions.plist\") or you can provide hash of values directly in the Gymfile : export_options({ method: \"ad-hoc\", manifest: { appURL: \"https://example.com/My App.ipa\", }, thinning: \"\" }) Optional: If gym can't automatically detect the provisioning profiles to use, you can pass a mapping of bundle identifiers to provisioning profiles: build_app( scheme: \"Release\", export_method: \"app-store\", export_options: { provisioningProfiles: { \"com.example.bundleid\" => \"Provisioning Profile Name\", \"com.example.bundleid2\" => \"Provisioning Profile Name 2\" } } ) Note : If you use fastlane with match you don't need to provide those values manually, unless you pass a plist file into export_options For the list of available options run xcodebuild -help . Setup code signing More information on how to get started with codesigning Docs on how to set up your Xcode project Automating the whole process gym works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :beta do scan gym(scheme: \"MyApp\") crashlytics end # error block is executed when a error occurs error do |lane, exception| slack( # message with short human friendly message message: exception.to_s, success: false, # Output containing extended log output payload: { \"Output\" => exception.error_info.to_s } ) end When gym raises an error the error_info property will contain the process output in case you want to display the error in 3rd party tools such as Slack. You can then easily switch between the beta provider (e.g. testflight , hockey , s3 and more). How does it work? gym uses the latest APIs to build and sign your application. The 2 main components are xcodebuild xcpretty When you run gym without the --silent mode it will print out every command it executes. To build the archive gym uses the following command: set -o pipefail && \\ xcodebuild -scheme 'Example' \\ -project './Example.xcodeproj' \\ -configuration 'Release' \\ -destination 'generic/platform=iOS' \\ -archivePath '/Users/felixkrause/Library/Developer/Xcode/Archives/2015-08-11/ExampleProductName 2015-08-11 18.15.30.xcarchive' \\ archive | xcpretty After building the archive it is being checked by gym . If it's valid, it gets packaged up and signed into an ipa file. gym automatically chooses a different packaging method depending on the version of Xcode you're using. Xcode 7 and above /usr/bin/xcrun path/to/xcbuild-safe.sh -exportArchive \\ -exportOptionsPlist '/tmp/gym_config_1442852529.plist' \\ -archivePath '/Users/fkrause/Library/Developer/Xcode/Archives/2015-09-21/App 2015-09-21 09.21.56.xcarchive' \\ -exportPath '/tmp/1442852529' gym makes use of the new Xcode 7 API which allows us to specify the export options using a plist file. You can find more information about the available options by running xcodebuild --help . Using this method there are no workarounds for WatchKit or Swift required, as it uses the same technique Xcode uses when exporting your binary. Note: the xcbuild-safe.sh script wraps around xcodebuild to workaround some incompatibilities. Use 'ProvisionQL' for advanced Quick Look in Finder Install ProvisionQL . It will show you ipa files like this: gym Supported platforms ios, mac Author @KrauseFx Returns The absolute path to the generated ipa file 5 Examples build_app(scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\") build_app( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", silent: true, clean: true, output_directory: \"path/to/dir\", # Destination directory. Defaults to current directory. output_name: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) sdk: \"iOS 11.1\" # use SDK as the name or path of the base SDK when building the project. ) gym # alias for \"build_app\" build_ios_app # alias for \"build_app (only iOS options)\" build_mac_app # alias for \"build_app (only macOS options)\" Parameters Key Description Default workspace Path to the workspace file project Path to the project file scheme The project's scheme. Make sure it's marked as Shared clean Should the project be cleaned before building it? false output_directory The directory in which the ipa file should be stored in . output_name The name of the resulting ipa file configuration The configuration to use when building the app. Defaults to 'Release' * silent Hide all information that's not necessary while building false codesigning_identity The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH' skip_package_ipa Should we skip packaging the ipa? false skip_package_pkg Should we skip packaging the pkg? false include_symbols Should the ipa file include symbols? include_bitcode Should the ipa file include bitcode? export_method Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application export_options Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options export_xcargs Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" skip_build_archive Export ipa from previously built xcarchive. Uses archive_path as source skip_archive After building, don't archive, effectively not including -archivePath param skip_codesigning Build without codesigning catalyst_platform Platform to build when using a Catalyst enabled app. Valid values are: ios, macos installer_cert_name Full name of 3rd Party Mac Developer Installer or Developer ID Installer certificate. Example: 3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ) build_path The directory in which the archive should be stored in archive_path The path to the created archive derived_data_path The directory where built products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false result_bundle_path Path to the result bundle directory to create. Ignored if result_bundle if false buildlog_path The directory where to store the build log * sdk The SDK that should be used for building the application toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a) destination Use a custom destination for building the app export_team_id Optional: Sometimes you need to specify a team id when exporting the ipa file xcargs Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * build_timing_summary Create a build timing summary false disable_xcpretty DEPRECATED! Use xcodebuild_formatter: '' instead - Disable xcpretty formatting of build output xcpretty_test_format Use the test (RSpec style) format for build output xcpretty_formatter A custom xcpretty formatter to use xcpretty_report_junit Have xcpretty create a JUnit-style XML report at the provided path xcpretty_report_html Have xcpretty create a simple HTML report at the provided path xcpretty_report_json Have xcpretty create a JSON compilation database at the provided path xcpretty_utf Have xcpretty use unicode encoding when reporting builds analyze_build_time Analyze the project build time and store the output in 'culprits.txt' file skip_profile_detection Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used false xcodebuild_command Allows for override of the default xcodebuild command xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The gym action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::PKG_OUTPUT_PATH The path to the newly generated pkg file SharedValues::DSYM_OUTPUT_PATH The path to the dSYM files SharedValues::XCODEBUILD_ARCHIVE The path to the xcodebuild archive To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action gym CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run gym To pass parameters, make use of the : symbol, for example fastlane run gym parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Gym"},{"location":"generated/actions/gym/#gym","text":"Alias for the build_app action Features \u2022 Usage \u2022 Tips","title":"gym"},{"location":"generated/actions/gym/#whats-gym","text":"gym builds and packages iOS apps for you. It takes care of all the heavy lifting and makes it super easy to generate a signed ipa or app file \ud83d\udcaa gym is a replacement for shenzhen .","title":"What's gym?"},{"location":"generated/actions/gym/#usage","text":"fastlane gym That's all you need to build your application. If you want more control, here are some available parameters: fastlane gym --workspace \"Example.xcworkspace\" --scheme \"AppName\" --clean If you need to use a different Xcode installation, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" fastlane gym For a list of all available parameters use fastlane action gym If you run into any issues, use the verbose mode to get more information fastlane gym --verbose Set the right export method if you're not uploading to App Store or TestFlight: fastlane gym --export_method ad-hoc To pass boolean parameters make sure to use gym like this: fastlane gym --include_bitcode true --include_symbols false To access the raw xcodebuild output open ~/Library/Logs/gym","title":"Usage"},{"location":"generated/actions/gym/#gymfile","text":"Since you might want to manually trigger a new build but don't want to specify all the parameters every time, you can store your defaults in a so called Gymfile . Run fastlane gym init to create a new configuration file. Example: scheme(\"Example\") sdk(\"iphoneos9.0\") clean(true) output_directory(\"./build\") # store the ipa in this folder output_name(\"MyApp\") # the name of the ipa file","title":"Gymfile"},{"location":"generated/actions/gym/#export-options","text":"Since Xcode 7, gym is using new Xcode API which allows us to specify export options using plist file. By default gym creates this file for you and you are able to modify some parameters by using export_method , export_team_id , include_symbols or include_bitcode . If you want to have more options, like creating manifest file for app thinning, you can provide your own plist file: export_options(\"./ExportOptions.plist\") or you can provide hash of values directly in the Gymfile : export_options({ method: \"ad-hoc\", manifest: { appURL: \"https://example.com/My App.ipa\", }, thinning: \"\" }) Optional: If gym can't automatically detect the provisioning profiles to use, you can pass a mapping of bundle identifiers to provisioning profiles: build_app( scheme: \"Release\", export_method: \"app-store\", export_options: { provisioningProfiles: { \"com.example.bundleid\" => \"Provisioning Profile Name\", \"com.example.bundleid2\" => \"Provisioning Profile Name 2\" } } ) Note : If you use fastlane with match you don't need to provide those values manually, unless you pass a plist file into export_options For the list of available options run xcodebuild -help .","title":"Export options"},{"location":"generated/actions/gym/#setup-code-signing","text":"More information on how to get started with codesigning Docs on how to set up your Xcode project","title":"Setup code signing"},{"location":"generated/actions/gym/#automating-the-whole-process","text":"gym works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :beta do scan gym(scheme: \"MyApp\") crashlytics end # error block is executed when a error occurs error do |lane, exception| slack( # message with short human friendly message message: exception.to_s, success: false, # Output containing extended log output payload: { \"Output\" => exception.error_info.to_s } ) end When gym raises an error the error_info property will contain the process output in case you want to display the error in 3rd party tools such as Slack. You can then easily switch between the beta provider (e.g. testflight , hockey , s3 and more).","title":"Automating the whole process"},{"location":"generated/actions/gym/#how-does-it-work","text":"gym uses the latest APIs to build and sign your application. The 2 main components are xcodebuild xcpretty When you run gym without the --silent mode it will print out every command it executes. To build the archive gym uses the following command: set -o pipefail && \\ xcodebuild -scheme 'Example' \\ -project './Example.xcodeproj' \\ -configuration 'Release' \\ -destination 'generic/platform=iOS' \\ -archivePath '/Users/felixkrause/Library/Developer/Xcode/Archives/2015-08-11/ExampleProductName 2015-08-11 18.15.30.xcarchive' \\ archive | xcpretty After building the archive it is being checked by gym . If it's valid, it gets packaged up and signed into an ipa file. gym automatically chooses a different packaging method depending on the version of Xcode you're using.","title":"How does it work?"},{"location":"generated/actions/gym/#use-provisionql-for-advanced-quick-look-in-finder","text":"Install ProvisionQL . It will show you ipa files like this: gym Supported platforms ios, mac Author @KrauseFx Returns The absolute path to the generated ipa file","title":"Use 'ProvisionQL' for advanced Quick Look in Finder"},{"location":"generated/actions/gym/#5-examples","text":"build_app(scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\") build_app( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", silent: true, clean: true, output_directory: \"path/to/dir\", # Destination directory. Defaults to current directory. output_name: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) sdk: \"iOS 11.1\" # use SDK as the name or path of the base SDK when building the project. ) gym # alias for \"build_app\" build_ios_app # alias for \"build_app (only iOS options)\" build_mac_app # alias for \"build_app (only macOS options)\"","title":"5 Examples"},{"location":"generated/actions/gym/#parameters","text":"Key Description Default workspace Path to the workspace file project Path to the project file scheme The project's scheme. Make sure it's marked as Shared clean Should the project be cleaned before building it? false output_directory The directory in which the ipa file should be stored in . output_name The name of the resulting ipa file configuration The configuration to use when building the app. Defaults to 'Release' * silent Hide all information that's not necessary while building false codesigning_identity The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH' skip_package_ipa Should we skip packaging the ipa? false skip_package_pkg Should we skip packaging the pkg? false include_symbols Should the ipa file include symbols? include_bitcode Should the ipa file include bitcode? export_method Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application export_options Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options export_xcargs Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" skip_build_archive Export ipa from previously built xcarchive. Uses archive_path as source skip_archive After building, don't archive, effectively not including -archivePath param skip_codesigning Build without codesigning catalyst_platform Platform to build when using a Catalyst enabled app. Valid values are: ios, macos installer_cert_name Full name of 3rd Party Mac Developer Installer or Developer ID Installer certificate. Example: 3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ) build_path The directory in which the archive should be stored in archive_path The path to the created archive derived_data_path The directory where built products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false result_bundle_path Path to the result bundle directory to create. Ignored if result_bundle if false buildlog_path The directory where to store the build log * sdk The SDK that should be used for building the application toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a) destination Use a custom destination for building the app export_team_id Optional: Sometimes you need to specify a team id when exporting the ipa file xcargs Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * build_timing_summary Create a build timing summary false disable_xcpretty DEPRECATED! Use xcodebuild_formatter: '' instead - Disable xcpretty formatting of build output xcpretty_test_format Use the test (RSpec style) format for build output xcpretty_formatter A custom xcpretty formatter to use xcpretty_report_junit Have xcpretty create a JUnit-style XML report at the provided path xcpretty_report_html Have xcpretty create a simple HTML report at the provided path xcpretty_report_json Have xcpretty create a JSON compilation database at the provided path xcpretty_utf Have xcpretty use unicode encoding when reporting builds analyze_build_time Analyze the project build time and store the output in 'culprits.txt' file skip_profile_detection Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used false xcodebuild_command Allows for override of the default xcodebuild command xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/gym/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The gym action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::PKG_OUTPUT_PATH The path to the newly generated pkg file SharedValues::DSYM_OUTPUT_PATH The path to the dSYM files SharedValues::XCODEBUILD_ARCHIVE The path to the xcodebuild archive To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/gym/#documentation","text":"To show the documentation in your terminal, run fastlane action gym","title":"Documentation"},{"location":"generated/actions/gym/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run gym To pass parameters, make use of the : symbol, for example fastlane run gym parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/gym/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/hg_add_tag/","text":"hg_add_tag This will add a hg tag to the current branch hg_add_tag Supported platforms ios, android, mac Author @sjrmanning 1 Example hg_add_tag(tag: \"1.3\") Parameters Key Description Default tag Tag to create * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action hg_add_tag CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hg_add_tag To pass parameters, make use of the : symbol, for example fastlane run hg_add_tag parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Hg add tag"},{"location":"generated/actions/hg_add_tag/#hg_add_tag","text":"This will add a hg tag to the current branch hg_add_tag Supported platforms ios, android, mac Author @sjrmanning","title":"hg_add_tag"},{"location":"generated/actions/hg_add_tag/#1-example","text":"hg_add_tag(tag: \"1.3\")","title":"1 Example"},{"location":"generated/actions/hg_add_tag/#parameters","text":"Key Description Default tag Tag to create * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/hg_add_tag/#documentation","text":"To show the documentation in your terminal, run fastlane action hg_add_tag","title":"Documentation"},{"location":"generated/actions/hg_add_tag/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hg_add_tag To pass parameters, make use of the : symbol, for example fastlane run hg_add_tag parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/hg_add_tag/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/hg_commit_version_bump/","text":"hg_commit_version_bump This will commit a version bump to the hg repo The mercurial equivalent of the commit_version_bump git action. Like the git version, it is useful in conjunction with increment_build_number . It checks the repo to make sure that only the relevant files have changed, these are the files that increment_build_number ( agvtool ) touches: All .plist files The .xcodeproj/project.pbxproj file Then commits those files to the repo. Customize the message with the :message option, defaults to 'Version Bump' If you have other uncommitted changes in your repo, this action will fail. If you started off in a clean repo, and used the ipa and or sigh actions, then you can use the clean_build_artifacts action to clean those temporary files up before running this action. hg_commit_version_bump Supported platforms ios, android, mac Author @sjrmanning 2 Examples hg_commit_version_bump hg_commit_version_bump( message: \"Version Bump\", # create a commit with a custom message xcodeproj: \"./path/MyProject.xcodeproj\", # optional, if you have multiple Xcode project files, you must specify your main project here ) Parameters Key Description Default message The commit message when committing the version bump Version Bump xcodeproj The path to your project file (Not the workspace). If you have only one, this is optional force Forces the commit, even if other files than the ones containing the version number have been modified false test_dirty_files A list of dirty files passed in for testing file1, file2 test_expected_files A list of expected changed files passed in for testing file1, file2 * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action hg_commit_version_bump CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hg_commit_version_bump To pass parameters, make use of the : symbol, for example fastlane run hg_commit_version_bump parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Hg commit version bump"},{"location":"generated/actions/hg_commit_version_bump/#hg_commit_version_bump","text":"This will commit a version bump to the hg repo The mercurial equivalent of the commit_version_bump git action. Like the git version, it is useful in conjunction with increment_build_number . It checks the repo to make sure that only the relevant files have changed, these are the files that increment_build_number ( agvtool ) touches: All .plist files The .xcodeproj/project.pbxproj file Then commits those files to the repo. Customize the message with the :message option, defaults to 'Version Bump' If you have other uncommitted changes in your repo, this action will fail. If you started off in a clean repo, and used the ipa and or sigh actions, then you can use the clean_build_artifacts action to clean those temporary files up before running this action. hg_commit_version_bump Supported platforms ios, android, mac Author @sjrmanning","title":"hg_commit_version_bump"},{"location":"generated/actions/hg_commit_version_bump/#2-examples","text":"hg_commit_version_bump hg_commit_version_bump( message: \"Version Bump\", # create a commit with a custom message xcodeproj: \"./path/MyProject.xcodeproj\", # optional, if you have multiple Xcode project files, you must specify your main project here )","title":"2 Examples"},{"location":"generated/actions/hg_commit_version_bump/#parameters","text":"Key Description Default message The commit message when committing the version bump Version Bump xcodeproj The path to your project file (Not the workspace). If you have only one, this is optional force Forces the commit, even if other files than the ones containing the version number have been modified false test_dirty_files A list of dirty files passed in for testing file1, file2 test_expected_files A list of expected changed files passed in for testing file1, file2 * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/hg_commit_version_bump/#documentation","text":"To show the documentation in your terminal, run fastlane action hg_commit_version_bump","title":"Documentation"},{"location":"generated/actions/hg_commit_version_bump/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hg_commit_version_bump To pass parameters, make use of the : symbol, for example fastlane run hg_commit_version_bump parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/hg_commit_version_bump/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/hg_ensure_clean_status/","text":"hg_ensure_clean_status Raises an exception if there are uncommitted hg changes Along the same lines as the ensure_git_status_clean action, this is a sanity check to ensure the working mercurial repo is clean. Especially useful to put at the beginning of your Fastfile in the before_all block. hg_ensure_clean_status Supported platforms ios, android, mac Author @sjrmanning 1 Example hg_ensure_clean_status Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The hg_ensure_clean_status action generates the following Lane Variables: SharedValue Description SharedValues::HG_REPO_WAS_CLEAN_ON_START Stores the fact that the hg repo was clean at some point To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action hg_ensure_clean_status CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hg_ensure_clean_status To pass parameters, make use of the : symbol, for example fastlane run hg_ensure_clean_status parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Hg ensure clean status"},{"location":"generated/actions/hg_ensure_clean_status/#hg_ensure_clean_status","text":"Raises an exception if there are uncommitted hg changes Along the same lines as the ensure_git_status_clean action, this is a sanity check to ensure the working mercurial repo is clean. Especially useful to put at the beginning of your Fastfile in the before_all block. hg_ensure_clean_status Supported platforms ios, android, mac Author @sjrmanning","title":"hg_ensure_clean_status"},{"location":"generated/actions/hg_ensure_clean_status/#1-example","text":"hg_ensure_clean_status","title":"1 Example"},{"location":"generated/actions/hg_ensure_clean_status/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The hg_ensure_clean_status action generates the following Lane Variables: SharedValue Description SharedValues::HG_REPO_WAS_CLEAN_ON_START Stores the fact that the hg repo was clean at some point To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/hg_ensure_clean_status/#documentation","text":"To show the documentation in your terminal, run fastlane action hg_ensure_clean_status","title":"Documentation"},{"location":"generated/actions/hg_ensure_clean_status/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hg_ensure_clean_status To pass parameters, make use of the : symbol, for example fastlane run hg_ensure_clean_status parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/hg_ensure_clean_status/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/hg_push/","text":"hg_push This will push changes to the remote hg repository The mercurial equivalent of push_to_git_remote . Pushes your local commits to a remote mercurial repo. Useful when local changes such as adding a version bump commit or adding a tag are part of your lane\u2019s actions. hg_push Supported platforms ios, android, mac Author @sjrmanning 2 Examples hg_push hg_push( destination: \"ssh://hg@repohost.com/owner/repo\", force: true ) Parameters Key Description Default force Force push to remote false destination The destination to push to '' * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action hg_push CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hg_push To pass parameters, make use of the : symbol, for example fastlane run hg_push parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Hg push"},{"location":"generated/actions/hg_push/#hg_push","text":"This will push changes to the remote hg repository The mercurial equivalent of push_to_git_remote . Pushes your local commits to a remote mercurial repo. Useful when local changes such as adding a version bump commit or adding a tag are part of your lane\u2019s actions. hg_push Supported platforms ios, android, mac Author @sjrmanning","title":"hg_push"},{"location":"generated/actions/hg_push/#2-examples","text":"hg_push hg_push( destination: \"ssh://hg@repohost.com/owner/repo\", force: true )","title":"2 Examples"},{"location":"generated/actions/hg_push/#parameters","text":"Key Description Default force Force push to remote false destination The destination to push to '' * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/hg_push/#documentation","text":"To show the documentation in your terminal, run fastlane action hg_push","title":"Documentation"},{"location":"generated/actions/hg_push/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hg_push To pass parameters, make use of the : symbol, for example fastlane run hg_push parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/hg_push/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/hipchat/","text":"hipchat Send a error/success message to HipChat Send a message to room (by default) or a direct message to @username with success (green) or failure (red) status. hipchat Supported platforms ios, android, mac Author @jingx23 1 Example hipchat( message: \"App successfully released!\", message_format: \"html\", # or \"text\", defaults to \"html\" channel: \"Room or @username\", success: true ) Parameters Key Description Default message The message to post on HipChat '' channel The room or @username api_token Hipchat API Token custom_color Specify a custom color, this overrides the success boolean. Can be one of 'yellow', 'red', 'green', 'purple', 'gray', or 'random' success Was this build successful? (true/false) true version Version of the Hipchat API. Must be 1 or 2 notify_room Should the people in the room be notified? (true/false) false api_host The host of the HipChat-Server API api.hipchat.com message_format Format of the message to post. Must be either 'html' or 'text' html include_html_header Should html formatted messages include a preformatted header? (true/false) true from Name the message will appear to be sent from fastlane * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action hipchat CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hipchat To pass parameters, make use of the : symbol, for example fastlane run hipchat parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Hipchat"},{"location":"generated/actions/hipchat/#hipchat","text":"Send a error/success message to HipChat Send a message to room (by default) or a direct message to @username with success (green) or failure (red) status. hipchat Supported platforms ios, android, mac Author @jingx23","title":"hipchat"},{"location":"generated/actions/hipchat/#1-example","text":"hipchat( message: \"App successfully released!\", message_format: \"html\", # or \"text\", defaults to \"html\" channel: \"Room or @username\", success: true )","title":"1 Example"},{"location":"generated/actions/hipchat/#parameters","text":"Key Description Default message The message to post on HipChat '' channel The room or @username api_token Hipchat API Token custom_color Specify a custom color, this overrides the success boolean. Can be one of 'yellow', 'red', 'green', 'purple', 'gray', or 'random' success Was this build successful? (true/false) true version Version of the Hipchat API. Must be 1 or 2 notify_room Should the people in the room be notified? (true/false) false api_host The host of the HipChat-Server API api.hipchat.com message_format Format of the message to post. Must be either 'html' or 'text' html include_html_header Should html formatted messages include a preformatted header? (true/false) true from Name the message will appear to be sent from fastlane * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/hipchat/#documentation","text":"To show the documentation in your terminal, run fastlane action hipchat","title":"Documentation"},{"location":"generated/actions/hipchat/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hipchat To pass parameters, make use of the : symbol, for example fastlane run hipchat parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/hipchat/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/hockey/","text":"hockey Refer to App Center HockeyApp will be no longer supported and will be transitioned into App Center on November 16, 2019. Please migrate over to App Center HockeyApp will be no longer supported and will be transitioned into App Center on November 16, 2019. Please migrate over to App Center Symbols will also be uploaded automatically if a app.dSYM.zip file is found next to app.ipa . In case it is located in a different place you can specify the path explicitly in the :dsym parameter. More information about the available options can be found in the HockeyApp Docs . hockey Supported platforms ios, android, mac Author @KrauseFx, @modzelewski, @lacostej 3 Examples hockey( api_token: \"...\", ipa: \"./app.ipa\", notes: \"Changelog\" ) hockey( api_token: \"...\", create_update: true, public_identifier: \"....\", bundle_short_version: \"1.0.2\", bundle_version: \"1.0.2.145\", ipa: \"./my.msi\", notes: \"Changelog\" ) # You can bypass the CDN if you are uploading to Hockey and receive an SSL error (which can happen on corporate firewalls) hockey( api_token: \"...\", ipa: \"./app.ipa\", notes: \"Changelog\", bypass_cdn: true ) Parameters Key Description Default apk Path to your APK file * api_token API Token for Hockey Access ipa Path to your IPA file. Optional if you use the gym or xcodebuild action. For Mac zip the .app. For Android provide path to .apk file. In addition you could use this to upload .msi, .zip, .pkg, etc if you use the 'create_update' mechanism * dsym Path to your symbols file. For iOS and Mac provide path to app.dSYM.zip. For Android provide path to mappings.txt file * create_update Set true if you want to create then update your app as opposed to just upload it. You will need the 'public_identifier', 'bundle_version' and 'bundle_short_version' false notes Beta Notes * notify Notify testers? \"1\" for yes 1 status Download status: \"1\" = No user can download; \"2\" = Available for download (only possible with full-access token) 2 create_status Download status for initial version creation when create_update is true: \"1\" = No user can download; \"2\" = Available for download (only possible with full-access token) 2 notes_type Notes type for your :notes, \"0\" = Textile, \"1\" = Markdown (default) 1 release_type Release type of the app: \"0\" = Beta (default), \"1\" = Store, \"2\" = Alpha, \"3\" = Enterprise 0 mandatory Set to \"1\" to make this update mandatory 0 teams Comma separated list of team ID numbers to which this build will be restricted users Comma separated list of user ID numbers to which this build will be restricted tags Comma separated list of tags which will receive access to the build bundle_short_version The bundle_short_version of your application, required when using create_update bundle_version The bundle_version of your application, required when using create_update public_identifier App id of the app you are targeting, usually you won't need this value. Required, if upload_dsym_only set to true commit_sha The Git commit SHA for this build repository_url The URL of your source repository build_server_url The URL of the build job on your build server upload_dsym_only Flag to upload only the dSYM file to hockey app false owner_id ID for the owner of the app strategy Strategy: 'add' = to add the build as a new build even if it has the same build number (default); 'replace' = to replace a build with the same build number add timeout Request timeout in seconds bypass_cdn Flag to bypass Hockey CDN when it uploads successfully but reports error false dsa_signature DSA signature for sparkle updates for macOS '' * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The hockey action generates the following Lane Variables: SharedValue Description SharedValues::HOCKEY_DOWNLOAD_LINK The newly generated download link for this build SharedValues::HOCKEY_BUILD_INFORMATION contains all keys/values from the HockeyApp API, like :title, :bundle_identifier To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action hockey CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hockey To pass parameters, make use of the : symbol, for example fastlane run hockey parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Hockey"},{"location":"generated/actions/hockey/#hockey","text":"Refer to App Center HockeyApp will be no longer supported and will be transitioned into App Center on November 16, 2019. Please migrate over to App Center HockeyApp will be no longer supported and will be transitioned into App Center on November 16, 2019. Please migrate over to App Center Symbols will also be uploaded automatically if a app.dSYM.zip file is found next to app.ipa . In case it is located in a different place you can specify the path explicitly in the :dsym parameter. More information about the available options can be found in the HockeyApp Docs . hockey Supported platforms ios, android, mac Author @KrauseFx, @modzelewski, @lacostej","title":"hockey"},{"location":"generated/actions/hockey/#3-examples","text":"hockey( api_token: \"...\", ipa: \"./app.ipa\", notes: \"Changelog\" ) hockey( api_token: \"...\", create_update: true, public_identifier: \"....\", bundle_short_version: \"1.0.2\", bundle_version: \"1.0.2.145\", ipa: \"./my.msi\", notes: \"Changelog\" ) # You can bypass the CDN if you are uploading to Hockey and receive an SSL error (which can happen on corporate firewalls) hockey( api_token: \"...\", ipa: \"./app.ipa\", notes: \"Changelog\", bypass_cdn: true )","title":"3 Examples"},{"location":"generated/actions/hockey/#parameters","text":"Key Description Default apk Path to your APK file * api_token API Token for Hockey Access ipa Path to your IPA file. Optional if you use the gym or xcodebuild action. For Mac zip the .app. For Android provide path to .apk file. In addition you could use this to upload .msi, .zip, .pkg, etc if you use the 'create_update' mechanism * dsym Path to your symbols file. For iOS and Mac provide path to app.dSYM.zip. For Android provide path to mappings.txt file * create_update Set true if you want to create then update your app as opposed to just upload it. You will need the 'public_identifier', 'bundle_version' and 'bundle_short_version' false notes Beta Notes * notify Notify testers? \"1\" for yes 1 status Download status: \"1\" = No user can download; \"2\" = Available for download (only possible with full-access token) 2 create_status Download status for initial version creation when create_update is true: \"1\" = No user can download; \"2\" = Available for download (only possible with full-access token) 2 notes_type Notes type for your :notes, \"0\" = Textile, \"1\" = Markdown (default) 1 release_type Release type of the app: \"0\" = Beta (default), \"1\" = Store, \"2\" = Alpha, \"3\" = Enterprise 0 mandatory Set to \"1\" to make this update mandatory 0 teams Comma separated list of team ID numbers to which this build will be restricted users Comma separated list of user ID numbers to which this build will be restricted tags Comma separated list of tags which will receive access to the build bundle_short_version The bundle_short_version of your application, required when using create_update bundle_version The bundle_version of your application, required when using create_update public_identifier App id of the app you are targeting, usually you won't need this value. Required, if upload_dsym_only set to true commit_sha The Git commit SHA for this build repository_url The URL of your source repository build_server_url The URL of the build job on your build server upload_dsym_only Flag to upload only the dSYM file to hockey app false owner_id ID for the owner of the app strategy Strategy: 'add' = to add the build as a new build even if it has the same build number (default); 'replace' = to replace a build with the same build number add timeout Request timeout in seconds bypass_cdn Flag to bypass Hockey CDN when it uploads successfully but reports error false dsa_signature DSA signature for sparkle updates for macOS '' * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/hockey/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The hockey action generates the following Lane Variables: SharedValue Description SharedValues::HOCKEY_DOWNLOAD_LINK The newly generated download link for this build SharedValues::HOCKEY_BUILD_INFORMATION contains all keys/values from the HockeyApp API, like :title, :bundle_identifier To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/hockey/#documentation","text":"To show the documentation in your terminal, run fastlane action hockey","title":"Documentation"},{"location":"generated/actions/hockey/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hockey To pass parameters, make use of the : symbol, for example fastlane run hockey parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/hockey/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/ifttt/","text":"ifttt Connect to the IFTTT Maker Channel Connect to the IFTTT Maker Channel . An IFTTT Recipe has two components: a Trigger and an Action. In this case, the Trigger will fire every time the Maker Channel receives a web request (made by this fastlane action) to notify it of an event. The Action can be anything that IFTTT supports: email, SMS, etc. ifttt Supported platforms ios, android, mac Author @vpolouchkine 1 Example ifttt( api_key: \"...\", event_name: \"...\", value1: \"foo\", value2: \"bar\", value3: \"baz\" ) Parameters Key Description Default api_key API key event_name The name of the event that will be triggered value1 Extra data sent with the event value2 Extra data sent with the event value3 Extra data sent with the event * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action ifttt CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ifttt To pass parameters, make use of the : symbol, for example fastlane run ifttt parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Ifttt"},{"location":"generated/actions/ifttt/#ifttt","text":"Connect to the IFTTT Maker Channel Connect to the IFTTT Maker Channel . An IFTTT Recipe has two components: a Trigger and an Action. In this case, the Trigger will fire every time the Maker Channel receives a web request (made by this fastlane action) to notify it of an event. The Action can be anything that IFTTT supports: email, SMS, etc. ifttt Supported platforms ios, android, mac Author @vpolouchkine","title":"ifttt"},{"location":"generated/actions/ifttt/#1-example","text":"ifttt( api_key: \"...\", event_name: \"...\", value1: \"foo\", value2: \"bar\", value3: \"baz\" )","title":"1 Example"},{"location":"generated/actions/ifttt/#parameters","text":"Key Description Default api_key API key event_name The name of the event that will be triggered value1 Extra data sent with the event value2 Extra data sent with the event value3 Extra data sent with the event * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/ifttt/#documentation","text":"To show the documentation in your terminal, run fastlane action ifttt","title":"Documentation"},{"location":"generated/actions/ifttt/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ifttt To pass parameters, make use of the : symbol, for example fastlane run ifttt parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/ifttt/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/import/","text":"import Import another Fastfile to use its lanes 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 Supported platforms ios, android, mac Author @KrauseFx 1 Example import(\"./path/to/other/Fastfile\") Documentation To show the documentation in your terminal, run fastlane action import CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run import To pass parameters, make use of the : symbol, for example fastlane run import parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Import"},{"location":"generated/actions/import/#import","text":"Import another Fastfile to use its lanes 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 Supported platforms ios, android, mac Author @KrauseFx","title":"import"},{"location":"generated/actions/import/#1-example","text":"import(\"./path/to/other/Fastfile\")","title":"1 Example"},{"location":"generated/actions/import/#documentation","text":"To show the documentation in your terminal, run fastlane action import","title":"Documentation"},{"location":"generated/actions/import/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run import To pass parameters, make use of the : symbol, for example fastlane run import parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/import/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/import_certificate/","text":"import_certificate Import certificate from inputfile into a keychain Import certificates (and private keys) into the current default keychain. Use the create_keychain action to create a new keychain. import_certificate Supported platforms ios, android, mac Author @gin0606 3 Examples import_certificate(certificate_path: \"certs/AppleWWDRCA6.cer\") import_certificate( certificate_path: \"certs/dist.p12\", certificate_password: ENV[\"CERTIFICATE_PASSWORD\"] || \"default\" ) import_certificate( certificate_path: \"certs/development.cer\" ) Parameters Key Description Default certificate_path Path to certificate certificate_password Certificate password '' keychain_name Keychain the items should be imported to keychain_path Path to the Keychain file to which the items should be imported keychain_password The password for the keychain. Note that for the login keychain this is your user's password log_output If output should be logged to the console false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action import_certificate CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run import_certificate To pass parameters, make use of the : symbol, for example fastlane run import_certificate parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Import certificate"},{"location":"generated/actions/import_certificate/#import_certificate","text":"Import certificate from inputfile into a keychain Import certificates (and private keys) into the current default keychain. Use the create_keychain action to create a new keychain. import_certificate Supported platforms ios, android, mac Author @gin0606","title":"import_certificate"},{"location":"generated/actions/import_certificate/#3-examples","text":"import_certificate(certificate_path: \"certs/AppleWWDRCA6.cer\") import_certificate( certificate_path: \"certs/dist.p12\", certificate_password: ENV[\"CERTIFICATE_PASSWORD\"] || \"default\" ) import_certificate( certificate_path: \"certs/development.cer\" )","title":"3 Examples"},{"location":"generated/actions/import_certificate/#parameters","text":"Key Description Default certificate_path Path to certificate certificate_password Certificate password '' keychain_name Keychain the items should be imported to keychain_path Path to the Keychain file to which the items should be imported keychain_password The password for the keychain. Note that for the login keychain this is your user's password log_output If output should be logged to the console false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/import_certificate/#documentation","text":"To show the documentation in your terminal, run fastlane action import_certificate","title":"Documentation"},{"location":"generated/actions/import_certificate/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run import_certificate To pass parameters, make use of the : symbol, for example fastlane run import_certificate parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/import_certificate/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/import_from_git/","text":"import_from_git Import another Fastfile from a remote git repository to use its lanes This is useful if you have shared lanes across multiple apps and you want to store the Fastfile in a remote git repository. import_from_git Supported platforms ios, android, mac Author @fabiomassimo, @KrauseFx, @Liquidsoul 2 Examples import_from_git( url: \"git@github.com:fastlane/fastlane.git\", # The URL of the repository to import the Fastfile from. branch: \"HEAD\", # The branch to checkout on the repository. path: \"fastlane/Fastfile\", # The path of the Fastfile in the repository. version: \"~> 1.0.0\" # The version to checkout on the repository. Optimistic match operator can be used to select the latest version within constraints. ) import_from_git( url: \"git@github.com:fastlane/fastlane.git\", # The URL of the repository to import the Fastfile from. branch: \"HEAD\", # The branch to checkout on the repository. path: \"fastlane/Fastfile\", # The path of the Fastfile in the repository. version: [\">= 1.1.0\", \"< 2.0.0\"], # The version to checkout on the repository. Multiple conditions can be used to select the latest version within constraints. cache_path: \"~/.cache/fastlane/imported\" # A directory in which the repository will be added, which means that it will not be cloned again on subsequent calls. ) Parameters Key Description Default url The URL of the repository to import the Fastfile from branch The branch or tag to check-out on the repository HEAD dependencies The array of additional Fastfiles in the repository [] path The path of the Fastfile in the repository fastlane/Fastfile version The version to checkout on the repository. Optimistic match operator or multiple conditions can be used to select the latest version within constraints cache_path The path to a directory where the repository should be cloned into. Defaults to nil , which causes the repository to be cloned on every call, to a temporary directory * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action import_from_git CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run import_from_git To pass parameters, make use of the : symbol, for example fastlane run import_from_git parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Import from git"},{"location":"generated/actions/import_from_git/#import_from_git","text":"Import another Fastfile from a remote git repository to use its lanes This is useful if you have shared lanes across multiple apps and you want to store the Fastfile in a remote git repository. import_from_git Supported platforms ios, android, mac Author @fabiomassimo, @KrauseFx, @Liquidsoul","title":"import_from_git"},{"location":"generated/actions/import_from_git/#2-examples","text":"import_from_git( url: \"git@github.com:fastlane/fastlane.git\", # The URL of the repository to import the Fastfile from. branch: \"HEAD\", # The branch to checkout on the repository. path: \"fastlane/Fastfile\", # The path of the Fastfile in the repository. version: \"~> 1.0.0\" # The version to checkout on the repository. Optimistic match operator can be used to select the latest version within constraints. ) import_from_git( url: \"git@github.com:fastlane/fastlane.git\", # The URL of the repository to import the Fastfile from. branch: \"HEAD\", # The branch to checkout on the repository. path: \"fastlane/Fastfile\", # The path of the Fastfile in the repository. version: [\">= 1.1.0\", \"< 2.0.0\"], # The version to checkout on the repository. Multiple conditions can be used to select the latest version within constraints. cache_path: \"~/.cache/fastlane/imported\" # A directory in which the repository will be added, which means that it will not be cloned again on subsequent calls. )","title":"2 Examples"},{"location":"generated/actions/import_from_git/#parameters","text":"Key Description Default url The URL of the repository to import the Fastfile from branch The branch or tag to check-out on the repository HEAD dependencies The array of additional Fastfiles in the repository [] path The path of the Fastfile in the repository fastlane/Fastfile version The version to checkout on the repository. Optimistic match operator or multiple conditions can be used to select the latest version within constraints cache_path The path to a directory where the repository should be cloned into. Defaults to nil , which causes the repository to be cloned on every call, to a temporary directory * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/import_from_git/#documentation","text":"To show the documentation in your terminal, run fastlane action import_from_git","title":"Documentation"},{"location":"generated/actions/import_from_git/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run import_from_git To pass parameters, make use of the : symbol, for example fastlane run import_from_git parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/import_from_git/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/increment_build_number/","text":"increment_build_number Increment the build number of your project increment_build_number Supported platforms ios, mac Author @KrauseFx Returns The new build number 4 Examples increment_build_number # automatically increment by one increment_build_number( build_number: \"75\" # set a specific number ) increment_build_number( build_number: 75, # specify specific build number (optional, omitting it increments by one) xcodeproj: \"./path/to/MyApp.xcodeproj\" # (optional, you must specify the path to your main Xcode project if it is not in the project root directory) ) build_number = increment_build_number Parameters Key Description Default build_number Change to a specific version. When you provide this parameter, Apple Generic Versioning does not have to be enabled skip_info_plist Don't update Info.plist files when updating the build version false xcodeproj optional, you must specify the path to your main Xcode project if it is not in the project root directory * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The increment_build_number action generates the following Lane Variables: SharedValue Description SharedValues::BUILD_NUMBER The new build number To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action increment_build_number CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run increment_build_number To pass parameters, make use of the : symbol, for example fastlane run increment_build_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Increment build number"},{"location":"generated/actions/increment_build_number/#increment_build_number","text":"Increment the build number of your project increment_build_number Supported platforms ios, mac Author @KrauseFx Returns The new build number","title":"increment_build_number"},{"location":"generated/actions/increment_build_number/#4-examples","text":"increment_build_number # automatically increment by one increment_build_number( build_number: \"75\" # set a specific number ) increment_build_number( build_number: 75, # specify specific build number (optional, omitting it increments by one) xcodeproj: \"./path/to/MyApp.xcodeproj\" # (optional, you must specify the path to your main Xcode project if it is not in the project root directory) ) build_number = increment_build_number","title":"4 Examples"},{"location":"generated/actions/increment_build_number/#parameters","text":"Key Description Default build_number Change to a specific version. When you provide this parameter, Apple Generic Versioning does not have to be enabled skip_info_plist Don't update Info.plist files when updating the build version false xcodeproj optional, you must specify the path to your main Xcode project if it is not in the project root directory * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/increment_build_number/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The increment_build_number action generates the following Lane Variables: SharedValue Description SharedValues::BUILD_NUMBER The new build number To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/increment_build_number/#documentation","text":"To show the documentation in your terminal, run fastlane action increment_build_number","title":"Documentation"},{"location":"generated/actions/increment_build_number/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run increment_build_number To pass parameters, make use of the : symbol, for example fastlane run increment_build_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/increment_build_number/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/increment_version_number/","text":"increment_version_number Increment the version number of your project This action will increment the version number. You first have to set up your Xcode project, if you haven't done it already: https://developer.apple.com/library/ios/qa/qa1827/_index.html . increment_version_number Supported platforms ios, mac Author @serluca Returns The new version number 7 Examples increment_version_number # Automatically increment version number increment_version_number( bump_type: \"patch\" # Automatically increment patch version number ) increment_version_number( bump_type: \"minor\" # Automatically increment minor version number ) increment_version_number( bump_type: \"major\" # Automatically increment major version number ) increment_version_number( version_number: \"2.1.1\" # Set a specific version number ) increment_version_number( version_number: \"2.1.1\", # specify specific version number (optional, omitting it increments patch version number) xcodeproj: \"./path/to/MyApp.xcodeproj\" # (optional, you must specify the path to your main Xcode project if it is not in the project root directory) ) version = increment_version_number Parameters Key Description Default bump_type The type of this version bump. Available: patch, minor, major bump version_number Change to a specific version. This will replace the bump type value xcodeproj optional, you must specify the path to your main Xcode project if it is not in the project root directory * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The increment_version_number action generates the following Lane Variables: SharedValue Description SharedValues::VERSION_NUMBER The new version number To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action increment_version_number CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run increment_version_number To pass parameters, make use of the : symbol, for example fastlane run increment_version_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Increment version number"},{"location":"generated/actions/increment_version_number/#increment_version_number","text":"Increment the version number of your project This action will increment the version number. You first have to set up your Xcode project, if you haven't done it already: https://developer.apple.com/library/ios/qa/qa1827/_index.html . increment_version_number Supported platforms ios, mac Author @serluca Returns The new version number","title":"increment_version_number"},{"location":"generated/actions/increment_version_number/#7-examples","text":"increment_version_number # Automatically increment version number increment_version_number( bump_type: \"patch\" # Automatically increment patch version number ) increment_version_number( bump_type: \"minor\" # Automatically increment minor version number ) increment_version_number( bump_type: \"major\" # Automatically increment major version number ) increment_version_number( version_number: \"2.1.1\" # Set a specific version number ) increment_version_number( version_number: \"2.1.1\", # specify specific version number (optional, omitting it increments patch version number) xcodeproj: \"./path/to/MyApp.xcodeproj\" # (optional, you must specify the path to your main Xcode project if it is not in the project root directory) ) version = increment_version_number","title":"7 Examples"},{"location":"generated/actions/increment_version_number/#parameters","text":"Key Description Default bump_type The type of this version bump. Available: patch, minor, major bump version_number Change to a specific version. This will replace the bump type value xcodeproj optional, you must specify the path to your main Xcode project if it is not in the project root directory * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/increment_version_number/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The increment_version_number action generates the following Lane Variables: SharedValue Description SharedValues::VERSION_NUMBER The new version number To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/increment_version_number/#documentation","text":"To show the documentation in your terminal, run fastlane action increment_version_number","title":"Documentation"},{"location":"generated/actions/increment_version_number/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run increment_version_number To pass parameters, make use of the : symbol, for example fastlane run increment_version_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/increment_version_number/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/install_on_device/","text":"install_on_device Installs an .ipa file on a connected iOS-device via usb or wifi Installs the ipa on the device. If no id is given, the first found iOS device will be used. Works via USB or Wi-Fi. This requires ios-deploy to be installed. Please have a look at ios-deploy . To quickly install it, use npm -g i ios-deploy install_on_device Supported platforms ios Author @hjanuschka 1 Example install_on_device( device_id: \"a3be6c9ff7e5c3c6028597513243b0f933b876d4\", ipa: \"./app.ipa\" ) Parameters Key Description Default extra Extra Commandline arguments passed to ios-deploy device_id id of the device / if not set defaults to first found device skip_wifi Do not search for devices via WiFi ipa The IPA file to put on the device * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action install_on_device CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run install_on_device To pass parameters, make use of the : symbol, for example fastlane run install_on_device parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Install on device"},{"location":"generated/actions/install_on_device/#install_on_device","text":"Installs an .ipa file on a connected iOS-device via usb or wifi Installs the ipa on the device. If no id is given, the first found iOS device will be used. Works via USB or Wi-Fi. This requires ios-deploy to be installed. Please have a look at ios-deploy . To quickly install it, use npm -g i ios-deploy install_on_device Supported platforms ios Author @hjanuschka","title":"install_on_device"},{"location":"generated/actions/install_on_device/#1-example","text":"install_on_device( device_id: \"a3be6c9ff7e5c3c6028597513243b0f933b876d4\", ipa: \"./app.ipa\" )","title":"1 Example"},{"location":"generated/actions/install_on_device/#parameters","text":"Key Description Default extra Extra Commandline arguments passed to ios-deploy device_id id of the device / if not set defaults to first found device skip_wifi Do not search for devices via WiFi ipa The IPA file to put on the device * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/install_on_device/#documentation","text":"To show the documentation in your terminal, run fastlane action install_on_device","title":"Documentation"},{"location":"generated/actions/install_on_device/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run install_on_device To pass parameters, make use of the : symbol, for example fastlane run install_on_device parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/install_on_device/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/install_provisioning_profile/","text":"install_provisioning_profile Install provisioning profile from path Install provisioning profile from path for current user install_provisioning_profile Supported platforms ios, mac Author @SofteqDG Returns The absolute path to the installed provisioning profile 1 Example install_provisioning_profile(path: \"profiles/profile.mobileprovision\") Parameters Key Description Default path Path to provisioning profile * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action install_provisioning_profile CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run install_provisioning_profile To pass parameters, make use of the : symbol, for example fastlane run install_provisioning_profile parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Install provisioning profile"},{"location":"generated/actions/install_provisioning_profile/#install_provisioning_profile","text":"Install provisioning profile from path Install provisioning profile from path for current user install_provisioning_profile Supported platforms ios, mac Author @SofteqDG Returns The absolute path to the installed provisioning profile","title":"install_provisioning_profile"},{"location":"generated/actions/install_provisioning_profile/#1-example","text":"install_provisioning_profile(path: \"profiles/profile.mobileprovision\")","title":"1 Example"},{"location":"generated/actions/install_provisioning_profile/#parameters","text":"Key Description Default path Path to provisioning profile * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/install_provisioning_profile/#documentation","text":"To show the documentation in your terminal, run fastlane action install_provisioning_profile","title":"Documentation"},{"location":"generated/actions/install_provisioning_profile/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run install_provisioning_profile To pass parameters, make use of the : symbol, for example fastlane run install_provisioning_profile parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/install_provisioning_profile/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/install_xcode_plugin/","text":"install_xcode_plugin Install an Xcode plugin for the current user install_xcode_plugin Supported platforms ios, mac Author @NeoNachoSoto, @tommeier 2 Examples install_xcode_plugin(url: \"https://example.com/clubmate/plugin.zip\") install_xcode_plugin(github: \"https://github.com/contentful/ContentfulXcodePlugin\") Parameters Key Description Default url URL for Xcode plugin ZIP file github GitHub repository URL for Xcode plugin * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action install_xcode_plugin CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run install_xcode_plugin To pass parameters, make use of the : symbol, for example fastlane run install_xcode_plugin parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Install xcode plugin"},{"location":"generated/actions/install_xcode_plugin/#install_xcode_plugin","text":"Install an Xcode plugin for the current user install_xcode_plugin Supported platforms ios, mac Author @NeoNachoSoto, @tommeier","title":"install_xcode_plugin"},{"location":"generated/actions/install_xcode_plugin/#2-examples","text":"install_xcode_plugin(url: \"https://example.com/clubmate/plugin.zip\") install_xcode_plugin(github: \"https://github.com/contentful/ContentfulXcodePlugin\")","title":"2 Examples"},{"location":"generated/actions/install_xcode_plugin/#parameters","text":"Key Description Default url URL for Xcode plugin ZIP file github GitHub repository URL for Xcode plugin * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/install_xcode_plugin/#documentation","text":"To show the documentation in your terminal, run fastlane action install_xcode_plugin","title":"Documentation"},{"location":"generated/actions/install_xcode_plugin/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run install_xcode_plugin To pass parameters, make use of the : symbol, for example fastlane run install_xcode_plugin parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/install_xcode_plugin/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/installr/","text":"installr Upload a new build to Installr installr Supported platforms ios Author @scottrhoyt 1 Example installr( api_token: \"...\", ipa: \"test.ipa\", notes: \"The next great version of the app!\", notify: \"dev,qa\", add: \"exec,ops\" ) Parameters Key Description Default api_token API Token for Installr Access ipa Path to your IPA file. Optional if you use the gym or xcodebuild action * notes Release notes notify Groups to notify (e.g. 'dev,qa') add Groups to add (e.g. 'exec,ops') * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The installr action generates the following Lane Variables: SharedValue Description SharedValues::INSTALLR_BUILD_INFORMATION Contains release info like :appData. See http://help.installrapp.com/api/ To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action installr CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run installr To pass parameters, make use of the : symbol, for example fastlane run installr parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Installr"},{"location":"generated/actions/installr/#installr","text":"Upload a new build to Installr installr Supported platforms ios Author @scottrhoyt","title":"installr"},{"location":"generated/actions/installr/#1-example","text":"installr( api_token: \"...\", ipa: \"test.ipa\", notes: \"The next great version of the app!\", notify: \"dev,qa\", add: \"exec,ops\" )","title":"1 Example"},{"location":"generated/actions/installr/#parameters","text":"Key Description Default api_token API Token for Installr Access ipa Path to your IPA file. Optional if you use the gym or xcodebuild action * notes Release notes notify Groups to notify (e.g. 'dev,qa') add Groups to add (e.g. 'exec,ops') * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/installr/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The installr action generates the following Lane Variables: SharedValue Description SharedValues::INSTALLR_BUILD_INFORMATION Contains release info like :appData. See http://help.installrapp.com/api/ To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/installr/#documentation","text":"To show the documentation in your terminal, run fastlane action installr","title":"Documentation"},{"location":"generated/actions/installr/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run installr To pass parameters, make use of the : symbol, for example fastlane run installr parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/installr/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/ipa/","text":"ipa Easily build and sign your app using shenzhen You are using legacy shenzhen to build your app, which will be removed soon! It is recommended to upgrade to gym . To do so, just replace ipa(...) with gym(...) in your Fastfile. To make code signing work, follow https://docs.fastlane.tools/codesigning/xcode-project/ . ipa Supported platforms ios Author @joshdholtz 1 Example ipa( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", # (optionals) clean: true, # This means \"Do Clean\". Cleans project before building (the default if not specified). destination: \"path/to/dir\", # Destination directory. Defaults to current directory. ipa: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) xcargs: \"MY_ADHOC=0\", # pass additional arguments to xcodebuild when building the app. embed: \"my.mobileprovision\", # Sign .ipa file with .mobileprovision identity: \"MyIdentity\",# Identity to be used along with --embed sdk: \"10.0\", # use SDK as the name or path of the base SDK when building the project. archive: true# this means \"Do Archive\". Archive project after building (the default if not specified). ) Parameters Key Description Default workspace WORKSPACE Workspace (.xcworkspace) file to use to build app (automatically detected in current directory) project Project (.xcodeproj) file to use to build app (automatically detected in current directory, overridden by --workspace option, if passed) configuration Configuration used to build scheme Scheme used to build app clean Clean project before building archive Archive project after building destination Build destination. Defaults to current directory * embed Sign .ipa file with .mobileprovision identity Identity to be used along with --embed sdk Use SDK as the name or path of the base SDK when building the project ipa Specify the name of the .ipa file to generate (including file extension) xcconfig Use an extra XCCONFIG file to build the app xcargs Pass additional arguments to xcodebuild when building the app. Be sure to quote multiple args * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The ipa action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::DSYM_OUTPUT_PATH The path to the dsym file To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action ipa CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ipa To pass parameters, make use of the : symbol, for example fastlane run ipa parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Ipa"},{"location":"generated/actions/ipa/#ipa","text":"Easily build and sign your app using shenzhen You are using legacy shenzhen to build your app, which will be removed soon! It is recommended to upgrade to gym . To do so, just replace ipa(...) with gym(...) in your Fastfile. To make code signing work, follow https://docs.fastlane.tools/codesigning/xcode-project/ . ipa Supported platforms ios Author @joshdholtz","title":"ipa"},{"location":"generated/actions/ipa/#1-example","text":"ipa( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", # (optionals) clean: true, # This means \"Do Clean\". Cleans project before building (the default if not specified). destination: \"path/to/dir\", # Destination directory. Defaults to current directory. ipa: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) xcargs: \"MY_ADHOC=0\", # pass additional arguments to xcodebuild when building the app. embed: \"my.mobileprovision\", # Sign .ipa file with .mobileprovision identity: \"MyIdentity\",# Identity to be used along with --embed sdk: \"10.0\", # use SDK as the name or path of the base SDK when building the project. archive: true# this means \"Do Archive\". Archive project after building (the default if not specified). )","title":"1 Example"},{"location":"generated/actions/ipa/#parameters","text":"Key Description Default workspace WORKSPACE Workspace (.xcworkspace) file to use to build app (automatically detected in current directory) project Project (.xcodeproj) file to use to build app (automatically detected in current directory, overridden by --workspace option, if passed) configuration Configuration used to build scheme Scheme used to build app clean Clean project before building archive Archive project after building destination Build destination. Defaults to current directory * embed Sign .ipa file with .mobileprovision identity Identity to be used along with --embed sdk Use SDK as the name or path of the base SDK when building the project ipa Specify the name of the .ipa file to generate (including file extension) xcconfig Use an extra XCCONFIG file to build the app xcargs Pass additional arguments to xcodebuild when building the app. Be sure to quote multiple args * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/ipa/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The ipa action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::DSYM_OUTPUT_PATH The path to the dsym file To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/ipa/#documentation","text":"To show the documentation in your terminal, run fastlane action ipa","title":"Documentation"},{"location":"generated/actions/ipa/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ipa To pass parameters, make use of the : symbol, for example fastlane run ipa parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/ipa/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/is_ci/","text":"is_ci Is the current run being executed on a CI system, like Jenkins or Travis The return value of this method is true if fastlane is currently executed on Travis, Jenkins, Circle or a similar CI service is_ci Supported platforms ios, android, mac Author @KrauseFx 1 Example if is_ci puts \"I'm a computer\" else say \"Hi Human!\" end Documentation To show the documentation in your terminal, run fastlane action is_ci CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run is_ci To pass parameters, make use of the : symbol, for example fastlane run is_ci parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Is ci"},{"location":"generated/actions/is_ci/#is_ci","text":"Is the current run being executed on a CI system, like Jenkins or Travis The return value of this method is true if fastlane is currently executed on Travis, Jenkins, Circle or a similar CI service is_ci Supported platforms ios, android, mac Author @KrauseFx","title":"is_ci"},{"location":"generated/actions/is_ci/#1-example","text":"if is_ci puts \"I'm a computer\" else say \"Hi Human!\" end","title":"1 Example"},{"location":"generated/actions/is_ci/#documentation","text":"To show the documentation in your terminal, run fastlane action is_ci","title":"Documentation"},{"location":"generated/actions/is_ci/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run is_ci To pass parameters, make use of the : symbol, for example fastlane run is_ci parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/is_ci/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/jazzy/","text":"jazzy Generate docs using Jazzy jazzy Supported platforms ios, mac Author @KrauseFx 2 Examples jazzy jazzy(config: \".jazzy.yaml\", module_version: \"2.1.37\") Parameters Key Description Default config Path to jazzy config file module_version Version string to use as part of the the default docs title and inside the docset * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action jazzy CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run jazzy To pass parameters, make use of the : symbol, for example fastlane run jazzy parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Jazzy"},{"location":"generated/actions/jazzy/#jazzy","text":"Generate docs using Jazzy jazzy Supported platforms ios, mac Author @KrauseFx","title":"jazzy"},{"location":"generated/actions/jazzy/#2-examples","text":"jazzy jazzy(config: \".jazzy.yaml\", module_version: \"2.1.37\")","title":"2 Examples"},{"location":"generated/actions/jazzy/#parameters","text":"Key Description Default config Path to jazzy config file module_version Version string to use as part of the the default docs title and inside the docset * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/jazzy/#documentation","text":"To show the documentation in your terminal, run fastlane action jazzy","title":"Documentation"},{"location":"generated/actions/jazzy/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run jazzy To pass parameters, make use of the : symbol, for example fastlane run jazzy parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/jazzy/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/jira/","text":"jira Leave a comment on a Jira ticket jira Supported platforms ios, android, mac Author @iAmChrisTruman, @crazymanish Returns A hash containing all relevant information of the Jira comment Access Jira comment 'id', 'author', 'body', and more 3 Examples jira( url: \"https://bugs.yourdomain.com\", username: \"Your username\", password: \"Your password or API token\", ticket_id: \"IOS-123\", comment_text: \"Text to post as a comment\" ) jira( url: \"https://yourserverdomain.com\", context_path: \"/jira\", username: \"Your username\", password: \"Your password or API token\", ticket_id: \"IOS-123\", comment_text: \"Text to post as a comment\" ) jira( ticket_id: \"IOS-123\", comment_text: \"Text to post as a comment\", fail_on_error: false ) Parameters Key Description Default url URL for Jira instance context_path Appends to the url (ex: \"/jira\") '' username Username for Jira instance password Password or API token for Jira ticket_id Ticket ID for Jira, i.e. IOS-123 comment_text Text to add to the ticket as a comment fail_on_error Should an error adding the Jira comment cause a failure? true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The jira action generates the following Lane Variables: SharedValue Description SharedValues::JIRA_JSON The whole Jira API JSON object To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action jira CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run jira To pass parameters, make use of the : symbol, for example fastlane run jira parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Jira"},{"location":"generated/actions/jira/#jira","text":"Leave a comment on a Jira ticket jira Supported platforms ios, android, mac Author @iAmChrisTruman, @crazymanish Returns A hash containing all relevant information of the Jira comment Access Jira comment 'id', 'author', 'body', and more","title":"jira"},{"location":"generated/actions/jira/#3-examples","text":"jira( url: \"https://bugs.yourdomain.com\", username: \"Your username\", password: \"Your password or API token\", ticket_id: \"IOS-123\", comment_text: \"Text to post as a comment\" ) jira( url: \"https://yourserverdomain.com\", context_path: \"/jira\", username: \"Your username\", password: \"Your password or API token\", ticket_id: \"IOS-123\", comment_text: \"Text to post as a comment\" ) jira( ticket_id: \"IOS-123\", comment_text: \"Text to post as a comment\", fail_on_error: false )","title":"3 Examples"},{"location":"generated/actions/jira/#parameters","text":"Key Description Default url URL for Jira instance context_path Appends to the url (ex: \"/jira\") '' username Username for Jira instance password Password or API token for Jira ticket_id Ticket ID for Jira, i.e. IOS-123 comment_text Text to add to the ticket as a comment fail_on_error Should an error adding the Jira comment cause a failure? true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/jira/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The jira action generates the following Lane Variables: SharedValue Description SharedValues::JIRA_JSON The whole Jira API JSON object To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/jira/#documentation","text":"To show the documentation in your terminal, run fastlane action jira","title":"Documentation"},{"location":"generated/actions/jira/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run jira To pass parameters, make use of the : symbol, for example fastlane run jira parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/jira/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/lane_context/","text":"lane_context Access lane context values Access the fastlane lane context values. More information about how the lane context works: https://docs.fastlane.tools/advanced/#lane-context . lane_context Supported platforms ios, android, mac Author @KrauseFx 2 Examples lane_context[SharedValues::BUILD_NUMBER] lane_context[SharedValues::IPA_OUTPUT_PATH] Documentation To show the documentation in your terminal, run fastlane action lane_context CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run lane_context To pass parameters, make use of the : symbol, for example fastlane run lane_context parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Lane context"},{"location":"generated/actions/lane_context/#lane_context","text":"Access lane context values Access the fastlane lane context values. More information about how the lane context works: https://docs.fastlane.tools/advanced/#lane-context . lane_context Supported platforms ios, android, mac Author @KrauseFx","title":"lane_context"},{"location":"generated/actions/lane_context/#2-examples","text":"lane_context[SharedValues::BUILD_NUMBER] lane_context[SharedValues::IPA_OUTPUT_PATH]","title":"2 Examples"},{"location":"generated/actions/lane_context/#documentation","text":"To show the documentation in your terminal, run fastlane action lane_context","title":"Documentation"},{"location":"generated/actions/lane_context/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run lane_context To pass parameters, make use of the : symbol, for example fastlane run lane_context parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/lane_context/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/last_git_commit/","text":"last_git_commit Return last git commit hash, abbreviated commit hash, commit message and author last_git_commit Supported platforms ios, android, mac Author @ngutman Returns Returns the following dict: 1 Example commit = last_git_commit pilot(changelog: commit[:message]) # message of commit author = commit[:author] # author of the commit author_email = commit[:author_email] # email of the author of the commit hash = commit[:commit_hash] # long sha of commit short_hash = commit[:abbreviated_commit_hash] # short sha of commit Documentation To show the documentation in your terminal, run fastlane action last_git_commit CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run last_git_commit To pass parameters, make use of the : symbol, for example fastlane run last_git_commit parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Last git commit"},{"location":"generated/actions/last_git_commit/#last_git_commit","text":"Return last git commit hash, abbreviated commit hash, commit message and author last_git_commit Supported platforms ios, android, mac Author @ngutman Returns Returns the following dict:","title":"last_git_commit"},{"location":"generated/actions/last_git_commit/#1-example","text":"commit = last_git_commit pilot(changelog: commit[:message]) # message of commit author = commit[:author] # author of the commit author_email = commit[:author_email] # email of the author of the commit hash = commit[:commit_hash] # long sha of commit short_hash = commit[:abbreviated_commit_hash] # short sha of commit","title":"1 Example"},{"location":"generated/actions/last_git_commit/#documentation","text":"To show the documentation in your terminal, run fastlane action last_git_commit","title":"Documentation"},{"location":"generated/actions/last_git_commit/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run last_git_commit To pass parameters, make use of the : symbol, for example fastlane run last_git_commit parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/last_git_commit/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/last_git_tag/","text":"last_git_tag Get the most recent git tag If you are using this action on a shallow clone , the default with some CI systems like Bamboo , you need to ensure that you have also pulled all the git tags appropriately. Assuming your git repo has the correct remote set you can issue sh('git fetch --tags') . Pattern parameter allows you to filter to a subset of tags. last_git_tag Supported platforms ios, android, mac Author @KrauseFx, @wedkarz 2 Examples last_git_tag last_git_tag(pattern: \"release/v1.0/\") Parameters Key Description Default pattern Pattern to filter tags when looking for last one. Limit tags to ones matching given shell glob. If pattern lacks ?, *, or [, * at the end is implied * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action last_git_tag CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run last_git_tag To pass parameters, make use of the : symbol, for example fastlane run last_git_tag parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Last git tag"},{"location":"generated/actions/last_git_tag/#last_git_tag","text":"Get the most recent git tag If you are using this action on a shallow clone , the default with some CI systems like Bamboo , you need to ensure that you have also pulled all the git tags appropriately. Assuming your git repo has the correct remote set you can issue sh('git fetch --tags') . Pattern parameter allows you to filter to a subset of tags. last_git_tag Supported platforms ios, android, mac Author @KrauseFx, @wedkarz","title":"last_git_tag"},{"location":"generated/actions/last_git_tag/#2-examples","text":"last_git_tag last_git_tag(pattern: \"release/v1.0/\")","title":"2 Examples"},{"location":"generated/actions/last_git_tag/#parameters","text":"Key Description Default pattern Pattern to filter tags when looking for last one. Limit tags to ones matching given shell glob. If pattern lacks ?, *, or [, * at the end is implied * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/last_git_tag/#documentation","text":"To show the documentation in your terminal, run fastlane action last_git_tag","title":"Documentation"},{"location":"generated/actions/last_git_tag/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run last_git_tag To pass parameters, make use of the : symbol, for example fastlane run last_git_tag parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/last_git_tag/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/latest_testflight_build_number/","text":"latest_testflight_build_number Fetches most recent build number from TestFlight Provides a way to have increment_build_number be based on the latest build you uploaded to iTC. Fetches the most recent build number from TestFlight based on the version number. Provides a way to have increment_build_number be based on the latest build you uploaded to iTC. latest_testflight_build_number Supported platforms ios, mac Author @daveanderson Returns Integer representation of the latest build number uploaded to TestFlight 2 Examples latest_testflight_build_number(version: \"1.3\") increment_build_number({ build_number: latest_testflight_build_number + 1 }) Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) live Query the live version (ready-for-sale) false app_identifier The bundle identifier of your app * username Your Apple ID Username * version The version number whose latest build number we want platform The platform to use (optional) ios initial_build_number sets the build number to given value if no build is in current train 1 team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The latest_testflight_build_number action generates the following Lane Variables: SharedValue Description SharedValues::LATEST_TESTFLIGHT_BUILD_NUMBER The latest build number of the latest version of the app uploaded to TestFlight SharedValues::LATEST_TESTFLIGHT_VERSION The version of the latest build number To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action latest_testflight_build_number CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run latest_testflight_build_number To pass parameters, make use of the : symbol, for example fastlane run latest_testflight_build_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Latest testflight build number"},{"location":"generated/actions/latest_testflight_build_number/#latest_testflight_build_number","text":"Fetches most recent build number from TestFlight Provides a way to have increment_build_number be based on the latest build you uploaded to iTC. Fetches the most recent build number from TestFlight based on the version number. Provides a way to have increment_build_number be based on the latest build you uploaded to iTC. latest_testflight_build_number Supported platforms ios, mac Author @daveanderson Returns Integer representation of the latest build number uploaded to TestFlight","title":"latest_testflight_build_number"},{"location":"generated/actions/latest_testflight_build_number/#2-examples","text":"latest_testflight_build_number(version: \"1.3\") increment_build_number({ build_number: latest_testflight_build_number + 1 })","title":"2 Examples"},{"location":"generated/actions/latest_testflight_build_number/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) live Query the live version (ready-for-sale) false app_identifier The bundle identifier of your app * username Your Apple ID Username * version The version number whose latest build number we want platform The platform to use (optional) ios initial_build_number sets the build number to given value if no build is in current train 1 team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/latest_testflight_build_number/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The latest_testflight_build_number action generates the following Lane Variables: SharedValue Description SharedValues::LATEST_TESTFLIGHT_BUILD_NUMBER The latest build number of the latest version of the app uploaded to TestFlight SharedValues::LATEST_TESTFLIGHT_VERSION The version of the latest build number To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/latest_testflight_build_number/#documentation","text":"To show the documentation in your terminal, run fastlane action latest_testflight_build_number","title":"Documentation"},{"location":"generated/actions/latest_testflight_build_number/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run latest_testflight_build_number To pass parameters, make use of the : symbol, for example fastlane run latest_testflight_build_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/latest_testflight_build_number/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/lcov/","text":"lcov Generates coverage data using lcov lcov Supported platforms ios, mac Author @thiagolioy 1 Example lcov( project_name: \"ProjectName\", scheme: \"yourScheme\", output_dir: \"cov_reports\" # This value is optional. Default is coverage_reports ) Parameters Key Description Default project_name Name of the project scheme Scheme of the project arch The build arch where will search .gcda files i386 output_dir The output directory that coverage data will be stored. If not passed will use coverage_reports as default value coverage_reports * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action lcov CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run lcov To pass parameters, make use of the : symbol, for example fastlane run lcov parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Lcov"},{"location":"generated/actions/lcov/#lcov","text":"Generates coverage data using lcov lcov Supported platforms ios, mac Author @thiagolioy","title":"lcov"},{"location":"generated/actions/lcov/#1-example","text":"lcov( project_name: \"ProjectName\", scheme: \"yourScheme\", output_dir: \"cov_reports\" # This value is optional. Default is coverage_reports )","title":"1 Example"},{"location":"generated/actions/lcov/#parameters","text":"Key Description Default project_name Name of the project scheme Scheme of the project arch The build arch where will search .gcda files i386 output_dir The output directory that coverage data will be stored. If not passed will use coverage_reports as default value coverage_reports * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/lcov/#documentation","text":"To show the documentation in your terminal, run fastlane action lcov","title":"Documentation"},{"location":"generated/actions/lcov/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run lcov To pass parameters, make use of the : symbol, for example fastlane run lcov parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/lcov/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/mailgun/","text":"mailgun Send a success/error message to an email group mailgun Supported platforms ios, android, mac Author @thiagolioy 2 Examples mailgun( to: \"fastlane@krausefx.com\", success: true, message: \"This is the mail's content\" ) mailgun( postmaster: \"MY_POSTMASTER\", apikey: \"MY_API_KEY\", to: \"DESTINATION_EMAIL\", from: \"EMAIL_FROM_NAME\", reply_to: \"EMAIL_REPLY_TO\", success: true, message: \"Mail Body\", app_link: \"http://www.myapplink.com\", ci_build_link: \"http://www.mycibuildlink.com\", template_path: \"HTML_TEMPLATE_PATH\", custom_placeholders: { :var1 => 123, :var2 => \"string\" }, attachment: \"dirname/filename.ext\" ) Parameters Key Description Default mailgun_sandbox_domain Mailgun sandbox domain postmaster for your mail. Please use postmaster instead mailgun_sandbox_postmaster Mailgun sandbox domain postmaster for your mail. Please use postmaster instead mailgun_apikey Mailgun apikey for your mail. Please use postmaster instead postmaster Mailgun sandbox domain postmaster for your mail apikey Mailgun apikey for your mail to Destination of your mail from Mailgun sender name Mailgun Sandbox message Message of your mail subject Subject of your mail fastlane build success Was this build successful? (true/false) true app_link App Release link ci_build_link CI Build Link template_path Mail HTML template reply_to Mail Reply to attachment Mail Attachment filenames, either an array or just one string custom_placeholders Placeholders for template given as a hash {} * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action mailgun CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run mailgun To pass parameters, make use of the : symbol, for example fastlane run mailgun parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Mailgun"},{"location":"generated/actions/mailgun/#mailgun","text":"Send a success/error message to an email group mailgun Supported platforms ios, android, mac Author @thiagolioy","title":"mailgun"},{"location":"generated/actions/mailgun/#2-examples","text":"mailgun( to: \"fastlane@krausefx.com\", success: true, message: \"This is the mail's content\" ) mailgun( postmaster: \"MY_POSTMASTER\", apikey: \"MY_API_KEY\", to: \"DESTINATION_EMAIL\", from: \"EMAIL_FROM_NAME\", reply_to: \"EMAIL_REPLY_TO\", success: true, message: \"Mail Body\", app_link: \"http://www.myapplink.com\", ci_build_link: \"http://www.mycibuildlink.com\", template_path: \"HTML_TEMPLATE_PATH\", custom_placeholders: { :var1 => 123, :var2 => \"string\" }, attachment: \"dirname/filename.ext\" )","title":"2 Examples"},{"location":"generated/actions/mailgun/#parameters","text":"Key Description Default mailgun_sandbox_domain Mailgun sandbox domain postmaster for your mail. Please use postmaster instead mailgun_sandbox_postmaster Mailgun sandbox domain postmaster for your mail. Please use postmaster instead mailgun_apikey Mailgun apikey for your mail. Please use postmaster instead postmaster Mailgun sandbox domain postmaster for your mail apikey Mailgun apikey for your mail to Destination of your mail from Mailgun sender name Mailgun Sandbox message Message of your mail subject Subject of your mail fastlane build success Was this build successful? (true/false) true app_link App Release link ci_build_link CI Build Link template_path Mail HTML template reply_to Mail Reply to attachment Mail Attachment filenames, either an array or just one string custom_placeholders Placeholders for template given as a hash {} * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/mailgun/#documentation","text":"To show the documentation in your terminal, run fastlane action mailgun","title":"Documentation"},{"location":"generated/actions/mailgun/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run mailgun To pass parameters, make use of the : symbol, for example fastlane run mailgun parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/mailgun/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/make_changelog_from_jenkins/","text":"make_changelog_from_jenkins Generate a changelog using the Changes section from the current Jenkins build This is useful when deploying automated builds. The changelog from Jenkins lists all the commit messages since the last build. make_changelog_from_jenkins Supported platforms ios, android, mac Author @mandrizzle 1 Example make_changelog_from_jenkins( # Optional, lets you set a changelog in the case is not generated on Jenkins or if ran outside of Jenkins fallback_changelog: \"Bug fixes and performance enhancements\" ) Parameters Key Description Default fallback_changelog Fallback changelog if there is not one on Jenkins, or it couldn't be read '' include_commit_body Include the commit body along with the summary true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The make_changelog_from_jenkins action generates the following Lane Variables: SharedValue Description SharedValues::FL_CHANGELOG The changelog generated by Jenkins To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action make_changelog_from_jenkins CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run make_changelog_from_jenkins To pass parameters, make use of the : symbol, for example fastlane run make_changelog_from_jenkins parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Make changelog from jenkins"},{"location":"generated/actions/make_changelog_from_jenkins/#make_changelog_from_jenkins","text":"Generate a changelog using the Changes section from the current Jenkins build This is useful when deploying automated builds. The changelog from Jenkins lists all the commit messages since the last build. make_changelog_from_jenkins Supported platforms ios, android, mac Author @mandrizzle","title":"make_changelog_from_jenkins"},{"location":"generated/actions/make_changelog_from_jenkins/#1-example","text":"make_changelog_from_jenkins( # Optional, lets you set a changelog in the case is not generated on Jenkins or if ran outside of Jenkins fallback_changelog: \"Bug fixes and performance enhancements\" )","title":"1 Example"},{"location":"generated/actions/make_changelog_from_jenkins/#parameters","text":"Key Description Default fallback_changelog Fallback changelog if there is not one on Jenkins, or it couldn't be read '' include_commit_body Include the commit body along with the summary true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/make_changelog_from_jenkins/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The make_changelog_from_jenkins action generates the following Lane Variables: SharedValue Description SharedValues::FL_CHANGELOG The changelog generated by Jenkins To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/make_changelog_from_jenkins/#documentation","text":"To show the documentation in your terminal, run fastlane action make_changelog_from_jenkins","title":"Documentation"},{"location":"generated/actions/make_changelog_from_jenkins/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run make_changelog_from_jenkins To pass parameters, make use of the : symbol, for example fastlane run make_changelog_from_jenkins parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/make_changelog_from_jenkins/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/match/","text":"match Alias for the sync_code_signing action Easily sync your certificates and profiles across your team A new approach to iOS and macOS code signing: Share one code signing identity across your development team to simplify your codesigning setup and prevent code signing issues. match is the implementation of the codesigning.guide concept . match creates all required certificates & provisioning profiles and stores them in a separate git repository, Google Cloud, or Amazon S3. Every team member with access to the selected storage can use those credentials for code signing. match also automatically repairs broken and expired credentials. It's the easiest way to share signing credentials across teams More information on how to get started with codesigning Why? \u2022 Usage \u2022 Is this secure? match is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Why match? Before starting to use match , make sure to read the codesigning.guide : When deploying an app to the App Store, beta testing service or even installing it on a device, most development teams have separate code signing identities for every member. This results in dozens of profiles including a lot of duplicates. You have to manually renew and download the latest set of provisioning profiles every time you add a new device or a certificate expires. Additionally this requires spending a lot of time when setting up a new machine that will build your app. A new approach Share one code signing identity across your development team to simplify your setup and prevent code signing issues. What if there was a central place where your code signing identity and profiles are kept, so anyone in the team can access them during the build process? For more information about the concept, visit codesigning.guide . Why not let Xcode handle all this? You have full control over what happens You have access to all the certificates and profiles, which are all securely stored in git You share one code signing identity across the team to have fewer certificates and profiles Xcode sometimes revokes certificates which breaks your setup causing failed builds More predictable builds by settings profiles in an explicit way instead of using the Automatic setting It just works\u2122 What does match do for you? match \ud83d\udd04 Automatically sync your iOS and macOS keys and profiles across all your team members using git \ud83d\udce6 Handle all the heavy lifting of creating and storing your certificates and profiles \ud83d\udcbb Setup codesigning on a new machine in under a minute \ud83c\udfaf Designed to work with apps with multiple targets and bundle identifiers \ud83d\udd12 You have full control over your files and Git repo, no third party service involved \u2728 Provisioning profile will always match the correct certificate \ud83d\udca5 Easily reset your existing profiles and certificates if your current account has expired or invalid profiles \u267b\ufe0f Automatically renew your provisioning profiles to include all your devices using the --force option \ud83d\udc65 Support for multiple Apple accounts and multiple teams \u2728 Tightly integrated with fastlane to work seamlessly with gym and other build tools Usage Setup Optional: Create a new, shared Apple Developer Portal account , something like office@company.com , that will be shared across your team from now on (for more information visit codesigning.guide ) Run the following in your project folder to start using match : fastlane match init You'll be asked if you want to store your code signing identities inside a Git repo , Google Cloud or Amazon S3 . Git Storage Use Git Storage to store all code signing identities in a private git repo, owned and operated by you. The files will be encrypted using OpenSSL. First, enter the URL to your private (!) Git repo (You can create one for free on e.g. GitHub or BitBucket ). The URL you enter can be either a https:// or a git URL. fastlane match init won't read or modify your certificates or profiles yet, and also won't validate your git URL. This will create a Matchfile in your current directory (or in your ./fastlane/ folder). Example content (for more advanced setups check out the fastlane section ): git_url(\"https://github.com/fastlane/certificates\") app_identifier(\"tools.fastlane.app\") username(\"user@fastlane.tools\") Git Storage on GitHub If your machine is currently using SSH to authenticate with GitHub, you'll want to use a git URL, otherwise, you may see an authentication error when you attempt to use match. Alternatively, you can set a basic authorization for match : Using parameter: match(git_basic_authorization: '') Using environment variable: ENV['MATCH_GIT_BASIC_AUTHORIZATION'] = '' match To generate your base64 key according to RFC 7617 , run this: echo -n your_github_username:your_personal_access_token | base64 You can find more information about GitHub basic authentication and personal token generation here: https://developer.github.com/v3/auth/#basic-authentication Git Storage on GitHub - Deploy keys If your machine does not have a private key set up for your certificates repository, you can give match a path for one: Using parameter: match(git_private_key: '') Using environment variable: ENV['MATCH_GIT_PRIVATE_KEY'] = '' match You can find more information about GitHub basic authentication and personal token generation here: https://developer.github.com/v3/auth/#basic-authentication Git Storage on Azure DevOps If you're running a pipeline on Azure DevOps and using git storage in a another repository on the same project, you might want to use bearer token authentication. Using parameter: match(git_bearer_authorization: '') Using environment variable: ENV['MATCH_GIT_BEARER_AUTHORIZATION'] = '' match You can find more information about this use case here: https://docs.microsoft.com/en-us/azure/devops/pipelines/repos/azure-repos-git?view=azure-devops&tabs=yaml#authorize-access-to-your-repositories Google Cloud Storage Use Google Cloud Storage for a fully hosted solution for your code signing identities. Certificates are stored on Google Cloud, encrypted using Google managed keys. Everything will be stored on your Google account, inside a storage bucket you provide. You can also directly access the files using the web console. This will create a Matchfile in your current directory (or in your ./fastlane/ folder). Example content (for more advanced setups check out the fastlane section ): google_cloud_bucket_name(\"major-key-certificates\") Amazon S3 Use Amazon S3 for a fully hosted solution for your code signing identities. Certificates are stored on S3, inside a storage bucket you provide. You can also directly access the files using the web console. This will create a Matchfile in your current directory (or in your ./fastlane/ folder). Example content (for more advanced setups check out the fastlane section ): s3_bucket(\"ios-certificates\") Multiple teams match can store the codesigning files for multiple development teams: Git Storage Use one git branch per team. match also supports storing certificates of multiple teams in one repo, by using separate git branches. If you work in multiple teams, make sure to set the git_branch parameter to a unique value per team. From there, match will automatically create and use the specified branch for you. match(git_branch: \"team1\", username: \"user@team1.com\") match(git_branch: \"team2\", username: \"user@team2.com\") Google Cloud or Amazon S3 Storage If you use Google Cloud or Amazon S3 Storage, you don't need to do anything manually. Just use Google Cloud or Amazon S3 Storage, and the top level folder will be the team ID. Run Before running match for the first time, you should consider clearing your existing profiles and certificates using the match nuke command . After running fastlane match init you can run the following to generate new certificates and profiles: fastlane match appstore fastlane match development This will create a new certificate and provisioning profile (if required) and store them in your selected storage. If you previously ran match with the configured storage it will automatically install the existing profiles from your storage. The provisioning profiles are installed in ~/Library/MobileDevice/Provisioning Profiles while the certificates and private keys are installed in your Keychain. To get a more detailed output of what match is doing use fastlane match --verbose For a list of all available options run fastlane action match Handle multiple targets match can use the same one Git repository, Google Cloud, or Amazon S3 Storage for all bundle identifiers. If you have several targets with different bundle identifiers, supply them as a comma-separated list: fastlane match appstore -a tools.fastlane.app,tools.fastlane.app.watchkitapp You can make this even easier using fastlane by creating a certificates lane like this: lane :certificates do match(app_identifier: [\"tools.fastlane.app\", \"tools.fastlane.app.watchkitapp\"]) end Then all your team has to do is run fastlane certificates and the keys, certificates and profiles for all targets will be synced. Handle multiple apps per developer/distribution certificate If you want to use a single developer and/or distribution certificate for multiple apps belonging to the same development team, you may use the same signing identities repository and branch to store the signing identities for your apps: Matchfile example for both App #1 and #2: git_url(\"https://github.com/example/example-repo.git\") git_branch(\"master\") match will reuse certificates and will create separate provisioning profiles for each app. Passphrase Git Repo storage only When running match for the first time on a new machine, it will ask you for the passphrase for the Git repository. This is an additional layer of security: each of the files will be encrypted using openssl . Make sure to remember the password, as you'll need it when you run match on a different machine. To set the passphrase to decrypt your profiles using an environment variable (and avoid the prompt) use MATCH_PASSWORD . Migrate from Git Repo to Google Cloud If you're already using a Git Repo, but would like to switch to using Google Cloud Storage, run the following command to automatically migrate all your existing code signing identities and provisioning profiles fastlane match migrate After a successful migration you can safely delete your Git repo. Google Cloud access control Google Cloud Storage only There are two cases for reading and writing certificates stored in a Google Cloud storage bucket: Continuous integration jobs. These will authenticate to your Google Cloud project via a service account, and use a gc_keys.json file as credentials. Developers on a local workstation. In this case, you should choose whether everyone on your team will create their own gc_keys.json file, or whether you want to manage access to the bucket directly using your developers' Google accounts. When running fastlane match init the first time, the setup process will give you the option to create your gc_keys.json file. This file contains the authentication credentials needed to access your Google Cloud storage bucket. Make sure to keep that file secret and never add it to version control. We recommend adding gc_keys.json to your .gitignore Managing developer access via keys If you want to manage developer access to your certificates via authentication keys, every developer should create their own gc_keys.json and add the file to all their work machines. This will give the admin full control over who has read/write access to the given Storage bucket. At the same time it allows your team to revoke a single key if a file gets compromised. Managing developer access via Google accounts If your developers already have Google accounts and access to your Google Cloud project, you can also manage access to the storage bucket via Cloud Identity and Access Management (IAM) . Just set up individual developer accounts or an entire Google Group containing your team as readers and writers on your storage bucket. You can then specify the Google Cloud project id containing your storage bucket in your Matchfile : storage_mode(\"google_cloud\") google_cloud_bucket_name(\"my-app-certificates\") google_cloud_project_id(\"my-app-project\") This lets developers on your team use Application Default Credentials when accessing your storage bucket. After installing the Google Cloud SDK , they only need to run the following command once: gcloud auth application-default login ... and log in with their Google account. Then, when they run fastlane match , match will use these credentials to read from and write to the storage bucket. New machine To set up the certificates and provisioning profiles on a new machine, you just run the same command using: fastlane match development You can also run match in a readonly mode to be sure it won't create any new certificates or profiles. fastlane match development --readonly We recommend to always use readonly mode when running fastlane on CI systems. This can be done using lane :beta do match(type: \"appstore\", readonly: is_ci) gym(scheme: \"Release\") end Access Control A benefit of using match is that it enables you to give the developers of your team access to the code signing certificates without having to give everyone access to the Developer Portal: Run match to store the certificates in a Git repo or Google Cloud Storage Grant access to the Git repo / Google Cloud Storage Bucket to your developers and give them the passphrase (for git storage) The developers can now run match which will install the latest code signing profiles so they can build and sign the application without having to have access to the Apple Developer Portal Every time you run match to update the profiles (e.g. add a new device), all your developers will automatically get the latest profiles when running match If you decide to run match without access to the Developer Portal, make sure to use the --readonly option so that the commands don't ask you for the password to the Developer Portal. The advantage of this approach is that no one in your team will revoke a certificate by mistake, while having all code signing secrets in one location. Folder structure After running match for the first time, your Git repo or Google Cloud bucket will contain 2 directories: The certs folder contains all certificates with their private keys The profiles folder contains all provisioning profiles Additionally, match creates a nice repo README.md for you, making it easy to onboard new team members: In the case of Google Cloud, the top level folder will be the team ID. fastlane Add match to your Fastfile to automatically fetch the latest code signing certificates with fastlane . match(type: \"appstore\") match(type: \"development\") match(type: \"adhoc\", app_identifier: \"tools.fastlane.app\") match(type: \"enterprise\", app_identifier: \"tools.fastlane.app\") # _match_ should be called before building the app with _gym_ gym # ... Registering new devices By using match , you'll save a lot of time every time you add new device to your Ad Hoc or Development profiles. Use match in combination with the register_devices action. lane :beta do register_devices(devices_file: \"./devices.txt\") match(type: \"adhoc\", force_for_new_devices: true) end By using the force_for_new_devices parameter, match will check if the (enabled) device count has changed since the last time you ran match , and automatically re-generate the provisioning profile if necessary. You can also use force: true to re-generate the provisioning profile on each run. Important: The force_for_new_devices parameter is ignored for App Store provisioning profiles since they don't contain any device information. If you're not using Fastfile , you can also use the force_for_new_devices option from the command line: fastlane match adhoc --force_for_new_devices Templates (aka: custom entitlements) match can generate profiles that contain custom entitlements by passing in the entitlement's name with the template_name parameter. match(type: \"development\", template_name: \"Apple Pay Pass Suppression Development\") Setup Xcode project Docs on how to set up your Xcode project To build from the command line using fastlane match automatically pre-fills environment variables with the UUIDs of the correct provisioning profiles, ready to be used in your Xcode project. More information about how to setup your Xcode project can be found here To build from Xcode manually This is useful when installing your application on your device using the Development profile. You can statically select the right provisioning profile in your Xcode project (the name will be match Development tools.fastlane.app ). Docs on how to set up your Xcode project Continuous Integration Git repo access There is one tricky part of setting up a CI system to work with match , which is enabling the CI to access the repo. Usually you'd just add your CI's public ssh key as a deploy key to your match repo, but since your CI will already likely be using its public ssh key to access the codebase repo, you won't be able to do that . Some repo hosts might allow you to use the same deploy key for different repos, but GitHub will not. If your host does, you don't need to worry about this, just add your CI's public ssh key as a deploy key for your match repo and scroll down to \" Encryption password \". There are a few ways around this: Create a new account on your repo host with read-only access to your match repo. Bitrise have a good description of this here . Some CIs allow you to upload your signing credentials manually, but obviously this means that you'll have to re-upload the profiles/keys/certs each time they change. Neither solution is pretty. It's one of those trade-off things. Do you care more about not having an extra account sitting around, or do you care more about having the :sparkles: of auto-syncing of credentials. Git repo encryption password Once you've decided which approach to take, all that's left to do is to set your encryption password as secret environment variable named MATCH_PASSWORD . match will pick this up when it's run. Google Cloud Storage access Accessing Google Cloud Storage from your CI system requires you to provide the gc_keys.json file as part of your build. How you implement this is your decision. You can inject that file during build time. Amazon S3 Storage access Accessing Amazon S3 Storage from your CI system requires you to provide the s3_region , s3_access_key , s3_secret_access_key and s3_bucket options (or environment variables), with keys that has read access to the bucket. Nuke If you never really cared about code signing and have a messy Apple Developer account with a lot of invalid, expired or Xcode managed profiles/certificates, you can use the match nuke command to revoke your certificates and provisioning profiles. Don't worry, apps that are already available in the App Store / TestFlight will still work. Builds distributed via Ad Hoc or Enterprise will be disabled after nuking your account, so you'll have to re-upload a new build. After clearing your account you'll start from a clean state, and you can run match to generate your certificates and profiles again. To revoke all certificates and provisioning profiles for a specific environment: fastlane match nuke development fastlane match nuke distribution fastlane match nuke enterprise You'll have to confirm a list of profiles / certificates that will be deleted. Advanced Git Storage features Change Password To change the password of your repo and therefore decrypting and encrypting all files run: fastlane match change_password You'll be asked for the new password on all your machines on the next run. Import To import and encrypt a certificate ( .cer ), the private key ( .p12 ) and the provisioning profiles ( .mobileprovision or .provisionprofile ) into the match repo run: fastlane match import You'll be prompted for the certificate ( .cer ), the private key ( .p12 ) and the provisioning profiles ( .mobileprovision or .provisionprofile ) paths. match will first validate the certificate ( .cer ) against the Developer Portal before importing the certificate, the private key and the provisioning profiles into the specified match repository. However if there is no access to the developer portal but there are certificates, private keys and profiles provided, you can use the skip_certificate_matching option to tell match not to verify the certificates. Like this: fastlane match import --skip_certificate_matching true This will skip login to Apple Developer Portal and will import the provided certificate, private key and profile directly to the certificates repo. Please be careful when using this option and ensure the certificates and profiles match the type (development, adhoc, appstore, enterprise, developer_id) and are not revoked or expired. Manual Decrypt If you want to manually decrypt a file you can. openssl aes-256-cbc -k \"\" -in \"\" -out \"\" -a -d -md [md5|sha256] Note: You may need to swap double quotes \" for single quotes ' if your match password contains an exclamation mark ! . Export Distribution Certificate and Private Key as Single .p12 File match stores the certificate ( .cer ) and the private key ( .p12 ) files separately. The following steps will repackage the separate certificate and private key into a single .p12 file. Decrypt your cert found in certs//.cer as a pem file: openssl aes-256-cbc -k \"\" -in \"certs//.cer\" -out \"cert.der\" -a -d -md [md5|sha256] openssl x509 -inform der -in cert.der -out cert.pem Decrypt your private key found in certs//.p12 as a pem file: openssl aes-256-cbc -k \"\" -in \"certs/distribution/.p12\" -out \"key.pem\" -a -d -md [md5|sha256] Generate an encrypted p12 file with the same or new password: openssl pkcs12 -export -out \"cert.p12\" -inkey \"key.pem\" -in \"cert.pem\" -password pass: Is this secure? Git Both your keys and provisioning profiles are encrypted using OpenSSL using a passphrase. Storing your private keys in a Git repo may sound off-putting at first. We did an analysis of potential security issues, see section below. Google Cloud Storage All your keys and provisioning profiles are encrypted using Google managed keys. What could happen if someone stole a private key? If attackers would have your certificate and provisioning profile, they could codesign an application with the same bundle identifier. What's the worst that could happen for each of the profile types? App Store Profiles An App Store profile can't be used for anything as long as it's not re-signed by Apple. The only way to get an app resigned is to submit an app for review which could take anywhere from 24 hours to a few days (checkout appreviewtimes.com for up-to-date expectations). Attackers could only submit an app for review, if they also got access to your App Store Connect credentials (which are not stored in git, but in your local keychain). Additionally you get an email notification every time a build gets uploaded to cancel the submission even before your app gets into the review stage. Development and Ad Hoc Profiles In general those profiles are harmless as they can only be used to install a signed application on a small subset of devices. To add new devices, the attacker would also need your Apple Developer Portal credentials (which are not stored in git, but in your local keychain). Enterprise Profiles Attackers could use an In-House profile to distribute signed application to a potentially unlimited number of devices. All this would run under your company name and it could eventually lead to Apple revoking your In-House account. However it is very easy to revoke a certificate to remotely break the app on all devices. Because of the potentially dangerous nature of In-House profiles please use match with enterprise profiles with caution, ensure your git repository is private and use a secure password. To sum up You have full control over the access list of your Git repo, no third party service involved Even if your certificates are leaked, they can't be used to cause any harm without your App Store Connect login credentials Use In-House enterprise profile with match with caution If you use GitHub or Bitbucket we encourage enabling 2 factor authentication for all accounts that have access to the certificates repo The complete source code of match is fully open source on GitHub match Supported platforms ios, mac Author @KrauseFx 4 Examples sync_code_signing(type: \"appstore\", app_identifier: \"tools.fastlane.app\") sync_code_signing(type: \"development\", readonly: true) sync_code_signing(app_identifier: [\"tools.fastlane.app\", \"tools.fastlane.sleepy\"]) match # alias for \"sync_code_signing\" Parameters Key Description Default type Define the profile type, can be appstore, adhoc, development, enterprise, developer_id, mac_installer_distribution, developer_id_installer development additional_cert_types Create additional cert types needed for macOS installers (valid values: mac_installer_distribution, developer_id_installer) readonly Only fetch existing certificates and profiles, don't generate new ones false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * skip_provisioning_profiles Skip syncing provisioning profiles false app_identifier The bundle identifier(s) of your app (comma-separated string or array of strings) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * storage_mode Define where you want to store your certificates git git_url URL to the git repo containing all the certificates git_branch Specific git branch to use master git_full_name git user full name to commit git_user_email git user email to commit shallow_clone Make a shallow clone of the repository (truncate the history to 1 revision) false clone_branch_directly Clone just the branch specified, instead of the whole repo. This requires that the branch already exists. Otherwise the command will fail false git_basic_authorization Use a basic authorization header to access the git repo (e.g.: access via HTTPS, GitHub Actions, etc), usually a string in Base64 git_bearer_authorization Use a bearer authorization header to access the git repo (e.g.: access to an Azure DevOps repository), usually a string in Base64 git_private_key Use a private key to access the git repo (e.g.: access to GitHub repository via Deploy keys), usually a id_rsa named file or the contents hereof google_cloud_bucket_name Name of the Google Cloud Storage bucket to use google_cloud_keys_file Path to the gc_keys.json file google_cloud_project_id ID of the Google Cloud project to use for authentication skip_google_cloud_account_confirmation Skips confirming to use the system google account false s3_region Name of the S3 region s3_access_key S3 access key s3_secret_access_key S3 secret access key s3_bucket Name of the S3 bucket s3_object_prefix Prefix to be used on all objects uploaded to S3 s3_skip_encryption Skip encryption of all objects uploaded to S3. WARNING: only enable this on S3 buckets with sufficiently restricted permissions and server-side encryption enabled. See https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html false gitlab_project GitLab Project Path (i.e. 'gitlab-org/gitlab') gitlab_host GitLab Host (i.e. 'https://gitlab.com') https://gitlab.com job_token GitLab CI_JOB_TOKEN private_token GitLab Access Token keychain_name Keychain the items should be imported to login.keychain keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password force Renew the provisioning profiles every time you run match false force_for_new_devices Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile types 'appstore' and 'developer_id' false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false force_for_new_certificates Renew the provisioning profiles if the certificate count on the developer portal has changed. Works only for the 'development' provisioning profile type. Requires 'include_all_certificates' option to be 'true' false skip_confirmation Disables confirmation prompts during nuke, answering them with yes false safe_remove_certs Remove certs from repository during nuke without revoking them on the developer portal false skip_docs Skip generation of a README.md for the created git repository false platform Set the provisioning profile's platform to work with (i.e. ios, tvos, macos, catalyst) * derive_catalyst_app_identifier Enable this if you have the Mac Catalyst capability enabled and your project was created with Xcode 11.3 or earlier. Prepends 'maccatalyst.' to the app identifier for the provisioning profile mapping false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") profile_name A custom name for the provisioning profile. This will replace the default provisioning profile name if specified fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false skip_certificate_matching Set to true if there is no access to Apple developer portal but there are certificates, keys and profiles provided. Only works with match import action false output_path Path in which to export certificates, key and profile skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false verbose Print out extra information and all commands false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The match action generates the following Lane Variables: SharedValue Description SharedValues::MATCH_PROVISIONING_PROFILE_MAPPING The match provisioning profile mapping SharedValues::SIGH_PROFILE_TYPE The profile type, can be app-store, ad-hoc, development, enterprise, can be used in build_app as a default value for export_method To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action match CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run match To pass parameters, make use of the : symbol, for example fastlane run match parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Match"},{"location":"generated/actions/match/#match","text":"Alias for the sync_code_signing action","title":"match"},{"location":"generated/actions/match/#why-match","text":"Before starting to use match , make sure to read the codesigning.guide : When deploying an app to the App Store, beta testing service or even installing it on a device, most development teams have separate code signing identities for every member. This results in dozens of profiles including a lot of duplicates. You have to manually renew and download the latest set of provisioning profiles every time you add a new device or a certificate expires. Additionally this requires spending a lot of time when setting up a new machine that will build your app. A new approach Share one code signing identity across your development team to simplify your setup and prevent code signing issues. What if there was a central place where your code signing identity and profiles are kept, so anyone in the team can access them during the build process? For more information about the concept, visit codesigning.guide .","title":"Why match?"},{"location":"generated/actions/match/#usage","text":"","title":"Usage"},{"location":"generated/actions/match/#advanced-git-storage-features","text":"","title":"Advanced Git Storage features"},{"location":"generated/actions/match/#is-this-secure","text":"","title":"Is this secure?"},{"location":"generated/actions/match/#4-examples","text":"sync_code_signing(type: \"appstore\", app_identifier: \"tools.fastlane.app\") sync_code_signing(type: \"development\", readonly: true) sync_code_signing(app_identifier: [\"tools.fastlane.app\", \"tools.fastlane.sleepy\"]) match # alias for \"sync_code_signing\"","title":"4 Examples"},{"location":"generated/actions/match/#parameters","text":"Key Description Default type Define the profile type, can be appstore, adhoc, development, enterprise, developer_id, mac_installer_distribution, developer_id_installer development additional_cert_types Create additional cert types needed for macOS installers (valid values: mac_installer_distribution, developer_id_installer) readonly Only fetch existing certificates and profiles, don't generate new ones false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * skip_provisioning_profiles Skip syncing provisioning profiles false app_identifier The bundle identifier(s) of your app (comma-separated string or array of strings) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * storage_mode Define where you want to store your certificates git git_url URL to the git repo containing all the certificates git_branch Specific git branch to use master git_full_name git user full name to commit git_user_email git user email to commit shallow_clone Make a shallow clone of the repository (truncate the history to 1 revision) false clone_branch_directly Clone just the branch specified, instead of the whole repo. This requires that the branch already exists. Otherwise the command will fail false git_basic_authorization Use a basic authorization header to access the git repo (e.g.: access via HTTPS, GitHub Actions, etc), usually a string in Base64 git_bearer_authorization Use a bearer authorization header to access the git repo (e.g.: access to an Azure DevOps repository), usually a string in Base64 git_private_key Use a private key to access the git repo (e.g.: access to GitHub repository via Deploy keys), usually a id_rsa named file or the contents hereof google_cloud_bucket_name Name of the Google Cloud Storage bucket to use google_cloud_keys_file Path to the gc_keys.json file google_cloud_project_id ID of the Google Cloud project to use for authentication skip_google_cloud_account_confirmation Skips confirming to use the system google account false s3_region Name of the S3 region s3_access_key S3 access key s3_secret_access_key S3 secret access key s3_bucket Name of the S3 bucket s3_object_prefix Prefix to be used on all objects uploaded to S3 s3_skip_encryption Skip encryption of all objects uploaded to S3. WARNING: only enable this on S3 buckets with sufficiently restricted permissions and server-side encryption enabled. See https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html false gitlab_project GitLab Project Path (i.e. 'gitlab-org/gitlab') gitlab_host GitLab Host (i.e. 'https://gitlab.com') https://gitlab.com job_token GitLab CI_JOB_TOKEN private_token GitLab Access Token keychain_name Keychain the items should be imported to login.keychain keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password force Renew the provisioning profiles every time you run match false force_for_new_devices Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile types 'appstore' and 'developer_id' false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false force_for_new_certificates Renew the provisioning profiles if the certificate count on the developer portal has changed. Works only for the 'development' provisioning profile type. Requires 'include_all_certificates' option to be 'true' false skip_confirmation Disables confirmation prompts during nuke, answering them with yes false safe_remove_certs Remove certs from repository during nuke without revoking them on the developer portal false skip_docs Skip generation of a README.md for the created git repository false platform Set the provisioning profile's platform to work with (i.e. ios, tvos, macos, catalyst) * derive_catalyst_app_identifier Enable this if you have the Mac Catalyst capability enabled and your project was created with Xcode 11.3 or earlier. Prepends 'maccatalyst.' to the app identifier for the provisioning profile mapping false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") profile_name A custom name for the provisioning profile. This will replace the default provisioning profile name if specified fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false skip_certificate_matching Set to true if there is no access to Apple developer portal but there are certificates, keys and profiles provided. Only works with match import action false output_path Path in which to export certificates, key and profile skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false verbose Print out extra information and all commands false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/match/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The match action generates the following Lane Variables: SharedValue Description SharedValues::MATCH_PROVISIONING_PROFILE_MAPPING The match provisioning profile mapping SharedValues::SIGH_PROFILE_TYPE The profile type, can be app-store, ad-hoc, development, enterprise, can be used in build_app as a default value for export_method To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/match/#documentation","text":"To show the documentation in your terminal, run fastlane action match","title":"Documentation"},{"location":"generated/actions/match/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run match To pass parameters, make use of the : symbol, for example fastlane run match parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/match/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/match_nuke/","text":"match_nuke Easily nuke your certificate and provisioning profiles (via match ) Use the match_nuke action to revoke your certificates and provisioning profiles. Don't worry, apps that are already available in the App Store / TestFlight will still work. Builds distributed via Ad Hoc or Enterprise will be disabled after nuking your account, so you'll have to re-upload a new build. After clearing your account you'll start from a clean state, and you can run match to generate your certificates and profiles again. More information: https://docs.fastlane.tools/actions/match/ match_nuke Supported platforms ios, mac Author @crazymanish 2 Examples match_nuke(type: \"development\") match_nuke(type: \"development\", api_key: app_store_connect_api_key) Parameters Key Description Default type Define the profile type, can be appstore, adhoc, development, enterprise, developer_id, mac_installer_distribution, developer_id_installer development additional_cert_types Create additional cert types needed for macOS installers (valid values: mac_installer_distribution, developer_id_installer) readonly Only fetch existing certificates and profiles, don't generate new ones false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * skip_provisioning_profiles Skip syncing provisioning profiles false app_identifier The bundle identifier(s) of your app (comma-separated string or array of strings) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * storage_mode Define where you want to store your certificates git git_url URL to the git repo containing all the certificates git_branch Specific git branch to use master git_full_name git user full name to commit git_user_email git user email to commit shallow_clone Make a shallow clone of the repository (truncate the history to 1 revision) false clone_branch_directly Clone just the branch specified, instead of the whole repo. This requires that the branch already exists. Otherwise the command will fail false git_basic_authorization Use a basic authorization header to access the git repo (e.g.: access via HTTPS, GitHub Actions, etc), usually a string in Base64 git_bearer_authorization Use a bearer authorization header to access the git repo (e.g.: access to an Azure DevOps repository), usually a string in Base64 git_private_key Use a private key to access the git repo (e.g.: access to GitHub repository via Deploy keys), usually a id_rsa named file or the contents hereof google_cloud_bucket_name Name of the Google Cloud Storage bucket to use google_cloud_keys_file Path to the gc_keys.json file google_cloud_project_id ID of the Google Cloud project to use for authentication skip_google_cloud_account_confirmation Skips confirming to use the system google account false s3_region Name of the S3 region s3_access_key S3 access key s3_secret_access_key S3 secret access key s3_bucket Name of the S3 bucket s3_object_prefix Prefix to be used on all objects uploaded to S3 s3_skip_encryption Skip encryption of all objects uploaded to S3. WARNING: only enable this on S3 buckets with sufficiently restricted permissions and server-side encryption enabled. See https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html false gitlab_project GitLab Project Path (i.e. 'gitlab-org/gitlab') gitlab_host GitLab Host (i.e. 'https://gitlab.com') https://gitlab.com job_token GitLab CI_JOB_TOKEN private_token GitLab Access Token keychain_name Keychain the items should be imported to login.keychain keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password force Renew the provisioning profiles every time you run match false force_for_new_devices Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile types 'appstore' and 'developer_id' false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false force_for_new_certificates Renew the provisioning profiles if the certificate count on the developer portal has changed. Works only for the 'development' provisioning profile type. Requires 'include_all_certificates' option to be 'true' false skip_confirmation Disables confirmation prompts during nuke, answering them with yes false safe_remove_certs Remove certs from repository during nuke without revoking them on the developer portal false skip_docs Skip generation of a README.md for the created git repository false platform Set the provisioning profile's platform to work with (i.e. ios, tvos, macos, catalyst) * derive_catalyst_app_identifier Enable this if you have the Mac Catalyst capability enabled and your project was created with Xcode 11.3 or earlier. Prepends 'maccatalyst.' to the app identifier for the provisioning profile mapping false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") profile_name A custom name for the provisioning profile. This will replace the default provisioning profile name if specified fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false skip_certificate_matching Set to true if there is no access to Apple developer portal but there are certificates, keys and profiles provided. Only works with match import action false output_path Path in which to export certificates, key and profile skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false verbose Print out extra information and all commands false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action match_nuke CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run match_nuke To pass parameters, make use of the : symbol, for example fastlane run match_nuke parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Match nuke"},{"location":"generated/actions/match_nuke/#match_nuke","text":"Easily nuke your certificate and provisioning profiles (via match ) Use the match_nuke action to revoke your certificates and provisioning profiles. Don't worry, apps that are already available in the App Store / TestFlight will still work. Builds distributed via Ad Hoc or Enterprise will be disabled after nuking your account, so you'll have to re-upload a new build. After clearing your account you'll start from a clean state, and you can run match to generate your certificates and profiles again. More information: https://docs.fastlane.tools/actions/match/ match_nuke Supported platforms ios, mac Author @crazymanish","title":"match_nuke"},{"location":"generated/actions/match_nuke/#2-examples","text":"match_nuke(type: \"development\") match_nuke(type: \"development\", api_key: app_store_connect_api_key)","title":"2 Examples"},{"location":"generated/actions/match_nuke/#parameters","text":"Key Description Default type Define the profile type, can be appstore, adhoc, development, enterprise, developer_id, mac_installer_distribution, developer_id_installer development additional_cert_types Create additional cert types needed for macOS installers (valid values: mac_installer_distribution, developer_id_installer) readonly Only fetch existing certificates and profiles, don't generate new ones false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * skip_provisioning_profiles Skip syncing provisioning profiles false app_identifier The bundle identifier(s) of your app (comma-separated string or array of strings) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * storage_mode Define where you want to store your certificates git git_url URL to the git repo containing all the certificates git_branch Specific git branch to use master git_full_name git user full name to commit git_user_email git user email to commit shallow_clone Make a shallow clone of the repository (truncate the history to 1 revision) false clone_branch_directly Clone just the branch specified, instead of the whole repo. This requires that the branch already exists. Otherwise the command will fail false git_basic_authorization Use a basic authorization header to access the git repo (e.g.: access via HTTPS, GitHub Actions, etc), usually a string in Base64 git_bearer_authorization Use a bearer authorization header to access the git repo (e.g.: access to an Azure DevOps repository), usually a string in Base64 git_private_key Use a private key to access the git repo (e.g.: access to GitHub repository via Deploy keys), usually a id_rsa named file or the contents hereof google_cloud_bucket_name Name of the Google Cloud Storage bucket to use google_cloud_keys_file Path to the gc_keys.json file google_cloud_project_id ID of the Google Cloud project to use for authentication skip_google_cloud_account_confirmation Skips confirming to use the system google account false s3_region Name of the S3 region s3_access_key S3 access key s3_secret_access_key S3 secret access key s3_bucket Name of the S3 bucket s3_object_prefix Prefix to be used on all objects uploaded to S3 s3_skip_encryption Skip encryption of all objects uploaded to S3. WARNING: only enable this on S3 buckets with sufficiently restricted permissions and server-side encryption enabled. See https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html false gitlab_project GitLab Project Path (i.e. 'gitlab-org/gitlab') gitlab_host GitLab Host (i.e. 'https://gitlab.com') https://gitlab.com job_token GitLab CI_JOB_TOKEN private_token GitLab Access Token keychain_name Keychain the items should be imported to login.keychain keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password force Renew the provisioning profiles every time you run match false force_for_new_devices Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile types 'appstore' and 'developer_id' false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false force_for_new_certificates Renew the provisioning profiles if the certificate count on the developer portal has changed. Works only for the 'development' provisioning profile type. Requires 'include_all_certificates' option to be 'true' false skip_confirmation Disables confirmation prompts during nuke, answering them with yes false safe_remove_certs Remove certs from repository during nuke without revoking them on the developer portal false skip_docs Skip generation of a README.md for the created git repository false platform Set the provisioning profile's platform to work with (i.e. ios, tvos, macos, catalyst) * derive_catalyst_app_identifier Enable this if you have the Mac Catalyst capability enabled and your project was created with Xcode 11.3 or earlier. Prepends 'maccatalyst.' to the app identifier for the provisioning profile mapping false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") profile_name A custom name for the provisioning profile. This will replace the default provisioning profile name if specified fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false skip_certificate_matching Set to true if there is no access to Apple developer portal but there are certificates, keys and profiles provided. Only works with match import action false output_path Path in which to export certificates, key and profile skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false verbose Print out extra information and all commands false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/match_nuke/#documentation","text":"To show the documentation in your terminal, run fastlane action match_nuke","title":"Documentation"},{"location":"generated/actions/match_nuke/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run match_nuke To pass parameters, make use of the : symbol, for example fastlane run match_nuke parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/match_nuke/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/min_fastlane_version/","text":"min_fastlane_version Verifies the minimum fastlane version required Add this to your Fastfile to require a certain version of fastlane . Use it if you use an action that just recently came out and you need it. min_fastlane_version Supported platforms ios, android, mac Author @KrauseFx 1 Example min_fastlane_version(\"1.50.0\") Documentation To show the documentation in your terminal, run fastlane action min_fastlane_version CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run min_fastlane_version To pass parameters, make use of the : symbol, for example fastlane run min_fastlane_version parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Min fastlane version"},{"location":"generated/actions/min_fastlane_version/#min_fastlane_version","text":"Verifies the minimum fastlane version required Add this to your Fastfile to require a certain version of fastlane . Use it if you use an action that just recently came out and you need it. min_fastlane_version Supported platforms ios, android, mac Author @KrauseFx","title":"min_fastlane_version"},{"location":"generated/actions/min_fastlane_version/#1-example","text":"min_fastlane_version(\"1.50.0\")","title":"1 Example"},{"location":"generated/actions/min_fastlane_version/#documentation","text":"To show the documentation in your terminal, run fastlane action min_fastlane_version","title":"Documentation"},{"location":"generated/actions/min_fastlane_version/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run min_fastlane_version To pass parameters, make use of the : symbol, for example fastlane run min_fastlane_version parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/min_fastlane_version/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/modify_services/","text":"modify_services Modifies the services of the app created on Developer Portal The options are the same as :enable_services in the produce action modify_services Supported platforms ios Author @bhimsenpadalkar 1 Example modify_services( username: \"test.account@gmail.com\", app_identifier: \"com.someorg.app\", services: { push_notification: \"on\", associated_domains: \"off\", wallet: :on, apple_pay: :off, data_protection: true, multipath: false }) Parameters Key Description Default username Your Apple ID Username * app_identifier App Identifier (Bundle ID, e.g. com.krausefx.app) * services Array with Spaceship App Services (e.g. access_wifi: (on|off)(:on|:off)(true|false), app_attest: (on|off)(:on|:off)(true|false), app_group: (on|off)(:on|:off)(true|false), apple_pay: (on|off)(:on|:off)(true|false), associated_domains: (on|off)(:on|:off)(true|false), auto_fill_credential: (on|off)(:on|:off)(true|false), class_kit: (on|off)(:on|:off)(true|false), icloud: (legacy|cloudkit)(:on|:off)(true|false), custom_network_protocol: (on|off)(:on|:off)(true|false), data_protection: (complete|unlessopen|untilfirstauth)(:on|:off)(true|false), extended_virtual_address_space: (on|off)(:on|:off)(true|false), family_controls: (on|off)(:on|:off)(true|false), file_provider_testing_mode: (on|off)(:on|:off)(true|false), fonts: (on|off)(:on|:off)(true|false), game_center: (ios|mac)(:on|:off)(true|false), health_kit: (on|off)(:on|:off)(true|false), hls_interstitial_preview: (on|off)(:on|:off)(true|false), home_kit: (on|off)(:on|:off)(true|false), hotspot: (on|off)(:on|:off)(true|false), in_app_purchase: (on|off)(:on|:off)(true|false), inter_app_audio: (on|off)(:on|:off)(true|false), low_latency_hls: (on|off)(:on|:off)(true|false), managed_associated_domains: (on|off)(:on|:off)(true|false), maps: (on|off)(:on|:off)(true|false), multipath: (on|off)(:on|:off)(true|false), network_extension: (on|off)(:on|:off)(true|false), nfc_tag_reading: (on|off)(:on|:off)(true|false), personal_vpn: (on|off)(:on|:off)(true|false), passbook: (on|off)(:on|:off)(true|false), push_notification: (on|off)(:on|:off)(true|false), sign_in_with_apple: (on)(:on|:off)(true|false), siri_kit: (on|off)(:on|:off)(true|false), system_extension: (on|off)(:on|:off)(true|false), user_management: (on|off)(:on|:off)(true|false), vpn_configuration: (on|off)(:on|:off)(true|false), wallet: (on|off)(:on|:off)(true|false), wireless_accessory: (on|off)(:on|:off)(true|false), car_play_audio_app: (on|off)(:on|:off)(true|false), car_play_messaging_app: (on|off)(:on|:off)(true|false), car_play_navigation_app: (on|off)(:on|:off)(true|false), car_play_voip_calling_app: (on|off)(:on|:off)(true|false), critical_alerts: (on|off)(:on|:off)(true|false), hotspot_helper: (on|off)(:on|:off)(true|false), driver_kit: (on|off)(:on|:off)(true|false), driver_kit_endpoint_security: (on|off)(:on|:off)(true|false), driver_kit_family_hid_device: (on|off)(:on|:off)(true|false), driver_kit_family_networking: (on|off)(:on|:off)(true|false), driver_kit_family_serial: (on|off)(:on|:off)(true|false), driver_kit_hid_event_service: (on|off)(:on|:off)(true|false), driver_kit_transport_hid: (on|off)(:on|:off)(true|false), multitasking_camera_access: (on|off)(:on|:off)(true|false), sf_universal_link_api: (on|off)(:on|:off)(true|false), vp9_decoder: (on|off)(:on|:off)(true|false), music_kit: (on|off)(:on|:off)(true|false), shazam_kit: (on|off)(:on|:off)(true|false), communication_notifications: (on|off)(:on|:off)(true|false), group_activities: (on|off)(:on|:off)(true|false), health_kit_estimate_recalibration: (on|off)(:on|:off)(true|false), time_sensitive_notifications: (on|off)(:on|:off)(true|false)) {} team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action modify_services CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run modify_services To pass parameters, make use of the : symbol, for example fastlane run modify_services parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Modify services"},{"location":"generated/actions/modify_services/#modify_services","text":"Modifies the services of the app created on Developer Portal The options are the same as :enable_services in the produce action modify_services Supported platforms ios Author @bhimsenpadalkar","title":"modify_services"},{"location":"generated/actions/modify_services/#1-example","text":"modify_services( username: \"test.account@gmail.com\", app_identifier: \"com.someorg.app\", services: { push_notification: \"on\", associated_domains: \"off\", wallet: :on, apple_pay: :off, data_protection: true, multipath: false })","title":"1 Example"},{"location":"generated/actions/modify_services/#parameters","text":"Key Description Default username Your Apple ID Username * app_identifier App Identifier (Bundle ID, e.g. com.krausefx.app) * services Array with Spaceship App Services (e.g. access_wifi: (on|off)(:on|:off)(true|false), app_attest: (on|off)(:on|:off)(true|false), app_group: (on|off)(:on|:off)(true|false), apple_pay: (on|off)(:on|:off)(true|false), associated_domains: (on|off)(:on|:off)(true|false), auto_fill_credential: (on|off)(:on|:off)(true|false), class_kit: (on|off)(:on|:off)(true|false), icloud: (legacy|cloudkit)(:on|:off)(true|false), custom_network_protocol: (on|off)(:on|:off)(true|false), data_protection: (complete|unlessopen|untilfirstauth)(:on|:off)(true|false), extended_virtual_address_space: (on|off)(:on|:off)(true|false), family_controls: (on|off)(:on|:off)(true|false), file_provider_testing_mode: (on|off)(:on|:off)(true|false), fonts: (on|off)(:on|:off)(true|false), game_center: (ios|mac)(:on|:off)(true|false), health_kit: (on|off)(:on|:off)(true|false), hls_interstitial_preview: (on|off)(:on|:off)(true|false), home_kit: (on|off)(:on|:off)(true|false), hotspot: (on|off)(:on|:off)(true|false), in_app_purchase: (on|off)(:on|:off)(true|false), inter_app_audio: (on|off)(:on|:off)(true|false), low_latency_hls: (on|off)(:on|:off)(true|false), managed_associated_domains: (on|off)(:on|:off)(true|false), maps: (on|off)(:on|:off)(true|false), multipath: (on|off)(:on|:off)(true|false), network_extension: (on|off)(:on|:off)(true|false), nfc_tag_reading: (on|off)(:on|:off)(true|false), personal_vpn: (on|off)(:on|:off)(true|false), passbook: (on|off)(:on|:off)(true|false), push_notification: (on|off)(:on|:off)(true|false), sign_in_with_apple: (on)(:on|:off)(true|false), siri_kit: (on|off)(:on|:off)(true|false), system_extension: (on|off)(:on|:off)(true|false), user_management: (on|off)(:on|:off)(true|false), vpn_configuration: (on|off)(:on|:off)(true|false), wallet: (on|off)(:on|:off)(true|false), wireless_accessory: (on|off)(:on|:off)(true|false), car_play_audio_app: (on|off)(:on|:off)(true|false), car_play_messaging_app: (on|off)(:on|:off)(true|false), car_play_navigation_app: (on|off)(:on|:off)(true|false), car_play_voip_calling_app: (on|off)(:on|:off)(true|false), critical_alerts: (on|off)(:on|:off)(true|false), hotspot_helper: (on|off)(:on|:off)(true|false), driver_kit: (on|off)(:on|:off)(true|false), driver_kit_endpoint_security: (on|off)(:on|:off)(true|false), driver_kit_family_hid_device: (on|off)(:on|:off)(true|false), driver_kit_family_networking: (on|off)(:on|:off)(true|false), driver_kit_family_serial: (on|off)(:on|:off)(true|false), driver_kit_hid_event_service: (on|off)(:on|:off)(true|false), driver_kit_transport_hid: (on|off)(:on|:off)(true|false), multitasking_camera_access: (on|off)(:on|:off)(true|false), sf_universal_link_api: (on|off)(:on|:off)(true|false), vp9_decoder: (on|off)(:on|:off)(true|false), music_kit: (on|off)(:on|:off)(true|false), shazam_kit: (on|off)(:on|:off)(true|false), communication_notifications: (on|off)(:on|:off)(true|false), group_activities: (on|off)(:on|:off)(true|false), health_kit_estimate_recalibration: (on|off)(:on|:off)(true|false), time_sensitive_notifications: (on|off)(:on|:off)(true|false)) {} team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/modify_services/#documentation","text":"To show the documentation in your terminal, run fastlane action modify_services","title":"Documentation"},{"location":"generated/actions/modify_services/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run modify_services To pass parameters, make use of the : symbol, for example fastlane run modify_services parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/modify_services/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/nexus_upload/","text":"nexus_upload Upload a file to Sonatype Nexus platform nexus_upload Supported platforms ios, android, mac Author @xfreebird, @mdio 2 Examples # for Nexus 2 nexus_upload( file: \"/path/to/file.ipa\", repo_id: \"artefacts\", repo_group_id: \"com.fastlane\", repo_project_name: \"ipa\", repo_project_version: \"1.13\", repo_classifier: \"dSYM\", # Optional endpoint: \"http://localhost:8081\", username: \"admin\", password: \"admin123\" ) # for Nexus 3 nexus_upload( nexus_version: 3, mount_path: \"\", file: \"/path/to/file.ipa\", repo_id: \"artefacts\", repo_group_id: \"com.fastlane\", repo_project_name: \"ipa\", repo_project_version: \"1.13\", repo_classifier: \"dSYM\", # Optional endpoint: \"http://localhost:8081\", username: \"admin\", password: \"admin123\" ) Parameters Key Description Default file File to be uploaded to Nexus repo_id Nexus repository id e.g. artefacts repo_group_id Nexus repository group id e.g. com.company repo_project_name Nexus repository commandect name. Only letters, digits, underscores(_), hyphens(-), and dots(.) are allowed repo_project_version Nexus repository commandect version repo_classifier Nexus repository artifact classifier (optional) endpoint Nexus endpoint e.g. http://nexus:8081 mount_path Nexus mount path (Nexus 3 instances have this configured as empty by default) /nexus username Nexus username password Nexus password ssl_verify Verify SSL true nexus_version Nexus major version 2 verbose Make detailed output false proxy_username Proxy username proxy_password Proxy password proxy_address Proxy address proxy_port Proxy port * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action nexus_upload CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run nexus_upload To pass parameters, make use of the : symbol, for example fastlane run nexus_upload parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Nexus upload"},{"location":"generated/actions/nexus_upload/#nexus_upload","text":"Upload a file to Sonatype Nexus platform nexus_upload Supported platforms ios, android, mac Author @xfreebird, @mdio","title":"nexus_upload"},{"location":"generated/actions/nexus_upload/#2-examples","text":"# for Nexus 2 nexus_upload( file: \"/path/to/file.ipa\", repo_id: \"artefacts\", repo_group_id: \"com.fastlane\", repo_project_name: \"ipa\", repo_project_version: \"1.13\", repo_classifier: \"dSYM\", # Optional endpoint: \"http://localhost:8081\", username: \"admin\", password: \"admin123\" ) # for Nexus 3 nexus_upload( nexus_version: 3, mount_path: \"\", file: \"/path/to/file.ipa\", repo_id: \"artefacts\", repo_group_id: \"com.fastlane\", repo_project_name: \"ipa\", repo_project_version: \"1.13\", repo_classifier: \"dSYM\", # Optional endpoint: \"http://localhost:8081\", username: \"admin\", password: \"admin123\" )","title":"2 Examples"},{"location":"generated/actions/nexus_upload/#parameters","text":"Key Description Default file File to be uploaded to Nexus repo_id Nexus repository id e.g. artefacts repo_group_id Nexus repository group id e.g. com.company repo_project_name Nexus repository commandect name. Only letters, digits, underscores(_), hyphens(-), and dots(.) are allowed repo_project_version Nexus repository commandect version repo_classifier Nexus repository artifact classifier (optional) endpoint Nexus endpoint e.g. http://nexus:8081 mount_path Nexus mount path (Nexus 3 instances have this configured as empty by default) /nexus username Nexus username password Nexus password ssl_verify Verify SSL true nexus_version Nexus major version 2 verbose Make detailed output false proxy_username Proxy username proxy_password Proxy password proxy_address Proxy address proxy_port Proxy port * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/nexus_upload/#documentation","text":"To show the documentation in your terminal, run fastlane action nexus_upload","title":"Documentation"},{"location":"generated/actions/nexus_upload/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run nexus_upload To pass parameters, make use of the : symbol, for example fastlane run nexus_upload parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/nexus_upload/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/notarize/","text":"notarize Notarizes a macOS app notarize Supported platforms mac Author @zeplin Parameters Key Description Default package Path to package to notarize, e.g. .app bundle or disk image use_notarytool Whether to xcrun notarytool or xcrun altool * try_early_stapling Whether to try early stapling while the notarization request is in progress false skip_stapling Do not staple the notarization ticket to the artifact; useful for single file executables and ZIP archives false bundle_id Bundle identifier to uniquely identify the package username Apple ID username * asc_provider Provider short name for accounts associated with multiple providers print_log Whether to print notarization log file, listing issues on failure and warnings on success false verbose Whether to log requests false api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action notarize CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run notarize To pass parameters, make use of the : symbol, for example fastlane run notarize parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Notarize"},{"location":"generated/actions/notarize/#notarize","text":"Notarizes a macOS app notarize Supported platforms mac Author @zeplin","title":"notarize"},{"location":"generated/actions/notarize/#parameters","text":"Key Description Default package Path to package to notarize, e.g. .app bundle or disk image use_notarytool Whether to xcrun notarytool or xcrun altool * try_early_stapling Whether to try early stapling while the notarization request is in progress false skip_stapling Do not staple the notarization ticket to the artifact; useful for single file executables and ZIP archives false bundle_id Bundle identifier to uniquely identify the package username Apple ID username * asc_provider Provider short name for accounts associated with multiple providers print_log Whether to print notarization log file, listing issues on failure and warnings on success false verbose Whether to log requests false api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/notarize/#documentation","text":"To show the documentation in your terminal, run fastlane action notarize","title":"Documentation"},{"location":"generated/actions/notarize/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run notarize To pass parameters, make use of the : symbol, for example fastlane run notarize parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/notarize/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/notification/","text":"notification Display a macOS notification with custom message and title notification Supported platforms ios, android, mac Author @champo, @cbowns, @KrauseFx, @amarcadet, @dusek 1 Example notification(subtitle: \"Finished Building\", message: \"Ready to upload...\") Parameters Key Description Default title The title to display in the notification fastlane subtitle A subtitle to display in the notification message The message to display in the notification sound The name of a sound to play when the notification appears (names are listed in Sound Preferences) activate Bundle identifier of application to be opened when the notification is clicked app_icon The URL of an image to display instead of the application icon (Mavericks+ only) content_image The URL of an image to display attached to the notification (Mavericks+ only) open URL of the resource to be opened when the notification is clicked execute Shell command to run when the notification is clicked * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action notification CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run notification To pass parameters, make use of the : symbol, for example fastlane run notification parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Notification"},{"location":"generated/actions/notification/#notification","text":"Display a macOS notification with custom message and title notification Supported platforms ios, android, mac Author @champo, @cbowns, @KrauseFx, @amarcadet, @dusek","title":"notification"},{"location":"generated/actions/notification/#1-example","text":"notification(subtitle: \"Finished Building\", message: \"Ready to upload...\")","title":"1 Example"},{"location":"generated/actions/notification/#parameters","text":"Key Description Default title The title to display in the notification fastlane subtitle A subtitle to display in the notification message The message to display in the notification sound The name of a sound to play when the notification appears (names are listed in Sound Preferences) activate Bundle identifier of application to be opened when the notification is clicked app_icon The URL of an image to display instead of the application icon (Mavericks+ only) content_image The URL of an image to display attached to the notification (Mavericks+ only) open URL of the resource to be opened when the notification is clicked execute Shell command to run when the notification is clicked * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/notification/#documentation","text":"To show the documentation in your terminal, run fastlane action notification","title":"Documentation"},{"location":"generated/actions/notification/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run notification To pass parameters, make use of the : symbol, for example fastlane run notification parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/notification/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/notify/","text":"notify Shows a macOS notification - use notification instead It's recommended to use the new notification action instead of notify notify Supported platforms ios, android, mac Author @champo, @KrauseFx Documentation To show the documentation in your terminal, run fastlane action notify CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run notify To pass parameters, make use of the : symbol, for example fastlane run notify parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Notify"},{"location":"generated/actions/notify/#notify","text":"Shows a macOS notification - use notification instead It's recommended to use the new notification action instead of notify notify Supported platforms ios, android, mac Author @champo, @KrauseFx","title":"notify"},{"location":"generated/actions/notify/#documentation","text":"To show the documentation in your terminal, run fastlane action notify","title":"Documentation"},{"location":"generated/actions/notify/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run notify To pass parameters, make use of the : symbol, for example fastlane run notify parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/notify/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/number_of_commits/","text":"number_of_commits Return the number of commits in current git branch You can use this action to get the number of commits of this branch. This is useful if you want to set the build number to the number of commits. See fastlane actions number_of_commits for more details. number_of_commits Supported platforms ios, android, mac Author @onevcat, @samuelbeek Returns The total number of all commits in current git branch 2 Examples increment_build_number(build_number: number_of_commits) build_number = number_of_commits(all: true) increment_build_number(build_number: build_number) Parameters Key Description Default all Returns number of all commits instead of current branch * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action number_of_commits CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run number_of_commits To pass parameters, make use of the : symbol, for example fastlane run number_of_commits parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Number of commits"},{"location":"generated/actions/number_of_commits/#number_of_commits","text":"Return the number of commits in current git branch You can use this action to get the number of commits of this branch. This is useful if you want to set the build number to the number of commits. See fastlane actions number_of_commits for more details. number_of_commits Supported platforms ios, android, mac Author @onevcat, @samuelbeek Returns The total number of all commits in current git branch","title":"number_of_commits"},{"location":"generated/actions/number_of_commits/#2-examples","text":"increment_build_number(build_number: number_of_commits) build_number = number_of_commits(all: true) increment_build_number(build_number: build_number)","title":"2 Examples"},{"location":"generated/actions/number_of_commits/#parameters","text":"Key Description Default all Returns number of all commits instead of current branch * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/number_of_commits/#documentation","text":"To show the documentation in your terminal, run fastlane action number_of_commits","title":"Documentation"},{"location":"generated/actions/number_of_commits/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run number_of_commits To pass parameters, make use of the : symbol, for example fastlane run number_of_commits parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/number_of_commits/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/oclint/","text":"oclint Lints implementation files with OCLint Run the static analyzer tool OCLint for your project. You need to have a compile_commands.json file in your fastlane directory or pass a path to your file. oclint Supported platforms ios, android, mac Author @HeEAaD 1 Example oclint( compile_commands: \"commands.json\", # The JSON compilation database, use xctool reporter \"json-compilation-database\" select_regex: /ViewController.m/, # Select all files matching this regex exclude_regex: /Test.m/, # Exclude all files matching this regex report_type: \"pmd\", # The type of the report (default: html) max_priority_1: 10, # The max allowed number of priority 1 violations max_priority_2: 100, # The max allowed number of priority 2 violations max_priority_3: 1000, # The max allowed number of priority 3 violations thresholds: [ # Override the default behavior of rules \"LONG_LINE=200\", \"LONG_METHOD=200\" ], enable_rules: [ # List of rules to pick explicitly \"DoubleNegative\", \"SwitchStatementsDon'TNeedDefaultWhenFullyCovered\" ], disable_rules: [\"GotoStatement\"], # List of rules to disable list_enabled_rules: true, # List enabled rules enable_clang_static_analyzer: true, # Enable Clang Static Analyzer, and integrate results into OCLint report enable_global_analysis: true, # Compile every source, and analyze across global contexts (depends on number of source files, could results in high memory load) allow_duplicated_violations: true, # Allow duplicated violations in the OCLint report extra_arg: \"-Wno-everything\"# Additional argument to append to the compiler command line ) Parameters Key Description Default oclint_path The path to oclint binary oclint compile_commands The json compilation database, use xctool reporter 'json-compilation-database' compile_commands.json select_reqex DEPRECATED! Use :select_regex instead - Select all files matching this reqex select_regex Select all files matching this regex exclude_regex Exclude all files matching this regex report_type The type of the report (default: html) html report_path The reports file path list_enabled_rules List enabled rules false rc Override the default behavior of rules thresholds List of rule thresholds to override the default behavior of rules enable_rules List of rules to pick explicitly disable_rules List of rules to disable max_priority_1 The max allowed number of priority 1 violations max_priority_2 The max allowed number of priority 2 violations max_priority_3 The max allowed number of priority 3 violations enable_clang_static_analyzer Enable Clang Static Analyzer, and integrate results into OCLint report false enable_global_analysis Compile every source, and analyze across global contexts (depends on number of source files, could results in high memory load) false allow_duplicated_violations Allow duplicated violations in the OCLint report false extra_arg Additional argument to append to the compiler command line * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The oclint action generates the following Lane Variables: SharedValue Description SharedValues::FL_OCLINT_REPORT_PATH The reports file path To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action oclint CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run oclint To pass parameters, make use of the : symbol, for example fastlane run oclint parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Oclint"},{"location":"generated/actions/oclint/#oclint","text":"Lints implementation files with OCLint Run the static analyzer tool OCLint for your project. You need to have a compile_commands.json file in your fastlane directory or pass a path to your file. oclint Supported platforms ios, android, mac Author @HeEAaD","title":"oclint"},{"location":"generated/actions/oclint/#1-example","text":"oclint( compile_commands: \"commands.json\", # The JSON compilation database, use xctool reporter \"json-compilation-database\" select_regex: /ViewController.m/, # Select all files matching this regex exclude_regex: /Test.m/, # Exclude all files matching this regex report_type: \"pmd\", # The type of the report (default: html) max_priority_1: 10, # The max allowed number of priority 1 violations max_priority_2: 100, # The max allowed number of priority 2 violations max_priority_3: 1000, # The max allowed number of priority 3 violations thresholds: [ # Override the default behavior of rules \"LONG_LINE=200\", \"LONG_METHOD=200\" ], enable_rules: [ # List of rules to pick explicitly \"DoubleNegative\", \"SwitchStatementsDon'TNeedDefaultWhenFullyCovered\" ], disable_rules: [\"GotoStatement\"], # List of rules to disable list_enabled_rules: true, # List enabled rules enable_clang_static_analyzer: true, # Enable Clang Static Analyzer, and integrate results into OCLint report enable_global_analysis: true, # Compile every source, and analyze across global contexts (depends on number of source files, could results in high memory load) allow_duplicated_violations: true, # Allow duplicated violations in the OCLint report extra_arg: \"-Wno-everything\"# Additional argument to append to the compiler command line )","title":"1 Example"},{"location":"generated/actions/oclint/#parameters","text":"Key Description Default oclint_path The path to oclint binary oclint compile_commands The json compilation database, use xctool reporter 'json-compilation-database' compile_commands.json select_reqex DEPRECATED! Use :select_regex instead - Select all files matching this reqex select_regex Select all files matching this regex exclude_regex Exclude all files matching this regex report_type The type of the report (default: html) html report_path The reports file path list_enabled_rules List enabled rules false rc Override the default behavior of rules thresholds List of rule thresholds to override the default behavior of rules enable_rules List of rules to pick explicitly disable_rules List of rules to disable max_priority_1 The max allowed number of priority 1 violations max_priority_2 The max allowed number of priority 2 violations max_priority_3 The max allowed number of priority 3 violations enable_clang_static_analyzer Enable Clang Static Analyzer, and integrate results into OCLint report false enable_global_analysis Compile every source, and analyze across global contexts (depends on number of source files, could results in high memory load) false allow_duplicated_violations Allow duplicated violations in the OCLint report false extra_arg Additional argument to append to the compiler command line * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/oclint/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The oclint action generates the following Lane Variables: SharedValue Description SharedValues::FL_OCLINT_REPORT_PATH The reports file path To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/oclint/#documentation","text":"To show the documentation in your terminal, run fastlane action oclint","title":"Documentation"},{"location":"generated/actions/oclint/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run oclint To pass parameters, make use of the : symbol, for example fastlane run oclint parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/oclint/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/onesignal/","text":"onesignal Create or update a new OneSignal application You can use this action to automatically create or update a OneSignal application. You can also upload a .p12 with password, a GCM key, or both. onesignal Supported platforms ios, android Author @timothybarraclough, @smartshowltd 2 Examples onesignal( auth_token: \"Your OneSignal Auth Token\", app_name: \"Name for OneSignal App\", android_token: \"Your Android GCM key (optional)\", android_gcm_sender_id: \"Your Android GCM Sender ID (optional)\", apns_p12: \"Path to Apple .p12 file (optional)\", apns_p12_password: \"Password for .p12 file (optional)\", apns_env: \"production/sandbox (defaults to production)\", organization_id: \"Onesignal organization id (optional)\" ) onesignal( app_id: \"Your OneSignal App ID\", auth_token: \"Your OneSignal Auth Token\", app_name: \"New Name for OneSignal App\", android_token: \"Your Android GCM key (optional)\", android_gcm_sender_id: \"Your Android GCM Sender ID (optional)\", apns_p12: \"Path to Apple .p12 file (optional)\", apns_p12_password: \"Password for .p12 file (optional)\", apns_env: \"production/sandbox (defaults to production)\", organization_id: \"Onesignal organization id (optional)\" ) Parameters Key Description Default app_id OneSignal App ID. Setting this updates an existing app auth_token OneSignal Authorization Key app_name OneSignal App Name. This is required when creating an app (in other words, when :app_id is not set, and optional when updating an app android_token ANDROID GCM KEY android_gcm_sender_id GCM SENDER ID apns_p12 APNS P12 File (in .p12 format) apns_p12_password APNS P12 password apns_env APNS environment production organization_id OneSignal Organization ID * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The onesignal action generates the following Lane Variables: SharedValue Description SharedValues::ONE_SIGNAL_APP_ID The app ID of the newly created or updated app SharedValues::ONE_SIGNAL_APP_AUTH_KEY The auth token for the newly created or updated app To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action onesignal CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run onesignal To pass parameters, make use of the : symbol, for example fastlane run onesignal parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Onesignal"},{"location":"generated/actions/onesignal/#onesignal","text":"Create or update a new OneSignal application You can use this action to automatically create or update a OneSignal application. You can also upload a .p12 with password, a GCM key, or both. onesignal Supported platforms ios, android Author @timothybarraclough, @smartshowltd","title":"onesignal"},{"location":"generated/actions/onesignal/#2-examples","text":"onesignal( auth_token: \"Your OneSignal Auth Token\", app_name: \"Name for OneSignal App\", android_token: \"Your Android GCM key (optional)\", android_gcm_sender_id: \"Your Android GCM Sender ID (optional)\", apns_p12: \"Path to Apple .p12 file (optional)\", apns_p12_password: \"Password for .p12 file (optional)\", apns_env: \"production/sandbox (defaults to production)\", organization_id: \"Onesignal organization id (optional)\" ) onesignal( app_id: \"Your OneSignal App ID\", auth_token: \"Your OneSignal Auth Token\", app_name: \"New Name for OneSignal App\", android_token: \"Your Android GCM key (optional)\", android_gcm_sender_id: \"Your Android GCM Sender ID (optional)\", apns_p12: \"Path to Apple .p12 file (optional)\", apns_p12_password: \"Password for .p12 file (optional)\", apns_env: \"production/sandbox (defaults to production)\", organization_id: \"Onesignal organization id (optional)\" )","title":"2 Examples"},{"location":"generated/actions/onesignal/#parameters","text":"Key Description Default app_id OneSignal App ID. Setting this updates an existing app auth_token OneSignal Authorization Key app_name OneSignal App Name. This is required when creating an app (in other words, when :app_id is not set, and optional when updating an app android_token ANDROID GCM KEY android_gcm_sender_id GCM SENDER ID apns_p12 APNS P12 File (in .p12 format) apns_p12_password APNS P12 password apns_env APNS environment production organization_id OneSignal Organization ID * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/onesignal/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The onesignal action generates the following Lane Variables: SharedValue Description SharedValues::ONE_SIGNAL_APP_ID The app ID of the newly created or updated app SharedValues::ONE_SIGNAL_APP_AUTH_KEY The auth token for the newly created or updated app To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/onesignal/#documentation","text":"To show the documentation in your terminal, run fastlane action onesignal","title":"Documentation"},{"location":"generated/actions/onesignal/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run onesignal To pass parameters, make use of the : symbol, for example fastlane run onesignal parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/onesignal/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/opt_out_crash_reporting/","text":"opt_out_crash_reporting This will prevent reports from being uploaded when fastlane crashes fastlane doesn't have crash reporting any more. Feel free to remove opt_out_crash_reporting from your Fastfile. opt_out_crash_reporting Supported platforms ios, android, mac Author @mpirri, @ohayon Documentation To show the documentation in your terminal, run fastlane action opt_out_crash_reporting CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run opt_out_crash_reporting To pass parameters, make use of the : symbol, for example fastlane run opt_out_crash_reporting parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Opt out crash reporting"},{"location":"generated/actions/opt_out_crash_reporting/#opt_out_crash_reporting","text":"This will prevent reports from being uploaded when fastlane crashes fastlane doesn't have crash reporting any more. Feel free to remove opt_out_crash_reporting from your Fastfile. opt_out_crash_reporting Supported platforms ios, android, mac Author @mpirri, @ohayon","title":"opt_out_crash_reporting"},{"location":"generated/actions/opt_out_crash_reporting/#documentation","text":"To show the documentation in your terminal, run fastlane action opt_out_crash_reporting","title":"Documentation"},{"location":"generated/actions/opt_out_crash_reporting/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run opt_out_crash_reporting To pass parameters, make use of the : symbol, for example fastlane run opt_out_crash_reporting parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/opt_out_crash_reporting/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/opt_out_usage/","text":"opt_out_usage This will stop uploading the information which actions were run By default, fastlane will track what actions are being used. No personal/sensitive information is recorded. Learn more at https://docs.fastlane.tools/#metrics . Add opt_out_usage at the top of your Fastfile to disable metrics collection. opt_out_usage Supported platforms ios, android, mac Author @KrauseFx 1 Example opt_out_usage # add this to the top of your Fastfile Documentation To show the documentation in your terminal, run fastlane action opt_out_usage CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run opt_out_usage To pass parameters, make use of the : symbol, for example fastlane run opt_out_usage parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Opt out usage"},{"location":"generated/actions/opt_out_usage/#opt_out_usage","text":"This will stop uploading the information which actions were run By default, fastlane will track what actions are being used. No personal/sensitive information is recorded. Learn more at https://docs.fastlane.tools/#metrics . Add opt_out_usage at the top of your Fastfile to disable metrics collection. opt_out_usage Supported platforms ios, android, mac Author @KrauseFx","title":"opt_out_usage"},{"location":"generated/actions/opt_out_usage/#1-example","text":"opt_out_usage # add this to the top of your Fastfile","title":"1 Example"},{"location":"generated/actions/opt_out_usage/#documentation","text":"To show the documentation in your terminal, run fastlane action opt_out_usage","title":"Documentation"},{"location":"generated/actions/opt_out_usage/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run opt_out_usage To pass parameters, make use of the : symbol, for example fastlane run opt_out_usage parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/opt_out_usage/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/pem/","text":"pem Alias for the get_push_certificate action Automatically generate and renew your push notification profiles Tired of manually creating and maintaining your push notification profiles for your iOS apps? Tired of generating a pem file for your server? pem does all that for you, just by simply running pem . pem creates new .pem, .cer, and .p12 files to be uploaded to your push server if a valid push notification profile is needed. pem does not cover uploading the file to your server. To automate iOS Provisioning profiles you can use match . Features \u2022 Usage \u2022 How does it work? \u2022 Tips \u2022 Need help? pem is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Features Well, it's actually just one: Generate the pem file for your server. Check out this gif: Usage fastlane pem Yes, that's the whole command! This does the following: Create a new signing request Create a new push certification Downloads the certificate Generates a new .pem file in the current working directory, which you can upload to your server Note that pem will never revoke your existing certificates. pem can't download any of your existing push certificates, as the private key is only available on the machine it was created on. If you already have a push certificate enabled, which is active for at least 30 more days, pem will not create a new certificate. If you still want to create one, use the force : fastlane pem --force You can pass parameters like this: fastlane pem -a com.krausefx.app -u username If you want to generate a development certificate instead: fastlane pem --development If you want to generate a Website Push certificate: fastlane pem --website_push Set a password for your p12 file: fastlane pem -p \"MyPass\" You can specify a name for the output file: fastlane pem -o my.pem To get a list of available options run: fastlane action pem Note about empty p12 passwords and Keychain Access.app pem will produce a valid p12 without specifying a password, or using the empty-string as the password. While the file is valid, the Mac's Keychain Access will not allow you to open the file without specifying a passphrase. Instead, you may verify the file is valid using OpenSSL: openssl pkcs12 -info -in my.p12 If you need the p12 in your keychain, perhaps to test push with an app like Knuff or Pusher , you can use openssl to export the p12 to pem and back to p12 : % openssl pkcs12 -in my.p12 -out my.pem Enter Import Password: MAC verified OK Enter your pem passphrase: % openssl pkcs12 -export -in my.pem -out my-with-passphrase.p12 Enter pass phrase for temp.pem: Enter Export Password: Environment Variables Run fastlane action pem to get a list of available environment variables. How does it work? pem uses spaceship to communicate with the Apple Developer Portal to request a new push certificate for you. How is my password stored? pem uses the password manager from fastlane . Take a look the CredentialsManager README for more information. pem Supported platforms ios, mac Author @KrauseFx 3 Examples get_push_certificate pem # alias for \"get_push_certificate\" get_push_certificate( force: true, # create a new profile, even if the old one is still valid app_identifier: \"net.sunapps.9\", # optional app identifier, save_private_key: true, new_profile: proc do |profile_path| # this block gets called when a new profile was generated puts profile_path # the absolute path to the new PEM file # insert the code to upload the PEM file to the server end ) Parameters Key Description Default platform Set certificate's platform. Used for creation of production & development certificates. Supported platforms: ios, macos ios development Renew the development push certificate instead of the production one false website_push Create a Website Push certificate false generate_p12 Generate a p12 file additionally to a PEM file true active_days_limit If the current certificate is active for less than this number of days, generate a new one 30 force Create a new push certificate, even if the current one is active for 30 (or PEM_ACTIVE_DAYS_LIMIT) more days false save_private_key Set to save the private RSA key true app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * p12_password The password that is used for your p12 file pem_name The file name of the generated .pem file output_path The path to a directory in which all certificates and private keys should be stored . new_profile Block that is called if there is a new profile * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action pem CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run pem To pass parameters, make use of the : symbol, for example fastlane run pem parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Pem"},{"location":"generated/actions/pem/#pem","text":"Alias for the get_push_certificate action","title":"pem"},{"location":"generated/actions/pem/#features","text":"Well, it's actually just one: Generate the pem file for your server. Check out this gif:","title":"Features"},{"location":"generated/actions/pem/#usage","text":"fastlane pem Yes, that's the whole command! This does the following: Create a new signing request Create a new push certification Downloads the certificate Generates a new .pem file in the current working directory, which you can upload to your server Note that pem will never revoke your existing certificates. pem can't download any of your existing push certificates, as the private key is only available on the machine it was created on. If you already have a push certificate enabled, which is active for at least 30 more days, pem will not create a new certificate. If you still want to create one, use the force : fastlane pem --force You can pass parameters like this: fastlane pem -a com.krausefx.app -u username If you want to generate a development certificate instead: fastlane pem --development If you want to generate a Website Push certificate: fastlane pem --website_push Set a password for your p12 file: fastlane pem -p \"MyPass\" You can specify a name for the output file: fastlane pem -o my.pem To get a list of available options run: fastlane action pem","title":"Usage"},{"location":"generated/actions/pem/#environment-variables","text":"Run fastlane action pem to get a list of available environment variables.","title":"Environment Variables"},{"location":"generated/actions/pem/#how-does-it-work","text":"pem uses spaceship to communicate with the Apple Developer Portal to request a new push certificate for you.","title":"How does it work?"},{"location":"generated/actions/pem/#how-is-my-password-stored","text":"pem uses the password manager from fastlane . Take a look the CredentialsManager README for more information. pem Supported platforms ios, mac Author @KrauseFx","title":"How is my password stored?"},{"location":"generated/actions/pem/#3-examples","text":"get_push_certificate pem # alias for \"get_push_certificate\" get_push_certificate( force: true, # create a new profile, even if the old one is still valid app_identifier: \"net.sunapps.9\", # optional app identifier, save_private_key: true, new_profile: proc do |profile_path| # this block gets called when a new profile was generated puts profile_path # the absolute path to the new PEM file # insert the code to upload the PEM file to the server end )","title":"3 Examples"},{"location":"generated/actions/pem/#parameters","text":"Key Description Default platform Set certificate's platform. Used for creation of production & development certificates. Supported platforms: ios, macos ios development Renew the development push certificate instead of the production one false website_push Create a Website Push certificate false generate_p12 Generate a p12 file additionally to a PEM file true active_days_limit If the current certificate is active for less than this number of days, generate a new one 30 force Create a new push certificate, even if the current one is active for 30 (or PEM_ACTIVE_DAYS_LIMIT) more days false save_private_key Set to save the private RSA key true app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * p12_password The password that is used for your p12 file pem_name The file name of the generated .pem file output_path The path to a directory in which all certificates and private keys should be stored . new_profile Block that is called if there is a new profile * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/pem/#documentation","text":"To show the documentation in your terminal, run fastlane action pem","title":"Documentation"},{"location":"generated/actions/pem/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run pem To pass parameters, make use of the : symbol, for example fastlane run pem parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/pem/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/pilot/","text":"pilot Alias for the upload_to_testflight action The best way to manage your TestFlight testers and builds from your terminal pilot makes it easier to manage your app on Apple\u2019s TestFlight. You can: Upload & distribute builds Add & remove testers Retrieve information about testers & devices Import/export all available testers pilot uses spaceship.airforce to interact with App Store Connect \ud83d\ude80 Usage \u2022 Tips pilot is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Usage For all commands, you can either use an API Key or your Apple ID . App Store Connect API Key The App Store Connect API Key is the preferred authentication method (if you are able to use it). Uses official App Store Connect API No need for 2FA Better performance over Apple ID Specify the API key using --api_key_path ./path/to/api_key_info.json or --api_key \"{\\\"key_id\\\": \\\"D83848D23\\\", \\\"issuer_id\\\": \\\"227b0bbf-ada8-458c-9d62-3d8022b7d07f\\\", \\\"key_filepath\\\": \\\"D83848D23.p8\\\"}\" Go to Using App Store Connect API for information on obtaining an API key, the fastlane api_key_info.json format, and other API key usage. Apple ID Specify the Apple ID to use using -u felix@krausefx.com . If you execute pilot in a project already using fastlane the username and app identifier will automatically be determined. Uploading builds To upload a new build, just run fastlane pilot upload This will automatically look for an ipa in your current directory and tries to fetch the login credentials from your fastlane setup . You'll be asked for any missing information. Additionally, you can pass all kinds of parameters: fastlane action pilot You can pass a changelog using fastlane pilot upload --changelog \"Something that is new here\" You can also skip the submission of the binary, which means, the ipa file will only be uploaded and not distributed to testers: fastlane pilot upload --skip_submission pilot does all kinds of magic for you: Automatically detects the bundle identifier from your ipa file Automatically fetch the AppID of your app based on the bundle identifier pilot uses spaceship to submit the build metadata and the iTunes Transporter to upload the binary. Because iTunes Transporter's upload capability is only supported on OS X, pilot upload does not work on Linux, as described in this issue List builds To list all builds for specific application use fastlane pilot builds The result lists all active builds and processing builds: +-----------+---------+----------+ | Great App Builds | +-----------+---------+----------+ | Version # | Build # | Installs | +-----------+---------+----------+ | 0.9.13 | 1 | 0 | | 0.9.13 | 2 | 0 | | 0.9.20 | 3 | 0 | | 0.9.20 | 4 | 3 | +-----------+---------+----------+ Managing beta testers List of Testers This command will list all your testers, both internal and external. fastlane pilot list The output will look like this: +--------+--------+--------------------------+-----------+ | Internal Testers | +--------+--------+--------------------------+-----------+ | First | Last | Email | # Devices | +--------+--------+--------------------------+-----------+ | Felix | Krause | felix@krausefx.com | 2 | +--------+--------+--------------------------+-----------+ +-----------+---------+----------------------------+-----------+ | External Testers | +-----------+---------+----------------------------+-----------+ | First | Last | Email | # Devices | +-----------+---------+----------------------------+-----------+ | Max | Manfred | email@email.com | 0 | | Detlef | M\u00fcller | detlef@krausefx.com | 1 | +-----------+---------+----------------------------+-----------+ Add a new tester To add a new tester to your App Store Connect account and to associate it to at least one testing group of your app, use the pilot add command. This will create a new tester (if necessary) or add an existing tester to the app to test. fastlane pilot add email@invite.com -g group-1,group-2 Additionally you can specify the app identifier (if necessary): fastlane pilot add email@email.com -a com.krausefx.app -g group-1,group-2 Find a tester To find a specific tester use fastlane pilot find felix@krausefx.com The resulting output will look like this: +---------------------+---------------------+ | felix@krausefx.com | +---------------------+---------------------+ | First name | Felix | | Last name | Krause | | Email | felix@krausefx.com | | Latest Version | 0.9.14 (23 | | Latest Install Date | 03/28/15 19:00 | | 2 Devices | \u2022 iPhone 6, iOS 8.3 | | | \u2022 iPhone 5, iOS 7.0 | +---------------------+---------------------+ Remove a tester This command will remove beta tester from app (from all internal and external groups) fastlane pilot remove felix@krausefx.com You can also use groups option to remove the tester from the groups specified: fastlane pilot remove felix@krausefx.com -g group-1,group-2 Export testers To export all external testers to a CSV file. Useful if you need to import tester info to another system or a new account. fastlane pilot export Import testers Add external testers from a CSV file. Create a file (ex: testers.csv ) and fill it with the following format: John,Appleseed,appleseed_john@mac.com,group-1;group-2 fastlane pilot import You can also specify the directory using fastlane pilot export -c ~/Desktop/testers.csv fastlane pilot import -c ~/Desktop/testers.csv Tips Debug information If you run into any issues you can use the verbose mode to get a more detailed output: fastlane pilot upload --verbose Firewall Issues pilot uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol from the command line using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" pilot ... If you are using pilot via the fastlane action , add the following to your Fastfile ENV[\"DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS\"] = \"-t DAV\" pilot... Note, however, that Apple recommends you don\u2019t specify the -t transport and instead allow Transporter to use automatic transport discovery to determine the best transport mode for your packages. For this reason, if the t option is passed, we will raise a warning. Also note that -t is not the only additional parameter that can be used. The string specified in the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS environment variable will be forwarded to Transporter. For all the available options, check Apple's Transporter User Guide . Credentials Issues If your password contains special characters, pilot may throw a confusing error saying your \"Your Apple ID or password was entered incorrectly\". The easiest way to fix this error is to change your password to something that does not contains special characters. How is my password stored? pilot uses the CredentialsManager from fastlane . Provider Short Name If you are on multiple App Store Connect teams, iTunes Transporter may need a provider short name to know where to upload your binary. pilot will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option. Use an Application Specific Password to upload pilot / upload_to_testflight can use an Application Specific Password via the FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD environment variable to upload a binary if both the skip_waiting_for_build_processing and apple_id options are set. (If any of those are not set, it will use the normal Apple login process that might require 2FA authentication.) Role for App Store Connect User pilot / upload_to_testflight updates build information and testers after the build has finished processing. App Store Connect requires the \"App Manager\" or \"Admin\" role for your Apple account to update this information. The \"Developer\" role will allow builds to be uploaded but will not allow updating of build information and testers. pilot Supported platforms ios, mac Author @KrauseFx 7 Examples upload_to_testflight testflight # alias for \"upload_to_testflight\" pilot # alias for \"upload_to_testflight\" upload_to_testflight(skip_submission: true) # to only upload the build upload_to_testflight( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) upload_to_testflight( beta_app_feedback_email: \"email@email.com\", beta_app_description: \"This is a description of my app\", demo_account_required: true, notify_external_testers: false, changelog: \"This is my changelog of things that have changed in a log\" ) upload_to_testflight( beta_app_review_info: { contact_email: \"email@email.com\", contact_first_name: \"Connect\", contact_last_name: \"API\", contact_phone: \"5558675309\", demo_account_name: \"demo@email.com\", demo_account_password: \"connectapi\", notes: \"this is review note for the reviewer <3 thank you for reviewing\" }, localized_app_info: { \"default\": { feedback_email: \"default@email.com\", marketing_url: \"https://example.com/marketing-defafult\", privacy_policy_url: \"https://example.com/privacy-defafult\", description: \"Default description\", }, \"en-GB\": { feedback_email: \"en-gb@email.com\", marketing_url: \"https://example.com/marketing-en-gb\", privacy_policy_url: \"https://example.com/privacy-en-gb\", description: \"en-gb description\", } }, localized_build_info: { \"default\": { whats_new: \"Default changelog\", }, \"en-GB\": { whats_new: \"en-gb changelog\", } } ) Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of the app to upload or manage testers (optional) * app_platform The platform to use (optional) apple_id Apple ID property in the App Information section in App Store Connect * ipa Path to the ipa file to upload * pkg Path to your pkg file * demo_account_required Do you need a demo account when Apple does review? beta_app_review_info Beta app review information for contact info and demo account localized_app_info Localized beta app test info for description, feedback email, marketing url, and privacy policy beta_app_description Provide the 'Beta App Description' when uploading a new build beta_app_feedback_email Provide the beta app email when uploading a new build localized_build_info Localized beta app test info for what's new changelog Provide the 'What to Test' text when uploading a new build skip_submission Skip the distributing action of pilot and only upload the ipa file false skip_waiting_for_build_processing If set to true, the distribute_external option won't work and no build will be distributed to testers. (You might want to use this option if you are using this action on CI and have to pay for 'minutes used' on your CI plan). If set to true and a changelog is provided, it will partially wait for the build to appear on AppStore Connect so the changelog can be set, and skip the remaining processing steps false update_build_info_on_upload DEPRECATED! Update build info immediately after validation. This is deprecated and will be removed in a future release. App Store Connect no longer supports setting build info until after build processing has completed, which is when build info is updated by default false distribute_only Distribute a previously uploaded build (equivalent to the fastlane pilot distribute command) false uses_non_exempt_encryption Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist false distribute_external Should the build be distributed to external testers? If set to true, use of groups option is required false notify_external_testers Should notify external testers? (Not setting a value will use App Store Connect's default which is to notify) app_version The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed build_number The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed expire_previous_builds Should expire previous builds? false first_name The tester's first name last_name The tester's last name email The tester's email testers_file_path Path to a CSV file of testers ./testers.csv groups Associate tester to one group or more by group name / group id. E.g. -g \"Team 1\",\"Team 2\" This is required when distribute_external option is set to true or when we want to add a tester to one or more external testing groups team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your team in the developer portal, if you're in multiple teams. Different from your iTC team ID! * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column wait_processing_interval Interval in seconds to wait for App Store Connect processing 30 wait_processing_timeout_duration Timeout duration in seconds to wait for App Store Connect processing. If set, after exceeding timeout duration, this will force stop to wait for App Store Connect processing and exit with exception wait_for_uploaded_build DEPRECATED! No longer needed with the transition over to the App Store Connect API - Use version info from uploaded ipa file to determine what build to use for distribution. If set to false, latest processing or any latest build will be used false reject_build_waiting_for_review Expire previous if it's 'waiting for review' false submit_beta_review Send the build for a beta review true * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action pilot CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run pilot To pass parameters, make use of the : symbol, for example fastlane run pilot parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Pilot"},{"location":"generated/actions/pilot/#pilot","text":"Alias for the upload_to_testflight action","title":"pilot"},{"location":"generated/actions/pilot/#usage","text":"For all commands, you can either use an API Key or your Apple ID .","title":"Usage"},{"location":"generated/actions/pilot/#uploading-builds","text":"To upload a new build, just run fastlane pilot upload This will automatically look for an ipa in your current directory and tries to fetch the login credentials from your fastlane setup . You'll be asked for any missing information. Additionally, you can pass all kinds of parameters: fastlane action pilot You can pass a changelog using fastlane pilot upload --changelog \"Something that is new here\" You can also skip the submission of the binary, which means, the ipa file will only be uploaded and not distributed to testers: fastlane pilot upload --skip_submission pilot does all kinds of magic for you: Automatically detects the bundle identifier from your ipa file Automatically fetch the AppID of your app based on the bundle identifier pilot uses spaceship to submit the build metadata and the iTunes Transporter to upload the binary. Because iTunes Transporter's upload capability is only supported on OS X, pilot upload does not work on Linux, as described in this issue","title":"Uploading builds"},{"location":"generated/actions/pilot/#list-builds","text":"To list all builds for specific application use fastlane pilot builds The result lists all active builds and processing builds: +-----------+---------+----------+ | Great App Builds | +-----------+---------+----------+ | Version # | Build # | Installs | +-----------+---------+----------+ | 0.9.13 | 1 | 0 | | 0.9.13 | 2 | 0 | | 0.9.20 | 3 | 0 | | 0.9.20 | 4 | 3 | +-----------+---------+----------+","title":"List builds"},{"location":"generated/actions/pilot/#managing-beta-testers","text":"","title":"Managing beta testers"},{"location":"generated/actions/pilot/#tips","text":"","title":"Tips"},{"location":"generated/actions/pilot/#debug-information","text":"If you run into any issues you can use the verbose mode to get a more detailed output: fastlane pilot upload --verbose","title":"Debug information"},{"location":"generated/actions/pilot/#firewall-issues","text":"pilot uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol from the command line using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" pilot ... If you are using pilot via the fastlane action , add the following to your Fastfile ENV[\"DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS\"] = \"-t DAV\" pilot... Note, however, that Apple recommends you don\u2019t specify the -t transport and instead allow Transporter to use automatic transport discovery to determine the best transport mode for your packages. For this reason, if the t option is passed, we will raise a warning. Also note that -t is not the only additional parameter that can be used. The string specified in the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS environment variable will be forwarded to Transporter. For all the available options, check Apple's Transporter User Guide .","title":"Firewall Issues"},{"location":"generated/actions/pilot/#credentials-issues","text":"If your password contains special characters, pilot may throw a confusing error saying your \"Your Apple ID or password was entered incorrectly\". The easiest way to fix this error is to change your password to something that does not contains special characters.","title":"Credentials Issues"},{"location":"generated/actions/pilot/#how-is-my-password-stored","text":"pilot uses the CredentialsManager from fastlane .","title":"How is my password stored?"},{"location":"generated/actions/pilot/#provider-short-name","text":"If you are on multiple App Store Connect teams, iTunes Transporter may need a provider short name to know where to upload your binary. pilot will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option.","title":"Provider Short Name"},{"location":"generated/actions/pilot/#use-an-application-specific-password-to-upload","text":"pilot / upload_to_testflight can use an Application Specific Password via the FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD environment variable to upload a binary if both the skip_waiting_for_build_processing and apple_id options are set. (If any of those are not set, it will use the normal Apple login process that might require 2FA authentication.)","title":"Use an Application Specific Password to upload"},{"location":"generated/actions/pilot/#role-for-app-store-connect-user","text":"pilot / upload_to_testflight updates build information and testers after the build has finished processing. App Store Connect requires the \"App Manager\" or \"Admin\" role for your Apple account to update this information. The \"Developer\" role will allow builds to be uploaded but will not allow updating of build information and testers. pilot Supported platforms ios, mac Author @KrauseFx","title":"Role for App Store Connect User"},{"location":"generated/actions/pilot/#7-examples","text":"upload_to_testflight testflight # alias for \"upload_to_testflight\" pilot # alias for \"upload_to_testflight\" upload_to_testflight(skip_submission: true) # to only upload the build upload_to_testflight( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) upload_to_testflight( beta_app_feedback_email: \"email@email.com\", beta_app_description: \"This is a description of my app\", demo_account_required: true, notify_external_testers: false, changelog: \"This is my changelog of things that have changed in a log\" ) upload_to_testflight( beta_app_review_info: { contact_email: \"email@email.com\", contact_first_name: \"Connect\", contact_last_name: \"API\", contact_phone: \"5558675309\", demo_account_name: \"demo@email.com\", demo_account_password: \"connectapi\", notes: \"this is review note for the reviewer <3 thank you for reviewing\" }, localized_app_info: { \"default\": { feedback_email: \"default@email.com\", marketing_url: \"https://example.com/marketing-defafult\", privacy_policy_url: \"https://example.com/privacy-defafult\", description: \"Default description\", }, \"en-GB\": { feedback_email: \"en-gb@email.com\", marketing_url: \"https://example.com/marketing-en-gb\", privacy_policy_url: \"https://example.com/privacy-en-gb\", description: \"en-gb description\", } }, localized_build_info: { \"default\": { whats_new: \"Default changelog\", }, \"en-GB\": { whats_new: \"en-gb changelog\", } } )","title":"7 Examples"},{"location":"generated/actions/pilot/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of the app to upload or manage testers (optional) * app_platform The platform to use (optional) apple_id Apple ID property in the App Information section in App Store Connect * ipa Path to the ipa file to upload * pkg Path to your pkg file * demo_account_required Do you need a demo account when Apple does review? beta_app_review_info Beta app review information for contact info and demo account localized_app_info Localized beta app test info for description, feedback email, marketing url, and privacy policy beta_app_description Provide the 'Beta App Description' when uploading a new build beta_app_feedback_email Provide the beta app email when uploading a new build localized_build_info Localized beta app test info for what's new changelog Provide the 'What to Test' text when uploading a new build skip_submission Skip the distributing action of pilot and only upload the ipa file false skip_waiting_for_build_processing If set to true, the distribute_external option won't work and no build will be distributed to testers. (You might want to use this option if you are using this action on CI and have to pay for 'minutes used' on your CI plan). If set to true and a changelog is provided, it will partially wait for the build to appear on AppStore Connect so the changelog can be set, and skip the remaining processing steps false update_build_info_on_upload DEPRECATED! Update build info immediately after validation. This is deprecated and will be removed in a future release. App Store Connect no longer supports setting build info until after build processing has completed, which is when build info is updated by default false distribute_only Distribute a previously uploaded build (equivalent to the fastlane pilot distribute command) false uses_non_exempt_encryption Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist false distribute_external Should the build be distributed to external testers? If set to true, use of groups option is required false notify_external_testers Should notify external testers? (Not setting a value will use App Store Connect's default which is to notify) app_version The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed build_number The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed expire_previous_builds Should expire previous builds? false first_name The tester's first name last_name The tester's last name email The tester's email testers_file_path Path to a CSV file of testers ./testers.csv groups Associate tester to one group or more by group name / group id. E.g. -g \"Team 1\",\"Team 2\" This is required when distribute_external option is set to true or when we want to add a tester to one or more external testing groups team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your team in the developer portal, if you're in multiple teams. Different from your iTC team ID! * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column wait_processing_interval Interval in seconds to wait for App Store Connect processing 30 wait_processing_timeout_duration Timeout duration in seconds to wait for App Store Connect processing. If set, after exceeding timeout duration, this will force stop to wait for App Store Connect processing and exit with exception wait_for_uploaded_build DEPRECATED! No longer needed with the transition over to the App Store Connect API - Use version info from uploaded ipa file to determine what build to use for distribution. If set to false, latest processing or any latest build will be used false reject_build_waiting_for_review Expire previous if it's 'waiting for review' false submit_beta_review Send the build for a beta review true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/pilot/#documentation","text":"To show the documentation in your terminal, run fastlane action pilot","title":"Documentation"},{"location":"generated/actions/pilot/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run pilot To pass parameters, make use of the : symbol, for example fastlane run pilot parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/pilot/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/plugin_scores/","text":"plugin_scores \u001b[31mNo description provided\u001b[0m plugin_scores | -----|---- Supported platforms | ios, android, mac Author | @KrauseFx Parameters Key Description Default * = default value is dependent on the user's system To show the documentation in your terminal, run fastlane action plugin_scores View source code Back to actions","title":"Plugin scores"},{"location":"generated/actions/plugin_scores/#plugin_scores","text":"\u001b[31mNo description provided\u001b[0m plugin_scores | -----|---- Supported platforms | ios, android, mac Author | @KrauseFx","title":"plugin_scores"},{"location":"generated/actions/plugin_scores/#parameters","text":"Key Description Default * = default value is dependent on the user's system To show the documentation in your terminal, run fastlane action plugin_scores View source code Back to actions","title":"Parameters"},{"location":"generated/actions/pod_lib_lint/","text":"pod_lib_lint Pod lib lint Test the syntax of your Podfile by linting the pod against the files of its directory pod_lib_lint Supported platforms ios, mac Author @thierryxing 4 Examples pod_lib_lint # Allow output detail in console pod_lib_lint(verbose: true) # Allow warnings during pod lint pod_lib_lint(allow_warnings: true) # If the podspec has a dependency on another private pod, then you will have to supply the sources pod_lib_lint(sources: [\"https://github.com/username/Specs\", \"https://github.com/CocoaPods/Specs\"]) Parameters Key Description Default use_bundle_exec Use bundle exec when there is a Gemfile presented true podspec Path of spec to lint verbose Allow output detail in console allow_warnings Allow warnings during pod lint sources The sources of repos you want the pod spec to lint with, separated by commas subspec A specific subspec to lint instead of the entire spec include_podspecs A Glob of additional ancillary podspecs which are used for linting via :path (available since cocoapods >= 1.7) external_podspecs A Glob of additional ancillary podspecs which are used for linting via :podspec. If there are --include-podspecs, then these are removed from them (available since cocoapods >= 1.7) swift_version The SWIFT_VERSION that should be used to lint the spec. This takes precedence over a .swift-version file use_libraries Lint uses static libraries to install the spec false use_modular_headers Lint using modular libraries (available since cocoapods >= 1.6) false fail_fast Lint stops on the first failing platform or subspec false private Lint skips checks that apply only to public specs false quick Lint skips checks that would require to download and build the spec false no_clean Lint leaves the build directory intact for inspection false no_subspecs Lint skips validation of subspecs false platforms Lint against specific platforms (defaults to all platforms supported by the podspec). Multiple platforms must be comma-delimited (available since cocoapods >= 1.6) skip_import_validation Lint skips validating that the pod can be imported (available since cocoapods >= 1.3) false skip_tests Lint skips building and running tests during validation (available since cocoapods >= 1.3) false analyze Validate with the Xcode Static Analysis tool (available since cocoapods >= 1.6.1) false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action pod_lib_lint CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run pod_lib_lint To pass parameters, make use of the : symbol, for example fastlane run pod_lib_lint parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Pod lib lint"},{"location":"generated/actions/pod_lib_lint/#pod_lib_lint","text":"Pod lib lint Test the syntax of your Podfile by linting the pod against the files of its directory pod_lib_lint Supported platforms ios, mac Author @thierryxing","title":"pod_lib_lint"},{"location":"generated/actions/pod_lib_lint/#4-examples","text":"pod_lib_lint # Allow output detail in console pod_lib_lint(verbose: true) # Allow warnings during pod lint pod_lib_lint(allow_warnings: true) # If the podspec has a dependency on another private pod, then you will have to supply the sources pod_lib_lint(sources: [\"https://github.com/username/Specs\", \"https://github.com/CocoaPods/Specs\"])","title":"4 Examples"},{"location":"generated/actions/pod_lib_lint/#parameters","text":"Key Description Default use_bundle_exec Use bundle exec when there is a Gemfile presented true podspec Path of spec to lint verbose Allow output detail in console allow_warnings Allow warnings during pod lint sources The sources of repos you want the pod spec to lint with, separated by commas subspec A specific subspec to lint instead of the entire spec include_podspecs A Glob of additional ancillary podspecs which are used for linting via :path (available since cocoapods >= 1.7) external_podspecs A Glob of additional ancillary podspecs which are used for linting via :podspec. If there are --include-podspecs, then these are removed from them (available since cocoapods >= 1.7) swift_version The SWIFT_VERSION that should be used to lint the spec. This takes precedence over a .swift-version file use_libraries Lint uses static libraries to install the spec false use_modular_headers Lint using modular libraries (available since cocoapods >= 1.6) false fail_fast Lint stops on the first failing platform or subspec false private Lint skips checks that apply only to public specs false quick Lint skips checks that would require to download and build the spec false no_clean Lint leaves the build directory intact for inspection false no_subspecs Lint skips validation of subspecs false platforms Lint against specific platforms (defaults to all platforms supported by the podspec). Multiple platforms must be comma-delimited (available since cocoapods >= 1.6) skip_import_validation Lint skips validating that the pod can be imported (available since cocoapods >= 1.3) false skip_tests Lint skips building and running tests during validation (available since cocoapods >= 1.3) false analyze Validate with the Xcode Static Analysis tool (available since cocoapods >= 1.6.1) false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/pod_lib_lint/#documentation","text":"To show the documentation in your terminal, run fastlane action pod_lib_lint","title":"Documentation"},{"location":"generated/actions/pod_lib_lint/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run pod_lib_lint To pass parameters, make use of the : symbol, for example fastlane run pod_lib_lint parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/pod_lib_lint/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/pod_push/","text":"pod_push Push a Podspec to Trunk or a private repository pod_push Supported platforms ios, mac Author @squarefrog 4 Examples # If no path is supplied then Trunk will attempt to find the first Podspec in the current directory. pod_push # Alternatively, supply the Podspec file path pod_push(path: \"TSMessages.podspec\") # You may also push to a private repo instead of Trunk pod_push(path: \"TSMessages.podspec\", repo: \"MyRepo\") # If the podspec has a dependency on another private pod, then you will have to supply the sources you want the podspec to lint with for pod_push to succeed. Read more here - https://github.com/CocoaPods/CocoaPods/issues/2543. pod_push(path: \"TMessages.podspec\", repo: \"MyRepo\", sources: [\"https://github.com/username/Specs\", \"https://github.com/CocoaPods/Specs\"]) Parameters Key Description Default use_bundle_exec Use bundle exec when there is a Gemfile presented false path The Podspec you want to push repo The repo you want to push. Pushes to Trunk by default allow_warnings Allow warnings during pod push use_libraries Allow lint to use static libraries to install the spec sources The sources of repos you want the pod spec to lint with, separated by commas swift_version The SWIFT_VERSION that should be used to lint the spec. This takes precedence over a .swift-version file skip_import_validation Lint skips validating that the pod can be imported skip_tests Lint skips building and running tests during validation use_json Convert the podspec to JSON before pushing it to the repo verbose Show more debugging information false use_modular_headers Use modular headers option during validation synchronous If validation depends on other recently pushed pods, synchronize no_overwrite Disallow pushing that would overwrite an existing spec local_only Does not perform the step of pushing REPO to its remote * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action pod_push CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run pod_push To pass parameters, make use of the : symbol, for example fastlane run pod_push parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Pod push"},{"location":"generated/actions/pod_push/#pod_push","text":"Push a Podspec to Trunk or a private repository pod_push Supported platforms ios, mac Author @squarefrog","title":"pod_push"},{"location":"generated/actions/pod_push/#4-examples","text":"# If no path is supplied then Trunk will attempt to find the first Podspec in the current directory. pod_push # Alternatively, supply the Podspec file path pod_push(path: \"TSMessages.podspec\") # You may also push to a private repo instead of Trunk pod_push(path: \"TSMessages.podspec\", repo: \"MyRepo\") # If the podspec has a dependency on another private pod, then you will have to supply the sources you want the podspec to lint with for pod_push to succeed. Read more here - https://github.com/CocoaPods/CocoaPods/issues/2543. pod_push(path: \"TMessages.podspec\", repo: \"MyRepo\", sources: [\"https://github.com/username/Specs\", \"https://github.com/CocoaPods/Specs\"])","title":"4 Examples"},{"location":"generated/actions/pod_push/#parameters","text":"Key Description Default use_bundle_exec Use bundle exec when there is a Gemfile presented false path The Podspec you want to push repo The repo you want to push. Pushes to Trunk by default allow_warnings Allow warnings during pod push use_libraries Allow lint to use static libraries to install the spec sources The sources of repos you want the pod spec to lint with, separated by commas swift_version The SWIFT_VERSION that should be used to lint the spec. This takes precedence over a .swift-version file skip_import_validation Lint skips validating that the pod can be imported skip_tests Lint skips building and running tests during validation use_json Convert the podspec to JSON before pushing it to the repo verbose Show more debugging information false use_modular_headers Use modular headers option during validation synchronous If validation depends on other recently pushed pods, synchronize no_overwrite Disallow pushing that would overwrite an existing spec local_only Does not perform the step of pushing REPO to its remote * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/pod_push/#documentation","text":"To show the documentation in your terminal, run fastlane action pod_push","title":"Documentation"},{"location":"generated/actions/pod_push/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run pod_push To pass parameters, make use of the : symbol, for example fastlane run pod_push parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/pod_push/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/podio_item/","text":"podio_item Creates or updates an item within your Podio app Use this action to create or update an item within your Podio app (see https://help.podio.com/hc/en-us/articles/201019278-Creating-apps- ). Pass in dictionary with field keys and their values. Field key is located under Modify app -> Advanced -> Developer -> External ID (see https://developers.podio.com/examples/items ). podio_item Supported platforms ios, android, mac Author @pprochazka72, @laugejepsen 1 Example podio_item( identifying_value: \"Your unique value\", other_fields: { \"field1\" => \"fieldValue\", \"field2\" => \"fieldValue2\" } ) Parameters Key Description Default client_id Client ID for Podio API (see https://developers.podio.com/api-key) client_secret Client secret for Podio API (see https://developers.podio.com/api-key) app_id App ID of the app you intend to authenticate with (see https://developers.podio.com/authentication/app_auth) app_token App token of the app you intend to authenticate with (see https://developers.podio.com/authentication/app_auth) identifying_field String specifying the field key used for identification of an item identifying_value String uniquely specifying an item within the app other_fields Dictionary of your app fields. Podio supports several field types, see https://developers.podio.com/doc/items * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The podio_item action generates the following Lane Variables: SharedValue Description SharedValues::PODIO_ITEM_URL URL to newly created (or updated) Podio item To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action podio_item CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run podio_item To pass parameters, make use of the : symbol, for example fastlane run podio_item parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Podio item"},{"location":"generated/actions/podio_item/#podio_item","text":"Creates or updates an item within your Podio app Use this action to create or update an item within your Podio app (see https://help.podio.com/hc/en-us/articles/201019278-Creating-apps- ). Pass in dictionary with field keys and their values. Field key is located under Modify app -> Advanced -> Developer -> External ID (see https://developers.podio.com/examples/items ). podio_item Supported platforms ios, android, mac Author @pprochazka72, @laugejepsen","title":"podio_item"},{"location":"generated/actions/podio_item/#1-example","text":"podio_item( identifying_value: \"Your unique value\", other_fields: { \"field1\" => \"fieldValue\", \"field2\" => \"fieldValue2\" } )","title":"1 Example"},{"location":"generated/actions/podio_item/#parameters","text":"Key Description Default client_id Client ID for Podio API (see https://developers.podio.com/api-key) client_secret Client secret for Podio API (see https://developers.podio.com/api-key) app_id App ID of the app you intend to authenticate with (see https://developers.podio.com/authentication/app_auth) app_token App token of the app you intend to authenticate with (see https://developers.podio.com/authentication/app_auth) identifying_field String specifying the field key used for identification of an item identifying_value String uniquely specifying an item within the app other_fields Dictionary of your app fields. Podio supports several field types, see https://developers.podio.com/doc/items * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/podio_item/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The podio_item action generates the following Lane Variables: SharedValue Description SharedValues::PODIO_ITEM_URL URL to newly created (or updated) Podio item To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/podio_item/#documentation","text":"To show the documentation in your terminal, run fastlane action podio_item","title":"Documentation"},{"location":"generated/actions/podio_item/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run podio_item To pass parameters, make use of the : symbol, for example fastlane run podio_item parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/podio_item/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/precheck/","text":"precheck Alias for the check_app_store_metadata action precheck Check your app using a community driven set of App Store review rules to avoid being rejected Apple rejects builds for many avoidable metadata issues like including swear words \ud83d\ude2e, other companies\u2019 trademarks, or even mentioning an iOS bug \ud83d\udc1b. fastlane precheck takes a lot of the guess work out by scanning your app\u2019s details in App Store Connect for avoidable problems. fastlane precheck helps you get your app through app review without rejections so you can ship faster \ud83d\ude80 Features \u2022 Usage \u2022 Example \u2022 How does it work? Features precheck Features \ud83d\udc1b \uf8ff product bug mentions \ud83d\ude45 Swear word checker \ud83e\udd16 Mentioning other platforms \ud83d\ude35 URL reachability checker \ud83d\udcdd Placeholder/test words/mentioning future features \ud83d\udcc5 Copyright date checking \ud83d\ude48 Customizable word list checking \ud83d\udce2 You can decide if you want to warn about potential problems and continue or have fastlane show an error and stop after all scans are done Usage Run fastlane precheck to check the app metadata from App Store Connect fastlane precheck To get a list of available options run fastlane action precheck Example Since you might want to manually trigger precheck but don't want to specify all the parameters every time, you can store your defaults in a so called Precheckfile . Run fastlane precheck init to create a new configuration file. Example: # indicates that your metadata will not be checked by this rule negative_apple_sentiment(level: :skip) # when triggered, this rule will warn you of a potential problem curse_words(level: :warn) # show error and prevent any further commands from running after fastlane precheck finishes unreachable_urls(level: :error) # pass in whatever words you want to check for custom_text(data: [\"chrome\", \"webos\"], level: :warn) Use with fastlane precheck is fully integrated with deliver another fastlane tool. Update your Fastfile to contain the following code: lane :production do # ... # by default deliver will call precheck and warn you of any problems # if you want precheck to halt submitting to app review, you can pass # precheck_default_rule_level: :error deliver(precheck_default_rule_level: :error) # ... end # or if you prefer, you can run precheck alone lane :check_metadata do precheck end How does it work? precheck will access App Store Connect to download your app's metadata. It uses spaceship to communicate with Apple's web services. Want to improve precheck's rules? Please submit an issue on GitHub and provide information about your App Store rejection! Make sure you scrub out any personally identifiable information since this will be public. precheck Supported platforms ios Author @taquitos Returns true if precheck passes, else, false 2 Examples check_app_store_metadata( negative_apple_sentiment: [level: :skip], # Set to skip to not run the `negative_apple_sentiment` rule curse_words: [level: :warn] # Set to warn to only warn on curse word check failures ) precheck # alias for \"check_app_store_metadata\" Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * platform The platform to use (optional) ios default_rule_level The default rule level unless otherwise configured :error include_in_app_purchases Should check in-app purchases? true use_live Should force check live app? false negative_apple_sentiment mentioning \uf8ff in a way that could be considered negative placeholder_text using placeholder text (e.g.:\"lorem ipsum\", \"text here\", etc...) other_platforms mentioning other platforms, like Android or Blackberry future_functionality mentioning features or content that is not currently available in your app test_words using text indicating this release is a test curse_words including words that might be considered objectionable free_stuff_in_iap using text indicating that your IAP is free custom_text mentioning any of the user-specified words passed to custom_text(data: [words]) copyright_date using a copyright date that is any different from this current year, or missing a date unreachable_urls unreachable URLs in app metadata * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action precheck CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run precheck To pass parameters, make use of the : symbol, for example fastlane run precheck parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Precheck"},{"location":"generated/actions/precheck/#precheck","text":"Alias for the check_app_store_metadata action","title":"precheck"},{"location":"generated/actions/precheck/#precheck_1","text":"","title":"precheck"},{"location":"generated/actions/precheck/#features","text":"precheck Features \ud83d\udc1b \uf8ff product bug mentions \ud83d\ude45 Swear word checker \ud83e\udd16 Mentioning other platforms \ud83d\ude35 URL reachability checker \ud83d\udcdd Placeholder/test words/mentioning future features \ud83d\udcc5 Copyright date checking \ud83d\ude48 Customizable word list checking \ud83d\udce2 You can decide if you want to warn about potential problems and continue or have fastlane show an error and stop after all scans are done","title":"Features"},{"location":"generated/actions/precheck/#usage","text":"Run fastlane precheck to check the app metadata from App Store Connect fastlane precheck To get a list of available options run fastlane action precheck","title":"Usage"},{"location":"generated/actions/precheck/#example","text":"Since you might want to manually trigger precheck but don't want to specify all the parameters every time, you can store your defaults in a so called Precheckfile . Run fastlane precheck init to create a new configuration file. Example: # indicates that your metadata will not be checked by this rule negative_apple_sentiment(level: :skip) # when triggered, this rule will warn you of a potential problem curse_words(level: :warn) # show error and prevent any further commands from running after fastlane precheck finishes unreachable_urls(level: :error) # pass in whatever words you want to check for custom_text(data: [\"chrome\", \"webos\"], level: :warn)","title":"Example"},{"location":"generated/actions/precheck/#how-does-it-work","text":"precheck will access App Store Connect to download your app's metadata. It uses spaceship to communicate with Apple's web services.","title":"How does it work?"},{"location":"generated/actions/precheck/#want-to-improve-prechecks-rules","text":"Please submit an issue on GitHub and provide information about your App Store rejection! Make sure you scrub out any personally identifiable information since this will be public. precheck Supported platforms ios Author @taquitos Returns true if precheck passes, else, false","title":"Want to improve precheck's rules?"},{"location":"generated/actions/precheck/#2-examples","text":"check_app_store_metadata( negative_apple_sentiment: [level: :skip], # Set to skip to not run the `negative_apple_sentiment` rule curse_words: [level: :warn] # Set to warn to only warn on curse word check failures ) precheck # alias for \"check_app_store_metadata\"","title":"2 Examples"},{"location":"generated/actions/precheck/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * platform The platform to use (optional) ios default_rule_level The default rule level unless otherwise configured :error include_in_app_purchases Should check in-app purchases? true use_live Should force check live app? false negative_apple_sentiment mentioning \uf8ff in a way that could be considered negative placeholder_text using placeholder text (e.g.:\"lorem ipsum\", \"text here\", etc...) other_platforms mentioning other platforms, like Android or Blackberry future_functionality mentioning features or content that is not currently available in your app test_words using text indicating this release is a test curse_words including words that might be considered objectionable free_stuff_in_iap using text indicating that your IAP is free custom_text mentioning any of the user-specified words passed to custom_text(data: [words]) copyright_date using a copyright date that is any different from this current year, or missing a date unreachable_urls unreachable URLs in app metadata * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/precheck/#documentation","text":"To show the documentation in your terminal, run fastlane action precheck","title":"Documentation"},{"location":"generated/actions/precheck/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run precheck To pass parameters, make use of the : symbol, for example fastlane run precheck parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/precheck/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/println/","text":"println Alias for the puts action println Supported platforms ios, android, mac Author @KrauseFx 1 Example puts \"Hi there\" Parameters Key Description Default message Message to be printed out * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action println CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run println To pass parameters, make use of the : symbol, for example fastlane run println parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Println"},{"location":"generated/actions/println/#println","text":"Alias for the puts action println Supported platforms ios, android, mac Author @KrauseFx","title":"println"},{"location":"generated/actions/println/#1-example","text":"puts \"Hi there\"","title":"1 Example"},{"location":"generated/actions/println/#parameters","text":"Key Description Default message Message to be printed out * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/println/#documentation","text":"To show the documentation in your terminal, run fastlane action println","title":"Documentation"},{"location":"generated/actions/println/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run println To pass parameters, make use of the : symbol, for example fastlane run println parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/println/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/produce/","text":"produce Alias for the create_app_online action Create new iOS apps on App Store Connect and Apple Developer Portal using your command line produce creates new iOS apps on both the Apple Developer Portal and App Store Connect with the minimum required information. Features \u2022 Usage \u2022 How does it work? Features Create new apps on both App Store Connect and the Apple Developer Portal Modify Application Services on the Apple Developer Portal Create App Groups on the Apple Developer Portal Associate apps with App Groups on the Apple Developer Portal Create iCloud Containers on the Apple Developer Portal Associate apps with iCloud Containers on the Apple Developer Portal Create Merchant Identifiers on the Apple Developer Portal Associate apps with Merchant Identifiers on the Apple Developer Portal Support for multiple Apple accounts , storing your credentials securely in the Keychain Usage Creating a new application fastlane produce To get a list of all available parameters: fastlane produce --help Commands: (* default) associate_group Associate with a group, which is created if needed or simply located otherwise associate_merchant Associate with a merchant for use with Apple Pay. Apple Pay will be enabled for this app create * Creates a new app on App Store Connect and the Apple Developer Portal disable_services Disable specific Application Services for a specific app on the Apple Developer Portal enable_services Enable specific Application Services for a specific app on the Apple Developer Portal group Ensure that a specific App Group exists cloud_container Ensure that a specific iCloud Container exists help Display global or [command] help documentation merchant Ensure that a specific Merchant exists Global Options: --verbose -h, --help Display help documentation -v, --version Display version information Options for create: -u, --username STRING Your Apple ID Username (PRODUCE_USERNAME) -a, --app_identifier STRING App Identifier (Bundle ID, e.g. com.krausefx.app) (PRODUCE_APP_IDENTIFIER) -e, --bundle_identifier_suffix STRING App Identifier Suffix (Ignored if App Identifier does not ends with .*) (PRODUCE_APP_IDENTIFIER_SUFFIX) -q, --app_name STRING App Name (PRODUCE_APP_NAME) -z, --app_version STRING Initial version number (e.g. '1.0') (PRODUCE_VERSION) -y, --sku STRING SKU Number (e.g. '1234') (PRODUCE_SKU) -j, --platform STRING The platform to use (optional) (PRODUCE_PLATFORM) -m, --language STRING Primary Language (e.g. 'English', 'German') (PRODUCE_LANGUAGE) -c, --company_name STRING The name of your company. It's used to set company name on App Store Connect team's app pages. Only required if it's the first app you create (PRODUCE_COMPANY_NAME) -i, --skip_itc [VALUE] Skip the creation of the app on App Store Connect (PRODUCE_SKIP_ITC) -d, --skip_devcenter [VALUE] Skip the creation of the app on the Apple Developer Portal (PRODUCE_SKIP_DEVCENTER) -s, --itc_users ARRAY Array of App Store Connect users. If provided, you can limit access to this newly created app for users with the App Manager, Developer, Marketer or Sales roles (ITC_USERS) -b, --team_id STRING The ID of your Developer Portal team if you're in multiple teams (PRODUCE_TEAM_ID) -l, --team_name STRING The name of your Developer Portal team if you're in multiple teams (PRODUCE_TEAM_NAME) -k, --itc_team_id [VALUE] The ID of your App Store Connect team if you're in multiple teams (PRODUCE_ITC_TEAM_ID) -p, --itc_team_name STRING The name of your App Store Connect team if you're in multiple teams (PRODUCE_ITC_TEAM_NAME) Enabling / Disabling Application Services If you want to enable Application Services for an App ID (HomeKit and HealthKit in this example): fastlane produce enable_services --homekit --healthkit If you want to disable Application Services for an App ID (iCloud in this case): fastlane produce disable_services --icloud If you want to create a new App Group: fastlane produce group -g group.krausefx -n \"Example App Group\" If you want to associate an app with an App Group: fastlane produce associate_group -a com.krausefx.app group.krausefx If you want to create a new iCloud Container: fastlane produce cloud_container -g iCloud.com.krausefx.app -n \"Example iCloud Container\" If you want to associate an app with an iCloud Container: fastlane produce associate_cloud_container -a com.krausefx.app iCloud.com.krausefx.app If you want to associate an app with multiple iCloud Containers: fastlane produce associate_cloud_container -a com.krausefx.app iCloud.com.krausefx.app1 iCloud.com.krausefx.app2 Parameters Get a list of all available options using fastlane produce enable_services --help --access-wifi Enable Access Wifi --app-attest Enable App Attest --app-group Enable App Group --apple-pay Enable Apple Pay --associated-domains Enable Associated Domains --auto-fill-credential Enable Auto Fill Credential --class-kit Enable Class Kit --icloud STRING Enable iCloud, suitable values are \"xcode5_compatible\" and \"xcode6_compatible\" --custom-network-protocol Enable Custom Network Protocol --data-protection STRING Enable Data Protection, suitable values are \"complete\", \"unlessopen\" and \"untilfirstauth\" --extended-virtual-address-space Enable Extended Virtual Address Space --game-center STRING Enable Game Center, suitable values are \"ios\" and \"macos --health-kit Enable Health Kit --hls-interstitial-preview Enable Hls Interstitial Preview --home-kit Enable Home Kit --hotspot Enable Hotspot --in-app-purchase Enable In App Purchase --inter-app-audio Enable Inter App Audio --low-latency-hls Enable Low Latency Hls --managed-associated-domains Enable Managed Associated Domains --maps Enable Maps --multipath Enable Multipath --network-extension Enable Network Extension --nfc-tag-reading Enable NFC Tag Reading --personal-vpn Enable Personal VPN --passbook Enable Passbook (deprecated) --push-notification Enable Push Notification --sign-in-with-apple Enable Sign In With Apple --siri-kit Enable Siri Kit --system-extension Enable System Extension --user-management Enable User Management --vpn-configuration Enable Vpn Configuration (deprecated) --wallet Enable Wallet --wireless-accessory Enable Wireless Accessory --car-play-audio-app Enable Car Play Audio App --car-play-messaging-app Enable Car Play Messaging App --car-play-navigation-app Enable Car Play Navigation App --car-play-voip-calling-app Enable Car Play Voip Calling App --critical-alerts Enable Critical Alerts --hotspot-helper Enable Hotspot Helper --driver-kit Enable DriverKit --driver-kit-endpoint-security Enable DriverKit Endpoint Security --driver-kit-family-hid-device Enable DriverKit Family HID Device --driver-kit-family-networking Enable DriverKit Family Networking --driver-kit-family-serial Enable DriverKit Family Serial --driver-kit-hid-event-service Enable DriverKit HID EventService --driver-kit-transport-hid Enable DriverKit Transport HID --multitasking-camera-access Enable Multitasking Camera Access --sf-universal-link-api Enable SFUniversalLink API --vp9-decoder Enable VP9 Decoder --music-kit Enable MusicKit --shazam-kit Enable ShazamKit --communication-notifications Enable Communication Notifications --group-activities Enable Group Activities --health-kit-estimate-recalibration Enable HealthKit Estimate Recalibration --time-sensitive-notifications Enable Time Sensitive Notifications fastlane produce disable_services --help --access-wifi Disable Access Wifi --app-attest Disable App Attest --app-group Disable App Group --apple-pay Disable Apple Pay --associated-domains Disable Associated Domains --auto-fill-credential Disable Auto Fill Credential --class-kit Disable Class Kit --icloud STRING Disable iCloud --custom-network-protocol Disable Custom Network Protocol --data-protection STRING Disable Data Protection --extended-virtual-address-space Disable Extended Virtual Address Space --game-center STRING Disable Game Center --health-kit Disable Health Kit --hls-interstitial-preview Disable Hls Interstitial Preview --home-kit Disable Home Kit --hotspot Disable Hotspot --in-app-purchase Disable In App Purchase --inter-app-audio Disable Inter App Audio --low-latency-hls Disable Low Latency Hls --managed-associated-domains Disable Managed Associated Domains --maps Disable Maps --multipath Disable Multipath --network-extension Disable Network Extension --nfc-tag-reading Disable NFC Tag Reading --personal-vpn Disable Personal VPN --passbook Disable Passbook (deprecated) --push-notification Disable Push Notification --sign-in-with-apple Disable Sign In With Apple --siri-kit Disable Siri Kit --system-extension Disable System Extension --user-management Disable User Management --vpn-configuration Disable Vpn Configuration (deprecated) --wallet Disable Wallet --wireless-accessory Disable Wireless Accessory --car-play-audio-app Disable Car Play Audio App --car-play-messaging-app Disable Car Play Messaging App --car-play-navigation-app Disable Car Play Navigation App --car-play-voip-calling-app Disable Car Play Voip Calling App --critical-alerts Disable Critical Alerts --hotspot-helper Disable Hotspot Helper --driver-kit Disable DriverKit --driver-kit-endpoint-security Disable DriverKit Endpoint Security --driver-kit-family-hid-device Disable DriverKit Family HID Device --driver-kit-family-networking Disable DriverKit Family Networking --driver-kit-family-serial Disable DriverKit Family Serial --driver-kit-hid-event-service Disable DriverKit HID EventService --driver-kit-transport-hid Disable DriverKit Transport HID --multitasking-camera-access Disable Multitasking Camera Access --sf-universal-link-api Disable SFUniversalLink API --vp9-decoder Disable VP9 Decoder --music-kit Disable MusicKit --shazam-kit Disable ShazamKit --communication-notifications Disable Communication Notifications --group-activities Disable Group Activities --health-kit-estimate-recalibration Disable HealthKit Estimate Recalibration --time-sensitive-notifications Disable Time Sensitive Notifications Creating Apple Pay merchants and associating them with an App ID If you want to create a new Apple Pay Merchant Identifier: fastlane produce merchant -o merchant.com.example.production -r \"Example Merchant Production\" Use --help for more information about all available parameters fastlane produce merchant --help If you want to associate an app with a Merchant Identifier: fastlane produce associate_merchant -a com.krausefx.app merchant.com.example.production If you want to associate an app with multiple Merchant Identifiers: fastlane produce associate_merchant -a com.krausefx.app merchant.com.example.production merchant.com.example.sandbox Use --help for more information about all available parameters fastlane produce associate_merchant --help Environment Variables All available values can also be passed using environment variables, run fastlane produce --help to get a list of all available parameters. fastlane Integration Your Fastfile should look like this lane :release do produce( username: 'felix@krausefx.com', app_identifier: 'com.krausefx.app', app_name: 'MyApp', language: 'English', app_version: '1.0', sku: '123', team_name: 'SunApps GmbH', # only necessary when in multiple teams # Optional # App services can be enabled during app creation enable_services: { access_wifi: \"on\", # Valid values: \"on\", \"off\" app_attest: \"on\", # Valid values: \"on\", \"off\" app_group: \"on\", # Valid values: \"on\", \"off\" apple_pay: \"on\", # Valid values: \"on\", \"off\" associated_domains: \"on\", # Valid values: \"on\", \"off\" auto_fill_credential: \"on\", # Valid values: \"on\", \"off\" car_play_audio_app: \"on\", # Valid values: \"on\", \"off\" car_play_messaging_app: \"on\", # Valid values: \"on\", \"off\" car_play_navigation_app: \"on\", # Valid values: \"on\", \"off\" car_play_voip_calling_app: \"on\", # Valid values: \"on\", \"off\" class_kit: \"on\", # Valid values: \"on\", \"off\" icloud: \"xcode5_compatible\", # Valid values: \"xcode5_compatible\", \"xcode6_compatible\", \"off\" critical_alerts: \"on\", # Valid values: \"on\", \"off\" custom_network_protocol: \"on\", # Valid values: \"on\", \"off\" data_protection: \"complete\", # Valid values: \"complete\", \"unlessopen\", \"untilfirstauth\", \"off\" extended_virtual_address_space: \"on\", # Valid values: \"on\", \"off\" file_provider_testing_mode: \"on\", # Valid values: \"on\", \"off\" fonts: \"on\", # Valid values: \"on\", \"off\" game_center: \"ios\", # Valid values: \"ios\", \"macos\", off\" health_kit: \"on\", # Valid values: \"on\", \"off\" hls_interstitial_preview: \"on\", # Valid values: \"on\", \"off\" home_kit: \"on\", # Valid values: \"on\", \"off\" hotspot: \"on\", # Valid values: \"on\", \"off\" hotspot_helper: \"on\", # Valid values: \"on\", \"off\" in_app_purchase: \"on\", # Valid values: \"on\", \"off\" inter_app_audio: \"on\", # Valid values: \"on\", \"off\" low_latency_hls: \"on\", # Valid values: \"on\", \"off\" managed_associated_domains: \"on\", # Valid values: \"on\", \"off\" maps: \"on\", # Valid values: \"on\", \"off\" multipath: \"on\", # Valid values: \"on\", \"off\" network_extension: \"on\", # Valid values: \"on\", \"off\" nfc_tag_reading: \"on\", # Valid values: \"on\", \"off\" passbook: \"on\", # Valid values: \"on\", \"off\" (deprecated) personal_vpn: \"on\", # Valid values: \"on\", \"off\" push_notification: \"on\", # Valid values: \"on\", \"off\" sign_in_with_apple: \"on\", # Valid values: \"on\", \"off\" siri_kit: \"on\", # Valid values: \"on\", \"off\" system_extension: \"on\", # Valid values: \"on\", \"off\" user_management: \"on\", # Valid values: \"on\", \"off\" vpn_configuration: \"on\", # Valid values: \"on\", \"off\" (deprecated) wallet: \"on\", # Valid values: \"on\", \"off\" wireless_accessory: \"on\", # Valid values: \"on\", \"off\" driver_kit: \"on\", # Valid values: \"on\", \"off\" driver_kit_endpoint_security: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_hid_device: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_networking: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_serial: \"on\", # Valid values: \"on\", \"off\" driver_kit_hid_event_service: \"on\", # Valid values: \"on\", \"off\" driver_kit_transport_hid: \"on\", # Valid values: \"on\", \"off\" multitasking_camera_access: \"on\", # Valid values: \"on\", \"off\" sf_universal_link_api: \"on\", # Valid values: \"on\", \"off\" vp9_decoder: \"on\", # Valid values: \"on\", \"off\" music_kit: \"on\", # Valid values: \"on\", \"off\" shazam_kit: \"on\", # Valid values: \"on\", \"off\" communication_notifications: \"on\", # Valid values: \"on\", \"off\" group_activities: \"on\", # Valid values: \"on\", \"off\" health_kit_estimate_recalibration: \"on\", # Valid values: \"on\", \"off\" time_sensitive_notifications: \"on\", # Valid values: \"on\", \"off\" } ) deliver end To use the newly generated app in deliver , you need to add this line to your Deliverfile : apple_id(ENV['PRODUCE_APPLE_ID']) This will tell deliver , which App ID to use, since the app is not yet available in the App Store. You'll still have to fill out the remaining information (like screenshots, app description and pricing). You can use deliver to upload your app metadata using a CLI How is my password stored? produce uses the password manager from fastlane . Take a look the CredentialsManager README for more information. produce Supported platforms ios Author @KrauseFx 2 Examples create_app_online( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", app_name: \"MyApp\", language: \"English\", app_version: \"1.0\", sku: \"123\", team_name: \"SunApps GmbH\" # Only necessary when in multiple teams. ) produce # alias for \"create_app_online\" Parameters Key Description Default username Your Apple ID Username * app_identifier App Identifier (Bundle ID, e.g. com.krausefx.app) * bundle_identifier_suffix App Identifier Suffix (Ignored if App Identifier does not end with .*) app_name App Name app_version Initial version number (e.g. '1.0') sku SKU Number (e.g. '1234') * platform The platform to use (optional) ios platforms The platforms to use (optional) language Primary Language (e.g. 'en-US', 'fr-FR') English company_name The name of your company. It's used to set company name on App Store Connect team's app pages. Only required if it's the first app you create skip_itc Skip the creation of the app on App Store Connect false itc_users Array of App Store Connect users. If provided, you can limit access to this newly created app for users with the App Manager, Developer, Marketer or Sales roles enabled_features DEPRECATED! Please use enable_services instead - Array with Spaceship App Services {} enable_services Array with Spaceship App Services (e.g. access_wifi: (on|off), app_attest: (on|off), app_group: (on|off), apple_pay: (on|off), associated_domains: (on|off), auto_fill_credential: (on|off), class_kit: (on|off), icloud: (legacy|cloudkit), custom_network_protocol: (on|off), data_protection: (complete|unlessopen|untilfirstauth), extended_virtual_address_space: (on|off), family_controls: (on|off), file_provider_testing_mode: (on|off), fonts: (on|off), game_center: (ios|mac), health_kit: (on|off), hls_interstitial_preview: (on|off), home_kit: (on|off), hotspot: (on|off), in_app_purchase: (on|off), inter_app_audio: (on|off), low_latency_hls: (on|off), managed_associated_domains: (on|off), maps: (on|off), multipath: (on|off), network_extension: (on|off), nfc_tag_reading: (on|off), personal_vpn: (on|off), passbook: (on|off), push_notification: (on|off), sign_in_with_apple: (on), siri_kit: (on|off), system_extension: (on|off), user_management: (on|off), vpn_configuration: (on|off), wallet: (on|off), wireless_accessory: (on|off), car_play_audio_app: (on|off), car_play_messaging_app: (on|off), car_play_navigation_app: (on|off), car_play_voip_calling_app: (on|off), critical_alerts: (on|off), hotspot_helper: (on|off), driver_kit: (on|off), driver_kit_endpoint_security: (on|off), driver_kit_family_hid_device: (on|off), driver_kit_family_networking: (on|off), driver_kit_family_serial: (on|off), driver_kit_hid_event_service: (on|off), driver_kit_transport_hid: (on|off), multitasking_camera_access: (on|off), sf_universal_link_api: (on|off), vp9_decoder: (on|off), music_kit: (on|off), shazam_kit: (on|off), communication_notifications: (on|off), group_activities: (on|off), health_kit_estimate_recalibration: (on|off), time_sensitive_notifications: (on|off)) {} skip_devcenter Skip the creation of the app on the Apple Developer Portal false team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * itc_team_id The ID of your App Store Connect team if you're in multiple teams * itc_team_name The name of your App Store Connect team if you're in multiple teams * * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The produce action generates the following Lane Variables: SharedValue Description SharedValues::PRODUCE_APPLE_ID The Apple ID of the newly created app. You probably need it for deliver To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action produce CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run produce To pass parameters, make use of the : symbol, for example fastlane run produce parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Produce"},{"location":"generated/actions/produce/#produce","text":"Alias for the create_app_online action","title":"produce"},{"location":"generated/actions/produce/#features","text":"Create new apps on both App Store Connect and the Apple Developer Portal Modify Application Services on the Apple Developer Portal Create App Groups on the Apple Developer Portal Associate apps with App Groups on the Apple Developer Portal Create iCloud Containers on the Apple Developer Portal Associate apps with iCloud Containers on the Apple Developer Portal Create Merchant Identifiers on the Apple Developer Portal Associate apps with Merchant Identifiers on the Apple Developer Portal Support for multiple Apple accounts , storing your credentials securely in the Keychain","title":"Features"},{"location":"generated/actions/produce/#usage","text":"","title":"Usage"},{"location":"generated/actions/produce/#creating-a-new-application","text":"fastlane produce To get a list of all available parameters: fastlane produce --help Commands: (* default) associate_group Associate with a group, which is created if needed or simply located otherwise associate_merchant Associate with a merchant for use with Apple Pay. Apple Pay will be enabled for this app create * Creates a new app on App Store Connect and the Apple Developer Portal disable_services Disable specific Application Services for a specific app on the Apple Developer Portal enable_services Enable specific Application Services for a specific app on the Apple Developer Portal group Ensure that a specific App Group exists cloud_container Ensure that a specific iCloud Container exists help Display global or [command] help documentation merchant Ensure that a specific Merchant exists Global Options: --verbose -h, --help Display help documentation -v, --version Display version information Options for create: -u, --username STRING Your Apple ID Username (PRODUCE_USERNAME) -a, --app_identifier STRING App Identifier (Bundle ID, e.g. com.krausefx.app) (PRODUCE_APP_IDENTIFIER) -e, --bundle_identifier_suffix STRING App Identifier Suffix (Ignored if App Identifier does not ends with .*) (PRODUCE_APP_IDENTIFIER_SUFFIX) -q, --app_name STRING App Name (PRODUCE_APP_NAME) -z, --app_version STRING Initial version number (e.g. '1.0') (PRODUCE_VERSION) -y, --sku STRING SKU Number (e.g. '1234') (PRODUCE_SKU) -j, --platform STRING The platform to use (optional) (PRODUCE_PLATFORM) -m, --language STRING Primary Language (e.g. 'English', 'German') (PRODUCE_LANGUAGE) -c, --company_name STRING The name of your company. It's used to set company name on App Store Connect team's app pages. Only required if it's the first app you create (PRODUCE_COMPANY_NAME) -i, --skip_itc [VALUE] Skip the creation of the app on App Store Connect (PRODUCE_SKIP_ITC) -d, --skip_devcenter [VALUE] Skip the creation of the app on the Apple Developer Portal (PRODUCE_SKIP_DEVCENTER) -s, --itc_users ARRAY Array of App Store Connect users. If provided, you can limit access to this newly created app for users with the App Manager, Developer, Marketer or Sales roles (ITC_USERS) -b, --team_id STRING The ID of your Developer Portal team if you're in multiple teams (PRODUCE_TEAM_ID) -l, --team_name STRING The name of your Developer Portal team if you're in multiple teams (PRODUCE_TEAM_NAME) -k, --itc_team_id [VALUE] The ID of your App Store Connect team if you're in multiple teams (PRODUCE_ITC_TEAM_ID) -p, --itc_team_name STRING The name of your App Store Connect team if you're in multiple teams (PRODUCE_ITC_TEAM_NAME)","title":"Creating a new application"},{"location":"generated/actions/produce/#enabling-disabling-application-services","text":"If you want to enable Application Services for an App ID (HomeKit and HealthKit in this example): fastlane produce enable_services --homekit --healthkit If you want to disable Application Services for an App ID (iCloud in this case): fastlane produce disable_services --icloud If you want to create a new App Group: fastlane produce group -g group.krausefx -n \"Example App Group\" If you want to associate an app with an App Group: fastlane produce associate_group -a com.krausefx.app group.krausefx If you want to create a new iCloud Container: fastlane produce cloud_container -g iCloud.com.krausefx.app -n \"Example iCloud Container\" If you want to associate an app with an iCloud Container: fastlane produce associate_cloud_container -a com.krausefx.app iCloud.com.krausefx.app If you want to associate an app with multiple iCloud Containers: fastlane produce associate_cloud_container -a com.krausefx.app iCloud.com.krausefx.app1 iCloud.com.krausefx.app2","title":"Enabling / Disabling Application Services"},{"location":"generated/actions/produce/#parameters","text":"Get a list of all available options using fastlane produce enable_services --help --access-wifi Enable Access Wifi --app-attest Enable App Attest --app-group Enable App Group --apple-pay Enable Apple Pay --associated-domains Enable Associated Domains --auto-fill-credential Enable Auto Fill Credential --class-kit Enable Class Kit --icloud STRING Enable iCloud, suitable values are \"xcode5_compatible\" and \"xcode6_compatible\" --custom-network-protocol Enable Custom Network Protocol --data-protection STRING Enable Data Protection, suitable values are \"complete\", \"unlessopen\" and \"untilfirstauth\" --extended-virtual-address-space Enable Extended Virtual Address Space --game-center STRING Enable Game Center, suitable values are \"ios\" and \"macos --health-kit Enable Health Kit --hls-interstitial-preview Enable Hls Interstitial Preview --home-kit Enable Home Kit --hotspot Enable Hotspot --in-app-purchase Enable In App Purchase --inter-app-audio Enable Inter App Audio --low-latency-hls Enable Low Latency Hls --managed-associated-domains Enable Managed Associated Domains --maps Enable Maps --multipath Enable Multipath --network-extension Enable Network Extension --nfc-tag-reading Enable NFC Tag Reading --personal-vpn Enable Personal VPN --passbook Enable Passbook (deprecated) --push-notification Enable Push Notification --sign-in-with-apple Enable Sign In With Apple --siri-kit Enable Siri Kit --system-extension Enable System Extension --user-management Enable User Management --vpn-configuration Enable Vpn Configuration (deprecated) --wallet Enable Wallet --wireless-accessory Enable Wireless Accessory --car-play-audio-app Enable Car Play Audio App --car-play-messaging-app Enable Car Play Messaging App --car-play-navigation-app Enable Car Play Navigation App --car-play-voip-calling-app Enable Car Play Voip Calling App --critical-alerts Enable Critical Alerts --hotspot-helper Enable Hotspot Helper --driver-kit Enable DriverKit --driver-kit-endpoint-security Enable DriverKit Endpoint Security --driver-kit-family-hid-device Enable DriverKit Family HID Device --driver-kit-family-networking Enable DriverKit Family Networking --driver-kit-family-serial Enable DriverKit Family Serial --driver-kit-hid-event-service Enable DriverKit HID EventService --driver-kit-transport-hid Enable DriverKit Transport HID --multitasking-camera-access Enable Multitasking Camera Access --sf-universal-link-api Enable SFUniversalLink API --vp9-decoder Enable VP9 Decoder --music-kit Enable MusicKit --shazam-kit Enable ShazamKit --communication-notifications Enable Communication Notifications --group-activities Enable Group Activities --health-kit-estimate-recalibration Enable HealthKit Estimate Recalibration --time-sensitive-notifications Enable Time Sensitive Notifications fastlane produce disable_services --help --access-wifi Disable Access Wifi --app-attest Disable App Attest --app-group Disable App Group --apple-pay Disable Apple Pay --associated-domains Disable Associated Domains --auto-fill-credential Disable Auto Fill Credential --class-kit Disable Class Kit --icloud STRING Disable iCloud --custom-network-protocol Disable Custom Network Protocol --data-protection STRING Disable Data Protection --extended-virtual-address-space Disable Extended Virtual Address Space --game-center STRING Disable Game Center --health-kit Disable Health Kit --hls-interstitial-preview Disable Hls Interstitial Preview --home-kit Disable Home Kit --hotspot Disable Hotspot --in-app-purchase Disable In App Purchase --inter-app-audio Disable Inter App Audio --low-latency-hls Disable Low Latency Hls --managed-associated-domains Disable Managed Associated Domains --maps Disable Maps --multipath Disable Multipath --network-extension Disable Network Extension --nfc-tag-reading Disable NFC Tag Reading --personal-vpn Disable Personal VPN --passbook Disable Passbook (deprecated) --push-notification Disable Push Notification --sign-in-with-apple Disable Sign In With Apple --siri-kit Disable Siri Kit --system-extension Disable System Extension --user-management Disable User Management --vpn-configuration Disable Vpn Configuration (deprecated) --wallet Disable Wallet --wireless-accessory Disable Wireless Accessory --car-play-audio-app Disable Car Play Audio App --car-play-messaging-app Disable Car Play Messaging App --car-play-navigation-app Disable Car Play Navigation App --car-play-voip-calling-app Disable Car Play Voip Calling App --critical-alerts Disable Critical Alerts --hotspot-helper Disable Hotspot Helper --driver-kit Disable DriverKit --driver-kit-endpoint-security Disable DriverKit Endpoint Security --driver-kit-family-hid-device Disable DriverKit Family HID Device --driver-kit-family-networking Disable DriverKit Family Networking --driver-kit-family-serial Disable DriverKit Family Serial --driver-kit-hid-event-service Disable DriverKit HID EventService --driver-kit-transport-hid Disable DriverKit Transport HID --multitasking-camera-access Disable Multitasking Camera Access --sf-universal-link-api Disable SFUniversalLink API --vp9-decoder Disable VP9 Decoder --music-kit Disable MusicKit --shazam-kit Disable ShazamKit --communication-notifications Disable Communication Notifications --group-activities Disable Group Activities --health-kit-estimate-recalibration Disable HealthKit Estimate Recalibration --time-sensitive-notifications Disable Time Sensitive Notifications","title":"Parameters"},{"location":"generated/actions/produce/#creating-apple-pay-merchants-and-associating-them-with-an-app-id","text":"If you want to create a new Apple Pay Merchant Identifier: fastlane produce merchant -o merchant.com.example.production -r \"Example Merchant Production\" Use --help for more information about all available parameters fastlane produce merchant --help If you want to associate an app with a Merchant Identifier: fastlane produce associate_merchant -a com.krausefx.app merchant.com.example.production If you want to associate an app with multiple Merchant Identifiers: fastlane produce associate_merchant -a com.krausefx.app merchant.com.example.production merchant.com.example.sandbox Use --help for more information about all available parameters fastlane produce associate_merchant --help","title":"Creating Apple Pay merchants and associating them with an App ID"},{"location":"generated/actions/produce/#environment-variables","text":"All available values can also be passed using environment variables, run fastlane produce --help to get a list of all available parameters.","title":"Environment Variables"},{"location":"generated/actions/produce/#fastlane-integration","text":"Your Fastfile should look like this lane :release do produce( username: 'felix@krausefx.com', app_identifier: 'com.krausefx.app', app_name: 'MyApp', language: 'English', app_version: '1.0', sku: '123', team_name: 'SunApps GmbH', # only necessary when in multiple teams # Optional # App services can be enabled during app creation enable_services: { access_wifi: \"on\", # Valid values: \"on\", \"off\" app_attest: \"on\", # Valid values: \"on\", \"off\" app_group: \"on\", # Valid values: \"on\", \"off\" apple_pay: \"on\", # Valid values: \"on\", \"off\" associated_domains: \"on\", # Valid values: \"on\", \"off\" auto_fill_credential: \"on\", # Valid values: \"on\", \"off\" car_play_audio_app: \"on\", # Valid values: \"on\", \"off\" car_play_messaging_app: \"on\", # Valid values: \"on\", \"off\" car_play_navigation_app: \"on\", # Valid values: \"on\", \"off\" car_play_voip_calling_app: \"on\", # Valid values: \"on\", \"off\" class_kit: \"on\", # Valid values: \"on\", \"off\" icloud: \"xcode5_compatible\", # Valid values: \"xcode5_compatible\", \"xcode6_compatible\", \"off\" critical_alerts: \"on\", # Valid values: \"on\", \"off\" custom_network_protocol: \"on\", # Valid values: \"on\", \"off\" data_protection: \"complete\", # Valid values: \"complete\", \"unlessopen\", \"untilfirstauth\", \"off\" extended_virtual_address_space: \"on\", # Valid values: \"on\", \"off\" file_provider_testing_mode: \"on\", # Valid values: \"on\", \"off\" fonts: \"on\", # Valid values: \"on\", \"off\" game_center: \"ios\", # Valid values: \"ios\", \"macos\", off\" health_kit: \"on\", # Valid values: \"on\", \"off\" hls_interstitial_preview: \"on\", # Valid values: \"on\", \"off\" home_kit: \"on\", # Valid values: \"on\", \"off\" hotspot: \"on\", # Valid values: \"on\", \"off\" hotspot_helper: \"on\", # Valid values: \"on\", \"off\" in_app_purchase: \"on\", # Valid values: \"on\", \"off\" inter_app_audio: \"on\", # Valid values: \"on\", \"off\" low_latency_hls: \"on\", # Valid values: \"on\", \"off\" managed_associated_domains: \"on\", # Valid values: \"on\", \"off\" maps: \"on\", # Valid values: \"on\", \"off\" multipath: \"on\", # Valid values: \"on\", \"off\" network_extension: \"on\", # Valid values: \"on\", \"off\" nfc_tag_reading: \"on\", # Valid values: \"on\", \"off\" passbook: \"on\", # Valid values: \"on\", \"off\" (deprecated) personal_vpn: \"on\", # Valid values: \"on\", \"off\" push_notification: \"on\", # Valid values: \"on\", \"off\" sign_in_with_apple: \"on\", # Valid values: \"on\", \"off\" siri_kit: \"on\", # Valid values: \"on\", \"off\" system_extension: \"on\", # Valid values: \"on\", \"off\" user_management: \"on\", # Valid values: \"on\", \"off\" vpn_configuration: \"on\", # Valid values: \"on\", \"off\" (deprecated) wallet: \"on\", # Valid values: \"on\", \"off\" wireless_accessory: \"on\", # Valid values: \"on\", \"off\" driver_kit: \"on\", # Valid values: \"on\", \"off\" driver_kit_endpoint_security: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_hid_device: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_networking: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_serial: \"on\", # Valid values: \"on\", \"off\" driver_kit_hid_event_service: \"on\", # Valid values: \"on\", \"off\" driver_kit_transport_hid: \"on\", # Valid values: \"on\", \"off\" multitasking_camera_access: \"on\", # Valid values: \"on\", \"off\" sf_universal_link_api: \"on\", # Valid values: \"on\", \"off\" vp9_decoder: \"on\", # Valid values: \"on\", \"off\" music_kit: \"on\", # Valid values: \"on\", \"off\" shazam_kit: \"on\", # Valid values: \"on\", \"off\" communication_notifications: \"on\", # Valid values: \"on\", \"off\" group_activities: \"on\", # Valid values: \"on\", \"off\" health_kit_estimate_recalibration: \"on\", # Valid values: \"on\", \"off\" time_sensitive_notifications: \"on\", # Valid values: \"on\", \"off\" } ) deliver end To use the newly generated app in deliver , you need to add this line to your Deliverfile : apple_id(ENV['PRODUCE_APPLE_ID']) This will tell deliver , which App ID to use, since the app is not yet available in the App Store. You'll still have to fill out the remaining information (like screenshots, app description and pricing). You can use deliver to upload your app metadata using a CLI","title":"fastlane Integration"},{"location":"generated/actions/produce/#how-is-my-password-stored","text":"produce uses the password manager from fastlane . Take a look the CredentialsManager README for more information. produce Supported platforms ios Author @KrauseFx","title":"How is my password stored?"},{"location":"generated/actions/produce/#2-examples","text":"create_app_online( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", app_name: \"MyApp\", language: \"English\", app_version: \"1.0\", sku: \"123\", team_name: \"SunApps GmbH\" # Only necessary when in multiple teams. ) produce # alias for \"create_app_online\"","title":"2 Examples"},{"location":"generated/actions/produce/#parameters_1","text":"Key Description Default username Your Apple ID Username * app_identifier App Identifier (Bundle ID, e.g. com.krausefx.app) * bundle_identifier_suffix App Identifier Suffix (Ignored if App Identifier does not end with .*) app_name App Name app_version Initial version number (e.g. '1.0') sku SKU Number (e.g. '1234') * platform The platform to use (optional) ios platforms The platforms to use (optional) language Primary Language (e.g. 'en-US', 'fr-FR') English company_name The name of your company. It's used to set company name on App Store Connect team's app pages. Only required if it's the first app you create skip_itc Skip the creation of the app on App Store Connect false itc_users Array of App Store Connect users. If provided, you can limit access to this newly created app for users with the App Manager, Developer, Marketer or Sales roles enabled_features DEPRECATED! Please use enable_services instead - Array with Spaceship App Services {} enable_services Array with Spaceship App Services (e.g. access_wifi: (on|off), app_attest: (on|off), app_group: (on|off), apple_pay: (on|off), associated_domains: (on|off), auto_fill_credential: (on|off), class_kit: (on|off), icloud: (legacy|cloudkit), custom_network_protocol: (on|off), data_protection: (complete|unlessopen|untilfirstauth), extended_virtual_address_space: (on|off), family_controls: (on|off), file_provider_testing_mode: (on|off), fonts: (on|off), game_center: (ios|mac), health_kit: (on|off), hls_interstitial_preview: (on|off), home_kit: (on|off), hotspot: (on|off), in_app_purchase: (on|off), inter_app_audio: (on|off), low_latency_hls: (on|off), managed_associated_domains: (on|off), maps: (on|off), multipath: (on|off), network_extension: (on|off), nfc_tag_reading: (on|off), personal_vpn: (on|off), passbook: (on|off), push_notification: (on|off), sign_in_with_apple: (on), siri_kit: (on|off), system_extension: (on|off), user_management: (on|off), vpn_configuration: (on|off), wallet: (on|off), wireless_accessory: (on|off), car_play_audio_app: (on|off), car_play_messaging_app: (on|off), car_play_navigation_app: (on|off), car_play_voip_calling_app: (on|off), critical_alerts: (on|off), hotspot_helper: (on|off), driver_kit: (on|off), driver_kit_endpoint_security: (on|off), driver_kit_family_hid_device: (on|off), driver_kit_family_networking: (on|off), driver_kit_family_serial: (on|off), driver_kit_hid_event_service: (on|off), driver_kit_transport_hid: (on|off), multitasking_camera_access: (on|off), sf_universal_link_api: (on|off), vp9_decoder: (on|off), music_kit: (on|off), shazam_kit: (on|off), communication_notifications: (on|off), group_activities: (on|off), health_kit_estimate_recalibration: (on|off), time_sensitive_notifications: (on|off)) {} skip_devcenter Skip the creation of the app on the Apple Developer Portal false team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * itc_team_id The ID of your App Store Connect team if you're in multiple teams * itc_team_name The name of your App Store Connect team if you're in multiple teams * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/produce/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The produce action generates the following Lane Variables: SharedValue Description SharedValues::PRODUCE_APPLE_ID The Apple ID of the newly created app. You probably need it for deliver To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/produce/#documentation","text":"To show the documentation in your terminal, run fastlane action produce","title":"Documentation"},{"location":"generated/actions/produce/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run produce To pass parameters, make use of the : symbol, for example fastlane run produce parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/produce/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/prompt/","text":"prompt Ask the user for a value or for confirmation You can use prompt to ask the user for a value or to just let the user confirm the next step. When this is executed on a CI service, the passed ci_input value will be returned. This action also supports multi-line inputs using the multi_line_end_keyword option. prompt Supported platforms ios, android, mac Author @KrauseFx 2 Examples changelog = prompt(text: \"Changelog: \") changelog = prompt( text: \"Changelog: \", multi_line_end_keyword: \"END\" ) pilot(changelog: changelog) Parameters Key Description Default text The text that will be displayed to the user Please enter some text: ci_input The default text that will be used when being executed on a CI service '' boolean Is that a boolean question (yes/no)? This will add (y/n) at the end false secure_text Is that a secure text (yes/no)? false multi_line_end_keyword Enable multi-line inputs by providing an end text (e.g. 'END') which will stop the user input * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action prompt CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run prompt To pass parameters, make use of the : symbol, for example fastlane run prompt parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Prompt"},{"location":"generated/actions/prompt/#prompt","text":"Ask the user for a value or for confirmation You can use prompt to ask the user for a value or to just let the user confirm the next step. When this is executed on a CI service, the passed ci_input value will be returned. This action also supports multi-line inputs using the multi_line_end_keyword option. prompt Supported platforms ios, android, mac Author @KrauseFx","title":"prompt"},{"location":"generated/actions/prompt/#2-examples","text":"changelog = prompt(text: \"Changelog: \") changelog = prompt( text: \"Changelog: \", multi_line_end_keyword: \"END\" ) pilot(changelog: changelog)","title":"2 Examples"},{"location":"generated/actions/prompt/#parameters","text":"Key Description Default text The text that will be displayed to the user Please enter some text: ci_input The default text that will be used when being executed on a CI service '' boolean Is that a boolean question (yes/no)? This will add (y/n) at the end false secure_text Is that a secure text (yes/no)? false multi_line_end_keyword Enable multi-line inputs by providing an end text (e.g. 'END') which will stop the user input * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/prompt/#documentation","text":"To show the documentation in your terminal, run fastlane action prompt","title":"Documentation"},{"location":"generated/actions/prompt/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run prompt To pass parameters, make use of the : symbol, for example fastlane run prompt parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/prompt/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/push_git_tags/","text":"push_git_tags Push local tags to the remote - this will only push tags If you only want to push the tags and nothing else, you can use the push_git_tags action push_git_tags Supported platforms ios, android, mac Author @vittoriom 1 Example push_git_tags Parameters Key Description Default force Force push to remote false remote The remote to push tags to origin tag The tag to push to remote * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action push_git_tags CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run push_git_tags To pass parameters, make use of the : symbol, for example fastlane run push_git_tags parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Push git tags"},{"location":"generated/actions/push_git_tags/#push_git_tags","text":"Push local tags to the remote - this will only push tags If you only want to push the tags and nothing else, you can use the push_git_tags action push_git_tags Supported platforms ios, android, mac Author @vittoriom","title":"push_git_tags"},{"location":"generated/actions/push_git_tags/#1-example","text":"push_git_tags","title":"1 Example"},{"location":"generated/actions/push_git_tags/#parameters","text":"Key Description Default force Force push to remote false remote The remote to push tags to origin tag The tag to push to remote * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/push_git_tags/#documentation","text":"To show the documentation in your terminal, run fastlane action push_git_tags","title":"Documentation"},{"location":"generated/actions/push_git_tags/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run push_git_tags To pass parameters, make use of the : symbol, for example fastlane run push_git_tags parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/push_git_tags/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/push_to_git_remote/","text":"push_to_git_remote Push local changes to the remote branch Lets you push your local commits to a remote git repo. Useful if you make local changes such as adding a version bump commit (using commit_version_bump ) or a git tag (using 'add_git_tag') on a CI server, and you want to push those changes back to your canonical/main repo. If this is a new branch, use the set_upstream option to set the remote branch as upstream. push_to_git_remote Supported platforms ios, android, mac Author @lmirosevic 2 Examples push_to_git_remote # simple version. pushes \"master\" branch to \"origin\" remote push_to_git_remote( remote: \"origin\", # optional, default: \"origin\" local_branch: \"develop\", # optional, aliased by \"branch\", default is set to current branch remote_branch: \"develop\", # optional, default is set to local_branch force: true, # optional, default: false force_with_lease: true, # optional, default: false tags: false, # optional, default: true no_verify: true,# optional, default: false set_upstream: true # optional, default: false ) Parameters Key Description Default local_branch The local branch to push from. Defaults to the current branch * remote_branch The remote branch to push to. Defaults to the local branch * force Force push to remote false force_with_lease Force push with lease to remote false tags Whether tags are pushed to remote true remote The remote to push to origin no_verify Whether or not to use --no-verify false set_upstream Whether or not to use --set-upstream false push_options Array of strings to be passed using the '--push-option' option [] * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action push_to_git_remote CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run push_to_git_remote To pass parameters, make use of the : symbol, for example fastlane run push_to_git_remote parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Push to git remote"},{"location":"generated/actions/push_to_git_remote/#push_to_git_remote","text":"Push local changes to the remote branch Lets you push your local commits to a remote git repo. Useful if you make local changes such as adding a version bump commit (using commit_version_bump ) or a git tag (using 'add_git_tag') on a CI server, and you want to push those changes back to your canonical/main repo. If this is a new branch, use the set_upstream option to set the remote branch as upstream. push_to_git_remote Supported platforms ios, android, mac Author @lmirosevic","title":"push_to_git_remote"},{"location":"generated/actions/push_to_git_remote/#2-examples","text":"push_to_git_remote # simple version. pushes \"master\" branch to \"origin\" remote push_to_git_remote( remote: \"origin\", # optional, default: \"origin\" local_branch: \"develop\", # optional, aliased by \"branch\", default is set to current branch remote_branch: \"develop\", # optional, default is set to local_branch force: true, # optional, default: false force_with_lease: true, # optional, default: false tags: false, # optional, default: true no_verify: true,# optional, default: false set_upstream: true # optional, default: false )","title":"2 Examples"},{"location":"generated/actions/push_to_git_remote/#parameters","text":"Key Description Default local_branch The local branch to push from. Defaults to the current branch * remote_branch The remote branch to push to. Defaults to the local branch * force Force push to remote false force_with_lease Force push with lease to remote false tags Whether tags are pushed to remote true remote The remote to push to origin no_verify Whether or not to use --no-verify false set_upstream Whether or not to use --set-upstream false push_options Array of strings to be passed using the '--push-option' option [] * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/push_to_git_remote/#documentation","text":"To show the documentation in your terminal, run fastlane action push_to_git_remote","title":"Documentation"},{"location":"generated/actions/push_to_git_remote/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run push_to_git_remote To pass parameters, make use of the : symbol, for example fastlane run push_to_git_remote parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/push_to_git_remote/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/puts/","text":"puts Prints out the given text puts Supported platforms ios, android, mac Author @KrauseFx 1 Example puts \"Hi there\" Parameters Key Description Default message Message to be printed out * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action puts CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run puts To pass parameters, make use of the : symbol, for example fastlane run puts parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Puts"},{"location":"generated/actions/puts/#puts","text":"Prints out the given text puts Supported platforms ios, android, mac Author @KrauseFx","title":"puts"},{"location":"generated/actions/puts/#1-example","text":"puts \"Hi there\"","title":"1 Example"},{"location":"generated/actions/puts/#parameters","text":"Key Description Default message Message to be printed out * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/puts/#documentation","text":"To show the documentation in your terminal, run fastlane action puts","title":"Documentation"},{"location":"generated/actions/puts/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run puts To pass parameters, make use of the : symbol, for example fastlane run puts parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/puts/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/read_podspec/","text":"read_podspec Loads a CocoaPods spec as JSON This can be used for only specifying a version string in your podspec - and during your release process you'd read it from the podspec by running version = read_podspec['version'] at the beginning of your lane. Loads the specified (or the first found) podspec in the folder as JSON, so that you can inspect its version , files etc. This can be useful when basing your release process on the version string only stored in one place - in the podspec. As one of the first steps you'd read the podspec and its version and the rest of the workflow can use that version string (when e.g. creating a new git tag or a GitHub Release). read_podspec Supported platforms ios, mac Author @czechboy0 2 Examples spec = read_podspec version = spec[\"version\"] puts \"Using Version #{version}\" spec = read_podspec(path: \"./XcodeServerSDK.podspec\") Parameters Key Description Default path Path to the podspec to be read * * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The read_podspec action generates the following Lane Variables: SharedValue Description SharedValues::READ_PODSPEC_JSON Podspec JSON payload To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action read_podspec CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run read_podspec To pass parameters, make use of the : symbol, for example fastlane run read_podspec parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Read podspec"},{"location":"generated/actions/read_podspec/#read_podspec","text":"Loads a CocoaPods spec as JSON This can be used for only specifying a version string in your podspec - and during your release process you'd read it from the podspec by running version = read_podspec['version'] at the beginning of your lane. Loads the specified (or the first found) podspec in the folder as JSON, so that you can inspect its version , files etc. This can be useful when basing your release process on the version string only stored in one place - in the podspec. As one of the first steps you'd read the podspec and its version and the rest of the workflow can use that version string (when e.g. creating a new git tag or a GitHub Release). read_podspec Supported platforms ios, mac Author @czechboy0","title":"read_podspec"},{"location":"generated/actions/read_podspec/#2-examples","text":"spec = read_podspec version = spec[\"version\"] puts \"Using Version #{version}\" spec = read_podspec(path: \"./XcodeServerSDK.podspec\")","title":"2 Examples"},{"location":"generated/actions/read_podspec/#parameters","text":"Key Description Default path Path to the podspec to be read * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/read_podspec/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The read_podspec action generates the following Lane Variables: SharedValue Description SharedValues::READ_PODSPEC_JSON Podspec JSON payload To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/read_podspec/#documentation","text":"To show the documentation in your terminal, run fastlane action read_podspec","title":"Documentation"},{"location":"generated/actions/read_podspec/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run read_podspec To pass parameters, make use of the : symbol, for example fastlane run read_podspec parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/read_podspec/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/recreate_schemes/","text":"recreate_schemes Recreate not shared Xcode project schemes recreate_schemes Supported platforms ios, mac Author @jerolimov 1 Example recreate_schemes(project: \"./path/to/MyApp.xcodeproj\") Parameters Key Description Default project The Xcode project * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action recreate_schemes CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run recreate_schemes To pass parameters, make use of the : symbol, for example fastlane run recreate_schemes parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Recreate schemes"},{"location":"generated/actions/recreate_schemes/#recreate_schemes","text":"Recreate not shared Xcode project schemes recreate_schemes Supported platforms ios, mac Author @jerolimov","title":"recreate_schemes"},{"location":"generated/actions/recreate_schemes/#1-example","text":"recreate_schemes(project: \"./path/to/MyApp.xcodeproj\")","title":"1 Example"},{"location":"generated/actions/recreate_schemes/#parameters","text":"Key Description Default project The Xcode project * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/recreate_schemes/#documentation","text":"To show the documentation in your terminal, run fastlane action recreate_schemes","title":"Documentation"},{"location":"generated/actions/recreate_schemes/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run recreate_schemes To pass parameters, make use of the : symbol, for example fastlane run recreate_schemes parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/recreate_schemes/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/register_device/","text":"register_device Registers a new device to the Apple Dev Portal This will register an iOS device with the Developer Portal so that you can include it in your provisioning profiles. This is an optimistic action, in that it will only ever add a device to the member center. If the device has already been registered within the member center, it will be left alone in the member center. The action will connect to the Apple Developer Portal using the username you specified in your Appfile with apple_id , but you can override it using the :username option. register_device Supported platforms ios Author @pvinis 2 Examples register_device( name: \"Luka iPhone 6\", udid: \"1234567890123456789012345678901234567890\" ) # Simply provide the name and udid of the device register_device( name: \"Luka iPhone 6\", udid: \"1234567890123456789012345678901234567890\", team_id: \"XXXXXXXXXX\", # Optional, if you\"re a member of multiple teams, then you need to pass the team ID here. username: \"luka@goonbee.com\" # Optional, lets you override the Apple Member Center username. ) Parameters Key Description Default name Provide the name of the device to register as platform Provide the platform of the device to register as (ios, mac) ios udid Provide the UDID of the device to register as api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * username Optional: Your Apple ID * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action register_device CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run register_device To pass parameters, make use of the : symbol, for example fastlane run register_device parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Register device"},{"location":"generated/actions/register_device/#register_device","text":"Registers a new device to the Apple Dev Portal This will register an iOS device with the Developer Portal so that you can include it in your provisioning profiles. This is an optimistic action, in that it will only ever add a device to the member center. If the device has already been registered within the member center, it will be left alone in the member center. The action will connect to the Apple Developer Portal using the username you specified in your Appfile with apple_id , but you can override it using the :username option. register_device Supported platforms ios Author @pvinis","title":"register_device"},{"location":"generated/actions/register_device/#2-examples","text":"register_device( name: \"Luka iPhone 6\", udid: \"1234567890123456789012345678901234567890\" ) # Simply provide the name and udid of the device register_device( name: \"Luka iPhone 6\", udid: \"1234567890123456789012345678901234567890\", team_id: \"XXXXXXXXXX\", # Optional, if you\"re a member of multiple teams, then you need to pass the team ID here. username: \"luka@goonbee.com\" # Optional, lets you override the Apple Member Center username. )","title":"2 Examples"},{"location":"generated/actions/register_device/#parameters","text":"Key Description Default name Provide the name of the device to register as platform Provide the platform of the device to register as (ios, mac) ios udid Provide the UDID of the device to register as api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * username Optional: Your Apple ID * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/register_device/#documentation","text":"To show the documentation in your terminal, run fastlane action register_device","title":"Documentation"},{"location":"generated/actions/register_device/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run register_device To pass parameters, make use of the : symbol, for example fastlane run register_device parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/register_device/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/register_devices/","text":"register_devices Registers new devices to the Apple Dev Portal This will register iOS/Mac devices with the Developer Portal so that you can include them in your provisioning profiles. This is an optimistic action, in that it will only ever add new devices to the member center, and never remove devices. If a device which has already been registered within the member center is not passed to this action, it will be left alone in the member center and continue to work. The action will connect to the Apple Developer Portal using the username you specified in your Appfile with apple_id , but you can override it using the username option, or by setting the env variable ENV['DELIVER_USER'] . register_devices Supported platforms ios, mac Author @lmirosevic 4 Examples register_devices( devices: { \"Luka iPhone 6\" => \"1234567890123456789012345678901234567890\", \"Felix iPad Air 2\" => \"abcdefghijklmnopqrstvuwxyzabcdefghijklmn\" } ) # Simply provide a list of devices as a Hash register_devices( devices_file: \"./devices.txt\" ) # Alternatively provide a standard UDID export .txt file, see the Apple Sample (http://devimages.apple.com/downloads/devices/Multiple-Upload-Samples.zip) register_devices( devices_file: \"./devices.txt\", # You must pass in either `devices_file` or `devices`. team_id: \"XXXXXXXXXX\", # Optional, if you\"re a member of multiple teams, then you need to pass the team ID here. username: \"luka@goonbee.com\" # Optional, lets you override the Apple Member Center username. ) register_devices( devices: { \"Luka MacBook\" => \"12345678-1234-1234-1234-123456789012\", \"Felix MacBook Pro\" => \"ABCDEFGH-ABCD-ABCD-ABCD-ABCDEFGHIJKL\" }, platform: \"mac\" ) # Register devices for Mac Parameters Key Description Default devices A hash of devices, with the name as key and the UDID as value devices_file Provide a path to a file with the devices to register. For the format of the file see the examples api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * username Optional: Your Apple ID * platform The platform to use (optional) ios * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action register_devices CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run register_devices To pass parameters, make use of the : symbol, for example fastlane run register_devices parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Register devices"},{"location":"generated/actions/register_devices/#register_devices","text":"Registers new devices to the Apple Dev Portal This will register iOS/Mac devices with the Developer Portal so that you can include them in your provisioning profiles. This is an optimistic action, in that it will only ever add new devices to the member center, and never remove devices. If a device which has already been registered within the member center is not passed to this action, it will be left alone in the member center and continue to work. The action will connect to the Apple Developer Portal using the username you specified in your Appfile with apple_id , but you can override it using the username option, or by setting the env variable ENV['DELIVER_USER'] . register_devices Supported platforms ios, mac Author @lmirosevic","title":"register_devices"},{"location":"generated/actions/register_devices/#4-examples","text":"register_devices( devices: { \"Luka iPhone 6\" => \"1234567890123456789012345678901234567890\", \"Felix iPad Air 2\" => \"abcdefghijklmnopqrstvuwxyzabcdefghijklmn\" } ) # Simply provide a list of devices as a Hash register_devices( devices_file: \"./devices.txt\" ) # Alternatively provide a standard UDID export .txt file, see the Apple Sample (http://devimages.apple.com/downloads/devices/Multiple-Upload-Samples.zip) register_devices( devices_file: \"./devices.txt\", # You must pass in either `devices_file` or `devices`. team_id: \"XXXXXXXXXX\", # Optional, if you\"re a member of multiple teams, then you need to pass the team ID here. username: \"luka@goonbee.com\" # Optional, lets you override the Apple Member Center username. ) register_devices( devices: { \"Luka MacBook\" => \"12345678-1234-1234-1234-123456789012\", \"Felix MacBook Pro\" => \"ABCDEFGH-ABCD-ABCD-ABCD-ABCDEFGHIJKL\" }, platform: \"mac\" ) # Register devices for Mac","title":"4 Examples"},{"location":"generated/actions/register_devices/#parameters","text":"Key Description Default devices A hash of devices, with the name as key and the UDID as value devices_file Provide a path to a file with the devices to register. For the format of the file see the examples api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * username Optional: Your Apple ID * platform The platform to use (optional) ios * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/register_devices/#documentation","text":"To show the documentation in your terminal, run fastlane action register_devices","title":"Documentation"},{"location":"generated/actions/register_devices/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run register_devices To pass parameters, make use of the : symbol, for example fastlane run register_devices parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/register_devices/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/reset_git_repo/","text":"reset_git_repo Resets git repo to a clean state by discarding uncommitted changes This action will reset your git repo to a clean state, discarding any uncommitted and untracked changes. Useful in case you need to revert the repo back to a clean state, e.g. after running fastlane . Untracked files like .env will also be deleted, unless :skip_clean is true. It's a pretty drastic action so it comes with a sort of safety latch. It will only proceed with the reset if this condition is met: You have called the ensure_git_status_clean action prior to calling this action. This ensures that your repo started off in a clean state, so the only things that will get destroyed by this action are files that are created as a byproduct of the fastlane run. reset_git_repo Supported platforms ios, android, mac Author @lmirosevic 4 Examples reset_git_repo reset_git_repo(force: true) # If you don't care about warnings and are absolutely sure that you want to discard all changes. This will reset the repo even if you have valuable uncommitted changes, so use with care! reset_git_repo(skip_clean: true) # If you want \"git clean\" to be skipped, thus NOT deleting untracked files like \".env\". Optional, defaults to false. reset_git_repo( force: true, files: [ \"./file.txt\" ] ) Parameters Key Description Default files Array of files the changes should be discarded. If not given, all files will be discarded force Skip verifying of previously clean state of repo. Only recommended in combination with files option false skip_clean Skip 'git clean' to avoid removing untracked files like .env false disregard_gitignore Setting this to true will clean the whole repository, ignoring anything in your local .gitignore. Set this to true if you want the equivalent of a fresh clone, and for all untracked and ignore files to also be removed true exclude You can pass a string, or array of, file pattern(s) here which you want to have survive the cleaning process, and remain on disk, e.g. to leave the artifacts directory you would specify exclude: 'artifacts' . Make sure this pattern is also in your gitignore! See the gitignore documentation for info on patterns * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action reset_git_repo CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run reset_git_repo To pass parameters, make use of the : symbol, for example fastlane run reset_git_repo parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Reset git repo"},{"location":"generated/actions/reset_git_repo/#reset_git_repo","text":"Resets git repo to a clean state by discarding uncommitted changes This action will reset your git repo to a clean state, discarding any uncommitted and untracked changes. Useful in case you need to revert the repo back to a clean state, e.g. after running fastlane . Untracked files like .env will also be deleted, unless :skip_clean is true. It's a pretty drastic action so it comes with a sort of safety latch. It will only proceed with the reset if this condition is met: You have called the ensure_git_status_clean action prior to calling this action. This ensures that your repo started off in a clean state, so the only things that will get destroyed by this action are files that are created as a byproduct of the fastlane run. reset_git_repo Supported platforms ios, android, mac Author @lmirosevic","title":"reset_git_repo"},{"location":"generated/actions/reset_git_repo/#4-examples","text":"reset_git_repo reset_git_repo(force: true) # If you don't care about warnings and are absolutely sure that you want to discard all changes. This will reset the repo even if you have valuable uncommitted changes, so use with care! reset_git_repo(skip_clean: true) # If you want \"git clean\" to be skipped, thus NOT deleting untracked files like \".env\". Optional, defaults to false. reset_git_repo( force: true, files: [ \"./file.txt\" ] )","title":"4 Examples"},{"location":"generated/actions/reset_git_repo/#parameters","text":"Key Description Default files Array of files the changes should be discarded. If not given, all files will be discarded force Skip verifying of previously clean state of repo. Only recommended in combination with files option false skip_clean Skip 'git clean' to avoid removing untracked files like .env false disregard_gitignore Setting this to true will clean the whole repository, ignoring anything in your local .gitignore. Set this to true if you want the equivalent of a fresh clone, and for all untracked and ignore files to also be removed true exclude You can pass a string, or array of, file pattern(s) here which you want to have survive the cleaning process, and remain on disk, e.g. to leave the artifacts directory you would specify exclude: 'artifacts' . Make sure this pattern is also in your gitignore! See the gitignore documentation for info on patterns * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/reset_git_repo/#documentation","text":"To show the documentation in your terminal, run fastlane action reset_git_repo","title":"Documentation"},{"location":"generated/actions/reset_git_repo/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run reset_git_repo To pass parameters, make use of the : symbol, for example fastlane run reset_git_repo parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/reset_git_repo/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/reset_simulator_contents/","text":"reset_simulator_contents Shutdown and reset running simulators reset_simulator_contents Supported platforms ios Author @danramteke 2 Examples reset_simulator_contents reset_simulator_contents(os_versions: [\"10.3.1\",\"12.2\"]) Parameters Key Description Default ios DEPRECATED! Use :os_versions instead - Which OS versions of Simulators you want to reset content and settings, this does not remove/recreate the simulators os_versions Which OS versions of Simulators you want to reset content and settings, this does not remove/recreate the simulators * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action reset_simulator_contents CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run reset_simulator_contents To pass parameters, make use of the : symbol, for example fastlane run reset_simulator_contents parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Reset simulator contents"},{"location":"generated/actions/reset_simulator_contents/#reset_simulator_contents","text":"Shutdown and reset running simulators reset_simulator_contents Supported platforms ios Author @danramteke","title":"reset_simulator_contents"},{"location":"generated/actions/reset_simulator_contents/#2-examples","text":"reset_simulator_contents reset_simulator_contents(os_versions: [\"10.3.1\",\"12.2\"])","title":"2 Examples"},{"location":"generated/actions/reset_simulator_contents/#parameters","text":"Key Description Default ios DEPRECATED! Use :os_versions instead - Which OS versions of Simulators you want to reset content and settings, this does not remove/recreate the simulators os_versions Which OS versions of Simulators you want to reset content and settings, this does not remove/recreate the simulators * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/reset_simulator_contents/#documentation","text":"To show the documentation in your terminal, run fastlane action reset_simulator_contents","title":"Documentation"},{"location":"generated/actions/reset_simulator_contents/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run reset_simulator_contents To pass parameters, make use of the : symbol, for example fastlane run reset_simulator_contents parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/reset_simulator_contents/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/resign/","text":"resign Codesign an existing ipa file resign Supported platforms ios Author @lmirosevic 2 Examples resign( ipa: \"path/to/ipa\", # can omit if using the `ipa` action signing_identity: \"iPhone Distribution: Luka Mirosevic (0123456789)\", provisioning_profile: \"path/to/profile\", # can omit if using the _sigh_ action ) # You may provide multiple provisioning profiles if the application contains nested # applications or app extensions, which need their own provisioning profile. # You can do so by passing an array of provisioning profile strings or a hash # that associates provisioning profile values to bundle identifier keys. resign( ipa: \"path/to/ipa\", # can omit if using the `ipa` action signing_identity: \"iPhone Distribution: Luka Mirosevic (0123456789)\", provisioning_profile: { \"com.example.awesome-app\" => \"path/to/profile\", \"com.example.awesome-app.app-extension\" => \"path/to/app-extension/profile\" } ) Parameters Key Description Default ipa Path to the ipa file to resign. Optional if you use the gym or xcodebuild action * signing_identity Code signing identity to use. e.g. iPhone Distribution: Luka Mirosevic (0123456789) entitlements Path to the entitlement file to use, e.g. myApp/MyApp.entitlements provisioning_profile Path to your provisioning_profile. Optional if you use sigh * version Version number to force resigned ipa to use. Updates both CFBundleShortVersionString and CFBundleVersion values in Info.plist . Applies for main app and all nested apps or extensions display_name Display name to force resigned ipa to use short_version Short version string to force resigned ipa to use ( CFBundleShortVersionString ) bundle_version Bundle version to force resigned ipa to use ( CFBundleVersion ) bundle_id Set new bundle ID during resign ( CFBundleIdentifier ) use_app_entitlements Extract app bundle codesigning entitlements and combine with entitlements from new provisioning profile keychain_path Provide a path to a keychain file that should be used by /usr/bin/codesign * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action resign CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run resign To pass parameters, make use of the : symbol, for example fastlane run resign parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Resign"},{"location":"generated/actions/resign/#resign","text":"Codesign an existing ipa file resign Supported platforms ios Author @lmirosevic","title":"resign"},{"location":"generated/actions/resign/#2-examples","text":"resign( ipa: \"path/to/ipa\", # can omit if using the `ipa` action signing_identity: \"iPhone Distribution: Luka Mirosevic (0123456789)\", provisioning_profile: \"path/to/profile\", # can omit if using the _sigh_ action ) # You may provide multiple provisioning profiles if the application contains nested # applications or app extensions, which need their own provisioning profile. # You can do so by passing an array of provisioning profile strings or a hash # that associates provisioning profile values to bundle identifier keys. resign( ipa: \"path/to/ipa\", # can omit if using the `ipa` action signing_identity: \"iPhone Distribution: Luka Mirosevic (0123456789)\", provisioning_profile: { \"com.example.awesome-app\" => \"path/to/profile\", \"com.example.awesome-app.app-extension\" => \"path/to/app-extension/profile\" } )","title":"2 Examples"},{"location":"generated/actions/resign/#parameters","text":"Key Description Default ipa Path to the ipa file to resign. Optional if you use the gym or xcodebuild action * signing_identity Code signing identity to use. e.g. iPhone Distribution: Luka Mirosevic (0123456789) entitlements Path to the entitlement file to use, e.g. myApp/MyApp.entitlements provisioning_profile Path to your provisioning_profile. Optional if you use sigh * version Version number to force resigned ipa to use. Updates both CFBundleShortVersionString and CFBundleVersion values in Info.plist . Applies for main app and all nested apps or extensions display_name Display name to force resigned ipa to use short_version Short version string to force resigned ipa to use ( CFBundleShortVersionString ) bundle_version Bundle version to force resigned ipa to use ( CFBundleVersion ) bundle_id Set new bundle ID during resign ( CFBundleIdentifier ) use_app_entitlements Extract app bundle codesigning entitlements and combine with entitlements from new provisioning profile keychain_path Provide a path to a keychain file that should be used by /usr/bin/codesign * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/resign/#documentation","text":"To show the documentation in your terminal, run fastlane action resign","title":"Documentation"},{"location":"generated/actions/resign/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run resign To pass parameters, make use of the : symbol, for example fastlane run resign parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/resign/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/restore_file/","text":"restore_file This action restore your file that was backuped with the backup_file action restore_file Supported platforms ios, android, mac Author @gin0606 1 Example restore_file(path: \"/path/to/file\") Parameters Key Description Default path Original file name you want to restore * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action restore_file CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run restore_file To pass parameters, make use of the : symbol, for example fastlane run restore_file parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Restore file"},{"location":"generated/actions/restore_file/#restore_file","text":"This action restore your file that was backuped with the backup_file action restore_file Supported platforms ios, android, mac Author @gin0606","title":"restore_file"},{"location":"generated/actions/restore_file/#1-example","text":"restore_file(path: \"/path/to/file\")","title":"1 Example"},{"location":"generated/actions/restore_file/#parameters","text":"Key Description Default path Original file name you want to restore * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/restore_file/#documentation","text":"To show the documentation in your terminal, run fastlane action restore_file","title":"Documentation"},{"location":"generated/actions/restore_file/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run restore_file To pass parameters, make use of the : symbol, for example fastlane run restore_file parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/restore_file/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/rocket/","text":"rocket Outputs ascii-art for a rocket \ud83d\ude80 Print an ascii Rocket :rocket:. Useful after using crashlytics or pilot to indicate that your new build has been shipped to outer-space. rocket Supported platforms ios, android, mac Author @JaviSoto, @radex 1 Example rocket Documentation To show the documentation in your terminal, run fastlane action rocket CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run rocket To pass parameters, make use of the : symbol, for example fastlane run rocket parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Rocket"},{"location":"generated/actions/rocket/#rocket","text":"Outputs ascii-art for a rocket \ud83d\ude80 Print an ascii Rocket :rocket:. Useful after using crashlytics or pilot to indicate that your new build has been shipped to outer-space. rocket Supported platforms ios, android, mac Author @JaviSoto, @radex","title":"rocket"},{"location":"generated/actions/rocket/#1-example","text":"rocket","title":"1 Example"},{"location":"generated/actions/rocket/#documentation","text":"To show the documentation in your terminal, run fastlane action rocket","title":"Documentation"},{"location":"generated/actions/rocket/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run rocket To pass parameters, make use of the : symbol, for example fastlane run rocket parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/rocket/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/rspec/","text":"rspec Run tests using rspec rspec | -----|---- Supported platforms | ios, android, mac Author | @KrauseFx To show the documentation in your terminal, run fastlane action rspec View source code Back to actions","title":"Rspec"},{"location":"generated/actions/rspec/#rspec","text":"Run tests using rspec rspec | -----|---- Supported platforms | ios, android, mac Author | @KrauseFx To show the documentation in your terminal, run fastlane action rspec View source code Back to actions","title":"rspec"},{"location":"generated/actions/rsync/","text":"rsync Rsync files from :source to :destination A wrapper around rsync , which is a tool that lets you synchronize files, including permissions and so on. For a more detailed information about rsync , please see rsync(1) man page . rsync Supported platforms ios, android, mac Author @hjanuschka 1 Example rsync( source: \"root@host:/tmp/1.txt\", destination: \"/tmp/local_file.txt\" ) Parameters Key Description Default extra Port -av source source file/folder destination destination file/folder * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action rsync CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run rsync To pass parameters, make use of the : symbol, for example fastlane run rsync parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Rsync"},{"location":"generated/actions/rsync/#rsync","text":"Rsync files from :source to :destination A wrapper around rsync , which is a tool that lets you synchronize files, including permissions and so on. For a more detailed information about rsync , please see rsync(1) man page . rsync Supported platforms ios, android, mac Author @hjanuschka","title":"rsync"},{"location":"generated/actions/rsync/#1-example","text":"rsync( source: \"root@host:/tmp/1.txt\", destination: \"/tmp/local_file.txt\" )","title":"1 Example"},{"location":"generated/actions/rsync/#parameters","text":"Key Description Default extra Port -av source source file/folder destination destination file/folder * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/rsync/#documentation","text":"To show the documentation in your terminal, run fastlane action rsync","title":"Documentation"},{"location":"generated/actions/rsync/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run rsync To pass parameters, make use of the : symbol, for example fastlane run rsync parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/rsync/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/rubocop/","text":"rubocop Runs the code style checks rubocop | -----|---- Supported platforms | ios, android, mac Author | @KrauseFx To show the documentation in your terminal, run fastlane action rubocop View source code Back to actions","title":"Rubocop"},{"location":"generated/actions/rubocop/#rubocop","text":"Runs the code style checks rubocop | -----|---- Supported platforms | ios, android, mac Author | @KrauseFx To show the documentation in your terminal, run fastlane action rubocop View source code Back to actions","title":"rubocop"},{"location":"generated/actions/ruby_version/","text":"ruby_version Verifies the minimum ruby version required Add this to your Fastfile to require a certain version of ruby . Put it at the top of your Fastfile to ensure that fastlane is executed appropriately. ruby_version Supported platforms ios, android, mac Author @sebastianvarela 1 Example ruby_version(\"2.4.0\") Documentation To show the documentation in your terminal, run fastlane action ruby_version CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ruby_version To pass parameters, make use of the : symbol, for example fastlane run ruby_version parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Ruby version"},{"location":"generated/actions/ruby_version/#ruby_version","text":"Verifies the minimum ruby version required Add this to your Fastfile to require a certain version of ruby . Put it at the top of your Fastfile to ensure that fastlane is executed appropriately. ruby_version Supported platforms ios, android, mac Author @sebastianvarela","title":"ruby_version"},{"location":"generated/actions/ruby_version/#1-example","text":"ruby_version(\"2.4.0\")","title":"1 Example"},{"location":"generated/actions/ruby_version/#documentation","text":"To show the documentation in your terminal, run fastlane action ruby_version","title":"Documentation"},{"location":"generated/actions/ruby_version/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ruby_version To pass parameters, make use of the : symbol, for example fastlane run ruby_version parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/ruby_version/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/run_tests/","text":"run_tests Easily run tests of your iOS app (via scan ) The easiest way to run tests of your iOS and Mac app scan makes it easy to run tests of your iOS and Mac app on a simulator or connected device. Features \u2022 Usage \u2022 Scanfile What's scan? Before scan xcodebuild \\ -workspace MyApp.xcworkspace \\ -scheme \"MyApp\" \\ -sdk iphonesimulator \\ -destination 'platform=iOS Simulator,name=iPhone 6,OS=8.1' \\ test As the output will look like this /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/Objects-normal/arm64/main.o Example/main.m normal arm64 objective-c com.apple.compilers.llvm.clang.1_0.compiler cd /Users/felixkrause/Developer/fastlane/gym/example/cocoapods export LANG=en_US.US-ASCII export PATH=\"/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode-beta.app/Contents/Developer/usr/bin:/Users/felixkrause/.rvm/gems/ruby-2.2.0/bin:/Users/felixkrause/.rvm/gems/ruby-2.2.0@global/bin:/Users/felixkrause/.rvm/rubies/ruby-2.2.0/bin:/Users/felixkrause/.rvm/bin:/usr/local/heroku/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin\" /Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x objective-c -arch arm64 -fmessage-length=126 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -fcolor-diagnostics -std=gnu99 -fobjc-arc -fmodules -gmodules -fmodules-cache-path=/Users/felixkrause/Library/Developer/Xcode/DerivedData/ModuleCache -fmodules-prune-interval=86400 -fmodules-prune-after=345600 -fbuild-session-file=/Users/felixkrause/Library/Developer/Xcode/DerivedData/ModuleCache/Session.modulevalidation -fmodules-validate-once-per-build-session -Wnon-modular-include-in-framework-module -Werror=non-modular-include-in-framework-module -Wno-trigraphs -fpascal-strings -Os -fno-common -Wno-missing-field-initializers -Wno-missing-prototypes -Werror=return-type -Wunreachable-code -Wno-implicit-atomic-properties -Werror=deprecated-objc-isa-usage -Werror=objc-root-class -Wno-arc-repeated-use-of-weak -Wduplicate-method-match -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wconditional-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wshorten-64-to-32 -Wpointer-sign -Wno-newline-eof -Wno-selector -Wno-strict-selector-match -Wundeclared-selector -Wno-deprecated-implementations -DCOCOAPODS=1 -DNS_BLOCK_ASSERTIONS=1 -DOBJC_OLD_DISPATCH_PROTOTYPES=0 -isysroot /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk -fstrict-aliasing -Wprotocol -Wdeprecated-declarations -miphoneos-version-min=9.0 -g -fvisibility=hidden -Wno-sign-conversion -fembed-bitcode -iquote /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/ExampleProductName-generated-files.hmap -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/ExampleProductName-own-target-headers.hmap -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/ExampleProductName-all-target-headers.hmap -iquote /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/ExampleProductName-project-headers.hmap -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/BuildProductsPath/Release-iphoneos/include -I/Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Pods/Headers/Public -I/Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Pods/Headers/Public/HexColors -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/DerivedSources/arm64 -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/DerivedSources -F/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/BuildProductsPath/Release-iphoneos -isystem /Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Pods/Headers/Public -isystem /Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Pods/Headers/Public/HexColors -MMD -MT dependencies -MF /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/Objects-normal/arm64/main.d --serialize-diagnostics /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/Objects-normal/arm64/main.dia -c /Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Example/main.m -o /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/Objects-normal/arm64/main.o you'll probably want to use something like xcpretty , which will look like this: set -o pipefail && xcodebuild \\ -workspace MyApp.xcworkspace \\ -scheme \"MyApp\" \\ -sdk iphonesimulator \\ -destination 'platform=iOS Simulator,name=iPhone 6,OS=8.1' \\ test \\ | xcpretty \\ -r \"html\" \\ -o \"tests.html\" With scan fastlane scan Why scan ? scan uses the latest APIs and tools to make running tests plain simple and offer a great integration into your existing workflow, like fastlane or Jenkins. scan Features \ud83c\udfc1 Beautiful inline build output while running the tests \ud83d\udea0 Sensible defaults: Automatically detect the project, schemes and more \ud83d\udcca Support for HTML, JSON and JUnit reports \ud83d\udd0e Xcode duplicated your simulators again? scan will handle this for you \ud83d\udd17 Works perfectly with fastlane and other tools \ud83d\ude85 Don't remember any complicated build commands, just scan \ud83d\udd27 Easy and dynamic configuration using parameters and environment variables \ud83d\udce2 Beautiful slack notifications of the test results \ud83d\udcbe Store common build settings in a Scanfile \ud83d\udce4 The raw xcodebuild outputs are stored in ~/Library/Logs/scan \ud83d\udcbb Supports both iOS and Mac applications \ud83d\udc71 Automatically switches to the travis formatter when running on Travis \ud83d\udcd6 Helps you resolve common test errors like simulator not responding scan uses a plain xcodebuild command, therefore keeping 100% compatible with xcodebuild . To generate the nice output, scan uses xcpretty . You can always access the raw output in ~/Library/Logs/scan . Usage fastlane scan That's all you need to run your tests. If you want more control, here are some available parameters: fastlane scan --workspace \"Example.xcworkspace\" --scheme \"AppName\" --device \"iPhone 6\" --clean If you need to use a different Xcode install, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" scan To run scan on multiple devices via fastlane , add this to your Fastfile : scan( workspace: \"Example.xcworkspace\", devices: [\"iPhone 6s\", \"iPad Air\"] ) For a list of all available parameters use fastlane action scan To access the raw xcodebuild output open ~/Library/Logs/scan Scanfile Since you might want to manually trigger the tests but don't want to specify all the parameters every time, you can store your defaults in a so called Scanfile . Run fastlane scan init to create a new configuration file. Example: scheme(\"Example\") devices([\"iPhone 6s\", \"iPad Air\"]) clean(true) output_types(\"html\") Automating the whole process scan works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :test do scan(scheme: \"Example\") end run_tests Supported platforms ios, mac Author @KrauseFx Returns Outputs hash of results with the following keys: :number_of_tests, :number_of_failures, :number_of_retries, :number_of_tests_excluding_retries, :number_of_failures_excluding_retries 6 Examples run_tests scan # alias for \"run_tests\" run_tests( workspace: \"App.xcworkspace\", scheme: \"MyTests\", clean: false ) # Build For Testing run_tests( derived_data_path: \"my_folder\", build_for_testing: true ) # run tests using derived data from prev. build run_tests( derived_data_path: \"my_folder\", test_without_building: true ) # or run it from an existing xctestrun package run_tests( xctestrun: \"/path/to/mytests.xctestrun\" ) Parameters Key Description Default workspace Path to the workspace file project Path to the project file package_path Path to the Swift Package scheme The project's scheme. Make sure it's marked as Shared device The name of the simulator type you want to run tests on (e.g. 'iPhone 6' or 'iPhone SE (2nd generation) (14.5)') devices Array of devices to run the tests on (e.g. ['iPhone 6', 'iPad Air', 'iPhone SE (2nd generation) (14.5)']) skip_detect_devices Should skip auto detecting of devices if none were specified false ensure_devices_found Should fail if devices not found false force_quit_simulator Enabling this option will automatically killall Simulator processes before the run false reset_simulator Enabling this option will automatically erase the simulator before running the application false disable_slide_to_type Enabling this option will disable the simulator from showing the 'Slide to type' prompt true prelaunch_simulator Enabling this option will launch the first simulator prior to calling any xcodebuild command reinstall_app Enabling this option will automatically uninstall the application before running it false app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip testplan The testplan associated with the scheme that should be used for testing only_test_configurations Array of strings matching test plan configurations to run skip_test_configurations Array of strings matching test plan configurations to skip xctestrun Run tests using the provided .xctestrun file toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a ) clean Should the project be cleaned before building it? false code_coverage Should code coverage be generated? (Xcode 7 and up) address_sanitizer Should the address sanitizer be turned on? thread_sanitizer Should the thread sanitizer be turned on? open_report Should the HTML report be opened when tests are completed? false output_directory The directory in which all reports will be stored * output_style Define how the output should look like. Valid values are: standard, basic, rspec, or raw (disables xcpretty during xcodebuild) output_types Comma separated list of the output types (e.g. html, junit, json-compilation-database) html,junit output_files Comma separated list of the output files, corresponding to the types provided by :output_types (order should match). If specifying an output type of json-compilation-database with :use_clang_report_name enabled, that option will take precedence buildlog_path The directory where to store the raw log * include_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * output_remove_retry_attempts Remove retry attempts from test results table and the JUnit report (if not using xcpretty) false disable_xcpretty DEPRECATED! Use output_style: 'raw' instead - Disable xcpretty formatting of build, similar to output_style='raw' but this will also skip the test results table formatter DEPRECATED! Use 'xcpretty_formatter' instead - A custom xcpretty formatter to use xcpretty_formatter A custom xcpretty formatter to use xcpretty_args Pass in xcpretty additional command line arguments (e.g. '--test --no-color' or '--tap --no-utf') derived_data_path The directory where build products and other derived data will go should_zip_build_products Should zip the derived data build products and place in output path? false output_xctestrun Should provide additional copy of .xctestrun file (settings.xctestrun) and place in output path? false result_bundle_path Custom path for the result bundle, overrides result_bundle result_bundle Should an Xcode result bundle be generated in the output directory false use_clang_report_name Generate the json compilation database with clang naming convention (compile_commands.json) false parallel_testing Optionally override the per-target setting in the scheme for running tests in parallel. Equivalent to -parallel-testing-enabled concurrent_workers Specify the exact number of test runners that will be spawned during parallel testing. Equivalent to -parallel-testing-worker-count max_concurrent_simulators Constrain the number of simulator devices on which to test concurrently. Equivalent to -maximum-concurrent-test-simulator-destinations disable_concurrent_testing Do not run test bundles in parallel on the specified destinations. Testing will occur on each destination serially. Equivalent to -disable-concurrent-testing false skip_build Should debug build be skipped before test build? false test_without_building Test without building, requires a derived data path build_for_testing Build for testing only, does not run tests sdk The SDK that should be used for building the application configuration The configuration to use when building the app. Defaults to 'Release' * xcargs Pass additional arguments to xcodebuild. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app app_name App name to use in slack message and logfile name deployment_target_version Target version of the app being build or tested. Used to filter out simulator version slack_url Create an Incoming WebHook for your Slack group to post results there slack_channel #channel or @username slack_message The message included with each message posted to slack slack_use_webhook_configured_username_and_icon Use webhook's default username and icon settings? (true/false) false slack_username Overrides the webhook's username property if slack_use_webhook_configured_username_and_icon is false fastlane slack_icon_url Overrides the webhook's image property if slack_use_webhook_configured_username_and_icon is false https://fastlane.tools/assets/img/fastlane_icon.png skip_slack Don't publish to slack, even when an URL is given false slack_only_on_failure Only post on Slack if the tests fail false slack_default_payloads Specifies default payloads to include in Slack messages. For more info visit https://docs.fastlane.tools/actions/slack destination Use only if you're a pro, use the other options instead run_rosetta_simulator Adds arch=x86_64 to the xcodebuild 'destination' argument to run simulator in a Rosetta mode false catalyst_platform Platform to build when using a Catalyst enabled app. Valid values are: ios, macos custom_report_file_name DEPRECATED! Use --output_files instead - Sets custom full report file name when generating a single report xcodebuild_command Allows for override of the default xcodebuild command env NSUnbufferedIO=YES xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false number_of_retries The number of times a test can fail 0 fail_build Should this step stop the build if the tests fail? Set this to false if you're using trainer true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The run_tests action generates the following Lane Variables: SharedValue Description SharedValues::SCAN_DERIVED_DATA_PATH The path to the derived data SharedValues::SCAN_GENERATED_PLIST_FILE The generated plist file SharedValues::SCAN_GENERATED_PLIST_FILES The generated plist files SharedValues::SCAN_GENERATED_XCRESULT_PATH The path to the generated .xcresult SharedValues::SCAN_ZIP_BUILD_PRODUCTS_PATH The path to the zipped build products To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action run_tests CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run run_tests To pass parameters, make use of the : symbol, for example fastlane run run_tests parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Run tests"},{"location":"generated/actions/run_tests/#run_tests","text":"Easily run tests of your iOS app (via scan )","title":"run_tests"},{"location":"generated/actions/run_tests/#whats-scan","text":"","title":"What's scan?"},{"location":"generated/actions/run_tests/#usage","text":"fastlane scan That's all you need to run your tests. If you want more control, here are some available parameters: fastlane scan --workspace \"Example.xcworkspace\" --scheme \"AppName\" --device \"iPhone 6\" --clean If you need to use a different Xcode install, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" scan To run scan on multiple devices via fastlane , add this to your Fastfile : scan( workspace: \"Example.xcworkspace\", devices: [\"iPhone 6s\", \"iPad Air\"] ) For a list of all available parameters use fastlane action scan To access the raw xcodebuild output open ~/Library/Logs/scan","title":"Usage"},{"location":"generated/actions/run_tests/#scanfile","text":"Since you might want to manually trigger the tests but don't want to specify all the parameters every time, you can store your defaults in a so called Scanfile . Run fastlane scan init to create a new configuration file. Example: scheme(\"Example\") devices([\"iPhone 6s\", \"iPad Air\"]) clean(true) output_types(\"html\")","title":"Scanfile"},{"location":"generated/actions/run_tests/#automating-the-whole-process","text":"scan works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :test do scan(scheme: \"Example\") end run_tests Supported platforms ios, mac Author @KrauseFx Returns Outputs hash of results with the following keys: :number_of_tests, :number_of_failures, :number_of_retries, :number_of_tests_excluding_retries, :number_of_failures_excluding_retries","title":"Automating the whole process"},{"location":"generated/actions/run_tests/#6-examples","text":"run_tests scan # alias for \"run_tests\" run_tests( workspace: \"App.xcworkspace\", scheme: \"MyTests\", clean: false ) # Build For Testing run_tests( derived_data_path: \"my_folder\", build_for_testing: true ) # run tests using derived data from prev. build run_tests( derived_data_path: \"my_folder\", test_without_building: true ) # or run it from an existing xctestrun package run_tests( xctestrun: \"/path/to/mytests.xctestrun\" )","title":"6 Examples"},{"location":"generated/actions/run_tests/#parameters","text":"Key Description Default workspace Path to the workspace file project Path to the project file package_path Path to the Swift Package scheme The project's scheme. Make sure it's marked as Shared device The name of the simulator type you want to run tests on (e.g. 'iPhone 6' or 'iPhone SE (2nd generation) (14.5)') devices Array of devices to run the tests on (e.g. ['iPhone 6', 'iPad Air', 'iPhone SE (2nd generation) (14.5)']) skip_detect_devices Should skip auto detecting of devices if none were specified false ensure_devices_found Should fail if devices not found false force_quit_simulator Enabling this option will automatically killall Simulator processes before the run false reset_simulator Enabling this option will automatically erase the simulator before running the application false disable_slide_to_type Enabling this option will disable the simulator from showing the 'Slide to type' prompt true prelaunch_simulator Enabling this option will launch the first simulator prior to calling any xcodebuild command reinstall_app Enabling this option will automatically uninstall the application before running it false app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip testplan The testplan associated with the scheme that should be used for testing only_test_configurations Array of strings matching test plan configurations to run skip_test_configurations Array of strings matching test plan configurations to skip xctestrun Run tests using the provided .xctestrun file toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a ) clean Should the project be cleaned before building it? false code_coverage Should code coverage be generated? (Xcode 7 and up) address_sanitizer Should the address sanitizer be turned on? thread_sanitizer Should the thread sanitizer be turned on? open_report Should the HTML report be opened when tests are completed? false output_directory The directory in which all reports will be stored * output_style Define how the output should look like. Valid values are: standard, basic, rspec, or raw (disables xcpretty during xcodebuild) output_types Comma separated list of the output types (e.g. html, junit, json-compilation-database) html,junit output_files Comma separated list of the output files, corresponding to the types provided by :output_types (order should match). If specifying an output type of json-compilation-database with :use_clang_report_name enabled, that option will take precedence buildlog_path The directory where to store the raw log * include_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * output_remove_retry_attempts Remove retry attempts from test results table and the JUnit report (if not using xcpretty) false disable_xcpretty DEPRECATED! Use output_style: 'raw' instead - Disable xcpretty formatting of build, similar to output_style='raw' but this will also skip the test results table formatter DEPRECATED! Use 'xcpretty_formatter' instead - A custom xcpretty formatter to use xcpretty_formatter A custom xcpretty formatter to use xcpretty_args Pass in xcpretty additional command line arguments (e.g. '--test --no-color' or '--tap --no-utf') derived_data_path The directory where build products and other derived data will go should_zip_build_products Should zip the derived data build products and place in output path? false output_xctestrun Should provide additional copy of .xctestrun file (settings.xctestrun) and place in output path? false result_bundle_path Custom path for the result bundle, overrides result_bundle result_bundle Should an Xcode result bundle be generated in the output directory false use_clang_report_name Generate the json compilation database with clang naming convention (compile_commands.json) false parallel_testing Optionally override the per-target setting in the scheme for running tests in parallel. Equivalent to -parallel-testing-enabled concurrent_workers Specify the exact number of test runners that will be spawned during parallel testing. Equivalent to -parallel-testing-worker-count max_concurrent_simulators Constrain the number of simulator devices on which to test concurrently. Equivalent to -maximum-concurrent-test-simulator-destinations disable_concurrent_testing Do not run test bundles in parallel on the specified destinations. Testing will occur on each destination serially. Equivalent to -disable-concurrent-testing false skip_build Should debug build be skipped before test build? false test_without_building Test without building, requires a derived data path build_for_testing Build for testing only, does not run tests sdk The SDK that should be used for building the application configuration The configuration to use when building the app. Defaults to 'Release' * xcargs Pass additional arguments to xcodebuild. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app app_name App name to use in slack message and logfile name deployment_target_version Target version of the app being build or tested. Used to filter out simulator version slack_url Create an Incoming WebHook for your Slack group to post results there slack_channel #channel or @username slack_message The message included with each message posted to slack slack_use_webhook_configured_username_and_icon Use webhook's default username and icon settings? (true/false) false slack_username Overrides the webhook's username property if slack_use_webhook_configured_username_and_icon is false fastlane slack_icon_url Overrides the webhook's image property if slack_use_webhook_configured_username_and_icon is false https://fastlane.tools/assets/img/fastlane_icon.png skip_slack Don't publish to slack, even when an URL is given false slack_only_on_failure Only post on Slack if the tests fail false slack_default_payloads Specifies default payloads to include in Slack messages. For more info visit https://docs.fastlane.tools/actions/slack destination Use only if you're a pro, use the other options instead run_rosetta_simulator Adds arch=x86_64 to the xcodebuild 'destination' argument to run simulator in a Rosetta mode false catalyst_platform Platform to build when using a Catalyst enabled app. Valid values are: ios, macos custom_report_file_name DEPRECATED! Use --output_files instead - Sets custom full report file name when generating a single report xcodebuild_command Allows for override of the default xcodebuild command env NSUnbufferedIO=YES xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false number_of_retries The number of times a test can fail 0 fail_build Should this step stop the build if the tests fail? Set this to false if you're using trainer true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/run_tests/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The run_tests action generates the following Lane Variables: SharedValue Description SharedValues::SCAN_DERIVED_DATA_PATH The path to the derived data SharedValues::SCAN_GENERATED_PLIST_FILE The generated plist file SharedValues::SCAN_GENERATED_PLIST_FILES The generated plist files SharedValues::SCAN_GENERATED_XCRESULT_PATH The path to the generated .xcresult SharedValues::SCAN_ZIP_BUILD_PRODUCTS_PATH The path to the zipped build products To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/run_tests/#documentation","text":"To show the documentation in your terminal, run fastlane action run_tests","title":"Documentation"},{"location":"generated/actions/run_tests/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run run_tests To pass parameters, make use of the : symbol, for example fastlane run run_tests parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/run_tests/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/s3/","text":"s3 Generates a plist file and uploads all to AWS S3 Please use the aws_s3 plugin instead. Install using fastlane add_plugin aws_s3 . Upload a new build to Amazon S3 to distribute the build to beta testers. Works for both Ad Hoc and Enterprise signed applications. This step will generate the necessary HTML, plist, and version files for you. It is recommended to not store the AWS access keys in the Fastfile . The uploaded version.json file provides an easy way for apps to poll if a new update is available. s3 Supported platforms Author @joshdholtz 2 Examples s3 s3( # All of these are used to make Shenzhen's `ipa distribute:s3` command access_key: ENV[\"S3_ACCESS_KEY\"], # Required from user. secret_access_key: ENV[\"S3_SECRET_ACCESS_KEY\"], # Required from user. bucket: ENV[\"S3_BUCKET\"], # Required from user. ipa: \"AppName.ipa\", # Optional if you use `ipa` to build dsym: \"AppName.app.dSYM.zip\", # Optional if you use `ipa` to build path: \"v{CFBundleShortVersionString}_b{CFBundleVersion}/\", # This is actually the default. upload_metadata: true, # Upload version.json, plist and HTML. Set to false to skip uploading of these files. version_file_name: \"app_version.json\",# Name of the file to upload to S3. Defaults to \"version.json\" version_template_path: \"path/to/erb\" # Path to an ERB to configure the structure of the version JSON file ) Parameters Key Description Default ipa .ipa file for the build * dsym zipped .dsym package for the build * upload_metadata Upload relevant metadata for this build true plist_template_path plist template path plist_file_name uploaded plist filename html_template_path html erb template path html_file_name uploaded html filename version_template_path version erb template path version_file_name uploaded version filename access_key AWS Access Key ID * secret_access_key AWS Secret Access Key * bucket AWS bucket name * region AWS region (for bucket creation) * path S3 'path'. Values from Info.plist will be substituted for keys wrapped in {} v{CFBundleShortVersionString}_b{CFBundleVersion}/ source Optional source directory e.g. ./build acl Uploaded object permissions e.g public_read (default), private, public_read_write, authenticated_read public_read * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The s3 action generates the following Lane Variables: SharedValue Description SharedValues::S3_IPA_OUTPUT_PATH Direct HTTP link to the uploaded ipa file SharedValues::S3_DSYM_OUTPUT_PATH Direct HTTP link to the uploaded dsym file SharedValues::S3_PLIST_OUTPUT_PATH Direct HTTP link to the uploaded plist file SharedValues::S3_HTML_OUTPUT_PATH Direct HTTP link to the uploaded HTML file SharedValues::S3_VERSION_OUTPUT_PATH Direct HTTP link to the uploaded Version file To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action s3 CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run s3 To pass parameters, make use of the : symbol, for example fastlane run s3 parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"S3"},{"location":"generated/actions/s3/#s3","text":"Generates a plist file and uploads all to AWS S3 Please use the aws_s3 plugin instead. Install using fastlane add_plugin aws_s3 . Upload a new build to Amazon S3 to distribute the build to beta testers. Works for both Ad Hoc and Enterprise signed applications. This step will generate the necessary HTML, plist, and version files for you. It is recommended to not store the AWS access keys in the Fastfile . The uploaded version.json file provides an easy way for apps to poll if a new update is available. s3 Supported platforms Author @joshdholtz","title":"s3"},{"location":"generated/actions/s3/#2-examples","text":"s3 s3( # All of these are used to make Shenzhen's `ipa distribute:s3` command access_key: ENV[\"S3_ACCESS_KEY\"], # Required from user. secret_access_key: ENV[\"S3_SECRET_ACCESS_KEY\"], # Required from user. bucket: ENV[\"S3_BUCKET\"], # Required from user. ipa: \"AppName.ipa\", # Optional if you use `ipa` to build dsym: \"AppName.app.dSYM.zip\", # Optional if you use `ipa` to build path: \"v{CFBundleShortVersionString}_b{CFBundleVersion}/\", # This is actually the default. upload_metadata: true, # Upload version.json, plist and HTML. Set to false to skip uploading of these files. version_file_name: \"app_version.json\",# Name of the file to upload to S3. Defaults to \"version.json\" version_template_path: \"path/to/erb\" # Path to an ERB to configure the structure of the version JSON file )","title":"2 Examples"},{"location":"generated/actions/s3/#parameters","text":"Key Description Default ipa .ipa file for the build * dsym zipped .dsym package for the build * upload_metadata Upload relevant metadata for this build true plist_template_path plist template path plist_file_name uploaded plist filename html_template_path html erb template path html_file_name uploaded html filename version_template_path version erb template path version_file_name uploaded version filename access_key AWS Access Key ID * secret_access_key AWS Secret Access Key * bucket AWS bucket name * region AWS region (for bucket creation) * path S3 'path'. Values from Info.plist will be substituted for keys wrapped in {} v{CFBundleShortVersionString}_b{CFBundleVersion}/ source Optional source directory e.g. ./build acl Uploaded object permissions e.g public_read (default), private, public_read_write, authenticated_read public_read * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/s3/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The s3 action generates the following Lane Variables: SharedValue Description SharedValues::S3_IPA_OUTPUT_PATH Direct HTTP link to the uploaded ipa file SharedValues::S3_DSYM_OUTPUT_PATH Direct HTTP link to the uploaded dsym file SharedValues::S3_PLIST_OUTPUT_PATH Direct HTTP link to the uploaded plist file SharedValues::S3_HTML_OUTPUT_PATH Direct HTTP link to the uploaded HTML file SharedValues::S3_VERSION_OUTPUT_PATH Direct HTTP link to the uploaded Version file To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/s3/#documentation","text":"To show the documentation in your terminal, run fastlane action s3","title":"Documentation"},{"location":"generated/actions/s3/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run s3 To pass parameters, make use of the : symbol, for example fastlane run s3 parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/s3/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/say/","text":"say This action speaks the given text out loud say Supported platforms ios, android, mac Author @KrauseFx 1 Example say(\"I can speak\") Parameters Key Description Default text Text to be spoken out loud (as string or array of strings) mute If say should be muted with text printed out false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action say CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run say To pass parameters, make use of the : symbol, for example fastlane run say parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Say"},{"location":"generated/actions/say/#say","text":"This action speaks the given text out loud say Supported platforms ios, android, mac Author @KrauseFx","title":"say"},{"location":"generated/actions/say/#1-example","text":"say(\"I can speak\")","title":"1 Example"},{"location":"generated/actions/say/#parameters","text":"Key Description Default text Text to be spoken out loud (as string or array of strings) mute If say should be muted with text printed out false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/say/#documentation","text":"To show the documentation in your terminal, run fastlane action say","title":"Documentation"},{"location":"generated/actions/say/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run say To pass parameters, make use of the : symbol, for example fastlane run say parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/say/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/scan/","text":"scan Alias for the run_tests action The easiest way to run tests of your iOS and Mac app scan makes it easy to run tests of your iOS and Mac app on a simulator or connected device. Features \u2022 Usage \u2022 Scanfile What's scan? Before scan xcodebuild \\ -workspace MyApp.xcworkspace \\ -scheme \"MyApp\" \\ -sdk iphonesimulator \\ -destination 'platform=iOS Simulator,name=iPhone 6,OS=8.1' \\ test As the output will look like this /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/Objects-normal/arm64/main.o Example/main.m normal arm64 objective-c com.apple.compilers.llvm.clang.1_0.compiler cd /Users/felixkrause/Developer/fastlane/gym/example/cocoapods export LANG=en_US.US-ASCII export PATH=\"/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode-beta.app/Contents/Developer/usr/bin:/Users/felixkrause/.rvm/gems/ruby-2.2.0/bin:/Users/felixkrause/.rvm/gems/ruby-2.2.0@global/bin:/Users/felixkrause/.rvm/rubies/ruby-2.2.0/bin:/Users/felixkrause/.rvm/bin:/usr/local/heroku/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin\" /Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x objective-c -arch arm64 -fmessage-length=126 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -fcolor-diagnostics -std=gnu99 -fobjc-arc -fmodules -gmodules -fmodules-cache-path=/Users/felixkrause/Library/Developer/Xcode/DerivedData/ModuleCache -fmodules-prune-interval=86400 -fmodules-prune-after=345600 -fbuild-session-file=/Users/felixkrause/Library/Developer/Xcode/DerivedData/ModuleCache/Session.modulevalidation -fmodules-validate-once-per-build-session -Wnon-modular-include-in-framework-module -Werror=non-modular-include-in-framework-module -Wno-trigraphs -fpascal-strings -Os -fno-common -Wno-missing-field-initializers -Wno-missing-prototypes -Werror=return-type -Wunreachable-code -Wno-implicit-atomic-properties -Werror=deprecated-objc-isa-usage -Werror=objc-root-class -Wno-arc-repeated-use-of-weak -Wduplicate-method-match -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wconditional-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wshorten-64-to-32 -Wpointer-sign -Wno-newline-eof -Wno-selector -Wno-strict-selector-match -Wundeclared-selector -Wno-deprecated-implementations -DCOCOAPODS=1 -DNS_BLOCK_ASSERTIONS=1 -DOBJC_OLD_DISPATCH_PROTOTYPES=0 -isysroot /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk -fstrict-aliasing -Wprotocol -Wdeprecated-declarations -miphoneos-version-min=9.0 -g -fvisibility=hidden -Wno-sign-conversion -fembed-bitcode -iquote /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/ExampleProductName-generated-files.hmap -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/ExampleProductName-own-target-headers.hmap -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/ExampleProductName-all-target-headers.hmap -iquote /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/ExampleProductName-project-headers.hmap -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/BuildProductsPath/Release-iphoneos/include -I/Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Pods/Headers/Public -I/Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Pods/Headers/Public/HexColors -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/DerivedSources/arm64 -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/DerivedSources -F/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/BuildProductsPath/Release-iphoneos -isystem /Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Pods/Headers/Public -isystem /Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Pods/Headers/Public/HexColors -MMD -MT dependencies -MF /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/Objects-normal/arm64/main.d --serialize-diagnostics /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/Objects-normal/arm64/main.dia -c /Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Example/main.m -o /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/Objects-normal/arm64/main.o you'll probably want to use something like xcpretty , which will look like this: set -o pipefail && xcodebuild \\ -workspace MyApp.xcworkspace \\ -scheme \"MyApp\" \\ -sdk iphonesimulator \\ -destination 'platform=iOS Simulator,name=iPhone 6,OS=8.1' \\ test \\ | xcpretty \\ -r \"html\" \\ -o \"tests.html\" With scan fastlane scan Why scan ? scan uses the latest APIs and tools to make running tests plain simple and offer a great integration into your existing workflow, like fastlane or Jenkins. scan Features \ud83c\udfc1 Beautiful inline build output while running the tests \ud83d\udea0 Sensible defaults: Automatically detect the project, schemes and more \ud83d\udcca Support for HTML, JSON and JUnit reports \ud83d\udd0e Xcode duplicated your simulators again? scan will handle this for you \ud83d\udd17 Works perfectly with fastlane and other tools \ud83d\ude85 Don't remember any complicated build commands, just scan \ud83d\udd27 Easy and dynamic configuration using parameters and environment variables \ud83d\udce2 Beautiful slack notifications of the test results \ud83d\udcbe Store common build settings in a Scanfile \ud83d\udce4 The raw xcodebuild outputs are stored in ~/Library/Logs/scan \ud83d\udcbb Supports both iOS and Mac applications \ud83d\udc71 Automatically switches to the travis formatter when running on Travis \ud83d\udcd6 Helps you resolve common test errors like simulator not responding scan uses a plain xcodebuild command, therefore keeping 100% compatible with xcodebuild . To generate the nice output, scan uses xcpretty . You can always access the raw output in ~/Library/Logs/scan . Usage fastlane scan That's all you need to run your tests. If you want more control, here are some available parameters: fastlane scan --workspace \"Example.xcworkspace\" --scheme \"AppName\" --device \"iPhone 6\" --clean If you need to use a different Xcode install, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" scan To run scan on multiple devices via fastlane , add this to your Fastfile : scan( workspace: \"Example.xcworkspace\", devices: [\"iPhone 6s\", \"iPad Air\"] ) For a list of all available parameters use fastlane action scan To access the raw xcodebuild output open ~/Library/Logs/scan Scanfile Since you might want to manually trigger the tests but don't want to specify all the parameters every time, you can store your defaults in a so called Scanfile . Run fastlane scan init to create a new configuration file. Example: scheme(\"Example\") devices([\"iPhone 6s\", \"iPad Air\"]) clean(true) output_types(\"html\") Automating the whole process scan works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :test do scan(scheme: \"Example\") end scan Supported platforms ios, mac Author @KrauseFx Returns Outputs hash of results with the following keys: :number_of_tests, :number_of_failures, :number_of_retries, :number_of_tests_excluding_retries, :number_of_failures_excluding_retries 6 Examples run_tests scan # alias for \"run_tests\" run_tests( workspace: \"App.xcworkspace\", scheme: \"MyTests\", clean: false ) # Build For Testing run_tests( derived_data_path: \"my_folder\", build_for_testing: true ) # run tests using derived data from prev. build run_tests( derived_data_path: \"my_folder\", test_without_building: true ) # or run it from an existing xctestrun package run_tests( xctestrun: \"/path/to/mytests.xctestrun\" ) Parameters Key Description Default workspace Path to the workspace file project Path to the project file package_path Path to the Swift Package scheme The project's scheme. Make sure it's marked as Shared device The name of the simulator type you want to run tests on (e.g. 'iPhone 6' or 'iPhone SE (2nd generation) (14.5)') devices Array of devices to run the tests on (e.g. ['iPhone 6', 'iPad Air', 'iPhone SE (2nd generation) (14.5)']) skip_detect_devices Should skip auto detecting of devices if none were specified false ensure_devices_found Should fail if devices not found false force_quit_simulator Enabling this option will automatically killall Simulator processes before the run false reset_simulator Enabling this option will automatically erase the simulator before running the application false disable_slide_to_type Enabling this option will disable the simulator from showing the 'Slide to type' prompt true prelaunch_simulator Enabling this option will launch the first simulator prior to calling any xcodebuild command reinstall_app Enabling this option will automatically uninstall the application before running it false app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip testplan The testplan associated with the scheme that should be used for testing only_test_configurations Array of strings matching test plan configurations to run skip_test_configurations Array of strings matching test plan configurations to skip xctestrun Run tests using the provided .xctestrun file toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a ) clean Should the project be cleaned before building it? false code_coverage Should code coverage be generated? (Xcode 7 and up) address_sanitizer Should the address sanitizer be turned on? thread_sanitizer Should the thread sanitizer be turned on? open_report Should the HTML report be opened when tests are completed? false output_directory The directory in which all reports will be stored * output_style Define how the output should look like. Valid values are: standard, basic, rspec, or raw (disables xcpretty during xcodebuild) output_types Comma separated list of the output types (e.g. html, junit, json-compilation-database) html,junit output_files Comma separated list of the output files, corresponding to the types provided by :output_types (order should match). If specifying an output type of json-compilation-database with :use_clang_report_name enabled, that option will take precedence buildlog_path The directory where to store the raw log * include_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * output_remove_retry_attempts Remove retry attempts from test results table and the JUnit report (if not using xcpretty) false disable_xcpretty DEPRECATED! Use output_style: 'raw' instead - Disable xcpretty formatting of build, similar to output_style='raw' but this will also skip the test results table formatter DEPRECATED! Use 'xcpretty_formatter' instead - A custom xcpretty formatter to use xcpretty_formatter A custom xcpretty formatter to use xcpretty_args Pass in xcpretty additional command line arguments (e.g. '--test --no-color' or '--tap --no-utf') derived_data_path The directory where build products and other derived data will go should_zip_build_products Should zip the derived data build products and place in output path? false output_xctestrun Should provide additional copy of .xctestrun file (settings.xctestrun) and place in output path? false result_bundle_path Custom path for the result bundle, overrides result_bundle result_bundle Should an Xcode result bundle be generated in the output directory false use_clang_report_name Generate the json compilation database with clang naming convention (compile_commands.json) false parallel_testing Optionally override the per-target setting in the scheme for running tests in parallel. Equivalent to -parallel-testing-enabled concurrent_workers Specify the exact number of test runners that will be spawned during parallel testing. Equivalent to -parallel-testing-worker-count max_concurrent_simulators Constrain the number of simulator devices on which to test concurrently. Equivalent to -maximum-concurrent-test-simulator-destinations disable_concurrent_testing Do not run test bundles in parallel on the specified destinations. Testing will occur on each destination serially. Equivalent to -disable-concurrent-testing false skip_build Should debug build be skipped before test build? false test_without_building Test without building, requires a derived data path build_for_testing Build for testing only, does not run tests sdk The SDK that should be used for building the application configuration The configuration to use when building the app. Defaults to 'Release' * xcargs Pass additional arguments to xcodebuild. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app app_name App name to use in slack message and logfile name deployment_target_version Target version of the app being build or tested. Used to filter out simulator version slack_url Create an Incoming WebHook for your Slack group to post results there slack_channel #channel or @username slack_message The message included with each message posted to slack slack_use_webhook_configured_username_and_icon Use webhook's default username and icon settings? (true/false) false slack_username Overrides the webhook's username property if slack_use_webhook_configured_username_and_icon is false fastlane slack_icon_url Overrides the webhook's image property if slack_use_webhook_configured_username_and_icon is false https://fastlane.tools/assets/img/fastlane_icon.png skip_slack Don't publish to slack, even when an URL is given false slack_only_on_failure Only post on Slack if the tests fail false slack_default_payloads Specifies default payloads to include in Slack messages. For more info visit https://docs.fastlane.tools/actions/slack destination Use only if you're a pro, use the other options instead run_rosetta_simulator Adds arch=x86_64 to the xcodebuild 'destination' argument to run simulator in a Rosetta mode false catalyst_platform Platform to build when using a Catalyst enabled app. Valid values are: ios, macos custom_report_file_name DEPRECATED! Use --output_files instead - Sets custom full report file name when generating a single report xcodebuild_command Allows for override of the default xcodebuild command env NSUnbufferedIO=YES xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false number_of_retries The number of times a test can fail 0 fail_build Should this step stop the build if the tests fail? Set this to false if you're using trainer true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The scan action generates the following Lane Variables: SharedValue Description SharedValues::SCAN_DERIVED_DATA_PATH The path to the derived data SharedValues::SCAN_GENERATED_PLIST_FILE The generated plist file SharedValues::SCAN_GENERATED_PLIST_FILES The generated plist files SharedValues::SCAN_GENERATED_XCRESULT_PATH The path to the generated .xcresult SharedValues::SCAN_ZIP_BUILD_PRODUCTS_PATH The path to the zipped build products To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action scan CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run scan To pass parameters, make use of the : symbol, for example fastlane run scan parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Scan"},{"location":"generated/actions/scan/#scan","text":"Alias for the run_tests action","title":"scan"},{"location":"generated/actions/scan/#whats-scan","text":"","title":"What's scan?"},{"location":"generated/actions/scan/#usage","text":"fastlane scan That's all you need to run your tests. If you want more control, here are some available parameters: fastlane scan --workspace \"Example.xcworkspace\" --scheme \"AppName\" --device \"iPhone 6\" --clean If you need to use a different Xcode install, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" scan To run scan on multiple devices via fastlane , add this to your Fastfile : scan( workspace: \"Example.xcworkspace\", devices: [\"iPhone 6s\", \"iPad Air\"] ) For a list of all available parameters use fastlane action scan To access the raw xcodebuild output open ~/Library/Logs/scan","title":"Usage"},{"location":"generated/actions/scan/#scanfile","text":"Since you might want to manually trigger the tests but don't want to specify all the parameters every time, you can store your defaults in a so called Scanfile . Run fastlane scan init to create a new configuration file. Example: scheme(\"Example\") devices([\"iPhone 6s\", \"iPad Air\"]) clean(true) output_types(\"html\")","title":"Scanfile"},{"location":"generated/actions/scan/#automating-the-whole-process","text":"scan works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :test do scan(scheme: \"Example\") end scan Supported platforms ios, mac Author @KrauseFx Returns Outputs hash of results with the following keys: :number_of_tests, :number_of_failures, :number_of_retries, :number_of_tests_excluding_retries, :number_of_failures_excluding_retries","title":"Automating the whole process"},{"location":"generated/actions/scan/#6-examples","text":"run_tests scan # alias for \"run_tests\" run_tests( workspace: \"App.xcworkspace\", scheme: \"MyTests\", clean: false ) # Build For Testing run_tests( derived_data_path: \"my_folder\", build_for_testing: true ) # run tests using derived data from prev. build run_tests( derived_data_path: \"my_folder\", test_without_building: true ) # or run it from an existing xctestrun package run_tests( xctestrun: \"/path/to/mytests.xctestrun\" )","title":"6 Examples"},{"location":"generated/actions/scan/#parameters","text":"Key Description Default workspace Path to the workspace file project Path to the project file package_path Path to the Swift Package scheme The project's scheme. Make sure it's marked as Shared device The name of the simulator type you want to run tests on (e.g. 'iPhone 6' or 'iPhone SE (2nd generation) (14.5)') devices Array of devices to run the tests on (e.g. ['iPhone 6', 'iPad Air', 'iPhone SE (2nd generation) (14.5)']) skip_detect_devices Should skip auto detecting of devices if none were specified false ensure_devices_found Should fail if devices not found false force_quit_simulator Enabling this option will automatically killall Simulator processes before the run false reset_simulator Enabling this option will automatically erase the simulator before running the application false disable_slide_to_type Enabling this option will disable the simulator from showing the 'Slide to type' prompt true prelaunch_simulator Enabling this option will launch the first simulator prior to calling any xcodebuild command reinstall_app Enabling this option will automatically uninstall the application before running it false app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip testplan The testplan associated with the scheme that should be used for testing only_test_configurations Array of strings matching test plan configurations to run skip_test_configurations Array of strings matching test plan configurations to skip xctestrun Run tests using the provided .xctestrun file toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a ) clean Should the project be cleaned before building it? false code_coverage Should code coverage be generated? (Xcode 7 and up) address_sanitizer Should the address sanitizer be turned on? thread_sanitizer Should the thread sanitizer be turned on? open_report Should the HTML report be opened when tests are completed? false output_directory The directory in which all reports will be stored * output_style Define how the output should look like. Valid values are: standard, basic, rspec, or raw (disables xcpretty during xcodebuild) output_types Comma separated list of the output types (e.g. html, junit, json-compilation-database) html,junit output_files Comma separated list of the output files, corresponding to the types provided by :output_types (order should match). If specifying an output type of json-compilation-database with :use_clang_report_name enabled, that option will take precedence buildlog_path The directory where to store the raw log * include_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * output_remove_retry_attempts Remove retry attempts from test results table and the JUnit report (if not using xcpretty) false disable_xcpretty DEPRECATED! Use output_style: 'raw' instead - Disable xcpretty formatting of build, similar to output_style='raw' but this will also skip the test results table formatter DEPRECATED! Use 'xcpretty_formatter' instead - A custom xcpretty formatter to use xcpretty_formatter A custom xcpretty formatter to use xcpretty_args Pass in xcpretty additional command line arguments (e.g. '--test --no-color' or '--tap --no-utf') derived_data_path The directory where build products and other derived data will go should_zip_build_products Should zip the derived data build products and place in output path? false output_xctestrun Should provide additional copy of .xctestrun file (settings.xctestrun) and place in output path? false result_bundle_path Custom path for the result bundle, overrides result_bundle result_bundle Should an Xcode result bundle be generated in the output directory false use_clang_report_name Generate the json compilation database with clang naming convention (compile_commands.json) false parallel_testing Optionally override the per-target setting in the scheme for running tests in parallel. Equivalent to -parallel-testing-enabled concurrent_workers Specify the exact number of test runners that will be spawned during parallel testing. Equivalent to -parallel-testing-worker-count max_concurrent_simulators Constrain the number of simulator devices on which to test concurrently. Equivalent to -maximum-concurrent-test-simulator-destinations disable_concurrent_testing Do not run test bundles in parallel on the specified destinations. Testing will occur on each destination serially. Equivalent to -disable-concurrent-testing false skip_build Should debug build be skipped before test build? false test_without_building Test without building, requires a derived data path build_for_testing Build for testing only, does not run tests sdk The SDK that should be used for building the application configuration The configuration to use when building the app. Defaults to 'Release' * xcargs Pass additional arguments to xcodebuild. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app app_name App name to use in slack message and logfile name deployment_target_version Target version of the app being build or tested. Used to filter out simulator version slack_url Create an Incoming WebHook for your Slack group to post results there slack_channel #channel or @username slack_message The message included with each message posted to slack slack_use_webhook_configured_username_and_icon Use webhook's default username and icon settings? (true/false) false slack_username Overrides the webhook's username property if slack_use_webhook_configured_username_and_icon is false fastlane slack_icon_url Overrides the webhook's image property if slack_use_webhook_configured_username_and_icon is false https://fastlane.tools/assets/img/fastlane_icon.png skip_slack Don't publish to slack, even when an URL is given false slack_only_on_failure Only post on Slack if the tests fail false slack_default_payloads Specifies default payloads to include in Slack messages. For more info visit https://docs.fastlane.tools/actions/slack destination Use only if you're a pro, use the other options instead run_rosetta_simulator Adds arch=x86_64 to the xcodebuild 'destination' argument to run simulator in a Rosetta mode false catalyst_platform Platform to build when using a Catalyst enabled app. Valid values are: ios, macos custom_report_file_name DEPRECATED! Use --output_files instead - Sets custom full report file name when generating a single report xcodebuild_command Allows for override of the default xcodebuild command env NSUnbufferedIO=YES xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false number_of_retries The number of times a test can fail 0 fail_build Should this step stop the build if the tests fail? Set this to false if you're using trainer true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/scan/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The scan action generates the following Lane Variables: SharedValue Description SharedValues::SCAN_DERIVED_DATA_PATH The path to the derived data SharedValues::SCAN_GENERATED_PLIST_FILE The generated plist file SharedValues::SCAN_GENERATED_PLIST_FILES The generated plist files SharedValues::SCAN_GENERATED_XCRESULT_PATH The path to the generated .xcresult SharedValues::SCAN_ZIP_BUILD_PRODUCTS_PATH The path to the zipped build products To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/scan/#documentation","text":"To show the documentation in your terminal, run fastlane action scan","title":"Documentation"},{"location":"generated/actions/scan/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run scan To pass parameters, make use of the : symbol, for example fastlane run scan parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/scan/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/scp/","text":"scp Transfer files via SCP scp Supported platforms ios, android, mac Author @hjanuschka 2 Examples scp( host: \"dev.januschka.com\", username: \"root\", upload: { src: \"/root/dir1\", dst: \"/tmp/new_dir\" } ) scp( host: \"dev.januschka.com\", username: \"root\", download: { src: \"/root/dir1\", dst: \"/tmp/new_dir\" } ) Parameters Key Description Default username Username password Password host Hostname port Port 22 upload Upload download Download * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action scp CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run scp To pass parameters, make use of the : symbol, for example fastlane run scp parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Scp"},{"location":"generated/actions/scp/#scp","text":"Transfer files via SCP scp Supported platforms ios, android, mac Author @hjanuschka","title":"scp"},{"location":"generated/actions/scp/#2-examples","text":"scp( host: \"dev.januschka.com\", username: \"root\", upload: { src: \"/root/dir1\", dst: \"/tmp/new_dir\" } ) scp( host: \"dev.januschka.com\", username: \"root\", download: { src: \"/root/dir1\", dst: \"/tmp/new_dir\" } )","title":"2 Examples"},{"location":"generated/actions/scp/#parameters","text":"Key Description Default username Username password Password host Hostname port Port 22 upload Upload download Download * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/scp/#documentation","text":"To show the documentation in your terminal, run fastlane action scp","title":"Documentation"},{"location":"generated/actions/scp/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run scp To pass parameters, make use of the : symbol, for example fastlane run scp parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/scp/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/screengrab/","text":"screengrab Alias for the capture_android_screenshots action Automated localized screenshots of your Android app on every device screengrab generates localized screenshots of your Android app for different device types and languages for Google Play and can be uploaded using supply . Why should I automate this process? Create hundreds of screenshots in multiple languages on emulators or real devices, saving you hours Easily verify that localizations fit into labels on all screen dimensions to find UI mistakes before you ship You only need to configure it once for anyone on your team to run it Keep your screenshots perfectly up-to-date with every app update. Your customers deserve it! Fully integrates with fastlane and supply Installation Install the gem gem install fastlane Gradle dependency androidTestImplementation 'tools.fastlane:screengrab:x.x.x' The latest version is As of screengrab version 2.0.0, all Android test dependencies are AndroidX dependencies. This means a device with API 18+, Android 4.3 or greater is required. If you wish to capture screenshots with an older Android OS, then you must use a 1.x.x version. Configuring your Manifest Permissions Ensure that the following permissions exist in your src/debug/AndroidManifest.xml Configuring your UI Tests for Screenshots Add LocaleTestRule to your tests class to handle automatic switching of locales. If you're using Java use: java @ClassRule public static final LocaleTestRule localeTestRule = new LocaleTestRule(); If you're using Kotlin use: kotlin @Rule @JvmField val localeTestRule = LocaleTestRule() The @JvmField annotation is important. It won't work like this: kotlin companion object { @get:ClassRule val localeTestRule = LocaleTestRule() } To capture screenshots, add the following to your tests Screengrab.screenshot(\"name_of_screenshot_here\"); on the appropriate screens Generating Screenshots with screengrab Then, before running fastlane screengrab you'll need a debug and test apk You can create your APKs manually with ./gradlew assembleDebug assembleAndroidTest You can also create a lane and use build_android_app : ruby desc \"Build debug and test APK for screenshots\" lane :build_and_screengrab do build_android_app( task: 'assemble', build_type: 'Debug' ) build_android_app( task: 'assemble', build_type: 'AndroidTest' ) screengrab() end - Once complete run fastlane screengrab in your app project directory to generate screenshots - You will be prompted to provide any required parameters which are not in your Screengrabfile or provided as command line arguments - Your screenshots will be saved to fastlane/metadata/android in the directory where you ran screengrab Improved screenshot capture with UI Automator As of screengrab 0.5.0, you can specify different strategies to control the way screengrab captures screenshots. The newer strategy delegates to UI Automator which fixes a number of problems compared to the original strategy: Shadows/elevation are correctly captured for Material UI Multi-window situations are correctly captured (dialogs, etc.) Works on Android N UI Automator is the default strategy. However, UI Automator requires a device with API level >= 18 . If you need to grab screenshots on an older Android version, use the latest 1.x.x version of this library and set the DecorView ScreenshotStrategy. Screengrab.setDefaultScreenshotStrategy(new DecorViewScreenshotStrategy()); Improved screenshot capture with Falcon As of screengrab 1.2.0, you can specify a new strategy to delegate to Falcon . Falcon may work better than UI Automator in some situations and also provides similar benefits as UI Automator: Multi-window situations are correctly captured (dialogs, etc.) Works on Android N Falcon requires a device with API level >= 10 . To enable it for all screenshots by default, make the following call before your tests run: Screengrab.setDefaultScreenshotStrategy(new FalconScreenshotStrategy(activityRule.getActivity())); Advanced Screengrabfile Configuration Running fastlane screengrab init generated a Screengrabfile which can store all of your configuration options. Since most values will not change often for your project, it is recommended to store them there. The Screengrabfile is written in Ruby, so you may find it helpful to use an editor that highlights Ruby syntax to modify this file. # remove the leading '#' to uncomment lines # app_package_name('your.app.package') # use_tests_in_packages(['your.screenshot.tests.package']) # app_apk_path('path/to/your/app.apk') # tests_apk_path('path/to/your/tests.apk') locales(['en-US', 'fr-FR', 'it-IT']) # clear all previously generated screenshots in your local output directory before creating new ones clear_previous_screenshots(true) For more information about all available options run fastlane action screengrab Tips UI Tests Check out Testing UI for a Single App for an introduction to using Espresso for UI testing. Example UI Test Class (Using JUnit4) Java: @RunWith(JUnit4.class) public class JUnit4StyleTests { @ClassRule public static final LocaleTestRule localeTestRule = new LocaleTestRule(); @Rule public ActivityScenarioRule activityRule = new ActivityScenarioRule<>(MainActivity.class); @Test public void testTakeScreenshot() { Screengrab.screenshot(\"before_button_click\"); onView(withId(R.id.fab)).perform(click()); Screengrab.screenshot(\"after_button_click\"); } } Kotlin: @RunWith(JUnit4.class) class JUnit4StyleTests { @get:Rule var activityRule = ActivityScenarioRule(MainActivity::class.java) @Rule @JvmField val localeTestRule = LocaleTestRule() @Test fun testTakeScreenshot() { Screengrab.screenshot(\"before_button_click\") onView(withId(R.id.fab)).perform(click()) Screengrab.screenshot(\"after_button_click\") } } There is an example project showing how to use JUnit 3 or 4 and Espresso with the screengrab Java library to capture screenshots during a UI test run. Using JUnit 4 is preferable because of its ability to perform actions before and after the entire test class is run. This means you will change the device's locale far fewer times when compared with JUnit 3 running those commands before and after each test method. When using JUnit 3 you'll need to add a bit more code: Use LocaleUtil.changeDeviceLocaleTo(LocaleUtil.getTestLocale()); in setUp() Use LocaleUtil.changeDeviceLocaleTo(LocaleUtil.getEndingLocale()); in tearDown() Use Screengrab.screenshot(\"name_of_screenshot_here\"); to capture screenshots at the appropriate points in your tests Clean Status Bar screengrab can clean your status bar to make your screenshots even more beautiful. It is simply a wrapper that allows configuring SystemUI DemoMode in your code. Note: the clean status bar feature is only supported on devices with API level >= 23 . You can enable and disable the clean status bar at any moment during your tests. In most cases you probably want to do this in the @BeforeClass and @AfterClass methods. @BeforeClass public static void beforeAll() { CleanStatusBar.enableWithDefaults(); } @AfterClass public static void afterAll() { CleanStatusBar.disable(); } Have a look at the methods of the CleanStatusBar class to customize the status bar even more. You could for example show the Bluetooth icon and the LTE text. new CleanStatusBar() .setBluetoothState(BluetoothState.DISCONNECTED) .setMobileNetworkDataType(MobileDataType.LTE) .enable(); Advanced screengrab Launch Arguments You can provide additional arguments to your test cases on launch. These strings will be available in your tests through InstrumentationRegistry.getArguments() . screengrab( launch_arguments: [ \"username hjanuschka\", \"build_number 201\" ] ) Bundle extras = InstrumentationRegistry.getArguments(); String peerID = null; if (extras != null) { if (extras.containsKey(\"username\")) { username = extras.getString(\"username\"); System.out.println(\"Username: \" + username); } else { System.out.println(\"No username in extras\"); } } else { System.out.println(\"No extras\"); } Detecting screengrab at runtime For some apps, it is helpful to know when screengrab is running so that you can display specific data for your screenshots. For iOS fastlane users, this is much like \"FASTLANE_SNAPSHOT\". In order to do this, you'll need to have at least two product flavors of your app. Add two product flavors to the app-level build.gradle file: android { ... flavorDimensions \"mode\" productFlavors { screengrab { dimension \"mode\" } regular { dimension \"mode\" } } ... } Check for the existence of that flavor (i.e screengrab) in your app code as follows in order to use mock data or customize data for screenshots: if (BuildConfig.FLAVOR == \"screengrab\") { System.out.println(\"screengrab is running!\"); } When running screengrab , do the following to build the flavor you want as well as the test apk. Note that you use \"assembleFlavor_name\" where Flavor_name is the flavor name, capitalized (i.e. Screengrab). ./gradlew assembleScreengrab assembleAndroidTest Run screengrab : fastlane screengrab screengrab will ask you to select the debug and test apps (which you can then add to your Screengrabfile to skip this step later). The debug apk should be somewhere like this: app/build/outputs/apk/screengrab/debug/app-screengrab-debug.apk The test apk should be somewhere like this: app/build/outputs/apk/androidTest/screengrab/debug/app-screengrab-debug-androidTest.apk Sit back and enjoy your new screenshots! Note: while this could also be done by creating a new build variant (i.e. debug, release and creating a new one called screengrab), Android only allows one build type to be tested which defaults to debug. That's why we use product flavors. screengrab Supported platforms android Author @asfalcone, @i2amsam, @mfurtak 3 Examples capture_android_screenshots screengrab # alias for \"capture_android_screenshots\" capture_android_screenshots( locales: [\"en-US\", \"fr-FR\", \"ja-JP\"], clear_previous_screenshots: true, app_apk_path: \"build/outputs/apk/example-debug.apk\", tests_apk_path: \"build/outputs/apk/example-debug-androidTest-unaligned.apk\" ) Parameters Key Description Default android_home Path to the root of your Android SDK installation, e.g. ~/tools/android-sdk-macosx * build_tools_version DEPRECATED! The Android build tools version to use, e.g. '23.0.2' locales A list of locales which should be used [\"en-US\"] clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running screengrab false output_directory The directory where to store the screenshots fastlane/metadata/android skip_open_summary Don't open the summary after running screengrab * app_package_name The package name of the app under test (e.g. com.yourcompany.yourapp) * tests_package_name The package name of the tests bundle (e.g. com.yourcompany.yourapp.test) use_tests_in_packages Only run tests in these Java packages use_tests_in_classes Only run tests in these Java classes launch_arguments Additional launch arguments test_instrumentation_runner The fully qualified class name of your test instrumentation runner androidx.test.runner.AndroidJUnitRunner ending_locale DEPRECATED! Return the device to this locale after running tests en-US use_adb_root DEPRECATED! Restarts the adb daemon using adb root to allow access to screenshots directories on device. Use if getting 'Permission denied' errors false app_apk_path The path to the APK for the app under test * tests_apk_path The path to the APK for the tests bundle * specific_device Use the device or emulator with the given serial number or qualifier device_type Type of device used for screenshots. Matches Google Play Types (phone, sevenInch, tenInch, tv, wear) phone exit_on_test_failure Whether or not to exit Screengrab on test failure. Exiting on failure will not copy screenshots to local machine nor open screenshots summary true reinstall_app Enabling this option will automatically uninstall the application before running it false use_timestamp_suffix Add timestamp suffix to screenshot filename true adb_host Configure the host used by adb to connect, allows running on remote devices farm * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The screengrab action generates the following Lane Variables: SharedValue Description SharedValues::SCREENGRAB_OUTPUT_DIRECTORY The path to the output directory To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action screengrab CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run screengrab To pass parameters, make use of the : symbol, for example fastlane run screengrab parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Screengrab"},{"location":"generated/actions/screengrab/#screengrab","text":"Alias for the capture_android_screenshots action","title":"screengrab"},{"location":"generated/actions/screengrab/#installation","text":"Install the gem gem install fastlane","title":"Installation"},{"location":"generated/actions/screengrab/#generating-screenshots-with-screengrab","text":"Then, before running fastlane screengrab you'll need a debug and test apk You can create your APKs manually with ./gradlew assembleDebug assembleAndroidTest You can also create a lane and use build_android_app : ruby desc \"Build debug and test APK for screenshots\" lane :build_and_screengrab do build_android_app( task: 'assemble', build_type: 'Debug' ) build_android_app( task: 'assemble', build_type: 'AndroidTest' ) screengrab() end - Once complete run fastlane screengrab in your app project directory to generate screenshots - You will be prompted to provide any required parameters which are not in your Screengrabfile or provided as command line arguments - Your screenshots will be saved to fastlane/metadata/android in the directory where you ran screengrab","title":"Generating Screenshots with screengrab"},{"location":"generated/actions/screengrab/#improved-screenshot-capture-with-ui-automator","text":"As of screengrab 0.5.0, you can specify different strategies to control the way screengrab captures screenshots. The newer strategy delegates to UI Automator which fixes a number of problems compared to the original strategy: Shadows/elevation are correctly captured for Material UI Multi-window situations are correctly captured (dialogs, etc.) Works on Android N UI Automator is the default strategy. However, UI Automator requires a device with API level >= 18 . If you need to grab screenshots on an older Android version, use the latest 1.x.x version of this library and set the DecorView ScreenshotStrategy. Screengrab.setDefaultScreenshotStrategy(new DecorViewScreenshotStrategy());","title":"Improved screenshot capture with UI Automator"},{"location":"generated/actions/screengrab/#improved-screenshot-capture-with-falcon","text":"As of screengrab 1.2.0, you can specify a new strategy to delegate to Falcon . Falcon may work better than UI Automator in some situations and also provides similar benefits as UI Automator: Multi-window situations are correctly captured (dialogs, etc.) Works on Android N Falcon requires a device with API level >= 10 . To enable it for all screenshots by default, make the following call before your tests run: Screengrab.setDefaultScreenshotStrategy(new FalconScreenshotStrategy(activityRule.getActivity()));","title":"Improved screenshot capture with Falcon"},{"location":"generated/actions/screengrab/#advanced-screengrabfile-configuration","text":"Running fastlane screengrab init generated a Screengrabfile which can store all of your configuration options. Since most values will not change often for your project, it is recommended to store them there. The Screengrabfile is written in Ruby, so you may find it helpful to use an editor that highlights Ruby syntax to modify this file. # remove the leading '#' to uncomment lines # app_package_name('your.app.package') # use_tests_in_packages(['your.screenshot.tests.package']) # app_apk_path('path/to/your/app.apk') # tests_apk_path('path/to/your/tests.apk') locales(['en-US', 'fr-FR', 'it-IT']) # clear all previously generated screenshots in your local output directory before creating new ones clear_previous_screenshots(true) For more information about all available options run fastlane action screengrab","title":"Advanced Screengrabfile Configuration"},{"location":"generated/actions/screengrab/#tips","text":"","title":"Tips"},{"location":"generated/actions/screengrab/#ui-tests","text":"Check out Testing UI for a Single App for an introduction to using Espresso for UI testing.","title":"UI Tests"},{"location":"generated/actions/screengrab/#clean-status-bar","text":"screengrab can clean your status bar to make your screenshots even more beautiful. It is simply a wrapper that allows configuring SystemUI DemoMode in your code. Note: the clean status bar feature is only supported on devices with API level >= 23 . You can enable and disable the clean status bar at any moment during your tests. In most cases you probably want to do this in the @BeforeClass and @AfterClass methods. @BeforeClass public static void beforeAll() { CleanStatusBar.enableWithDefaults(); } @AfterClass public static void afterAll() { CleanStatusBar.disable(); } Have a look at the methods of the CleanStatusBar class to customize the status bar even more. You could for example show the Bluetooth icon and the LTE text. new CleanStatusBar() .setBluetoothState(BluetoothState.DISCONNECTED) .setMobileNetworkDataType(MobileDataType.LTE) .enable();","title":"Clean Status Bar"},{"location":"generated/actions/screengrab/#advanced-screengrab","text":"Launch Arguments You can provide additional arguments to your test cases on launch. These strings will be available in your tests through InstrumentationRegistry.getArguments() . screengrab( launch_arguments: [ \"username hjanuschka\", \"build_number 201\" ] ) Bundle extras = InstrumentationRegistry.getArguments(); String peerID = null; if (extras != null) { if (extras.containsKey(\"username\")) { username = extras.getString(\"username\"); System.out.println(\"Username: \" + username); } else { System.out.println(\"No username in extras\"); } } else { System.out.println(\"No extras\"); } Detecting screengrab at runtime For some apps, it is helpful to know when screengrab is running so that you can display specific data for your screenshots. For iOS fastlane users, this is much like \"FASTLANE_SNAPSHOT\". In order to do this, you'll need to have at least two product flavors of your app. Add two product flavors to the app-level build.gradle file: android { ... flavorDimensions \"mode\" productFlavors { screengrab { dimension \"mode\" } regular { dimension \"mode\" } } ... } Check for the existence of that flavor (i.e screengrab) in your app code as follows in order to use mock data or customize data for screenshots: if (BuildConfig.FLAVOR == \"screengrab\") { System.out.println(\"screengrab is running!\"); } When running screengrab , do the following to build the flavor you want as well as the test apk. Note that you use \"assembleFlavor_name\" where Flavor_name is the flavor name, capitalized (i.e. Screengrab). ./gradlew assembleScreengrab assembleAndroidTest Run screengrab : fastlane screengrab screengrab will ask you to select the debug and test apps (which you can then add to your Screengrabfile to skip this step later). The debug apk should be somewhere like this: app/build/outputs/apk/screengrab/debug/app-screengrab-debug.apk The test apk should be somewhere like this: app/build/outputs/apk/androidTest/screengrab/debug/app-screengrab-debug-androidTest.apk Sit back and enjoy your new screenshots! Note: while this could also be done by creating a new build variant (i.e. debug, release and creating a new one called screengrab), Android only allows one build type to be tested which defaults to debug. That's why we use product flavors. screengrab Supported platforms android Author @asfalcone, @i2amsam, @mfurtak","title":"Advanced screengrab"},{"location":"generated/actions/screengrab/#3-examples","text":"capture_android_screenshots screengrab # alias for \"capture_android_screenshots\" capture_android_screenshots( locales: [\"en-US\", \"fr-FR\", \"ja-JP\"], clear_previous_screenshots: true, app_apk_path: \"build/outputs/apk/example-debug.apk\", tests_apk_path: \"build/outputs/apk/example-debug-androidTest-unaligned.apk\" )","title":"3 Examples"},{"location":"generated/actions/screengrab/#parameters","text":"Key Description Default android_home Path to the root of your Android SDK installation, e.g. ~/tools/android-sdk-macosx * build_tools_version DEPRECATED! The Android build tools version to use, e.g. '23.0.2' locales A list of locales which should be used [\"en-US\"] clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running screengrab false output_directory The directory where to store the screenshots fastlane/metadata/android skip_open_summary Don't open the summary after running screengrab * app_package_name The package name of the app under test (e.g. com.yourcompany.yourapp) * tests_package_name The package name of the tests bundle (e.g. com.yourcompany.yourapp.test) use_tests_in_packages Only run tests in these Java packages use_tests_in_classes Only run tests in these Java classes launch_arguments Additional launch arguments test_instrumentation_runner The fully qualified class name of your test instrumentation runner androidx.test.runner.AndroidJUnitRunner ending_locale DEPRECATED! Return the device to this locale after running tests en-US use_adb_root DEPRECATED! Restarts the adb daemon using adb root to allow access to screenshots directories on device. Use if getting 'Permission denied' errors false app_apk_path The path to the APK for the app under test * tests_apk_path The path to the APK for the tests bundle * specific_device Use the device or emulator with the given serial number or qualifier device_type Type of device used for screenshots. Matches Google Play Types (phone, sevenInch, tenInch, tv, wear) phone exit_on_test_failure Whether or not to exit Screengrab on test failure. Exiting on failure will not copy screenshots to local machine nor open screenshots summary true reinstall_app Enabling this option will automatically uninstall the application before running it false use_timestamp_suffix Add timestamp suffix to screenshot filename true adb_host Configure the host used by adb to connect, allows running on remote devices farm * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/screengrab/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The screengrab action generates the following Lane Variables: SharedValue Description SharedValues::SCREENGRAB_OUTPUT_DIRECTORY The path to the output directory To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/screengrab/#documentation","text":"To show the documentation in your terminal, run fastlane action screengrab","title":"Documentation"},{"location":"generated/actions/screengrab/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run screengrab To pass parameters, make use of the : symbol, for example fastlane run screengrab parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/screengrab/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/set_build_number_repository/","text":"set_build_number_repository Set the build number from the current repository This action will set the build number according to what the SCM HEAD reports. Currently supported SCMs are svn (uses root revision), git-svn (uses svn revision) and git (uses short hash) and mercurial (uses short hash or revision number). There is an option, :use_hg_revision_number , which allows to use mercurial revision number instead of hash. set_build_number_repository Supported platforms ios, mac Author @pbrooks, @armadsen, @AndrewSB 2 Examples set_build_number_repository set_build_number_repository( xcodeproj: \"./path/to/MyApp.xcodeproj\" ) Parameters Key Description Default use_hg_revision_number Use hg revision number instead of hash (ignored for non-hg repos) false xcodeproj explicitly specify which xcodeproj to use * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action set_build_number_repository CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_build_number_repository To pass parameters, make use of the : symbol, for example fastlane run set_build_number_repository parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Set build number repository"},{"location":"generated/actions/set_build_number_repository/#set_build_number_repository","text":"Set the build number from the current repository This action will set the build number according to what the SCM HEAD reports. Currently supported SCMs are svn (uses root revision), git-svn (uses svn revision) and git (uses short hash) and mercurial (uses short hash or revision number). There is an option, :use_hg_revision_number , which allows to use mercurial revision number instead of hash. set_build_number_repository Supported platforms ios, mac Author @pbrooks, @armadsen, @AndrewSB","title":"set_build_number_repository"},{"location":"generated/actions/set_build_number_repository/#2-examples","text":"set_build_number_repository set_build_number_repository( xcodeproj: \"./path/to/MyApp.xcodeproj\" )","title":"2 Examples"},{"location":"generated/actions/set_build_number_repository/#parameters","text":"Key Description Default use_hg_revision_number Use hg revision number instead of hash (ignored for non-hg repos) false xcodeproj explicitly specify which xcodeproj to use * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/set_build_number_repository/#documentation","text":"To show the documentation in your terminal, run fastlane action set_build_number_repository","title":"Documentation"},{"location":"generated/actions/set_build_number_repository/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_build_number_repository To pass parameters, make use of the : symbol, for example fastlane run set_build_number_repository parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/set_build_number_repository/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/set_changelog/","text":"set_changelog Set the changelog for all languages on App Store Connect This is useful if you have only one changelog for all languages. You can store the changelog in ./fastlane/changelog.txt and it will automatically get loaded from there. This integration is useful if you support e.g. 10 languages and want to use the same \"What's new\"-text for all languages. Defining the version is optional. fastlane will try to automatically detect it if you don't provide one. set_changelog Supported platforms ios, mac Author @KrauseFx 2 Examples set_changelog(changelog: \"Changelog for all Languages\") set_changelog(app_identifier: \"com.krausefx.app\", version: \"1.0\", changelog: \"Changelog for all Languages\") Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * app_identifier The bundle identifier of your app * username Your Apple ID Username * version The version number to create/update changelog Changelog text that should be uploaded to App Store Connect team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * platform The platform of the app (ios, appletvos, mac) ios * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action set_changelog CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_changelog To pass parameters, make use of the : symbol, for example fastlane run set_changelog parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Set changelog"},{"location":"generated/actions/set_changelog/#set_changelog","text":"Set the changelog for all languages on App Store Connect This is useful if you have only one changelog for all languages. You can store the changelog in ./fastlane/changelog.txt and it will automatically get loaded from there. This integration is useful if you support e.g. 10 languages and want to use the same \"What's new\"-text for all languages. Defining the version is optional. fastlane will try to automatically detect it if you don't provide one. set_changelog Supported platforms ios, mac Author @KrauseFx","title":"set_changelog"},{"location":"generated/actions/set_changelog/#2-examples","text":"set_changelog(changelog: \"Changelog for all Languages\") set_changelog(app_identifier: \"com.krausefx.app\", version: \"1.0\", changelog: \"Changelog for all Languages\")","title":"2 Examples"},{"location":"generated/actions/set_changelog/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * app_identifier The bundle identifier of your app * username Your Apple ID Username * version The version number to create/update changelog Changelog text that should be uploaded to App Store Connect team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * platform The platform of the app (ios, appletvos, mac) ios * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/set_changelog/#documentation","text":"To show the documentation in your terminal, run fastlane action set_changelog","title":"Documentation"},{"location":"generated/actions/set_changelog/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_changelog To pass parameters, make use of the : symbol, for example fastlane run set_changelog parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/set_changelog/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/set_github_release/","text":"set_github_release This will create a new release on GitHub and upload assets for it Creates a new release on GitHub. You must provide your GitHub Personal token (get one from https://github.com/settings/tokens/new ), the repository name and tag name. By default, that's master . If the tag doesn't exist, one will be created on the commit or branch passed in as commitish. Out parameters provide the release's id, which can be used for later editing and the release HTML link to GitHub. You can also specify a list of assets to be uploaded to the release with the :upload_assets parameter. set_github_release Supported platforms ios, android, mac Author @czechboy0, @tommeier Returns A hash containing all relevant information of this release Access things like 'html_url', 'tag_name', 'name', 'body' 1 Example github_release = set_github_release( repository_name: \"fastlane/fastlane\", api_token: ENV[\"GITHUB_TOKEN\"], name: \"Super New actions\", tag_name: \"v1.22.0\", description: (File.read(\"changelog\") rescue \"No changelog provided\"), commitish: \"master\", upload_assets: [\"example_integration.ipa\", \"./pkg/built.gem\"] ) Parameters Key Description Default repository_name The path to your repo, e.g. 'fastlane/fastlane' server_url The server url. e.g. 'https://your.internal.github.host/api/v3' (Default: 'https://api.github.com') https://api.github.com api_token Personal API Token for GitHub - generate one at https://github.com/settings/tokens * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable tag_name Pass in the tag name name Name of this release commitish Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Unused if the Git tag already exists. Default: the repository's default branch (usually master) description Description of this release * is_draft Whether the release should be marked as draft false is_prerelease Whether the release should be marked as prerelease false is_generate_release_notes Whether the name and body of this release should be generated automatically false upload_assets Path to assets to be uploaded with the release * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The set_github_release action generates the following Lane Variables: SharedValue Description SharedValues::SET_GITHUB_RELEASE_HTML_LINK Link to your created release SharedValues::SET_GITHUB_RELEASE_RELEASE_ID Release id (useful for subsequent editing) SharedValues::SET_GITHUB_RELEASE_JSON The whole release JSON object To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action set_github_release CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_github_release To pass parameters, make use of the : symbol, for example fastlane run set_github_release parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Set github release"},{"location":"generated/actions/set_github_release/#set_github_release","text":"This will create a new release on GitHub and upload assets for it Creates a new release on GitHub. You must provide your GitHub Personal token (get one from https://github.com/settings/tokens/new ), the repository name and tag name. By default, that's master . If the tag doesn't exist, one will be created on the commit or branch passed in as commitish. Out parameters provide the release's id, which can be used for later editing and the release HTML link to GitHub. You can also specify a list of assets to be uploaded to the release with the :upload_assets parameter. set_github_release Supported platforms ios, android, mac Author @czechboy0, @tommeier Returns A hash containing all relevant information of this release Access things like 'html_url', 'tag_name', 'name', 'body'","title":"set_github_release"},{"location":"generated/actions/set_github_release/#1-example","text":"github_release = set_github_release( repository_name: \"fastlane/fastlane\", api_token: ENV[\"GITHUB_TOKEN\"], name: \"Super New actions\", tag_name: \"v1.22.0\", description: (File.read(\"changelog\") rescue \"No changelog provided\"), commitish: \"master\", upload_assets: [\"example_integration.ipa\", \"./pkg/built.gem\"] )","title":"1 Example"},{"location":"generated/actions/set_github_release/#parameters","text":"Key Description Default repository_name The path to your repo, e.g. 'fastlane/fastlane' server_url The server url. e.g. 'https://your.internal.github.host/api/v3' (Default: 'https://api.github.com') https://api.github.com api_token Personal API Token for GitHub - generate one at https://github.com/settings/tokens * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable tag_name Pass in the tag name name Name of this release commitish Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Unused if the Git tag already exists. Default: the repository's default branch (usually master) description Description of this release * is_draft Whether the release should be marked as draft false is_prerelease Whether the release should be marked as prerelease false is_generate_release_notes Whether the name and body of this release should be generated automatically false upload_assets Path to assets to be uploaded with the release * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/set_github_release/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The set_github_release action generates the following Lane Variables: SharedValue Description SharedValues::SET_GITHUB_RELEASE_HTML_LINK Link to your created release SharedValues::SET_GITHUB_RELEASE_RELEASE_ID Release id (useful for subsequent editing) SharedValues::SET_GITHUB_RELEASE_JSON The whole release JSON object To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/set_github_release/#documentation","text":"To show the documentation in your terminal, run fastlane action set_github_release","title":"Documentation"},{"location":"generated/actions/set_github_release/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_github_release To pass parameters, make use of the : symbol, for example fastlane run set_github_release parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/set_github_release/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/set_info_plist_value/","text":"set_info_plist_value Sets value to Info.plist of your project as native Ruby data structures set_info_plist_value Supported platforms ios, mac Author @kohtenko, @uwehollatz 2 Examples set_info_plist_value(path: \"./Info.plist\", key: \"CFBundleIdentifier\", value: \"com.krausefx.app.beta\") set_info_plist_value(path: \"./MyApp-Info.plist\", key: \"NSAppTransportSecurity\", subkey: \"NSAllowsArbitraryLoads\", value: true, output_file_name: \"./Info.plist\") Parameters Key Description Default key Name of key in plist subkey Name of subkey in plist value Value to setup path Path to plist file you want to update output_file_name Path to the output file you want to generate * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action set_info_plist_value CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_info_plist_value To pass parameters, make use of the : symbol, for example fastlane run set_info_plist_value parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Set info plist value"},{"location":"generated/actions/set_info_plist_value/#set_info_plist_value","text":"Sets value to Info.plist of your project as native Ruby data structures set_info_plist_value Supported platforms ios, mac Author @kohtenko, @uwehollatz","title":"set_info_plist_value"},{"location":"generated/actions/set_info_plist_value/#2-examples","text":"set_info_plist_value(path: \"./Info.plist\", key: \"CFBundleIdentifier\", value: \"com.krausefx.app.beta\") set_info_plist_value(path: \"./MyApp-Info.plist\", key: \"NSAppTransportSecurity\", subkey: \"NSAllowsArbitraryLoads\", value: true, output_file_name: \"./Info.plist\")","title":"2 Examples"},{"location":"generated/actions/set_info_plist_value/#parameters","text":"Key Description Default key Name of key in plist subkey Name of subkey in plist value Value to setup path Path to plist file you want to update output_file_name Path to the output file you want to generate * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/set_info_plist_value/#documentation","text":"To show the documentation in your terminal, run fastlane action set_info_plist_value","title":"Documentation"},{"location":"generated/actions/set_info_plist_value/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_info_plist_value To pass parameters, make use of the : symbol, for example fastlane run set_info_plist_value parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/set_info_plist_value/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/set_pod_key/","text":"set_pod_key Sets a value for a key with cocoapods-keys Adds a key to cocoapods-keys set_pod_key Supported platforms ios, mac Author @marcelofabri 1 Example set_pod_key( key: \"APIToken\", value: \"1234\", project: \"MyProject\" ) Parameters Key Description Default use_bundle_exec Use bundle exec when there is a Gemfile presented true key The key to be saved with cocoapods-keys value The value to be saved with cocoapods-keys project The project name * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action set_pod_key CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_pod_key To pass parameters, make use of the : symbol, for example fastlane run set_pod_key parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Set pod key"},{"location":"generated/actions/set_pod_key/#set_pod_key","text":"Sets a value for a key with cocoapods-keys Adds a key to cocoapods-keys set_pod_key Supported platforms ios, mac Author @marcelofabri","title":"set_pod_key"},{"location":"generated/actions/set_pod_key/#1-example","text":"set_pod_key( key: \"APIToken\", value: \"1234\", project: \"MyProject\" )","title":"1 Example"},{"location":"generated/actions/set_pod_key/#parameters","text":"Key Description Default use_bundle_exec Use bundle exec when there is a Gemfile presented true key The key to be saved with cocoapods-keys value The value to be saved with cocoapods-keys project The project name * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/set_pod_key/#documentation","text":"To show the documentation in your terminal, run fastlane action set_pod_key","title":"Documentation"},{"location":"generated/actions/set_pod_key/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_pod_key To pass parameters, make use of the : symbol, for example fastlane run set_pod_key parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/set_pod_key/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/setup_ci/","text":"setup_ci Setup the keychain and match to work with CI Creates a new temporary keychain for use with match Switches match to readonly mode to not create new profiles/cert on CI Sets up log and test result paths to be easily collectible This action helps with CI integration. Add this to the top of your Fastfile if you use CI. setup_ci Supported platforms ios, mac Author @mollyIV, @svenmuennich 2 Examples setup_ci( provider: \"circleci\" ) setup_ci( provider: \"circleci\", timeout: 0 ) Parameters Key Description Default force Force setup, even if not executed by CI false provider CI provider. If none is set, the provider is detected automatically timeout Set a custom timeout in seconds for keychain. Set 0 if you want to specify 'no time-out' 3600 * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action setup_ci CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run setup_ci To pass parameters, make use of the : symbol, for example fastlane run setup_ci parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Setup ci"},{"location":"generated/actions/setup_ci/#setup_ci","text":"Setup the keychain and match to work with CI Creates a new temporary keychain for use with match Switches match to readonly mode to not create new profiles/cert on CI Sets up log and test result paths to be easily collectible This action helps with CI integration. Add this to the top of your Fastfile if you use CI. setup_ci Supported platforms ios, mac Author @mollyIV, @svenmuennich","title":"setup_ci"},{"location":"generated/actions/setup_ci/#2-examples","text":"setup_ci( provider: \"circleci\" ) setup_ci( provider: \"circleci\", timeout: 0 )","title":"2 Examples"},{"location":"generated/actions/setup_ci/#parameters","text":"Key Description Default force Force setup, even if not executed by CI false provider CI provider. If none is set, the provider is detected automatically timeout Set a custom timeout in seconds for keychain. Set 0 if you want to specify 'no time-out' 3600 * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/setup_ci/#documentation","text":"To show the documentation in your terminal, run fastlane action setup_ci","title":"Documentation"},{"location":"generated/actions/setup_ci/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run setup_ci To pass parameters, make use of the : symbol, for example fastlane run setup_ci parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/setup_ci/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/setup_circle_ci/","text":"setup_circle_ci Setup the keychain and match to work with CircleCI Creates a new temporary keychain for use with match Switches match to readonly mode to not create new profiles/cert on CI Sets up log and test result paths to be easily collectible This action helps with CircleCI integration. Add this to the top of your Fastfile if you use CircleCI. setup_circle_ci Supported platforms ios, android, mac Author @dantoml 1 Example setup_circle_ci Parameters Key Description Default force Force setup, even if not executed by CircleCI false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action setup_circle_ci CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run setup_circle_ci To pass parameters, make use of the : symbol, for example fastlane run setup_circle_ci parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Setup circle ci"},{"location":"generated/actions/setup_circle_ci/#setup_circle_ci","text":"Setup the keychain and match to work with CircleCI Creates a new temporary keychain for use with match Switches match to readonly mode to not create new profiles/cert on CI Sets up log and test result paths to be easily collectible This action helps with CircleCI integration. Add this to the top of your Fastfile if you use CircleCI. setup_circle_ci Supported platforms ios, android, mac Author @dantoml","title":"setup_circle_ci"},{"location":"generated/actions/setup_circle_ci/#1-example","text":"setup_circle_ci","title":"1 Example"},{"location":"generated/actions/setup_circle_ci/#parameters","text":"Key Description Default force Force setup, even if not executed by CircleCI false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/setup_circle_ci/#documentation","text":"To show the documentation in your terminal, run fastlane action setup_circle_ci","title":"Documentation"},{"location":"generated/actions/setup_circle_ci/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run setup_circle_ci To pass parameters, make use of the : symbol, for example fastlane run setup_circle_ci parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/setup_circle_ci/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/setup_jenkins/","text":"setup_jenkins Setup xcodebuild, gym and scan for easier Jenkins integration Adds and unlocks keychains from Jenkins 'Keychains and Provisioning Profiles Plugin' Sets unlocked keychain to be used by Match Sets code signing identity from Jenkins 'Keychains and Provisioning Profiles Plugin' Sets output directory to './output' (gym, scan and backup_xcarchive) Sets derived data path to './derivedData' (xcodebuild, gym, scan and clear_derived_data, carthage) Produce result bundle (gym and scan) This action helps with Jenkins integration. Creates own derived data for each job. All build results like IPA files and archives will be stored in the ./output directory. The action also works with Keychains and Provisioning Profiles Plugin , the selected keychain will be automatically unlocked and the selected code signing identity will be used. Match will be also set up to use the unlocked keychain and set in read-only mode, if its environment variables were not yet defined. By default this action will only work when fastlane is executed on a CI system. setup_jenkins Supported platforms ios, mac Author @bartoszj 1 Example setup_jenkins Parameters Key Description Default force Force setup, even if not executed by Jenkins false unlock_keychain Unlocks keychain true add_keychain_to_search_list Add to keychain search list, valid values are true, false, :add, and :replace :replace set_default_keychain Set keychain as default true keychain_path Path to keychain keychain_password Keychain password '' set_code_signing_identity Set code signing identity from CODE_SIGNING_IDENTITY environment true code_signing_identity Code signing identity output_directory The directory in which the ipa file should be stored in ./output derived_data_path The directory where built products and other derived data will go ./derivedData result_bundle Produce the result bundle describing what occurred will be placed true * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action setup_jenkins CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run setup_jenkins To pass parameters, make use of the : symbol, for example fastlane run setup_jenkins parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Setup jenkins"},{"location":"generated/actions/setup_jenkins/#setup_jenkins","text":"Setup xcodebuild, gym and scan for easier Jenkins integration Adds and unlocks keychains from Jenkins 'Keychains and Provisioning Profiles Plugin' Sets unlocked keychain to be used by Match Sets code signing identity from Jenkins 'Keychains and Provisioning Profiles Plugin' Sets output directory to './output' (gym, scan and backup_xcarchive) Sets derived data path to './derivedData' (xcodebuild, gym, scan and clear_derived_data, carthage) Produce result bundle (gym and scan) This action helps with Jenkins integration. Creates own derived data for each job. All build results like IPA files and archives will be stored in the ./output directory. The action also works with Keychains and Provisioning Profiles Plugin , the selected keychain will be automatically unlocked and the selected code signing identity will be used. Match will be also set up to use the unlocked keychain and set in read-only mode, if its environment variables were not yet defined. By default this action will only work when fastlane is executed on a CI system. setup_jenkins Supported platforms ios, mac Author @bartoszj","title":"setup_jenkins"},{"location":"generated/actions/setup_jenkins/#1-example","text":"setup_jenkins","title":"1 Example"},{"location":"generated/actions/setup_jenkins/#parameters","text":"Key Description Default force Force setup, even if not executed by Jenkins false unlock_keychain Unlocks keychain true add_keychain_to_search_list Add to keychain search list, valid values are true, false, :add, and :replace :replace set_default_keychain Set keychain as default true keychain_path Path to keychain keychain_password Keychain password '' set_code_signing_identity Set code signing identity from CODE_SIGNING_IDENTITY environment true code_signing_identity Code signing identity output_directory The directory in which the ipa file should be stored in ./output derived_data_path The directory where built products and other derived data will go ./derivedData result_bundle Produce the result bundle describing what occurred will be placed true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/setup_jenkins/#documentation","text":"To show the documentation in your terminal, run fastlane action setup_jenkins","title":"Documentation"},{"location":"generated/actions/setup_jenkins/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run setup_jenkins To pass parameters, make use of the : symbol, for example fastlane run setup_jenkins parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/setup_jenkins/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/setup_travis/","text":"setup_travis Setup the keychain and match to work with Travis CI Creates a new temporary keychain for use with match Switches match to readonly mode to not create new profiles/cert on CI This action helps with Travis integration. Add this to the top of your Fastfile if you use Travis. setup_travis Supported platforms ios, android, mac Author @KrauseFx 1 Example setup_travis Parameters Key Description Default force Force setup, even if not executed by travis false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action setup_travis CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run setup_travis To pass parameters, make use of the : symbol, for example fastlane run setup_travis parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Setup travis"},{"location":"generated/actions/setup_travis/#setup_travis","text":"Setup the keychain and match to work with Travis CI Creates a new temporary keychain for use with match Switches match to readonly mode to not create new profiles/cert on CI This action helps with Travis integration. Add this to the top of your Fastfile if you use Travis. setup_travis Supported platforms ios, android, mac Author @KrauseFx","title":"setup_travis"},{"location":"generated/actions/setup_travis/#1-example","text":"setup_travis","title":"1 Example"},{"location":"generated/actions/setup_travis/#parameters","text":"Key Description Default force Force setup, even if not executed by travis false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/setup_travis/#documentation","text":"To show the documentation in your terminal, run fastlane action setup_travis","title":"Documentation"},{"location":"generated/actions/setup_travis/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run setup_travis To pass parameters, make use of the : symbol, for example fastlane run setup_travis parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/setup_travis/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/sh/","text":"sh Runs a shell command Allows running an arbitrary shell command. Be aware of a specific behavior of sh action with regard to the working directory. For details, refer to Advanced . sh Supported platforms ios, android, mac Author @KrauseFx Returns Outputs the string and executes it. When running in tests, it returns the actual command instead of executing it 2 Examples sh(\"ls\") sh(\"git\", \"commit\", \"-m\", \"My message\") Parameters Key Description Default command Shell command to be executed log Determines whether fastlane should print out the executed command itself and output of the executed command. If command line option --troubleshoot is used, then it overrides this option to true true error_callback A callback invoked with the command output if there is a non-zero exit status * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action sh CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sh To pass parameters, make use of the : symbol, for example fastlane run sh parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Sh"},{"location":"generated/actions/sh/#sh","text":"Runs a shell command Allows running an arbitrary shell command. Be aware of a specific behavior of sh action with regard to the working directory. For details, refer to Advanced . sh Supported platforms ios, android, mac Author @KrauseFx Returns Outputs the string and executes it. When running in tests, it returns the actual command instead of executing it","title":"sh"},{"location":"generated/actions/sh/#2-examples","text":"sh(\"ls\") sh(\"git\", \"commit\", \"-m\", \"My message\")","title":"2 Examples"},{"location":"generated/actions/sh/#parameters","text":"Key Description Default command Shell command to be executed log Determines whether fastlane should print out the executed command itself and output of the executed command. If command line option --troubleshoot is used, then it overrides this option to true true error_callback A callback invoked with the command output if there is a non-zero exit status * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/sh/#documentation","text":"To show the documentation in your terminal, run fastlane action sh","title":"Documentation"},{"location":"generated/actions/sh/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sh To pass parameters, make use of the : symbol, for example fastlane run sh parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/sh/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/sigh/","text":"sigh Alias for the get_provisioning_profile action Because you would rather spend your time building stuff than fighting provisioning sigh can create, renew, download and repair provisioning profiles (with one command). It supports App Store, Ad Hoc, Development and Enterprise profiles and supports nice features, like auto-adding all test devices. Features \u2022 Usage \u2022 Resign \u2022 How does it work? Features Download the latest provisioning profile for your app Renew a provisioning profile, when it has expired Repair a provisioning profile, when it is broken Create a new provisioning profile, if it doesn't exist already Supports App Store , Ad Hoc and Development profiles Support for multiple Apple accounts , storing your credentials securely in the Keychain Support for multiple Teams Support for Enterprise Profiles To automate iOS Push profiles you can use pem . Why not let Xcode do the work? sigh can easily be integrated into your CI-server (e.g. Jenkins) Xcode sometimes invalidates all existing profiles You have control over what happens You still get to have the signing files, which you can then use for your build scripts or store in git See sigh in action: Usage Note : It is recommended to use match according to the codesigning.guide for generating and maintaining your provisioning profiles. Use sigh directly only if you want full control over what's going on and know more about codesigning. fastlane sigh Yes, that's the whole command! sigh will create, repair and download profiles for the App Store by default. You can pass your bundle identifier and username like this: fastlane sigh -a com.krausefx.app -u username If you want to generate an Ad Hoc profile instead of an App Store profile: fastlane sigh --adhoc If you want to generate a Development profile: fastlane sigh --development To generate the profile in a specific directory: fastlane sigh -o \"~/Certificates/\" To download all your provisioning profiles use fastlane sigh download_all Optionally, use fastlane sigh download_all --download_xcode_profiles to also include the Xcode managed provisioning profiles For a list of available parameters and commands run fastlane action sigh Advanced By default, sigh will install the downloaded profile on your machine. If you just want to generate the profile and skip the installation, use the following flag: fastlane sigh --skip_install To save the provisioning profile under a specific name, use the -q option: fastlane sigh -a com.krausefx.app -u username -q \"myProfile.mobileprovision\" If for some reason you don't want sigh to verify that the code signing identity is installed on your local machine: fastlane sigh --skip_certificate_verification If you need the provisioning profile to be renewed regardless of its state use the --force option. This gives you a profile with the maximum lifetime. --force will also add all available devices to this profile. fastlane sigh --force By default, sigh will include all certificates on development profiles, and first certificate on other types. If you need to specify which certificate to use you can either use the environment variable SIGH_CERTIFICATE , or pass the name or expiry date of the certificate as argument: fastlane sigh -c \"SunApps GmbH\" For a list of available parameters and commands run fastlane action sigh Use with fastlane sigh becomes really interesting when used in fastlane in combination with cert . Update your Fastfile to contain the following code: lane :beta do cert sigh(force: true) end force: true will make sure to re-generate the provisioning profile on each run. This will result in sigh always using the correct signing certificate, which is installed on the local machine. Repair sigh can automatically repair all your existing provisioning profiles which are expired or just invalid. fastlane sigh repair Resign If you generated your ipa file but want to apply a different code signing onto the ipa file, you can use sigh resign : fastlane sigh resign sigh will find the ipa file and the provisioning profile for you if they are located in the current folder. You can pass more information using the command line: fastlane sigh resign ./path/app.ipa --signing_identity \"iPhone Distribution: Felix Krause\" -p \"my.mobileprovision\" Manage With sigh manage you can list all provisioning profiles installed locally. fastlane sigh manage Delete all expired provisioning profiles fastlane sigh manage -e Or delete all iOS Team Provisioning Profile by using a regular expression fastlane sigh manage -p \"iOS\\ ?Team Provisioning Profile:\" Environment Variables Run fastlane action sigh to get a list of all available environment variables. If you're using cert in combination with fastlane the signing certificate will automatically be selected for you. (make sure to run cert before sigh ) How does it work? sigh will access the iOS Dev Center to download, renew or generate the .mobileprovision file. It uses spaceship to communicate with Apple's web services. How is my password stored? sigh uses the CredentialsManager from fastlane . Tips Use 'ProvisionQL' for advanced Quick Look in Finder Install ProvisionQL . It will show you mobileprovision files like this: App Identifier couldn't be found If you also want to create a new App Identifier on the Apple Developer Portal, check out produce , which does exactly that. What happens to my Xcode managed profiles? sigh will never touch or use the profiles which are created and managed by Xcode. Instead sigh will manage its own set of provisioning profiles. sigh Supported platforms ios, mac Author @KrauseFx Returns The UUID of the profile sigh just fetched/generated 3 Examples get_provisioning_profile sigh # alias for \"get_provisioning_profile\" get_provisioning_profile( adhoc: true, force: true, filename: \"myFile.mobileprovision\" ) Parameters Key Description Default adhoc Setting this flag will generate AdHoc profiles instead of App Store Profiles false developer_id Setting this flag will generate Developer ID profiles instead of App Store Profiles false development Renew the development certificate instead of the production one false skip_install By default, the certificate will be added to your local machine. Setting this flag will skip this action false force Renew provisioning profiles regardless of its state - to automatically add all devices for ad hoc profiles false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false app_identifier The bundle identifier of your app * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * provisioning_name The name of the profile that is used on the Apple Developer Portal ignore_profiles_with_different_name Use in combination with :provisioning_name - when true only profiles matching this exact name will be downloaded false output_path Directory in which the profile should be stored . cert_id The ID of the code signing certificate to use (e.g. 78ADL6LVAA) cert_owner_name The certificate name to use for new profiles, or to renew with. (e.g. \"Felix Krause\") filename Filename to use for the generated provisioning profile (must include .mobileprovision) skip_fetch_profiles Skips the verification of existing profiles which is useful if you have thousands of profiles false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false skip_certificate_verification Skips the verification of the certificates for every existing profiles. This will make sure the provisioning profile can be used on the local machine * platform Set the provisioning profile's platform (i.e. ios, tvos, macos, catalyst) ios readonly Only fetch existing profile, don't generate new ones false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The sigh action generates the following Lane Variables: SharedValue Description SharedValues::SIGH_PROFILE_PATH A path in which certificates, key and profile are exported SharedValues::SIGH_PROFILE_PATHS Paths in which certificates, key and profile are exported SharedValues::SIGH_UUID UUID (Universally Unique IDentifier) of a provisioning profile SharedValues::SIGH_NAME The name of the profile SharedValues::SIGH_PROFILE_TYPE The profile type, can be app-store, ad-hoc, development, enterprise, developer-id, can be used in build_app as a default value for export_method To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action sigh CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sigh To pass parameters, make use of the : symbol, for example fastlane run sigh parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Sigh"},{"location":"generated/actions/sigh/#sigh","text":"Alias for the get_provisioning_profile action","title":"sigh"},{"location":"generated/actions/sigh/#features","text":"Download the latest provisioning profile for your app Renew a provisioning profile, when it has expired Repair a provisioning profile, when it is broken Create a new provisioning profile, if it doesn't exist already Supports App Store , Ad Hoc and Development profiles Support for multiple Apple accounts , storing your credentials securely in the Keychain Support for multiple Teams Support for Enterprise Profiles To automate iOS Push profiles you can use pem .","title":"Features"},{"location":"generated/actions/sigh/#usage","text":"Note : It is recommended to use match according to the codesigning.guide for generating and maintaining your provisioning profiles. Use sigh directly only if you want full control over what's going on and know more about codesigning. fastlane sigh Yes, that's the whole command! sigh will create, repair and download profiles for the App Store by default. You can pass your bundle identifier and username like this: fastlane sigh -a com.krausefx.app -u username If you want to generate an Ad Hoc profile instead of an App Store profile: fastlane sigh --adhoc If you want to generate a Development profile: fastlane sigh --development To generate the profile in a specific directory: fastlane sigh -o \"~/Certificates/\" To download all your provisioning profiles use fastlane sigh download_all Optionally, use fastlane sigh download_all --download_xcode_profiles to also include the Xcode managed provisioning profiles For a list of available parameters and commands run fastlane action sigh","title":"Usage"},{"location":"generated/actions/sigh/#repair","text":"sigh can automatically repair all your existing provisioning profiles which are expired or just invalid. fastlane sigh repair","title":"Repair"},{"location":"generated/actions/sigh/#resign","text":"If you generated your ipa file but want to apply a different code signing onto the ipa file, you can use sigh resign : fastlane sigh resign sigh will find the ipa file and the provisioning profile for you if they are located in the current folder. You can pass more information using the command line: fastlane sigh resign ./path/app.ipa --signing_identity \"iPhone Distribution: Felix Krause\" -p \"my.mobileprovision\"","title":"Resign"},{"location":"generated/actions/sigh/#manage","text":"With sigh manage you can list all provisioning profiles installed locally. fastlane sigh manage Delete all expired provisioning profiles fastlane sigh manage -e Or delete all iOS Team Provisioning Profile by using a regular expression fastlane sigh manage -p \"iOS\\ ?Team Provisioning Profile:\"","title":"Manage"},{"location":"generated/actions/sigh/#environment-variables","text":"Run fastlane action sigh to get a list of all available environment variables. If you're using cert in combination with fastlane the signing certificate will automatically be selected for you. (make sure to run cert before sigh )","title":"Environment Variables"},{"location":"generated/actions/sigh/#how-does-it-work","text":"sigh will access the iOS Dev Center to download, renew or generate the .mobileprovision file. It uses spaceship to communicate with Apple's web services.","title":"How does it work?"},{"location":"generated/actions/sigh/#how-is-my-password-stored","text":"sigh uses the CredentialsManager from fastlane .","title":"How is my password stored?"},{"location":"generated/actions/sigh/#tips","text":"","title":"Tips"},{"location":"generated/actions/sigh/#use-provisionql-for-advanced-quick-look-in-finder","text":"Install ProvisionQL . It will show you mobileprovision files like this:","title":"Use 'ProvisionQL' for advanced Quick Look in Finder"},{"location":"generated/actions/sigh/#app-identifier-couldnt-be-found","text":"If you also want to create a new App Identifier on the Apple Developer Portal, check out produce , which does exactly that.","title":"App Identifier couldn't be found"},{"location":"generated/actions/sigh/#what-happens-to-my-xcode-managed-profiles","text":"sigh will never touch or use the profiles which are created and managed by Xcode. Instead sigh will manage its own set of provisioning profiles. sigh Supported platforms ios, mac Author @KrauseFx Returns The UUID of the profile sigh just fetched/generated","title":"What happens to my Xcode managed profiles?"},{"location":"generated/actions/sigh/#3-examples","text":"get_provisioning_profile sigh # alias for \"get_provisioning_profile\" get_provisioning_profile( adhoc: true, force: true, filename: \"myFile.mobileprovision\" )","title":"3 Examples"},{"location":"generated/actions/sigh/#parameters","text":"Key Description Default adhoc Setting this flag will generate AdHoc profiles instead of App Store Profiles false developer_id Setting this flag will generate Developer ID profiles instead of App Store Profiles false development Renew the development certificate instead of the production one false skip_install By default, the certificate will be added to your local machine. Setting this flag will skip this action false force Renew provisioning profiles regardless of its state - to automatically add all devices for ad hoc profiles false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false app_identifier The bundle identifier of your app * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * provisioning_name The name of the profile that is used on the Apple Developer Portal ignore_profiles_with_different_name Use in combination with :provisioning_name - when true only profiles matching this exact name will be downloaded false output_path Directory in which the profile should be stored . cert_id The ID of the code signing certificate to use (e.g. 78ADL6LVAA) cert_owner_name The certificate name to use for new profiles, or to renew with. (e.g. \"Felix Krause\") filename Filename to use for the generated provisioning profile (must include .mobileprovision) skip_fetch_profiles Skips the verification of existing profiles which is useful if you have thousands of profiles false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false skip_certificate_verification Skips the verification of the certificates for every existing profiles. This will make sure the provisioning profile can be used on the local machine * platform Set the provisioning profile's platform (i.e. ios, tvos, macos, catalyst) ios readonly Only fetch existing profile, don't generate new ones false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/sigh/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The sigh action generates the following Lane Variables: SharedValue Description SharedValues::SIGH_PROFILE_PATH A path in which certificates, key and profile are exported SharedValues::SIGH_PROFILE_PATHS Paths in which certificates, key and profile are exported SharedValues::SIGH_UUID UUID (Universally Unique IDentifier) of a provisioning profile SharedValues::SIGH_NAME The name of the profile SharedValues::SIGH_PROFILE_TYPE The profile type, can be app-store, ad-hoc, development, enterprise, developer-id, can be used in build_app as a default value for export_method To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/sigh/#documentation","text":"To show the documentation in your terminal, run fastlane action sigh","title":"Documentation"},{"location":"generated/actions/sigh/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sigh To pass parameters, make use of the : symbol, for example fastlane run sigh parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/sigh/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/skip_docs/","text":"skip_docs Skip the creation of the fastlane/README.md file when running fastlane Tell fastlane to not automatically create a fastlane/README.md when running fastlane . You can always trigger the creation of this file manually by running fastlane docs . skip_docs Supported platforms ios, android, mac Author @KrauseFx 1 Example skip_docs Documentation To show the documentation in your terminal, run fastlane action skip_docs CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run skip_docs To pass parameters, make use of the : symbol, for example fastlane run skip_docs parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Skip docs"},{"location":"generated/actions/skip_docs/#skip_docs","text":"Skip the creation of the fastlane/README.md file when running fastlane Tell fastlane to not automatically create a fastlane/README.md when running fastlane . You can always trigger the creation of this file manually by running fastlane docs . skip_docs Supported platforms ios, android, mac Author @KrauseFx","title":"skip_docs"},{"location":"generated/actions/skip_docs/#1-example","text":"skip_docs","title":"1 Example"},{"location":"generated/actions/skip_docs/#documentation","text":"To show the documentation in your terminal, run fastlane action skip_docs","title":"Documentation"},{"location":"generated/actions/skip_docs/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run skip_docs To pass parameters, make use of the : symbol, for example fastlane run skip_docs parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/skip_docs/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/slack/","text":"slack Send a success/error message to your Slack group Create an Incoming WebHook and export this as SLACK_URL . Can send a message to #channel (by default), a direct message to @username or a message to a private group group with success (green) or failure (red) status. slack Supported platforms ios, android, mac Author @KrauseFx 2 Examples slack(message: \"App successfully released!\") slack( message: \"App successfully released!\", channel: \"#channel\", # Optional, by default will post to the default channel configured for the POST URL. success: true, # Optional, defaults to true. payload: { # Optional, lets you specify any number of your own Slack attachments. \"Build Date\" => Time.new.to_s, \"Built by\" => \"Jenkins\", }, default_payloads: [:git_branch, :git_author], # Optional, lets you specify default payloads to include. Pass an empty array to suppress all the default payloads. attachment_properties: { # Optional, lets you specify any other properties available for attachments in the slack API (see https://api.slack.com/docs/attachments). # This hash is deep merged with the existing properties set using the other properties above. This allows your own fields properties to be appended to the existing fields that were created using the `payload` property for instance. thumb_url: \"http://example.com/path/to/thumb.png\", fields: [{ title: \"My Field\", value: \"My Value\", short: true }] } ) Parameters Key Description Default message The message that should be displayed on Slack. This supports the standard Slack markup language pretext This is optional text that appears above the message attachment block. This supports the standard Slack markup language channel #channel or @username use_webhook_configured_username_and_icon Use webhook's default username and icon settings? (true/false) false slack_url Create an Incoming WebHook for your Slack group username Overrides the webhook's username property if use_webhook_configured_username_and_icon is false fastlane icon_url Overrides the webhook's image property if use_webhook_configured_username_and_icon is false https://fastlane.tools/assets/img/fastlane_icon.png payload Add additional information to this post. payload must be a hash containing any key with any value {} default_payloads Specifies default payloads to include. Pass an empty array to suppress all the default payloads [\"lane\", \"test_result\", \"git_branch\", \"git_author\", \"last_git_commit\", \"last_git_commit_hash\"] attachment_properties Merge additional properties in the slack attachment, see https://api.slack.com/docs/attachments {} success Was this build successful? (true/false) true fail_on_error Should an error sending the slack notification cause a failure? (true/false) true link_names Find and link channel names and usernames (true/false) false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action slack CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run slack To pass parameters, make use of the : symbol, for example fastlane run slack parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Slack"},{"location":"generated/actions/slack/#slack","text":"Send a success/error message to your Slack group Create an Incoming WebHook and export this as SLACK_URL . Can send a message to #channel (by default), a direct message to @username or a message to a private group group with success (green) or failure (red) status. slack Supported platforms ios, android, mac Author @KrauseFx","title":"slack"},{"location":"generated/actions/slack/#2-examples","text":"slack(message: \"App successfully released!\") slack( message: \"App successfully released!\", channel: \"#channel\", # Optional, by default will post to the default channel configured for the POST URL. success: true, # Optional, defaults to true. payload: { # Optional, lets you specify any number of your own Slack attachments. \"Build Date\" => Time.new.to_s, \"Built by\" => \"Jenkins\", }, default_payloads: [:git_branch, :git_author], # Optional, lets you specify default payloads to include. Pass an empty array to suppress all the default payloads. attachment_properties: { # Optional, lets you specify any other properties available for attachments in the slack API (see https://api.slack.com/docs/attachments). # This hash is deep merged with the existing properties set using the other properties above. This allows your own fields properties to be appended to the existing fields that were created using the `payload` property for instance. thumb_url: \"http://example.com/path/to/thumb.png\", fields: [{ title: \"My Field\", value: \"My Value\", short: true }] } )","title":"2 Examples"},{"location":"generated/actions/slack/#parameters","text":"Key Description Default message The message that should be displayed on Slack. This supports the standard Slack markup language pretext This is optional text that appears above the message attachment block. This supports the standard Slack markup language channel #channel or @username use_webhook_configured_username_and_icon Use webhook's default username and icon settings? (true/false) false slack_url Create an Incoming WebHook for your Slack group username Overrides the webhook's username property if use_webhook_configured_username_and_icon is false fastlane icon_url Overrides the webhook's image property if use_webhook_configured_username_and_icon is false https://fastlane.tools/assets/img/fastlane_icon.png payload Add additional information to this post. payload must be a hash containing any key with any value {} default_payloads Specifies default payloads to include. Pass an empty array to suppress all the default payloads [\"lane\", \"test_result\", \"git_branch\", \"git_author\", \"last_git_commit\", \"last_git_commit_hash\"] attachment_properties Merge additional properties in the slack attachment, see https://api.slack.com/docs/attachments {} success Was this build successful? (true/false) true fail_on_error Should an error sending the slack notification cause a failure? (true/false) true link_names Find and link channel names and usernames (true/false) false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/slack/#documentation","text":"To show the documentation in your terminal, run fastlane action slack","title":"Documentation"},{"location":"generated/actions/slack/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run slack To pass parameters, make use of the : symbol, for example fastlane run slack parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/slack/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/slack_train/","text":"slack_train Show a train of the fastlane progress slack_train | -----|---- Supported platforms | ios, android, mac Author | @@KrauseFx Returns | A string that is being sent to slack To show the documentation in your terminal, run fastlane action slack_train View source code Back to actions","title":"Slack train"},{"location":"generated/actions/slack_train/#slack_train","text":"Show a train of the fastlane progress slack_train | -----|---- Supported platforms | ios, android, mac Author | @@KrauseFx Returns | A string that is being sent to slack To show the documentation in your terminal, run fastlane action slack_train View source code Back to actions","title":"slack_train"},{"location":"generated/actions/slack_train_crash/","text":"slack_train_crash slack_train_crash | -----|---- Supported platforms | ios, android, mac Author | @@KrauseFx To show the documentation in your terminal, run fastlane action slack_train_crash View source code Back to actions","title":"Slack train crash"},{"location":"generated/actions/slack_train_crash/#slack_train_crash","text":"slack_train_crash | -----|---- Supported platforms | ios, android, mac Author | @@KrauseFx To show the documentation in your terminal, run fastlane action slack_train_crash View source code Back to actions","title":"slack_train_crash"},{"location":"generated/actions/slack_train_start/","text":"slack_train_start Show a train of the fastlane progress slack_train_start | -----|---- Supported platforms | ios, android, mac Author | @@KrauseFx Parameters Key Description Default distance How many rails do we need? 5 train Train emoji \ud83d\ude9d rail Character or emoji for the rail = reverse_direction Pass true if you want the train to go from left to right false * = default value is dependent on the user's system To show the documentation in your terminal, run fastlane action slack_train_start View source code Back to actions","title":"Slack train start"},{"location":"generated/actions/slack_train_start/#slack_train_start","text":"Show a train of the fastlane progress slack_train_start | -----|---- Supported platforms | ios, android, mac Author | @@KrauseFx","title":"slack_train_start"},{"location":"generated/actions/slack_train_start/#parameters","text":"Key Description Default distance How many rails do we need? 5 train Train emoji \ud83d\ude9d rail Character or emoji for the rail = reverse_direction Pass true if you want the train to go from left to right false * = default value is dependent on the user's system To show the documentation in your terminal, run fastlane action slack_train_start View source code Back to actions","title":"Parameters"},{"location":"generated/actions/slather/","text":"slather Use slather to generate a code coverage report Slather works with multiple code coverage formats, including Xcode 7 code coverage. Slather is available at https://github.com/SlatherOrg/slather . slather Supported platforms ios, mac Author @mattdelves 1 Example slather( build_directory: \"foo\", input_format: \"bah\", scheme: \"MyScheme\", proj: \"MyProject.xcodeproj\" ) Parameters Key Description Default build_directory The location of the build output proj The project file that slather looks at workspace The workspace that slather looks at scheme Scheme to use when calling slather configuration Configuration to use when calling slather (since slather-2.4.1) input_format The input format that slather should look for github Tell slather that it is running on Github Actions buildkite Tell slather that it is running on Buildkite teamcity Tell slather that it is running on TeamCity jenkins Tell slather that it is running on Jenkins travis Tell slather that it is running on TravisCI travis_pro Tell slather that it is running on TravisCI Pro circleci Tell slather that it is running on CircleCI coveralls Tell slather that it should post data to Coveralls simple_output Tell slather that it should output results to the terminal gutter_json Tell slather that it should output results as Gutter JSON format cobertura_xml Tell slather that it should output results as Cobertura XML format sonarqube_xml Tell slather that it should output results as SonarQube Generic XML format llvm_cov Tell slather that it should output results as llvm-cov show format json Tell slather that it should output results as static JSON report html Tell slather that it should output results as static HTML pages show Tell slather that it should open static html pages automatically false source_directory Tell slather the location of your source files output_directory Tell slather the location of for your output files ignore Tell slather to ignore files matching a path or any path from an array of paths verbose Tell slather to enable verbose mode use_bundle_exec Use bundle exec to execute slather. Make sure it is in the Gemfile false binary_basename Basename of the binary file, this should match the name of your bundle excluding its extension (i.e. YourApp [for YourApp.app bundle]) binary_file Binary file name to be used for code coverage arch Specify which architecture the binary file is in. Needed for universal binaries source_files A Dir.glob compatible pattern used to limit the lookup to specific source files. Ignored in gcov mode false decimals The amount of decimals to use for % coverage reporting false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action slather CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run slather To pass parameters, make use of the : symbol, for example fastlane run slather parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Slather"},{"location":"generated/actions/slather/#slather","text":"Use slather to generate a code coverage report Slather works with multiple code coverage formats, including Xcode 7 code coverage. Slather is available at https://github.com/SlatherOrg/slather . slather Supported platforms ios, mac Author @mattdelves","title":"slather"},{"location":"generated/actions/slather/#1-example","text":"slather( build_directory: \"foo\", input_format: \"bah\", scheme: \"MyScheme\", proj: \"MyProject.xcodeproj\" )","title":"1 Example"},{"location":"generated/actions/slather/#parameters","text":"Key Description Default build_directory The location of the build output proj The project file that slather looks at workspace The workspace that slather looks at scheme Scheme to use when calling slather configuration Configuration to use when calling slather (since slather-2.4.1) input_format The input format that slather should look for github Tell slather that it is running on Github Actions buildkite Tell slather that it is running on Buildkite teamcity Tell slather that it is running on TeamCity jenkins Tell slather that it is running on Jenkins travis Tell slather that it is running on TravisCI travis_pro Tell slather that it is running on TravisCI Pro circleci Tell slather that it is running on CircleCI coveralls Tell slather that it should post data to Coveralls simple_output Tell slather that it should output results to the terminal gutter_json Tell slather that it should output results as Gutter JSON format cobertura_xml Tell slather that it should output results as Cobertura XML format sonarqube_xml Tell slather that it should output results as SonarQube Generic XML format llvm_cov Tell slather that it should output results as llvm-cov show format json Tell slather that it should output results as static JSON report html Tell slather that it should output results as static HTML pages show Tell slather that it should open static html pages automatically false source_directory Tell slather the location of your source files output_directory Tell slather the location of for your output files ignore Tell slather to ignore files matching a path or any path from an array of paths verbose Tell slather to enable verbose mode use_bundle_exec Use bundle exec to execute slather. Make sure it is in the Gemfile false binary_basename Basename of the binary file, this should match the name of your bundle excluding its extension (i.e. YourApp [for YourApp.app bundle]) binary_file Binary file name to be used for code coverage arch Specify which architecture the binary file is in. Needed for universal binaries source_files A Dir.glob compatible pattern used to limit the lookup to specific source files. Ignored in gcov mode false decimals The amount of decimals to use for % coverage reporting false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/slather/#documentation","text":"To show the documentation in your terminal, run fastlane action slather","title":"Documentation"},{"location":"generated/actions/slather/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run slather To pass parameters, make use of the : symbol, for example fastlane run slather parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/slather/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/snapshot/","text":"snapshot Alias for the capture_ios_screenshots action Automate taking localized screenshots of your iOS, tvOS, and watchOS apps on every device Check out the new fastlane documentation on how to generate screenshots snapshot generates localized iOS, tvOS, and watchOS screenshots for different device types and languages for the App Store and can be uploaded using ( deliver ). You have to manually create 20 (languages) x 6 (devices) x 5 (screenshots) = 600 screenshots . It's hard to get everything right! New screenshots with every (design) update No loading indicators Same content / screens Clean Status Bar Uploading screenshots ( deliver is your friend) More information about creating perfect screenshots . snapshot runs completely in the background - you can do something else, while your computer takes the screenshots for you. Features \u2022 UI Tests \u2022 Quick Start \u2022 Usage \u2022 Tips \u2022 How? Features Create hundreds of screenshots in multiple languages on all simulators Take screenshots in multiple device simulators concurrently to cut down execution time (Xcode 9 only) Configure it once, store the configuration in git Do something else, while the computer takes the screenshots for you Integrates with fastlane and deliver Generates a beautiful web page, which shows all screenshots on all devices. This is perfect to send to QA or the marketing team snapshot automatically waits for network requests to be finished before taking a screenshot (we don't want loading images in the App Store screenshots) After snapshot successfully created new screenshots, it will generate a beautiful HTML file to get a quick overview of all screens: Why? This tool automatically switches the language and device type and runs UI Tests for every combination. Why should I automate this process? It takes hours to take screenshots You get a great overview of all your screens, running on all available simulators without the need to manually start it hundreds of times Easy verification for translators (without an iDevice) that translations do make sense in real App context Easy verification that localizations fit into labels on all screen dimensions It is an integration test: You can test for UI elements and other things inside your scripts Be so nice, and provide new screenshots with every App Store update. Your customers deserve it You realize, there is a spelling mistake in one of the screens? Well, just correct it and re-run the script UI Tests Getting started This project uses Apple's newly announced UI Tests. We will not go into detail on how to write scripts. Here a few links to get started: WWDC 2015 Introduction to UI Tests A first look into UI Tests UI Testing in Xcode 7 HSTestingBackchannel : \u2018Cheat\u2019 by communicating directly with your app Automating App Store screenshots using fastlane snapshot and frameit Quick Start Create a new UI Test target in your Xcode project ( top part of this article ) Run fastlane snapshot init in your project folder Add the ./SnapshotHelper.swift to your UI Test target (You can move the file anywhere you want) (Xcode 8 only) add the ./SnapshotHelperXcode8.swift to your UI Test target (Objective C only) add the bridging header to your test class: #import \"MYUITests-Swift.h\" (The bridging header is named after your test target with -Swift.h appended.) In your UI Test class, click the Record button on the bottom left and record your interaction To take a snapshot, call the following between interactions Swift: snapshot(\"01LoginScreen\") Objective C: [Snapshot snapshot:@\"01LoginScreen\" timeWaitingForIdle:10]; Add the following code to your setUp() method: Swift: let app = XCUIApplication() setupSnapshot(app) app.launch() Objective C: XCUIApplication *app = [[XCUIApplication alloc] init]; [Snapshot setupSnapshot:app waitForAnimations:NO]; [app launch]; Make sure you only have one launch call in your test class, as Xcode adds one automatically on new test files. You can try the snapshot example project by cloning this repo. To quick start your UI tests, you can use the UI Test recorder. You only have to interact with the simulator, and Xcode will generate the UI Test code for you. You can find the red record button on the bottom of the screen (more information in this blog post ) Usage fastlane snapshot Your screenshots will be stored in the ./screenshots/ folder by default (or ./fastlane/screenshots if you're using fastlane ) New with Xcode 9, snapshot can run multiple simulators concurrently. This is the default behavior in order to take your screenshots as quickly as possible. This can be disabled to run each device, one at a time, by setting the :concurrent_simulators option to false . Note: While running snapshot with Xcode 9, the simulators will not be visibly spawned. So, while you won't see the simulators running your tests, they will, in fact, be taking your screenshots. If any error occurs while running the snapshot script on a device, that device will not have any screenshots, and snapshot will continue with the next device or language. To stop the flow after the first error, run fastlane snapshot --stop_after_first_error Also by default, snapshot will open the HTML after all is done. This can be skipped with the following command fastlane snapshot --stop_after_first_error --skip_open_summary There are a lot of options available that define how to build your app, for example fastlane snapshot --scheme \"UITests\" --configuration \"Release\" --sdk \"iphonesimulator\" Reinstall the app before running snapshot fastlane snapshot --reinstall_app --app_identifier \"tools.fastlane.app\" By default snapshot automatically retries running UI Tests if they fail. This is due to randomly failing UI Tests (e.g. #2517 ). You can adapt this number using fastlane snapshot --number_of_retries 3 Add photos and/or videos to the simulator before running snapshot fastlane snapshot --add_photos MyTestApp/Assets/demo.jpg --add_videos MyTestApp/Assets/demo.mp4 For a list for all available options run fastlane action snapshot After running snapshot you will get a nice summary: Snapfile All of the available options can also be stored in a configuration file called the Snapfile . Since most values will not change often for your project, it is recommended to store them there: First make sure to have a Snapfile (you get it for free when running fastlane snapshot init ) The Snapfile can contain all the options that are also available on fastlane action snapshot scheme(\"UITests\") devices([ \"iPad (7th generation)\", \"iPad Air (3rd generation)\", \"iPad Pro (11-inch)\", \"iPad Pro (12.9-inch) (3rd generation)\", \"iPad Pro (9.7-inch)\", \"iPhone 11\", \"iPhone 11 Pro\", \"iPhone 11 Pro Max\", \"iPhone 8\", \"iPhone 8 Plus\" ]) languages([ \"en-US\", \"de-DE\", \"es-ES\", [\"pt\", \"pt_BR\"] # Portuguese with Brazilian locale ]) launch_arguments([\"-username Felix\"]) # The directory in which the screenshots should be stored output_directory('./screenshots') clear_previous_screenshots(true) override_status_bar(true) add_photos([\"MyTestApp/Assets/demo.jpg\"]) Completely reset all simulators You can run this command in the terminal to delete and re-create all iOS and tvOS simulators: fastlane snapshot reset_simulators Warning : This will delete all your simulators and replace by new ones! This is useful, if you run into weird problems when running snapshot . You can use the environment variable SNAPSHOT_FORCE_DELETE to stop asking for confirmation before deleting. SNAPSHOT_FORCE_DELETE=1 fastlane snapshot reset_simulators Update snapshot helpers Some updates require the helper files to be updated. snapshot will automatically warn you and tell you how to update. Basically you can run fastlane snapshot update to update your SnapshotHelper.swift files. In case you modified your SnapshotHelper.swift and want to manually update the file, check out SnapshotHelper.swift . Launch Arguments You can provide additional arguments to your app on launch. These strings will be available in your app (e.g. not in the testing target) through ProcessInfo.processInfo.arguments . Alternatively, use user-default syntax ( -key value ) and they will be available as key-value pairs in UserDefaults.standard . launch_arguments([ \"-firstName Felix -lastName Krause\" ]) name.text = UserDefaults.standard.string(forKey: \"firstName\") // name.text = \"Felix\" snapshot includes -FASTLANE_SNAPSHOT YES , which will set a temporary user default for the key FASTLANE_SNAPSHOT , you may use this to detect when the app is run by snapshot . if UserDefaults.standard.bool(forKey: \"FASTLANE_SNAPSHOT\") { // runtime check that we are in snapshot mode } Specify multiple argument strings and snapshot will generate screenshots for each combination of arguments, devices, and languages. This is useful for comparing the same screenshots with different feature flags, dynamic text sizes, and different data sets. # Snapfile for A/B Test Comparison launch_arguments([ \"-secretFeatureEnabled YES\", \"-secretFeatureEnabled NO\" ]) Xcode Environment Variables snapshot includes FASTLANE_SNAPSHOT=YES and FASTLANE_LANGUAGE= as arguments when executing xcodebuild . This means you may use these environment variables in a custom build phase run script to do any additional configuration. How does it work? The easiest solution would be to just render the UIWindow into a file. That's not possible because UI Tests don't run on a main thread. So snapshot uses a different approach: When you run unit tests in Xcode, the reporter generates a plist file, documenting all events that occurred during the tests ( More Information ). Additionally, Xcode generates screenshots before, during and after each of these events. There is no way to manually trigger a screenshot event. The screenshots and the plist files are stored in the DerivedData directory, which snapshot stores in a temporary folder. When the user calls snapshot(...) in the UI Tests (Swift or Objective C) the script actually does a rotation to .Unknown which doesn't have any effect on the actual app, but is enough to trigger a screenshot. It has no effect to the application and is not something you would do in your tests. The goal was to find some event that a user would never trigger, so that we know it's from snapshot . On tvOS, there is no orientation so we ask for a count of app views with type \"Browser\" (which should never exist on tvOS). snapshot then iterates through all test events and check where we either did this weird rotation (on iOS) or searched for browsers (on tvOS). Once snapshot has all events triggered by snapshot it collects a ordered list of all the file names of the actual screenshots of the application. In the test output, the Swift snapshot function will print out something like this snapshot: [some random text here] snapshot finds all these entries using a regex. The number of snapshot outputs in the terminal and the number of snapshot events in the plist file should be the same. Knowing that, snapshot automatically matches these 2 lists to identify the name of each of these screenshots. They are then copied over to the output directory and separated by language and device. 2 thing have to be passed on from snapshot to the xcodebuild command line tool: The device type is passed via the destination parameter of the xcodebuild parameter The language is passed via a temporary file which is written by snapshot before running the tests and read by the UI Tests when launching the application If you find a better way to do any of this, please submit an issue on GitHub or even a pull request :+1: Radar 23062925 has been resolved with Xcode 8.3, so it's now possible to actually take screenshots from the simulator. We'll keep using the old approach for now, since many of you still want to use older versions of Xcode. Tips Check out the new fastlane documentation on how to generate screenshots Frame the screenshots If you want to add frames around the screenshots and even put a title on top, check out frameit . Available language codes ALL_LANGUAGES = [\"da\", \"de-DE\", \"el\", \"en-AU\", \"en-CA\", \"en-GB\", \"en-US\", \"es-ES\", \"es-MX\", \"fi\", \"fr-CA\", \"fr-FR\", \"id\", \"it\", \"ja\", \"ko\", \"ms\", \"nl-NL\", \"no\", \"pt-BR\", \"pt-PT\", \"ru\", \"sv\", \"th\", \"tr\", \"vi\", \"zh-Hans\", \"zh-Hant\"] To get more information about language and locale codes please read Internationalization and Localization Guide . Use a clean status bar You can set override_status_bar to true to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available. Editing the Snapfile Change syntax highlighting to Ruby . Simulator doesn't launch the application When the app dies directly after the application is launched there might be 2 problems The simulator is somehow in a broken state and you need to re-create it. You can use snapshot reset_simulators to reset all simulators (this will remove all installed apps) A restart helps very often Determine language To detect the currently used localization in your tests, access the deviceLanguage variable from SnapshotHelper.swift . Speed up snapshots A lot of time in UI tests is spent waiting for animations. You can disable UIView animations in your app to make the tests faster: if ProcessInfo().arguments.contains(\"SKIP_ANIMATIONS\") { UIView.setAnimationsEnabled(false) } This requires you to pass the launch argument like so: snapshot(launch_arguments: [\"SKIP_ANIMATIONS\"]) By default, snapshot will wait for a short time for the animations to finish. If you're skipping the animations, this wait time is unnecessary and can be skipped: setupSnapshot(app, waitForAnimations: false) snapshot Supported platforms ios, mac Author @KrauseFx 3 Examples capture_ios_screenshots snapshot # alias for \"capture_ios_screenshots\" capture_ios_screenshots( skip_open_summary: true, clean: true ) Parameters Key Description Default workspace Path the workspace file project Path the project file xcargs Pass additional arguments to xcodebuild for the test phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app devices A list of devices you want to take the screenshots from languages A list of languages which should be used [\"en-US\"] launch_arguments A list of launch arguments which should be used [\"\"] output_directory The directory where to store the screenshots * output_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false ios_version By default, the latest version should be used automatically. If you want to change it, do it here skip_open_summary Don't open the HTML summary after running snapshot false skip_helper_version_check Do not check for most recent SnapshotHelper code false clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running snapshot false reinstall_app Enabling this option will automatically uninstall the application before running it false erase_simulator Enabling this option will automatically erase the simulator before running the application false headless Enabling this option will prevent displaying the simulator window true override_status_bar Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception (Adjust 'SNAPSHOT_SIMULATOR_WAIT_FOR_BOOT_TIMEOUT' environment variable if override status bar is not working. Might be because simulator is not fully booted. Defaults to 10 seconds) false override_status_bar_arguments Fully customize the status bar by setting each option here. Requires override_status_bar to be set to true . See xcrun simctl status_bar --help localize_simulator Enabling this option will configure the Simulator's system language false dark_mode Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark) app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * add_photos A list of photos that should be added to the simulator before running the application add_videos A list of videos that should be added to the simulator before running the application html_template A path to screenshots.html template buildlog_path The directory where to store the build log * clean Should the project be cleaned before building it? false test_without_building Test without building, requires a derived data path configuration The configuration to use when building the app. Defaults to 'Release' * sdk The SDK that should be used for building the application scheme The scheme you want to use, this must be the scheme for the UI Tests number_of_retries The number of times a test can fail before snapshot should stop retrying 1 stop_after_first_error Should snapshot stop immediately after the tests completely failed on one device? false derived_data_path The directory where build products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false test_target_name The name of the target you want to test (if you desire to override the Target Application from Xcode) namespace_log_files Separate the log files per device and per language concurrent_simulators Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9 true disable_slide_to_type Disable the simulator from showing the 'Slide to type' prompt false cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false testplan The testplan associated with the scheme that should be used for testing only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * xcpretty_args DEPRECATED! Use xcodebuild_formatter: '' instead - Additional xcpretty arguments disable_xcpretty Disable xcpretty formatting of build suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The snapshot action generates the following Lane Variables: SharedValue Description SharedValues::SNAPSHOT_SCREENSHOTS_PATH The path to the screenshots To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action snapshot CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run snapshot To pass parameters, make use of the : symbol, for example fastlane run snapshot parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Snapshot"},{"location":"generated/actions/snapshot/#snapshot","text":"Alias for the capture_ios_screenshots action","title":"snapshot"},{"location":"generated/actions/snapshot/#features","text":"Create hundreds of screenshots in multiple languages on all simulators Take screenshots in multiple device simulators concurrently to cut down execution time (Xcode 9 only) Configure it once, store the configuration in git Do something else, while the computer takes the screenshots for you Integrates with fastlane and deliver Generates a beautiful web page, which shows all screenshots on all devices. This is perfect to send to QA or the marketing team snapshot automatically waits for network requests to be finished before taking a screenshot (we don't want loading images in the App Store screenshots) After snapshot successfully created new screenshots, it will generate a beautiful HTML file to get a quick overview of all screens:","title":"Features"},{"location":"generated/actions/snapshot/#why","text":"This tool automatically switches the language and device type and runs UI Tests for every combination.","title":"Why?"},{"location":"generated/actions/snapshot/#ui-tests","text":"","title":"UI Tests"},{"location":"generated/actions/snapshot/#getting-started","text":"This project uses Apple's newly announced UI Tests. We will not go into detail on how to write scripts. Here a few links to get started: WWDC 2015 Introduction to UI Tests A first look into UI Tests UI Testing in Xcode 7 HSTestingBackchannel : \u2018Cheat\u2019 by communicating directly with your app Automating App Store screenshots using fastlane snapshot and frameit","title":"Getting started"},{"location":"generated/actions/snapshot/#quick-start","text":"Create a new UI Test target in your Xcode project ( top part of this article ) Run fastlane snapshot init in your project folder Add the ./SnapshotHelper.swift to your UI Test target (You can move the file anywhere you want) (Xcode 8 only) add the ./SnapshotHelperXcode8.swift to your UI Test target (Objective C only) add the bridging header to your test class: #import \"MYUITests-Swift.h\" (The bridging header is named after your test target with -Swift.h appended.) In your UI Test class, click the Record button on the bottom left and record your interaction To take a snapshot, call the following between interactions Swift: snapshot(\"01LoginScreen\") Objective C: [Snapshot snapshot:@\"01LoginScreen\" timeWaitingForIdle:10]; Add the following code to your setUp() method: Swift: let app = XCUIApplication() setupSnapshot(app) app.launch() Objective C: XCUIApplication *app = [[XCUIApplication alloc] init]; [Snapshot setupSnapshot:app waitForAnimations:NO]; [app launch]; Make sure you only have one launch call in your test class, as Xcode adds one automatically on new test files. You can try the snapshot example project by cloning this repo. To quick start your UI tests, you can use the UI Test recorder. You only have to interact with the simulator, and Xcode will generate the UI Test code for you. You can find the red record button on the bottom of the screen (more information in this blog post )","title":"Quick Start"},{"location":"generated/actions/snapshot/#usage","text":"fastlane snapshot Your screenshots will be stored in the ./screenshots/ folder by default (or ./fastlane/screenshots if you're using fastlane ) New with Xcode 9, snapshot can run multiple simulators concurrently. This is the default behavior in order to take your screenshots as quickly as possible. This can be disabled to run each device, one at a time, by setting the :concurrent_simulators option to false . Note: While running snapshot with Xcode 9, the simulators will not be visibly spawned. So, while you won't see the simulators running your tests, they will, in fact, be taking your screenshots. If any error occurs while running the snapshot script on a device, that device will not have any screenshots, and snapshot will continue with the next device or language. To stop the flow after the first error, run fastlane snapshot --stop_after_first_error Also by default, snapshot will open the HTML after all is done. This can be skipped with the following command fastlane snapshot --stop_after_first_error --skip_open_summary There are a lot of options available that define how to build your app, for example fastlane snapshot --scheme \"UITests\" --configuration \"Release\" --sdk \"iphonesimulator\" Reinstall the app before running snapshot fastlane snapshot --reinstall_app --app_identifier \"tools.fastlane.app\" By default snapshot automatically retries running UI Tests if they fail. This is due to randomly failing UI Tests (e.g. #2517 ). You can adapt this number using fastlane snapshot --number_of_retries 3 Add photos and/or videos to the simulator before running snapshot fastlane snapshot --add_photos MyTestApp/Assets/demo.jpg --add_videos MyTestApp/Assets/demo.mp4 For a list for all available options run fastlane action snapshot After running snapshot you will get a nice summary:","title":"Usage"},{"location":"generated/actions/snapshot/#snapfile","text":"All of the available options can also be stored in a configuration file called the Snapfile . Since most values will not change often for your project, it is recommended to store them there: First make sure to have a Snapfile (you get it for free when running fastlane snapshot init ) The Snapfile can contain all the options that are also available on fastlane action snapshot scheme(\"UITests\") devices([ \"iPad (7th generation)\", \"iPad Air (3rd generation)\", \"iPad Pro (11-inch)\", \"iPad Pro (12.9-inch) (3rd generation)\", \"iPad Pro (9.7-inch)\", \"iPhone 11\", \"iPhone 11 Pro\", \"iPhone 11 Pro Max\", \"iPhone 8\", \"iPhone 8 Plus\" ]) languages([ \"en-US\", \"de-DE\", \"es-ES\", [\"pt\", \"pt_BR\"] # Portuguese with Brazilian locale ]) launch_arguments([\"-username Felix\"]) # The directory in which the screenshots should be stored output_directory('./screenshots') clear_previous_screenshots(true) override_status_bar(true) add_photos([\"MyTestApp/Assets/demo.jpg\"])","title":"Snapfile"},{"location":"generated/actions/snapshot/#update-snapshot-helpers","text":"Some updates require the helper files to be updated. snapshot will automatically warn you and tell you how to update. Basically you can run fastlane snapshot update to update your SnapshotHelper.swift files. In case you modified your SnapshotHelper.swift and want to manually update the file, check out SnapshotHelper.swift .","title":"Update snapshot helpers"},{"location":"generated/actions/snapshot/#launch-arguments","text":"You can provide additional arguments to your app on launch. These strings will be available in your app (e.g. not in the testing target) through ProcessInfo.processInfo.arguments . Alternatively, use user-default syntax ( -key value ) and they will be available as key-value pairs in UserDefaults.standard . launch_arguments([ \"-firstName Felix -lastName Krause\" ]) name.text = UserDefaults.standard.string(forKey: \"firstName\") // name.text = \"Felix\" snapshot includes -FASTLANE_SNAPSHOT YES , which will set a temporary user default for the key FASTLANE_SNAPSHOT , you may use this to detect when the app is run by snapshot . if UserDefaults.standard.bool(forKey: \"FASTLANE_SNAPSHOT\") { // runtime check that we are in snapshot mode } Specify multiple argument strings and snapshot will generate screenshots for each combination of arguments, devices, and languages. This is useful for comparing the same screenshots with different feature flags, dynamic text sizes, and different data sets. # Snapfile for A/B Test Comparison launch_arguments([ \"-secretFeatureEnabled YES\", \"-secretFeatureEnabled NO\" ])","title":"Launch Arguments"},{"location":"generated/actions/snapshot/#xcode-environment-variables","text":"snapshot includes FASTLANE_SNAPSHOT=YES and FASTLANE_LANGUAGE= as arguments when executing xcodebuild . This means you may use these environment variables in a custom build phase run script to do any additional configuration.","title":"Xcode Environment Variables"},{"location":"generated/actions/snapshot/#how-does-it-work","text":"The easiest solution would be to just render the UIWindow into a file. That's not possible because UI Tests don't run on a main thread. So snapshot uses a different approach: When you run unit tests in Xcode, the reporter generates a plist file, documenting all events that occurred during the tests ( More Information ). Additionally, Xcode generates screenshots before, during and after each of these events. There is no way to manually trigger a screenshot event. The screenshots and the plist files are stored in the DerivedData directory, which snapshot stores in a temporary folder. When the user calls snapshot(...) in the UI Tests (Swift or Objective C) the script actually does a rotation to .Unknown which doesn't have any effect on the actual app, but is enough to trigger a screenshot. It has no effect to the application and is not something you would do in your tests. The goal was to find some event that a user would never trigger, so that we know it's from snapshot . On tvOS, there is no orientation so we ask for a count of app views with type \"Browser\" (which should never exist on tvOS). snapshot then iterates through all test events and check where we either did this weird rotation (on iOS) or searched for browsers (on tvOS). Once snapshot has all events triggered by snapshot it collects a ordered list of all the file names of the actual screenshots of the application. In the test output, the Swift snapshot function will print out something like this snapshot: [some random text here] snapshot finds all these entries using a regex. The number of snapshot outputs in the terminal and the number of snapshot events in the plist file should be the same. Knowing that, snapshot automatically matches these 2 lists to identify the name of each of these screenshots. They are then copied over to the output directory and separated by language and device. 2 thing have to be passed on from snapshot to the xcodebuild command line tool: The device type is passed via the destination parameter of the xcodebuild parameter The language is passed via a temporary file which is written by snapshot before running the tests and read by the UI Tests when launching the application If you find a better way to do any of this, please submit an issue on GitHub or even a pull request :+1: Radar 23062925 has been resolved with Xcode 8.3, so it's now possible to actually take screenshots from the simulator. We'll keep using the old approach for now, since many of you still want to use older versions of Xcode.","title":"How does it work?"},{"location":"generated/actions/snapshot/#tips","text":"","title":"Tips"},{"location":"generated/actions/snapshot/#frame-the-screenshots","text":"If you want to add frames around the screenshots and even put a title on top, check out frameit .","title":"Frame the screenshots"},{"location":"generated/actions/snapshot/#available-language-codes","text":"ALL_LANGUAGES = [\"da\", \"de-DE\", \"el\", \"en-AU\", \"en-CA\", \"en-GB\", \"en-US\", \"es-ES\", \"es-MX\", \"fi\", \"fr-CA\", \"fr-FR\", \"id\", \"it\", \"ja\", \"ko\", \"ms\", \"nl-NL\", \"no\", \"pt-BR\", \"pt-PT\", \"ru\", \"sv\", \"th\", \"tr\", \"vi\", \"zh-Hans\", \"zh-Hant\"] To get more information about language and locale codes please read Internationalization and Localization Guide .","title":"Available language codes"},{"location":"generated/actions/snapshot/#use-a-clean-status-bar","text":"You can set override_status_bar to true to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available.","title":"Use a clean status bar"},{"location":"generated/actions/snapshot/#editing-the-snapfile","text":"Change syntax highlighting to Ruby .","title":"Editing the Snapfile"},{"location":"generated/actions/snapshot/#determine-language","text":"To detect the currently used localization in your tests, access the deviceLanguage variable from SnapshotHelper.swift .","title":"Determine language"},{"location":"generated/actions/snapshot/#speed-up-snapshots","text":"A lot of time in UI tests is spent waiting for animations. You can disable UIView animations in your app to make the tests faster: if ProcessInfo().arguments.contains(\"SKIP_ANIMATIONS\") { UIView.setAnimationsEnabled(false) } This requires you to pass the launch argument like so: snapshot(launch_arguments: [\"SKIP_ANIMATIONS\"]) By default, snapshot will wait for a short time for the animations to finish. If you're skipping the animations, this wait time is unnecessary and can be skipped: setupSnapshot(app, waitForAnimations: false) snapshot Supported platforms ios, mac Author @KrauseFx","title":"Speed up snapshots"},{"location":"generated/actions/snapshot/#3-examples","text":"capture_ios_screenshots snapshot # alias for \"capture_ios_screenshots\" capture_ios_screenshots( skip_open_summary: true, clean: true )","title":"3 Examples"},{"location":"generated/actions/snapshot/#parameters","text":"Key Description Default workspace Path the workspace file project Path the project file xcargs Pass additional arguments to xcodebuild for the test phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app devices A list of devices you want to take the screenshots from languages A list of languages which should be used [\"en-US\"] launch_arguments A list of launch arguments which should be used [\"\"] output_directory The directory where to store the screenshots * output_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false ios_version By default, the latest version should be used automatically. If you want to change it, do it here skip_open_summary Don't open the HTML summary after running snapshot false skip_helper_version_check Do not check for most recent SnapshotHelper code false clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running snapshot false reinstall_app Enabling this option will automatically uninstall the application before running it false erase_simulator Enabling this option will automatically erase the simulator before running the application false headless Enabling this option will prevent displaying the simulator window true override_status_bar Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception (Adjust 'SNAPSHOT_SIMULATOR_WAIT_FOR_BOOT_TIMEOUT' environment variable if override status bar is not working. Might be because simulator is not fully booted. Defaults to 10 seconds) false override_status_bar_arguments Fully customize the status bar by setting each option here. Requires override_status_bar to be set to true . See xcrun simctl status_bar --help localize_simulator Enabling this option will configure the Simulator's system language false dark_mode Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark) app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * add_photos A list of photos that should be added to the simulator before running the application add_videos A list of videos that should be added to the simulator before running the application html_template A path to screenshots.html template buildlog_path The directory where to store the build log * clean Should the project be cleaned before building it? false test_without_building Test without building, requires a derived data path configuration The configuration to use when building the app. Defaults to 'Release' * sdk The SDK that should be used for building the application scheme The scheme you want to use, this must be the scheme for the UI Tests number_of_retries The number of times a test can fail before snapshot should stop retrying 1 stop_after_first_error Should snapshot stop immediately after the tests completely failed on one device? false derived_data_path The directory where build products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false test_target_name The name of the target you want to test (if you desire to override the Target Application from Xcode) namespace_log_files Separate the log files per device and per language concurrent_simulators Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9 true disable_slide_to_type Disable the simulator from showing the 'Slide to type' prompt false cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false testplan The testplan associated with the scheme that should be used for testing only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * xcpretty_args DEPRECATED! Use xcodebuild_formatter: '' instead - Additional xcpretty arguments disable_xcpretty Disable xcpretty formatting of build suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/snapshot/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The snapshot action generates the following Lane Variables: SharedValue Description SharedValues::SNAPSHOT_SCREENSHOTS_PATH The path to the screenshots To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/snapshot/#documentation","text":"To show the documentation in your terminal, run fastlane action snapshot","title":"Documentation"},{"location":"generated/actions/snapshot/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run snapshot To pass parameters, make use of the : symbol, for example fastlane run snapshot parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/snapshot/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/sonar/","text":"sonar Invokes sonar-scanner to programmatically run SonarQube analysis See http://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner for details. It can process unit test results if formatted as junit report as shown in xctest action. It can also integrate coverage reports in Cobertura format, which can be transformed into by the slather action. sonar Supported platforms ios, android, mac Author @c_gretzki Returns The exit code of the sonar-scanner binary 2 Examples sonar( project_key: \"name.gretzki.awesomeApp\", project_version: \"1.0\", project_name: \"iOS - AwesomeApp\", sources_path: File.expand_path(\"../AwesomeApp\") ) sonar( project_key: \"name.gretzki.awesomeApp\", project_version: \"1.0\", project_name: \"iOS - AwesomeApp\", sources_path: File.expand_path(\"../AwesomeApp\"), sonar_organization: \"myOrg\", sonar_login: \"123456abcdef\", sonar_url: \"https://sonarcloud.io\" ) Parameters Key Description Default project_configuration_path The path to your sonar project configuration file; defaults to sonar-project.properties project_key The key sonar uses to identify the project, e.g. name.gretzki.awesomeApp . Must either be specified here or inside the sonar project configuration file project_name The name of the project that gets displayed on the sonar report page. Must either be specified here or inside the sonar project configuration file project_version The project's version that gets displayed on the sonar report page. Must either be specified here or inside the sonar project configuration file sources_path Comma-separated paths to directories containing source files. Must either be specified here or inside the sonar project configuration file exclusions Comma-separated paths to directories to be excluded from the analysis project_language Language key, e.g. objc source_encoding Used encoding of source files, e.g., UTF-8 sonar_runner_args Pass additional arguments to sonar-scanner. Be sure to provide the arguments with a leading -D e.g. FL_SONAR_RUNNER_ARGS=\"-Dsonar.verbose=true\" sonar_login Pass the Sonar Login token (e.g: xxxxxxprivate_token_XXXXbXX7e) sonar_url Pass the url of the Sonar server sonar_organization Key of the organization on SonarCloud branch_name Pass the branch name which is getting scanned pull_request_branch The name of the branch that contains the changes to be merged pull_request_base The long-lived branch into which the PR will be merged pull_request_key Unique identifier of your PR. Must correspond to the key of the PR in GitHub or TFS * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action sonar CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sonar To pass parameters, make use of the : symbol, for example fastlane run sonar parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Sonar"},{"location":"generated/actions/sonar/#sonar","text":"Invokes sonar-scanner to programmatically run SonarQube analysis See http://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner for details. It can process unit test results if formatted as junit report as shown in xctest action. It can also integrate coverage reports in Cobertura format, which can be transformed into by the slather action. sonar Supported platforms ios, android, mac Author @c_gretzki Returns The exit code of the sonar-scanner binary","title":"sonar"},{"location":"generated/actions/sonar/#2-examples","text":"sonar( project_key: \"name.gretzki.awesomeApp\", project_version: \"1.0\", project_name: \"iOS - AwesomeApp\", sources_path: File.expand_path(\"../AwesomeApp\") ) sonar( project_key: \"name.gretzki.awesomeApp\", project_version: \"1.0\", project_name: \"iOS - AwesomeApp\", sources_path: File.expand_path(\"../AwesomeApp\"), sonar_organization: \"myOrg\", sonar_login: \"123456abcdef\", sonar_url: \"https://sonarcloud.io\" )","title":"2 Examples"},{"location":"generated/actions/sonar/#parameters","text":"Key Description Default project_configuration_path The path to your sonar project configuration file; defaults to sonar-project.properties project_key The key sonar uses to identify the project, e.g. name.gretzki.awesomeApp . Must either be specified here or inside the sonar project configuration file project_name The name of the project that gets displayed on the sonar report page. Must either be specified here or inside the sonar project configuration file project_version The project's version that gets displayed on the sonar report page. Must either be specified here or inside the sonar project configuration file sources_path Comma-separated paths to directories containing source files. Must either be specified here or inside the sonar project configuration file exclusions Comma-separated paths to directories to be excluded from the analysis project_language Language key, e.g. objc source_encoding Used encoding of source files, e.g., UTF-8 sonar_runner_args Pass additional arguments to sonar-scanner. Be sure to provide the arguments with a leading -D e.g. FL_SONAR_RUNNER_ARGS=\"-Dsonar.verbose=true\" sonar_login Pass the Sonar Login token (e.g: xxxxxxprivate_token_XXXXbXX7e) sonar_url Pass the url of the Sonar server sonar_organization Key of the organization on SonarCloud branch_name Pass the branch name which is getting scanned pull_request_branch The name of the branch that contains the changes to be merged pull_request_base The long-lived branch into which the PR will be merged pull_request_key Unique identifier of your PR. Must correspond to the key of the PR in GitHub or TFS * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/sonar/#documentation","text":"To show the documentation in your terminal, run fastlane action sonar","title":"Documentation"},{"location":"generated/actions/sonar/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sonar To pass parameters, make use of the : symbol, for example fastlane run sonar parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/sonar/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/sourcedocs/","text":"sourcedocs Generate docs using SourceDocs sourcedocs Supported platforms ios, mac Author @Kukurijek 2 Examples sourcedocs(output_folder: 'docs') sourcedocs(output_folder: 'docs', clean: true, reproducible: true, scheme: 'MyApp') Parameters Key Description Default all_modules Generate documentation for all modules in a Swift package spm_module Generate documentation for Swift Package Manager module module_name Generate documentation for a Swift module link_beginning The text to begin links with link_ending The text to end links with (default: .md) output_folder Output directory to clean (default: Documentation/Reference) min_acl Access level to include in documentation [private, fileprivate, internal, public, open] (default: public) module_name_path Include the module name as part of the output folder path clean Delete output folder before generating documentation collapsible Put methods, properties and enum cases inside collapsible blocks table_of_contents Generate a table of contents with properties and methods for each type reproducible Generate documentation that is reproducible: only depends on the sources scheme Create documentation for specific scheme sdk_platform Create documentation for specific sdk platform * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action sourcedocs CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sourcedocs To pass parameters, make use of the : symbol, for example fastlane run sourcedocs parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Sourcedocs"},{"location":"generated/actions/sourcedocs/#sourcedocs","text":"Generate docs using SourceDocs sourcedocs Supported platforms ios, mac Author @Kukurijek","title":"sourcedocs"},{"location":"generated/actions/sourcedocs/#2-examples","text":"sourcedocs(output_folder: 'docs') sourcedocs(output_folder: 'docs', clean: true, reproducible: true, scheme: 'MyApp')","title":"2 Examples"},{"location":"generated/actions/sourcedocs/#parameters","text":"Key Description Default all_modules Generate documentation for all modules in a Swift package spm_module Generate documentation for Swift Package Manager module module_name Generate documentation for a Swift module link_beginning The text to begin links with link_ending The text to end links with (default: .md) output_folder Output directory to clean (default: Documentation/Reference) min_acl Access level to include in documentation [private, fileprivate, internal, public, open] (default: public) module_name_path Include the module name as part of the output folder path clean Delete output folder before generating documentation collapsible Put methods, properties and enum cases inside collapsible blocks table_of_contents Generate a table of contents with properties and methods for each type reproducible Generate documentation that is reproducible: only depends on the sources scheme Create documentation for specific scheme sdk_platform Create documentation for specific sdk platform * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/sourcedocs/#documentation","text":"To show the documentation in your terminal, run fastlane action sourcedocs","title":"Documentation"},{"location":"generated/actions/sourcedocs/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sourcedocs To pass parameters, make use of the : symbol, for example fastlane run sourcedocs parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/sourcedocs/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/spaceship_logs/","text":"spaceship_logs Find, print, and copy Spaceship logs spaceship_logs Supported platforms ios, android, mac Author @joshdholtz Returns The array of Spaceship logs 5 Examples spaceship_logs spaceship_logs( copy_to_path: \"/tmp/artifacts\" ) spaceship_logs( copy_to_clipboard: true ) spaceship_logs( print_contents: true, print_paths: true ) spaceship_logs( latest: false, print_contents: true, print_paths: true ) Parameters Key Description Default latest Finds only the latest Spaceshop log file if set to true, otherwise returns all true print_contents Prints the contents of the found Spaceship log file(s) false print_paths Prints the paths of the found Spaceship log file(s) false copy_to_path Copies the found Spaceship log file(s) to a directory copy_to_clipboard Copies the contents of the found Spaceship log file(s) to the clipboard false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action spaceship_logs CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run spaceship_logs To pass parameters, make use of the : symbol, for example fastlane run spaceship_logs parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Spaceship logs"},{"location":"generated/actions/spaceship_logs/#spaceship_logs","text":"Find, print, and copy Spaceship logs spaceship_logs Supported platforms ios, android, mac Author @joshdholtz Returns The array of Spaceship logs","title":"spaceship_logs"},{"location":"generated/actions/spaceship_logs/#5-examples","text":"spaceship_logs spaceship_logs( copy_to_path: \"/tmp/artifacts\" ) spaceship_logs( copy_to_clipboard: true ) spaceship_logs( print_contents: true, print_paths: true ) spaceship_logs( latest: false, print_contents: true, print_paths: true )","title":"5 Examples"},{"location":"generated/actions/spaceship_logs/#parameters","text":"Key Description Default latest Finds only the latest Spaceshop log file if set to true, otherwise returns all true print_contents Prints the contents of the found Spaceship log file(s) false print_paths Prints the paths of the found Spaceship log file(s) false copy_to_path Copies the found Spaceship log file(s) to a directory copy_to_clipboard Copies the contents of the found Spaceship log file(s) to the clipboard false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/spaceship_logs/#documentation","text":"To show the documentation in your terminal, run fastlane action spaceship_logs","title":"Documentation"},{"location":"generated/actions/spaceship_logs/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run spaceship_logs To pass parameters, make use of the : symbol, for example fastlane run spaceship_logs parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/spaceship_logs/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/spaceship_stats/","text":"spaceship_stats Print out Spaceship stats from this session (number of request to each domain) spaceship_stats Supported platforms ios, android, mac Author @joshdholtz 1 Example spaceship_stats Parameters Key Description Default print_request_logs Print all URLs requested false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action spaceship_stats CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run spaceship_stats To pass parameters, make use of the : symbol, for example fastlane run spaceship_stats parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Spaceship stats"},{"location":"generated/actions/spaceship_stats/#spaceship_stats","text":"Print out Spaceship stats from this session (number of request to each domain) spaceship_stats Supported platforms ios, android, mac Author @joshdholtz","title":"spaceship_stats"},{"location":"generated/actions/spaceship_stats/#1-example","text":"spaceship_stats","title":"1 Example"},{"location":"generated/actions/spaceship_stats/#parameters","text":"Key Description Default print_request_logs Print all URLs requested false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/spaceship_stats/#documentation","text":"To show the documentation in your terminal, run fastlane action spaceship_stats","title":"Documentation"},{"location":"generated/actions/spaceship_stats/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run spaceship_stats To pass parameters, make use of the : symbol, for example fastlane run spaceship_stats parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/spaceship_stats/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/splunkmint/","text":"splunkmint Upload dSYM file to Splunk MINT splunkmint Supported platforms ios Author @xfreebird 1 Example splunkmint( dsym: \"My.app.dSYM.zip\", api_key: \"43564d3a\", api_token: \"e05456234c4869fb7e0b61\" ) Parameters Key Description Default dsym dSYM.zip file to upload to Splunk MINT api_key Splunk MINT App API key e.g. f57a57ca api_token Splunk MINT API token e.g. e05ba40754c4869fb7e0b61 verbose Make detailed output false upload_progress Show upload progress false proxy_username Proxy username proxy_password Proxy password proxy_address Proxy address proxy_port Proxy port * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action splunkmint CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run splunkmint To pass parameters, make use of the : symbol, for example fastlane run splunkmint parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Splunkmint"},{"location":"generated/actions/splunkmint/#splunkmint","text":"Upload dSYM file to Splunk MINT splunkmint Supported platforms ios Author @xfreebird","title":"splunkmint"},{"location":"generated/actions/splunkmint/#1-example","text":"splunkmint( dsym: \"My.app.dSYM.zip\", api_key: \"43564d3a\", api_token: \"e05456234c4869fb7e0b61\" )","title":"1 Example"},{"location":"generated/actions/splunkmint/#parameters","text":"Key Description Default dsym dSYM.zip file to upload to Splunk MINT api_key Splunk MINT App API key e.g. f57a57ca api_token Splunk MINT API token e.g. e05ba40754c4869fb7e0b61 verbose Make detailed output false upload_progress Show upload progress false proxy_username Proxy username proxy_password Proxy password proxy_address Proxy address proxy_port Proxy port * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/splunkmint/#documentation","text":"To show the documentation in your terminal, run fastlane action splunkmint","title":"Documentation"},{"location":"generated/actions/splunkmint/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run splunkmint To pass parameters, make use of the : symbol, for example fastlane run splunkmint parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/splunkmint/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/spm/","text":"spm Runs Swift Package Manager on your project spm Supported platforms ios, android, mac Author @fjcaetano, @nxtstep 3 Examples spm spm( command: \"build\", build_path: \"./build\", configuration: \"release\" ) spm( command: \"generate-xcodeproj\", xcconfig: \"Package.xcconfig\" ) Parameters Key Description Default command The swift command (one of: build, test, clean, reset, update, resolve, generate-xcodeproj, init) build enable_code_coverage Enables code coverage for the generated Xcode project when using the 'generate-xcodeproj' and the 'test' command build_path Specify build/cache directory [default: ./.build] package_path Change working directory before any other operation xcconfig Use xcconfig file to override swift package generate-xcodeproj defaults configuration Build with configuration (debug|release) [default: debug] disable_sandbox Disable using the sandbox when executing subprocesses false xcpretty_output Specifies the output type for xcpretty. eg. 'test', or 'simple' xcpretty_args Pass in xcpretty additional command line arguments (e.g. '--test --no-color' or '--tap --no-utf'), requires xcpretty_output to be specified also verbose Increase verbosity of informational output false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action spm CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run spm To pass parameters, make use of the : symbol, for example fastlane run spm parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Spm"},{"location":"generated/actions/spm/#spm","text":"Runs Swift Package Manager on your project spm Supported platforms ios, android, mac Author @fjcaetano, @nxtstep","title":"spm"},{"location":"generated/actions/spm/#3-examples","text":"spm spm( command: \"build\", build_path: \"./build\", configuration: \"release\" ) spm( command: \"generate-xcodeproj\", xcconfig: \"Package.xcconfig\" )","title":"3 Examples"},{"location":"generated/actions/spm/#parameters","text":"Key Description Default command The swift command (one of: build, test, clean, reset, update, resolve, generate-xcodeproj, init) build enable_code_coverage Enables code coverage for the generated Xcode project when using the 'generate-xcodeproj' and the 'test' command build_path Specify build/cache directory [default: ./.build] package_path Change working directory before any other operation xcconfig Use xcconfig file to override swift package generate-xcodeproj defaults configuration Build with configuration (debug|release) [default: debug] disable_sandbox Disable using the sandbox when executing subprocesses false xcpretty_output Specifies the output type for xcpretty. eg. 'test', or 'simple' xcpretty_args Pass in xcpretty additional command line arguments (e.g. '--test --no-color' or '--tap --no-utf'), requires xcpretty_output to be specified also verbose Increase verbosity of informational output false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/spm/#documentation","text":"To show the documentation in your terminal, run fastlane action spm","title":"Documentation"},{"location":"generated/actions/spm/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run spm To pass parameters, make use of the : symbol, for example fastlane run spm parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/spm/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/ssh/","text":"ssh Allows remote command execution using ssh Lets you execute remote commands via ssh using username/password or ssh-agent. If one of the commands in command-array returns non 0, it fails. ssh Supported platforms ios, android, mac Author @hjanuschka 1 Example ssh( host: \"dev.januschka.com\", username: \"root\", commands: [ \"date\", \"echo 1 > /tmp/file1\" ] ) Parameters Key Description Default username Username password Password host Hostname port Port 22 commands Commands log Log commands and output true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The ssh action generates the following Lane Variables: SharedValue Description SharedValues::SSH_STDOUT_VALUE Holds the standard output of all commands SharedValues::SSH_STDERR_VALUE Holds the standard error of all commands To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action ssh CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ssh To pass parameters, make use of the : symbol, for example fastlane run ssh parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Ssh"},{"location":"generated/actions/ssh/#ssh","text":"Allows remote command execution using ssh Lets you execute remote commands via ssh using username/password or ssh-agent. If one of the commands in command-array returns non 0, it fails. ssh Supported platforms ios, android, mac Author @hjanuschka","title":"ssh"},{"location":"generated/actions/ssh/#1-example","text":"ssh( host: \"dev.januschka.com\", username: \"root\", commands: [ \"date\", \"echo 1 > /tmp/file1\" ] )","title":"1 Example"},{"location":"generated/actions/ssh/#parameters","text":"Key Description Default username Username password Password host Hostname port Port 22 commands Commands log Log commands and output true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/ssh/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The ssh action generates the following Lane Variables: SharedValue Description SharedValues::SSH_STDOUT_VALUE Holds the standard output of all commands SharedValues::SSH_STDERR_VALUE Holds the standard error of all commands To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/ssh/#documentation","text":"To show the documentation in your terminal, run fastlane action ssh","title":"Documentation"},{"location":"generated/actions/ssh/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ssh To pass parameters, make use of the : symbol, for example fastlane run ssh parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/ssh/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/supply/","text":"supply Alias for the upload_to_play_store action Command line tool for updating Android apps and their metadata on the Google Play Store supply uploads app metadata, screenshots, binaries, and app bundles to Google Play. You can also select tracks for builds and promote builds to production. Features \u2022 Setup \u2022 Quick Start \u2022 Commands \u2022 Uploading an APK \u2022 Uploading an AAB \u2022 Images Features Update existing Android applications on Google Play via the command line Upload new builds (APKs and AABs) Retrieve and edit metadata, such as title and description, for multiple languages Upload the app icon, promo graphics and screenshots for multiple languages Have a local copy of the metadata in your git repository Retrieve version code numbers from existing Google Play tracks Setup Setup consists of setting up your Google Developers Service Account Tip: If you see Google Play Console or Google Developer Console in your local language, add &hl=en at the end of the URL (before any #... ) to switch to English. All the links below already have this to make it easier to find the correct buttons. Note: if you face issues when following these instructions, you might want to refer to the official documentation by Google . Open the Google Play Console Click Account Details , and note the Developer Account ID listed there Enable the Google Play Developer API by selecting an existing Google Cloud Project that fits your needs and pushing ENABLE If you don't have an existing project or prefer to have a dedicated one for fastlane , create a new one here and follow the instructions Open Service Accounts on Google Cloud and select the project you'd like to use Click the CREATE SERVICE ACCOUNT button at the top of the Google Cloud Platform Console page Verify that you are on the correct Google Cloud Platform Project by looking for the Developer Account ID from earlier within the light gray text in the second input, preceding .iam.gserviceaccount.com , or by checking the project name in the navigaton bar. If not, open the picker in the top navigation bar, and find the right one. Provide a Service account name (e.g. fastlane-supply) Copy the generated email address that is noted below the Service account-ID field for later use Click DONE (don't click CREATE AND CONTINUE as the optional steps such as granting access are not needed): Click on the Actions vertical three-dot icon of the service account you just created Select Manage keys on the menu Click ADD KEY \u2192 Create New Key Make sure JSON is selected as the Key type , and click CREATE Save the file on your computer when prompted and remember where it was saved at Open the Google Play Console and select Users and Permissions Click Invite new users Paste the email address you saved for later use into the email address field Click on Account Permissions Choose the permissions you'd like this account to have. We recommend Admin (all permissions) , but you may want to manually select all checkboxes and leave out some of the Releases permissions such as Release to production, exclude devices, and use Play App Signing Click on Invite User You can use fastlane run validate_play_store_json_key json_key:/path/to/your/downloaded/file.json to test the connection to Google Play Store with the downloaded private key. Once that works, add the path to the JSON file to your Appfile : json_key_file(\"path/to/your/play-store-credentials.json\") package_name(\"my.package.name\") The path is relative to where you normally run fastlane . Migrating Google credential format (from .p12 key file to .json) In previous versions of supply, credentials to your Play Console were stored as .p12 files. Since version 0.4.0, supply now supports the recommended .json key Service Account credential files. If you wish to upgrade: follow the Setup procedure once again to make sure you create the appropriate JSON file update your fastlane configuration or your command line invocation to use the appropriate argument if necessary. Note that you don't need to take note nor pass the issuer argument anymore. The previous p12 configuration is still currently supported. Quick Start Before using supply to connect to Google Play Store, you'll need to set up your app manually first by uploading at least one build to Google Play Store. See fastlane/fastlane#14686 for more info. cd [your_project_folder] fastlane supply init Make changes to the downloaded metadata, add images, screenshots and/or an APK fastlane supply Available Commands fastlane supply : update an app with metadata, a build, images and screenshots fastlane supply init : download metadata for an existing app to a local directory fastlane action supply : show information on available commands, arguments and environment variables You can either run supply on its own and use it interactively, or you can pass arguments or specify environment variables for all the options to skip the questions. Uploading an APK To upload a new binary to Google Play, simply run fastlane supply --apk path/to/app.apk This will also upload app metadata if you previously ran fastlane supply init . To gradually roll out a new build use fastlane supply --apk path/app.apk --track beta --rollout 0.5 To set the in-app update priority level for a release, set a valid update priority (an integer value from 0 to 5) using option in_app_update_priority fastlane supply --apk path/app.apk --track beta --in_app_update_priority 3 Expansion files ( .obb ) Expansion files (obbs) found under the same directory as your APK will also be uploaded together with your APK as long as: they are identified as type 'main' or 'patch' (by containing 'main' or 'patch' in their file name) you have at most one of each type If you only want to update the APK, but keep the expansion files from the previous version on Google Play use fastlane supply --apk path/app.apk --obb_main_references_version 21 --obb_main_file_size 666154207 or fastlane supply --apk path/app.apk --obb_patch_references_version 21 --obb_patch_file_size 666154207 Uploading an AAB To upload a new Android application bundle to Google Play, simply run fastlane supply --aab path/to/app.aab This will also upload app metadata if you previously ran fastlane supply init . To gradually roll out a new build use fastlane supply --aab path/app.aab --track beta --rollout 0.5 To set the in-app update priority level for a release, set a valid update priority (an integer value from 0 to 5) using option in_app_update_priority fastlane supply --aab path/app.aab --track beta --in_app_update_priority 3 Images and Screenshots After running fastlane supply init , you will have a metadata directory. This directory contains one or more locale directories (e.g. en-US, en-GB, etc.), and inside this directory are text files such as title.txt and short_description.txt . Inside of a given locale directory is a folder called images . Here you can supply images with the following file names (extension can be png, jpg or jpeg): featureGraphic icon promoGraphic tvBanner You can also supply screenshots by creating directories within the images directory with the following names, containing PNGs or JPEGs: phoneScreenshots/ sevenInchScreenshots/ (7-inch tablets) tenInchScreenshots/ (10-inch tablets) tvScreenshots/ wearScreenshots/ You may name images anything you like, but screenshots will appear in the Play Store in alphanumerical filename order. Note that these will replace the current images and screenshots on the play store listing, not add to them. Changelogs (What's new) You can add changelog files under the changelogs/ directory for each locale. The filename should exactly match the version code of the APK that it represents. You can also provide default notes that will be used if no files match the version code by adding a default.txt file. fastlane supply init will populate changelog files from existing data on Google Play if no metadata/ directory exists when it is run. \u2514\u2500\u2500 fastlane \u2514\u2500\u2500 metadata \u2514\u2500\u2500 android \u251c\u2500\u2500 en-US \u2502 \u2514\u2500\u2500 changelogs \u2502 \u251c\u2500\u2500 default.txt \u2502 \u251c\u2500\u2500 100000.txt \u2502 \u2514\u2500\u2500 100100.txt \u2514\u2500\u2500 fr-FR \u2514\u2500\u2500 changelogs \u251c\u2500\u2500 default.txt \u2514\u2500\u2500 100100.txt Track Promotion A common Play publishing scenario might involve uploading an APK version to a test track, testing it, and finally promoting that version to production. This can be done using the --track_promote_to parameter. The --track_promote_to parameter works with the --track parameter to command the Play API to promote existing Play track APK version(s) (those active on the track identified by the --track param value) to a new track ( --track_promote_to value). Retrieve Track Release Names & Version Codes Before performing a new APK upload you may want to check existing track version codes or release names, or you may simply want to provide an informational lane that displays the currently promoted version codes or release name for the production track. You can use the google_play_track_version_codes action to retrieve existing version codes for a package and track. You can use the google_play_track_release_names action to retrieve existing release names for a package and track. For more information, see the fastlane action google_play_track_version_codes and fastlane action google_play_track_release_names help output. Migration from AndroidPublisherV2 to AndroidPublisherV3 in fastlane 2.135.0 New Options :version_name Used when uploading with :apk_path , :apk_paths , :aab_path , and :aab_paths Can be any string such (example: \"October Release\" or \"Awesome New Feature\") Defaults to the version name in app/build.gradle or AndroidManifest.xml :release_status Used when uploading with :apk_path , :apk_paths , :aab_path , and :aab_paths Can set as \"draft\" to complete the release at some other time Defaults to \"completed\" :version_code Used for :update_rollout , :track_promote_to , and uploading of meta data and screenshots :skip_upload_changelogs Changelogs were previously included with the :skip_upload_metadata but is now its own option Deprecated Options :check_superseded_tracks Google Play will automatically remove releases that are superseded now :deactivate_on_promote Google Play will automatically deactivate a release from its previous track on promote : supply Supported platforms android Author @KrauseFx 2 Examples upload_to_play_store supply # alias for \"upload_to_play_store\" Parameters Key Description Default package_name The package name of the application to use * version_name Version name (used when uploading new apks/aabs) - defaults to 'versionName' in build.gradle or AndroidManifest.xml * version_code The versionCode for which to download the generated APK * release_status Release status (used when uploading new apks/aabs) - valid values are completed, draft, halted, inProgress * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production rollout The percentage of the user fraction when uploading to the rollout track (setting to 1 will complete the rollout) metadata_path Path to the directory containing the metadata files * key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * apk Path to the APK file to upload * apk_paths An array of paths to APK files to upload aab Path to the AAB file to upload * aab_paths An array of paths to AAB files to upload skip_upload_apk Whether to skip uploading APK false skip_upload_aab Whether to skip uploading AAB false skip_upload_metadata Whether to skip uploading metadata, changelogs not included false skip_upload_changelogs Whether to skip uploading changelogs false skip_upload_images Whether to skip uploading images, screenshots not included false skip_upload_screenshots Whether to skip uploading SCREENSHOTS false sync_image_upload Whether to use sha256 comparison to skip upload of images and screenshots that are already in Play Store false track_promote_to The track to promote to. The default available tracks are: production, beta, alpha, internal track_promote_release_status Promoted track release status (used when promoting a track) - valid values are completed, draft, halted, inProgress completed validate_only Only validate changes with Google Play rather than actually publish false mapping Path to the mapping file to upload (mapping.txt or native-debug-symbols.zip alike) mapping_paths An array of paths to mapping files to upload (mapping.txt or native-debug-symbols.zip alike) root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ check_superseded_tracks DEPRECATED! Google Play does this automatically now - Check the other tracks for superseded versions and disable them false timeout Timeout for read, open, and send (in seconds) 300 deactivate_on_promote DEPRECATED! Google Play does this automatically now - When promoting to a new track, deactivate the binary in the origin track true version_codes_to_retain An array of version codes to retain when publishing a new APK changes_not_sent_for_review Indicates that the changes in this edit will not be reviewed until they are explicitly sent for review from the Google Play Console UI false rescue_changes_not_sent_for_review Catches changes_not_sent_for_review errors when an edit is committed and retries with the configuration that the error message recommended true in_app_update_priority In-app update priority for all the newly added apks in the release. Can take values between [0,5] obb_main_references_version References version of 'main' expansion file obb_main_file_size Size of 'main' expansion file in bytes obb_patch_references_version References version of 'patch' expansion file obb_patch_file_size Size of 'patch' expansion file in bytes ack_bundle_installation_warning Must be set to true if the bundle installation may trigger a warning on user devices (e.g can only be downloaded over wifi). Typically this is required for bundles over 150MB false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action supply CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run supply To pass parameters, make use of the : symbol, for example fastlane run supply parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Supply"},{"location":"generated/actions/supply/#supply","text":"Alias for the upload_to_play_store action","title":"supply"},{"location":"generated/actions/supply/#features","text":"Update existing Android applications on Google Play via the command line Upload new builds (APKs and AABs) Retrieve and edit metadata, such as title and description, for multiple languages Upload the app icon, promo graphics and screenshots for multiple languages Have a local copy of the metadata in your git repository Retrieve version code numbers from existing Google Play tracks","title":"Features"},{"location":"generated/actions/supply/#setup","text":"Setup consists of setting up your Google Developers Service Account Tip: If you see Google Play Console or Google Developer Console in your local language, add &hl=en at the end of the URL (before any #... ) to switch to English. All the links below already have this to make it easier to find the correct buttons. Note: if you face issues when following these instructions, you might want to refer to the official documentation by Google . Open the Google Play Console Click Account Details , and note the Developer Account ID listed there Enable the Google Play Developer API by selecting an existing Google Cloud Project that fits your needs and pushing ENABLE If you don't have an existing project or prefer to have a dedicated one for fastlane , create a new one here and follow the instructions Open Service Accounts on Google Cloud and select the project you'd like to use Click the CREATE SERVICE ACCOUNT button at the top of the Google Cloud Platform Console page Verify that you are on the correct Google Cloud Platform Project by looking for the Developer Account ID from earlier within the light gray text in the second input, preceding .iam.gserviceaccount.com , or by checking the project name in the navigaton bar. If not, open the picker in the top navigation bar, and find the right one. Provide a Service account name (e.g. fastlane-supply) Copy the generated email address that is noted below the Service account-ID field for later use Click DONE (don't click CREATE AND CONTINUE as the optional steps such as granting access are not needed): Click on the Actions vertical three-dot icon of the service account you just created Select Manage keys on the menu Click ADD KEY \u2192 Create New Key Make sure JSON is selected as the Key type , and click CREATE Save the file on your computer when prompted and remember where it was saved at Open the Google Play Console and select Users and Permissions Click Invite new users Paste the email address you saved for later use into the email address field Click on Account Permissions Choose the permissions you'd like this account to have. We recommend Admin (all permissions) , but you may want to manually select all checkboxes and leave out some of the Releases permissions such as Release to production, exclude devices, and use Play App Signing Click on Invite User You can use fastlane run validate_play_store_json_key json_key:/path/to/your/downloaded/file.json to test the connection to Google Play Store with the downloaded private key. Once that works, add the path to the JSON file to your Appfile : json_key_file(\"path/to/your/play-store-credentials.json\") package_name(\"my.package.name\") The path is relative to where you normally run fastlane .","title":"Setup"},{"location":"generated/actions/supply/#quick-start","text":"Before using supply to connect to Google Play Store, you'll need to set up your app manually first by uploading at least one build to Google Play Store. See fastlane/fastlane#14686 for more info. cd [your_project_folder] fastlane supply init Make changes to the downloaded metadata, add images, screenshots and/or an APK fastlane supply","title":"Quick Start"},{"location":"generated/actions/supply/#available-commands","text":"fastlane supply : update an app with metadata, a build, images and screenshots fastlane supply init : download metadata for an existing app to a local directory fastlane action supply : show information on available commands, arguments and environment variables You can either run supply on its own and use it interactively, or you can pass arguments or specify environment variables for all the options to skip the questions.","title":"Available Commands"},{"location":"generated/actions/supply/#uploading-an-apk","text":"To upload a new binary to Google Play, simply run fastlane supply --apk path/to/app.apk This will also upload app metadata if you previously ran fastlane supply init . To gradually roll out a new build use fastlane supply --apk path/app.apk --track beta --rollout 0.5 To set the in-app update priority level for a release, set a valid update priority (an integer value from 0 to 5) using option in_app_update_priority fastlane supply --apk path/app.apk --track beta --in_app_update_priority 3","title":"Uploading an APK"},{"location":"generated/actions/supply/#uploading-an-aab","text":"To upload a new Android application bundle to Google Play, simply run fastlane supply --aab path/to/app.aab This will also upload app metadata if you previously ran fastlane supply init . To gradually roll out a new build use fastlane supply --aab path/app.aab --track beta --rollout 0.5 To set the in-app update priority level for a release, set a valid update priority (an integer value from 0 to 5) using option in_app_update_priority fastlane supply --aab path/app.aab --track beta --in_app_update_priority 3","title":"Uploading an AAB"},{"location":"generated/actions/supply/#images-and-screenshots","text":"After running fastlane supply init , you will have a metadata directory. This directory contains one or more locale directories (e.g. en-US, en-GB, etc.), and inside this directory are text files such as title.txt and short_description.txt . Inside of a given locale directory is a folder called images . Here you can supply images with the following file names (extension can be png, jpg or jpeg): featureGraphic icon promoGraphic tvBanner You can also supply screenshots by creating directories within the images directory with the following names, containing PNGs or JPEGs: phoneScreenshots/ sevenInchScreenshots/ (7-inch tablets) tenInchScreenshots/ (10-inch tablets) tvScreenshots/ wearScreenshots/ You may name images anything you like, but screenshots will appear in the Play Store in alphanumerical filename order. Note that these will replace the current images and screenshots on the play store listing, not add to them.","title":"Images and Screenshots"},{"location":"generated/actions/supply/#changelogs-whats-new","text":"You can add changelog files under the changelogs/ directory for each locale. The filename should exactly match the version code of the APK that it represents. You can also provide default notes that will be used if no files match the version code by adding a default.txt file. fastlane supply init will populate changelog files from existing data on Google Play if no metadata/ directory exists when it is run. \u2514\u2500\u2500 fastlane \u2514\u2500\u2500 metadata \u2514\u2500\u2500 android \u251c\u2500\u2500 en-US \u2502 \u2514\u2500\u2500 changelogs \u2502 \u251c\u2500\u2500 default.txt \u2502 \u251c\u2500\u2500 100000.txt \u2502 \u2514\u2500\u2500 100100.txt \u2514\u2500\u2500 fr-FR \u2514\u2500\u2500 changelogs \u251c\u2500\u2500 default.txt \u2514\u2500\u2500 100100.txt","title":"Changelogs (What's new)"},{"location":"generated/actions/supply/#track-promotion","text":"A common Play publishing scenario might involve uploading an APK version to a test track, testing it, and finally promoting that version to production. This can be done using the --track_promote_to parameter. The --track_promote_to parameter works with the --track parameter to command the Play API to promote existing Play track APK version(s) (those active on the track identified by the --track param value) to a new track ( --track_promote_to value).","title":"Track Promotion"},{"location":"generated/actions/supply/#retrieve-track-release-names-version-codes","text":"Before performing a new APK upload you may want to check existing track version codes or release names, or you may simply want to provide an informational lane that displays the currently promoted version codes or release name for the production track. You can use the google_play_track_version_codes action to retrieve existing version codes for a package and track. You can use the google_play_track_release_names action to retrieve existing release names for a package and track. For more information, see the fastlane action google_play_track_version_codes and fastlane action google_play_track_release_names help output.","title":"Retrieve Track Release Names & Version Codes"},{"location":"generated/actions/supply/#migration-from-androidpublisherv2-to-androidpublisherv3-in-fastlane-21350","text":"","title":"Migration from AndroidPublisherV2 to AndroidPublisherV3 in fastlane 2.135.0"},{"location":"generated/actions/supply/#2-examples","text":"upload_to_play_store supply # alias for \"upload_to_play_store\"","title":"2 Examples"},{"location":"generated/actions/supply/#parameters","text":"Key Description Default package_name The package name of the application to use * version_name Version name (used when uploading new apks/aabs) - defaults to 'versionName' in build.gradle or AndroidManifest.xml * version_code The versionCode for which to download the generated APK * release_status Release status (used when uploading new apks/aabs) - valid values are completed, draft, halted, inProgress * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production rollout The percentage of the user fraction when uploading to the rollout track (setting to 1 will complete the rollout) metadata_path Path to the directory containing the metadata files * key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * apk Path to the APK file to upload * apk_paths An array of paths to APK files to upload aab Path to the AAB file to upload * aab_paths An array of paths to AAB files to upload skip_upload_apk Whether to skip uploading APK false skip_upload_aab Whether to skip uploading AAB false skip_upload_metadata Whether to skip uploading metadata, changelogs not included false skip_upload_changelogs Whether to skip uploading changelogs false skip_upload_images Whether to skip uploading images, screenshots not included false skip_upload_screenshots Whether to skip uploading SCREENSHOTS false sync_image_upload Whether to use sha256 comparison to skip upload of images and screenshots that are already in Play Store false track_promote_to The track to promote to. The default available tracks are: production, beta, alpha, internal track_promote_release_status Promoted track release status (used when promoting a track) - valid values are completed, draft, halted, inProgress completed validate_only Only validate changes with Google Play rather than actually publish false mapping Path to the mapping file to upload (mapping.txt or native-debug-symbols.zip alike) mapping_paths An array of paths to mapping files to upload (mapping.txt or native-debug-symbols.zip alike) root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ check_superseded_tracks DEPRECATED! Google Play does this automatically now - Check the other tracks for superseded versions and disable them false timeout Timeout for read, open, and send (in seconds) 300 deactivate_on_promote DEPRECATED! Google Play does this automatically now - When promoting to a new track, deactivate the binary in the origin track true version_codes_to_retain An array of version codes to retain when publishing a new APK changes_not_sent_for_review Indicates that the changes in this edit will not be reviewed until they are explicitly sent for review from the Google Play Console UI false rescue_changes_not_sent_for_review Catches changes_not_sent_for_review errors when an edit is committed and retries with the configuration that the error message recommended true in_app_update_priority In-app update priority for all the newly added apks in the release. Can take values between [0,5] obb_main_references_version References version of 'main' expansion file obb_main_file_size Size of 'main' expansion file in bytes obb_patch_references_version References version of 'patch' expansion file obb_patch_file_size Size of 'patch' expansion file in bytes ack_bundle_installation_warning Must be set to true if the bundle installation may trigger a warning on user devices (e.g can only be downloaded over wifi). Typically this is required for bundles over 150MB false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/supply/#documentation","text":"To show the documentation in your terminal, run fastlane action supply","title":"Documentation"},{"location":"generated/actions/supply/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run supply To pass parameters, make use of the : symbol, for example fastlane run supply parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/supply/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/swiftlint/","text":"swiftlint Run swift code validation using SwiftLint swiftlint Supported platforms ios, mac Author @KrauseFx 1 Example swiftlint( mode: :lint, # SwiftLint mode: :lint (default) or :autocorrect path: \"/path/to/lint\", # Specify path to lint (optional) output_file: \"swiftlint.result.json\", # The path of the output file (optional) config_file: \".swiftlint-ci.yml\", # The path of the configuration file (optional) files: [# List of files to process (optional) \"AppDelegate.swift\", \"path/to/project/Model.swift\" ], raise_if_swiftlint_error: true, # Allow fastlane to raise an error if swiftlint fails ignore_exit_status: true # Allow fastlane to continue even if SwiftLint returns a non-zero exit status ) Parameters Key Description Default mode SwiftLint mode: :lint, :fix, :autocorrect or :analyze :lint path Specify path to lint output_file Path to output SwiftLint result config_file Custom configuration file of SwiftLint strict Fail on warnings? (true/false) false files List of files to process ignore_exit_status Ignore the exit status of the SwiftLint command, so that serious violations don't fail the build (true/false) false raise_if_swiftlint_error Raises an error if swiftlint fails, so you can fail CI/CD jobs if necessary (true/false) false reporter Choose output reporter. Available: xcode, json, csv, checkstyle, codeclimate, junit, html, emoji, sonarqube, markdown, github-actions-logging quiet Don't print status logs like 'Linting ' & 'Done linting' false executable Path to the swiftlint executable on your machine format Format code when mode is :autocorrect false no_cache Ignore the cache when mode is :autocorrect or :lint false compiler_log_path Compiler log path when mode is :analyze * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action swiftlint CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run swiftlint To pass parameters, make use of the : symbol, for example fastlane run swiftlint parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Swiftlint"},{"location":"generated/actions/swiftlint/#swiftlint","text":"Run swift code validation using SwiftLint swiftlint Supported platforms ios, mac Author @KrauseFx","title":"swiftlint"},{"location":"generated/actions/swiftlint/#1-example","text":"swiftlint( mode: :lint, # SwiftLint mode: :lint (default) or :autocorrect path: \"/path/to/lint\", # Specify path to lint (optional) output_file: \"swiftlint.result.json\", # The path of the output file (optional) config_file: \".swiftlint-ci.yml\", # The path of the configuration file (optional) files: [# List of files to process (optional) \"AppDelegate.swift\", \"path/to/project/Model.swift\" ], raise_if_swiftlint_error: true, # Allow fastlane to raise an error if swiftlint fails ignore_exit_status: true # Allow fastlane to continue even if SwiftLint returns a non-zero exit status )","title":"1 Example"},{"location":"generated/actions/swiftlint/#parameters","text":"Key Description Default mode SwiftLint mode: :lint, :fix, :autocorrect or :analyze :lint path Specify path to lint output_file Path to output SwiftLint result config_file Custom configuration file of SwiftLint strict Fail on warnings? (true/false) false files List of files to process ignore_exit_status Ignore the exit status of the SwiftLint command, so that serious violations don't fail the build (true/false) false raise_if_swiftlint_error Raises an error if swiftlint fails, so you can fail CI/CD jobs if necessary (true/false) false reporter Choose output reporter. Available: xcode, json, csv, checkstyle, codeclimate, junit, html, emoji, sonarqube, markdown, github-actions-logging quiet Don't print status logs like 'Linting ' & 'Done linting' false executable Path to the swiftlint executable on your machine format Format code when mode is :autocorrect false no_cache Ignore the cache when mode is :autocorrect or :lint false compiler_log_path Compiler log path when mode is :analyze * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/swiftlint/#documentation","text":"To show the documentation in your terminal, run fastlane action swiftlint","title":"Documentation"},{"location":"generated/actions/swiftlint/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run swiftlint To pass parameters, make use of the : symbol, for example fastlane run swiftlint parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/swiftlint/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/sync_code_signing/","text":"sync_code_signing Easily sync your certificates and profiles across your team (via match ) Easily sync your certificates and profiles across your team A new approach to iOS and macOS code signing: Share one code signing identity across your development team to simplify your codesigning setup and prevent code signing issues. match is the implementation of the codesigning.guide concept . match creates all required certificates & provisioning profiles and stores them in a separate git repository, Google Cloud, or Amazon S3. Every team member with access to the selected storage can use those credentials for code signing. match also automatically repairs broken and expired credentials. It's the easiest way to share signing credentials across teams More information on how to get started with codesigning Why? \u2022 Usage \u2022 Is this secure? match is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Why match? Before starting to use match , make sure to read the codesigning.guide : When deploying an app to the App Store, beta testing service or even installing it on a device, most development teams have separate code signing identities for every member. This results in dozens of profiles including a lot of duplicates. You have to manually renew and download the latest set of provisioning profiles every time you add a new device or a certificate expires. Additionally this requires spending a lot of time when setting up a new machine that will build your app. A new approach Share one code signing identity across your development team to simplify your setup and prevent code signing issues. What if there was a central place where your code signing identity and profiles are kept, so anyone in the team can access them during the build process? For more information about the concept, visit codesigning.guide . Why not let Xcode handle all this? You have full control over what happens You have access to all the certificates and profiles, which are all securely stored in git You share one code signing identity across the team to have fewer certificates and profiles Xcode sometimes revokes certificates which breaks your setup causing failed builds More predictable builds by settings profiles in an explicit way instead of using the Automatic setting It just works\u2122 What does match do for you? match \ud83d\udd04 Automatically sync your iOS and macOS keys and profiles across all your team members using git \ud83d\udce6 Handle all the heavy lifting of creating and storing your certificates and profiles \ud83d\udcbb Setup codesigning on a new machine in under a minute \ud83c\udfaf Designed to work with apps with multiple targets and bundle identifiers \ud83d\udd12 You have full control over your files and Git repo, no third party service involved \u2728 Provisioning profile will always match the correct certificate \ud83d\udca5 Easily reset your existing profiles and certificates if your current account has expired or invalid profiles \u267b\ufe0f Automatically renew your provisioning profiles to include all your devices using the --force option \ud83d\udc65 Support for multiple Apple accounts and multiple teams \u2728 Tightly integrated with fastlane to work seamlessly with gym and other build tools Usage Setup Optional: Create a new, shared Apple Developer Portal account , something like office@company.com , that will be shared across your team from now on (for more information visit codesigning.guide ) Run the following in your project folder to start using match : fastlane match init You'll be asked if you want to store your code signing identities inside a Git repo , Google Cloud or Amazon S3 . Git Storage Use Git Storage to store all code signing identities in a private git repo, owned and operated by you. The files will be encrypted using OpenSSL. First, enter the URL to your private (!) Git repo (You can create one for free on e.g. GitHub or BitBucket ). The URL you enter can be either a https:// or a git URL. fastlane match init won't read or modify your certificates or profiles yet, and also won't validate your git URL. This will create a Matchfile in your current directory (or in your ./fastlane/ folder). Example content (for more advanced setups check out the fastlane section ): git_url(\"https://github.com/fastlane/certificates\") app_identifier(\"tools.fastlane.app\") username(\"user@fastlane.tools\") Git Storage on GitHub If your machine is currently using SSH to authenticate with GitHub, you'll want to use a git URL, otherwise, you may see an authentication error when you attempt to use match. Alternatively, you can set a basic authorization for match : Using parameter: match(git_basic_authorization: '') Using environment variable: ENV['MATCH_GIT_BASIC_AUTHORIZATION'] = '' match To generate your base64 key according to RFC 7617 , run this: echo -n your_github_username:your_personal_access_token | base64 You can find more information about GitHub basic authentication and personal token generation here: https://developer.github.com/v3/auth/#basic-authentication Git Storage on GitHub - Deploy keys If your machine does not have a private key set up for your certificates repository, you can give match a path for one: Using parameter: match(git_private_key: '') Using environment variable: ENV['MATCH_GIT_PRIVATE_KEY'] = '' match You can find more information about GitHub basic authentication and personal token generation here: https://developer.github.com/v3/auth/#basic-authentication Git Storage on Azure DevOps If you're running a pipeline on Azure DevOps and using git storage in a another repository on the same project, you might want to use bearer token authentication. Using parameter: match(git_bearer_authorization: '') Using environment variable: ENV['MATCH_GIT_BEARER_AUTHORIZATION'] = '' match You can find more information about this use case here: https://docs.microsoft.com/en-us/azure/devops/pipelines/repos/azure-repos-git?view=azure-devops&tabs=yaml#authorize-access-to-your-repositories Google Cloud Storage Use Google Cloud Storage for a fully hosted solution for your code signing identities. Certificates are stored on Google Cloud, encrypted using Google managed keys. Everything will be stored on your Google account, inside a storage bucket you provide. You can also directly access the files using the web console. This will create a Matchfile in your current directory (or in your ./fastlane/ folder). Example content (for more advanced setups check out the fastlane section ): google_cloud_bucket_name(\"major-key-certificates\") Amazon S3 Use Amazon S3 for a fully hosted solution for your code signing identities. Certificates are stored on S3, inside a storage bucket you provide. You can also directly access the files using the web console. This will create a Matchfile in your current directory (or in your ./fastlane/ folder). Example content (for more advanced setups check out the fastlane section ): s3_bucket(\"ios-certificates\") Multiple teams match can store the codesigning files for multiple development teams: Git Storage Use one git branch per team. match also supports storing certificates of multiple teams in one repo, by using separate git branches. If you work in multiple teams, make sure to set the git_branch parameter to a unique value per team. From there, match will automatically create and use the specified branch for you. match(git_branch: \"team1\", username: \"user@team1.com\") match(git_branch: \"team2\", username: \"user@team2.com\") Google Cloud or Amazon S3 Storage If you use Google Cloud or Amazon S3 Storage, you don't need to do anything manually. Just use Google Cloud or Amazon S3 Storage, and the top level folder will be the team ID. Run Before running match for the first time, you should consider clearing your existing profiles and certificates using the match nuke command . After running fastlane match init you can run the following to generate new certificates and profiles: fastlane match appstore fastlane match development This will create a new certificate and provisioning profile (if required) and store them in your selected storage. If you previously ran match with the configured storage it will automatically install the existing profiles from your storage. The provisioning profiles are installed in ~/Library/MobileDevice/Provisioning Profiles while the certificates and private keys are installed in your Keychain. To get a more detailed output of what match is doing use fastlane match --verbose For a list of all available options run fastlane action match Handle multiple targets match can use the same one Git repository, Google Cloud, or Amazon S3 Storage for all bundle identifiers. If you have several targets with different bundle identifiers, supply them as a comma-separated list: fastlane match appstore -a tools.fastlane.app,tools.fastlane.app.watchkitapp You can make this even easier using fastlane by creating a certificates lane like this: lane :certificates do match(app_identifier: [\"tools.fastlane.app\", \"tools.fastlane.app.watchkitapp\"]) end Then all your team has to do is run fastlane certificates and the keys, certificates and profiles for all targets will be synced. Handle multiple apps per developer/distribution certificate If you want to use a single developer and/or distribution certificate for multiple apps belonging to the same development team, you may use the same signing identities repository and branch to store the signing identities for your apps: Matchfile example for both App #1 and #2: git_url(\"https://github.com/example/example-repo.git\") git_branch(\"master\") match will reuse certificates and will create separate provisioning profiles for each app. Passphrase Git Repo storage only When running match for the first time on a new machine, it will ask you for the passphrase for the Git repository. This is an additional layer of security: each of the files will be encrypted using openssl . Make sure to remember the password, as you'll need it when you run match on a different machine. To set the passphrase to decrypt your profiles using an environment variable (and avoid the prompt) use MATCH_PASSWORD . Migrate from Git Repo to Google Cloud If you're already using a Git Repo, but would like to switch to using Google Cloud Storage, run the following command to automatically migrate all your existing code signing identities and provisioning profiles fastlane match migrate After a successful migration you can safely delete your Git repo. Google Cloud access control Google Cloud Storage only There are two cases for reading and writing certificates stored in a Google Cloud storage bucket: Continuous integration jobs. These will authenticate to your Google Cloud project via a service account, and use a gc_keys.json file as credentials. Developers on a local workstation. In this case, you should choose whether everyone on your team will create their own gc_keys.json file, or whether you want to manage access to the bucket directly using your developers' Google accounts. When running fastlane match init the first time, the setup process will give you the option to create your gc_keys.json file. This file contains the authentication credentials needed to access your Google Cloud storage bucket. Make sure to keep that file secret and never add it to version control. We recommend adding gc_keys.json to your .gitignore Managing developer access via keys If you want to manage developer access to your certificates via authentication keys, every developer should create their own gc_keys.json and add the file to all their work machines. This will give the admin full control over who has read/write access to the given Storage bucket. At the same time it allows your team to revoke a single key if a file gets compromised. Managing developer access via Google accounts If your developers already have Google accounts and access to your Google Cloud project, you can also manage access to the storage bucket via Cloud Identity and Access Management (IAM) . Just set up individual developer accounts or an entire Google Group containing your team as readers and writers on your storage bucket. You can then specify the Google Cloud project id containing your storage bucket in your Matchfile : storage_mode(\"google_cloud\") google_cloud_bucket_name(\"my-app-certificates\") google_cloud_project_id(\"my-app-project\") This lets developers on your team use Application Default Credentials when accessing your storage bucket. After installing the Google Cloud SDK , they only need to run the following command once: gcloud auth application-default login ... and log in with their Google account. Then, when they run fastlane match , match will use these credentials to read from and write to the storage bucket. New machine To set up the certificates and provisioning profiles on a new machine, you just run the same command using: fastlane match development You can also run match in a readonly mode to be sure it won't create any new certificates or profiles. fastlane match development --readonly We recommend to always use readonly mode when running fastlane on CI systems. This can be done using lane :beta do match(type: \"appstore\", readonly: is_ci) gym(scheme: \"Release\") end Access Control A benefit of using match is that it enables you to give the developers of your team access to the code signing certificates without having to give everyone access to the Developer Portal: Run match to store the certificates in a Git repo or Google Cloud Storage Grant access to the Git repo / Google Cloud Storage Bucket to your developers and give them the passphrase (for git storage) The developers can now run match which will install the latest code signing profiles so they can build and sign the application without having to have access to the Apple Developer Portal Every time you run match to update the profiles (e.g. add a new device), all your developers will automatically get the latest profiles when running match If you decide to run match without access to the Developer Portal, make sure to use the --readonly option so that the commands don't ask you for the password to the Developer Portal. The advantage of this approach is that no one in your team will revoke a certificate by mistake, while having all code signing secrets in one location. Folder structure After running match for the first time, your Git repo or Google Cloud bucket will contain 2 directories: The certs folder contains all certificates with their private keys The profiles folder contains all provisioning profiles Additionally, match creates a nice repo README.md for you, making it easy to onboard new team members: In the case of Google Cloud, the top level folder will be the team ID. fastlane Add match to your Fastfile to automatically fetch the latest code signing certificates with fastlane . match(type: \"appstore\") match(type: \"development\") match(type: \"adhoc\", app_identifier: \"tools.fastlane.app\") match(type: \"enterprise\", app_identifier: \"tools.fastlane.app\") # _match_ should be called before building the app with _gym_ gym # ... Registering new devices By using match , you'll save a lot of time every time you add new device to your Ad Hoc or Development profiles. Use match in combination with the register_devices action. lane :beta do register_devices(devices_file: \"./devices.txt\") match(type: \"adhoc\", force_for_new_devices: true) end By using the force_for_new_devices parameter, match will check if the (enabled) device count has changed since the last time you ran match , and automatically re-generate the provisioning profile if necessary. You can also use force: true to re-generate the provisioning profile on each run. Important: The force_for_new_devices parameter is ignored for App Store provisioning profiles since they don't contain any device information. If you're not using Fastfile , you can also use the force_for_new_devices option from the command line: fastlane match adhoc --force_for_new_devices Templates (aka: custom entitlements) match can generate profiles that contain custom entitlements by passing in the entitlement's name with the template_name parameter. match(type: \"development\", template_name: \"Apple Pay Pass Suppression Development\") Setup Xcode project Docs on how to set up your Xcode project To build from the command line using fastlane match automatically pre-fills environment variables with the UUIDs of the correct provisioning profiles, ready to be used in your Xcode project. More information about how to setup your Xcode project can be found here To build from Xcode manually This is useful when installing your application on your device using the Development profile. You can statically select the right provisioning profile in your Xcode project (the name will be match Development tools.fastlane.app ). Docs on how to set up your Xcode project Continuous Integration Git repo access There is one tricky part of setting up a CI system to work with match , which is enabling the CI to access the repo. Usually you'd just add your CI's public ssh key as a deploy key to your match repo, but since your CI will already likely be using its public ssh key to access the codebase repo, you won't be able to do that . Some repo hosts might allow you to use the same deploy key for different repos, but GitHub will not. If your host does, you don't need to worry about this, just add your CI's public ssh key as a deploy key for your match repo and scroll down to \" Encryption password \". There are a few ways around this: Create a new account on your repo host with read-only access to your match repo. Bitrise have a good description of this here . Some CIs allow you to upload your signing credentials manually, but obviously this means that you'll have to re-upload the profiles/keys/certs each time they change. Neither solution is pretty. It's one of those trade-off things. Do you care more about not having an extra account sitting around, or do you care more about having the :sparkles: of auto-syncing of credentials. Git repo encryption password Once you've decided which approach to take, all that's left to do is to set your encryption password as secret environment variable named MATCH_PASSWORD . match will pick this up when it's run. Google Cloud Storage access Accessing Google Cloud Storage from your CI system requires you to provide the gc_keys.json file as part of your build. How you implement this is your decision. You can inject that file during build time. Amazon S3 Storage access Accessing Amazon S3 Storage from your CI system requires you to provide the s3_region , s3_access_key , s3_secret_access_key and s3_bucket options (or environment variables), with keys that has read access to the bucket. Nuke If you never really cared about code signing and have a messy Apple Developer account with a lot of invalid, expired or Xcode managed profiles/certificates, you can use the match nuke command to revoke your certificates and provisioning profiles. Don't worry, apps that are already available in the App Store / TestFlight will still work. Builds distributed via Ad Hoc or Enterprise will be disabled after nuking your account, so you'll have to re-upload a new build. After clearing your account you'll start from a clean state, and you can run match to generate your certificates and profiles again. To revoke all certificates and provisioning profiles for a specific environment: fastlane match nuke development fastlane match nuke distribution fastlane match nuke enterprise You'll have to confirm a list of profiles / certificates that will be deleted. Advanced Git Storage features Change Password To change the password of your repo and therefore decrypting and encrypting all files run: fastlane match change_password You'll be asked for the new password on all your machines on the next run. Import To import and encrypt a certificate ( .cer ), the private key ( .p12 ) and the provisioning profiles ( .mobileprovision or .provisionprofile ) into the match repo run: fastlane match import You'll be prompted for the certificate ( .cer ), the private key ( .p12 ) and the provisioning profiles ( .mobileprovision or .provisionprofile ) paths. match will first validate the certificate ( .cer ) against the Developer Portal before importing the certificate, the private key and the provisioning profiles into the specified match repository. However if there is no access to the developer portal but there are certificates, private keys and profiles provided, you can use the skip_certificate_matching option to tell match not to verify the certificates. Like this: fastlane match import --skip_certificate_matching true This will skip login to Apple Developer Portal and will import the provided certificate, private key and profile directly to the certificates repo. Please be careful when using this option and ensure the certificates and profiles match the type (development, adhoc, appstore, enterprise, developer_id) and are not revoked or expired. Manual Decrypt If you want to manually decrypt a file you can. openssl aes-256-cbc -k \"\" -in \"\" -out \"\" -a -d -md [md5|sha256] Note: You may need to swap double quotes \" for single quotes ' if your match password contains an exclamation mark ! . Export Distribution Certificate and Private Key as Single .p12 File match stores the certificate ( .cer ) and the private key ( .p12 ) files separately. The following steps will repackage the separate certificate and private key into a single .p12 file. Decrypt your cert found in certs//.cer as a pem file: openssl aes-256-cbc -k \"\" -in \"certs//.cer\" -out \"cert.der\" -a -d -md [md5|sha256] openssl x509 -inform der -in cert.der -out cert.pem Decrypt your private key found in certs//.p12 as a pem file: openssl aes-256-cbc -k \"\" -in \"certs/distribution/.p12\" -out \"key.pem\" -a -d -md [md5|sha256] Generate an encrypted p12 file with the same or new password: openssl pkcs12 -export -out \"cert.p12\" -inkey \"key.pem\" -in \"cert.pem\" -password pass: Is this secure? Git Both your keys and provisioning profiles are encrypted using OpenSSL using a passphrase. Storing your private keys in a Git repo may sound off-putting at first. We did an analysis of potential security issues, see section below. Google Cloud Storage All your keys and provisioning profiles are encrypted using Google managed keys. What could happen if someone stole a private key? If attackers would have your certificate and provisioning profile, they could codesign an application with the same bundle identifier. What's the worst that could happen for each of the profile types? App Store Profiles An App Store profile can't be used for anything as long as it's not re-signed by Apple. The only way to get an app resigned is to submit an app for review which could take anywhere from 24 hours to a few days (checkout appreviewtimes.com for up-to-date expectations). Attackers could only submit an app for review, if they also got access to your App Store Connect credentials (which are not stored in git, but in your local keychain). Additionally you get an email notification every time a build gets uploaded to cancel the submission even before your app gets into the review stage. Development and Ad Hoc Profiles In general those profiles are harmless as they can only be used to install a signed application on a small subset of devices. To add new devices, the attacker would also need your Apple Developer Portal credentials (which are not stored in git, but in your local keychain). Enterprise Profiles Attackers could use an In-House profile to distribute signed application to a potentially unlimited number of devices. All this would run under your company name and it could eventually lead to Apple revoking your In-House account. However it is very easy to revoke a certificate to remotely break the app on all devices. Because of the potentially dangerous nature of In-House profiles please use match with enterprise profiles with caution, ensure your git repository is private and use a secure password. To sum up You have full control over the access list of your Git repo, no third party service involved Even if your certificates are leaked, they can't be used to cause any harm without your App Store Connect login credentials Use In-House enterprise profile with match with caution If you use GitHub or Bitbucket we encourage enabling 2 factor authentication for all accounts that have access to the certificates repo The complete source code of match is fully open source on GitHub sync_code_signing Supported platforms ios, mac Author @KrauseFx 4 Examples sync_code_signing(type: \"appstore\", app_identifier: \"tools.fastlane.app\") sync_code_signing(type: \"development\", readonly: true) sync_code_signing(app_identifier: [\"tools.fastlane.app\", \"tools.fastlane.sleepy\"]) match # alias for \"sync_code_signing\" Parameters Key Description Default type Define the profile type, can be appstore, adhoc, development, enterprise, developer_id, mac_installer_distribution, developer_id_installer development additional_cert_types Create additional cert types needed for macOS installers (valid values: mac_installer_distribution, developer_id_installer) readonly Only fetch existing certificates and profiles, don't generate new ones false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * skip_provisioning_profiles Skip syncing provisioning profiles false app_identifier The bundle identifier(s) of your app (comma-separated string or array of strings) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * storage_mode Define where you want to store your certificates git git_url URL to the git repo containing all the certificates git_branch Specific git branch to use master git_full_name git user full name to commit git_user_email git user email to commit shallow_clone Make a shallow clone of the repository (truncate the history to 1 revision) false clone_branch_directly Clone just the branch specified, instead of the whole repo. This requires that the branch already exists. Otherwise the command will fail false git_basic_authorization Use a basic authorization header to access the git repo (e.g.: access via HTTPS, GitHub Actions, etc), usually a string in Base64 git_bearer_authorization Use a bearer authorization header to access the git repo (e.g.: access to an Azure DevOps repository), usually a string in Base64 git_private_key Use a private key to access the git repo (e.g.: access to GitHub repository via Deploy keys), usually a id_rsa named file or the contents hereof google_cloud_bucket_name Name of the Google Cloud Storage bucket to use google_cloud_keys_file Path to the gc_keys.json file google_cloud_project_id ID of the Google Cloud project to use for authentication skip_google_cloud_account_confirmation Skips confirming to use the system google account false s3_region Name of the S3 region s3_access_key S3 access key s3_secret_access_key S3 secret access key s3_bucket Name of the S3 bucket s3_object_prefix Prefix to be used on all objects uploaded to S3 s3_skip_encryption Skip encryption of all objects uploaded to S3. WARNING: only enable this on S3 buckets with sufficiently restricted permissions and server-side encryption enabled. See https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html false gitlab_project GitLab Project Path (i.e. 'gitlab-org/gitlab') gitlab_host GitLab Host (i.e. 'https://gitlab.com') https://gitlab.com job_token GitLab CI_JOB_TOKEN private_token GitLab Access Token keychain_name Keychain the items should be imported to login.keychain keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password force Renew the provisioning profiles every time you run match false force_for_new_devices Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile types 'appstore' and 'developer_id' false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false force_for_new_certificates Renew the provisioning profiles if the certificate count on the developer portal has changed. Works only for the 'development' provisioning profile type. Requires 'include_all_certificates' option to be 'true' false skip_confirmation Disables confirmation prompts during nuke, answering them with yes false safe_remove_certs Remove certs from repository during nuke without revoking them on the developer portal false skip_docs Skip generation of a README.md for the created git repository false platform Set the provisioning profile's platform to work with (i.e. ios, tvos, macos, catalyst) * derive_catalyst_app_identifier Enable this if you have the Mac Catalyst capability enabled and your project was created with Xcode 11.3 or earlier. Prepends 'maccatalyst.' to the app identifier for the provisioning profile mapping false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") profile_name A custom name for the provisioning profile. This will replace the default provisioning profile name if specified fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false skip_certificate_matching Set to true if there is no access to Apple developer portal but there are certificates, keys and profiles provided. Only works with match import action false output_path Path in which to export certificates, key and profile skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false verbose Print out extra information and all commands false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The sync_code_signing action generates the following Lane Variables: SharedValue Description SharedValues::MATCH_PROVISIONING_PROFILE_MAPPING The match provisioning profile mapping SharedValues::SIGH_PROFILE_TYPE The profile type, can be app-store, ad-hoc, development, enterprise, can be used in build_app as a default value for export_method To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action sync_code_signing CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sync_code_signing To pass parameters, make use of the : symbol, for example fastlane run sync_code_signing parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Sync code signing"},{"location":"generated/actions/sync_code_signing/#sync_code_signing","text":"Easily sync your certificates and profiles across your team (via match )","title":"sync_code_signing"},{"location":"generated/actions/sync_code_signing/#why-match","text":"Before starting to use match , make sure to read the codesigning.guide : When deploying an app to the App Store, beta testing service or even installing it on a device, most development teams have separate code signing identities for every member. This results in dozens of profiles including a lot of duplicates. You have to manually renew and download the latest set of provisioning profiles every time you add a new device or a certificate expires. Additionally this requires spending a lot of time when setting up a new machine that will build your app. A new approach Share one code signing identity across your development team to simplify your setup and prevent code signing issues. What if there was a central place where your code signing identity and profiles are kept, so anyone in the team can access them during the build process? For more information about the concept, visit codesigning.guide .","title":"Why match?"},{"location":"generated/actions/sync_code_signing/#usage","text":"","title":"Usage"},{"location":"generated/actions/sync_code_signing/#advanced-git-storage-features","text":"","title":"Advanced Git Storage features"},{"location":"generated/actions/sync_code_signing/#is-this-secure","text":"","title":"Is this secure?"},{"location":"generated/actions/sync_code_signing/#4-examples","text":"sync_code_signing(type: \"appstore\", app_identifier: \"tools.fastlane.app\") sync_code_signing(type: \"development\", readonly: true) sync_code_signing(app_identifier: [\"tools.fastlane.app\", \"tools.fastlane.sleepy\"]) match # alias for \"sync_code_signing\"","title":"4 Examples"},{"location":"generated/actions/sync_code_signing/#parameters","text":"Key Description Default type Define the profile type, can be appstore, adhoc, development, enterprise, developer_id, mac_installer_distribution, developer_id_installer development additional_cert_types Create additional cert types needed for macOS installers (valid values: mac_installer_distribution, developer_id_installer) readonly Only fetch existing certificates and profiles, don't generate new ones false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * skip_provisioning_profiles Skip syncing provisioning profiles false app_identifier The bundle identifier(s) of your app (comma-separated string or array of strings) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * storage_mode Define where you want to store your certificates git git_url URL to the git repo containing all the certificates git_branch Specific git branch to use master git_full_name git user full name to commit git_user_email git user email to commit shallow_clone Make a shallow clone of the repository (truncate the history to 1 revision) false clone_branch_directly Clone just the branch specified, instead of the whole repo. This requires that the branch already exists. Otherwise the command will fail false git_basic_authorization Use a basic authorization header to access the git repo (e.g.: access via HTTPS, GitHub Actions, etc), usually a string in Base64 git_bearer_authorization Use a bearer authorization header to access the git repo (e.g.: access to an Azure DevOps repository), usually a string in Base64 git_private_key Use a private key to access the git repo (e.g.: access to GitHub repository via Deploy keys), usually a id_rsa named file or the contents hereof google_cloud_bucket_name Name of the Google Cloud Storage bucket to use google_cloud_keys_file Path to the gc_keys.json file google_cloud_project_id ID of the Google Cloud project to use for authentication skip_google_cloud_account_confirmation Skips confirming to use the system google account false s3_region Name of the S3 region s3_access_key S3 access key s3_secret_access_key S3 secret access key s3_bucket Name of the S3 bucket s3_object_prefix Prefix to be used on all objects uploaded to S3 s3_skip_encryption Skip encryption of all objects uploaded to S3. WARNING: only enable this on S3 buckets with sufficiently restricted permissions and server-side encryption enabled. See https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html false gitlab_project GitLab Project Path (i.e. 'gitlab-org/gitlab') gitlab_host GitLab Host (i.e. 'https://gitlab.com') https://gitlab.com job_token GitLab CI_JOB_TOKEN private_token GitLab Access Token keychain_name Keychain the items should be imported to login.keychain keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password force Renew the provisioning profiles every time you run match false force_for_new_devices Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile types 'appstore' and 'developer_id' false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false force_for_new_certificates Renew the provisioning profiles if the certificate count on the developer portal has changed. Works only for the 'development' provisioning profile type. Requires 'include_all_certificates' option to be 'true' false skip_confirmation Disables confirmation prompts during nuke, answering them with yes false safe_remove_certs Remove certs from repository during nuke without revoking them on the developer portal false skip_docs Skip generation of a README.md for the created git repository false platform Set the provisioning profile's platform to work with (i.e. ios, tvos, macos, catalyst) * derive_catalyst_app_identifier Enable this if you have the Mac Catalyst capability enabled and your project was created with Xcode 11.3 or earlier. Prepends 'maccatalyst.' to the app identifier for the provisioning profile mapping false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") profile_name A custom name for the provisioning profile. This will replace the default provisioning profile name if specified fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false skip_certificate_matching Set to true if there is no access to Apple developer portal but there are certificates, keys and profiles provided. Only works with match import action false output_path Path in which to export certificates, key and profile skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false verbose Print out extra information and all commands false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/sync_code_signing/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The sync_code_signing action generates the following Lane Variables: SharedValue Description SharedValues::MATCH_PROVISIONING_PROFILE_MAPPING The match provisioning profile mapping SharedValues::SIGH_PROFILE_TYPE The profile type, can be app-store, ad-hoc, development, enterprise, can be used in build_app as a default value for export_method To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/sync_code_signing/#documentation","text":"To show the documentation in your terminal, run fastlane action sync_code_signing","title":"Documentation"},{"location":"generated/actions/sync_code_signing/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sync_code_signing To pass parameters, make use of the : symbol, for example fastlane run sync_code_signing parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/sync_code_signing/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/team_id/","text":"team_id Specify the Team ID you want to use for the Apple Developer Portal team_id Supported platforms ios Author @KrauseFx 1 Example team_id(\"Q2CBPK58CA\") Documentation To show the documentation in your terminal, run fastlane action team_id CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run team_id To pass parameters, make use of the : symbol, for example fastlane run team_id parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Team id"},{"location":"generated/actions/team_id/#team_id","text":"Specify the Team ID you want to use for the Apple Developer Portal team_id Supported platforms ios Author @KrauseFx","title":"team_id"},{"location":"generated/actions/team_id/#1-example","text":"team_id(\"Q2CBPK58CA\")","title":"1 Example"},{"location":"generated/actions/team_id/#documentation","text":"To show the documentation in your terminal, run fastlane action team_id","title":"Documentation"},{"location":"generated/actions/team_id/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run team_id To pass parameters, make use of the : symbol, for example fastlane run team_id parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/team_id/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/team_name/","text":"team_name Set a team to use by its name team_name Supported platforms ios Author @KrauseFx 1 Example team_name(\"Felix Krause\") Documentation To show the documentation in your terminal, run fastlane action team_name CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run team_name To pass parameters, make use of the : symbol, for example fastlane run team_name parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Team name"},{"location":"generated/actions/team_name/#team_name","text":"Set a team to use by its name team_name Supported platforms ios Author @KrauseFx","title":"team_name"},{"location":"generated/actions/team_name/#1-example","text":"team_name(\"Felix Krause\")","title":"1 Example"},{"location":"generated/actions/team_name/#documentation","text":"To show the documentation in your terminal, run fastlane action team_name","title":"Documentation"},{"location":"generated/actions/team_name/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run team_name To pass parameters, make use of the : symbol, for example fastlane run team_name parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/team_name/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/testfairy/","text":"testfairy Upload a new build to TestFairy You can retrieve your API key on your settings page testfairy Supported platforms ios, android Author @taka0125, @tcurdt, @vijaysharm, @cdm2012 2 Examples testfairy( api_key: \"...\", ipa: \"./ipa_file.ipa\", comment: \"Build #{lane_context[SharedValues::BUILD_NUMBER]}\", ) testfairy( api_key: \"...\", apk: \"../build/app/outputs/apk/qa/release/app-qa-release.apk\", comment: \"Build #{lane_context[SharedValues::BUILD_NUMBER]}\", ) Parameters Key Description Default api_key API Key for TestFairy ipa Path to your IPA file for iOS * apk Path to your APK file for Android * symbols_file Symbols mapping file * upload_url API URL for TestFairy https://upload.testfairy.com testers_groups Array of tester groups to be notified [] metrics Array of metrics to record (cpu,memory,network,phone_signal,gps,battery,mic,wifi) [] comment Additional release notes for this upload. This text will be added to email notifications No comment provided auto_update Allows an easy upgrade of all users to the current version. To enable set to 'on' off notify Send email to testers off options Array of options (shake,video_only_wifi,anonymous) [] custom Array of custom options. Contact support@testfairy.com for more information '' timeout Request timeout in seconds * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The testfairy action generates the following Lane Variables: SharedValue Description SharedValues::TESTFAIRY_BUILD_URL URL for the sessions of the newly uploaded build SharedValues::TESTFAIRY_DOWNLOAD_URL URL directly to the newly uploaded build SharedValues::TESTFAIRY_LANDING_PAGE URL of the build's landing page To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action testfairy CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run testfairy To pass parameters, make use of the : symbol, for example fastlane run testfairy parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Testfairy"},{"location":"generated/actions/testfairy/#testfairy","text":"Upload a new build to TestFairy You can retrieve your API key on your settings page testfairy Supported platforms ios, android Author @taka0125, @tcurdt, @vijaysharm, @cdm2012","title":"testfairy"},{"location":"generated/actions/testfairy/#2-examples","text":"testfairy( api_key: \"...\", ipa: \"./ipa_file.ipa\", comment: \"Build #{lane_context[SharedValues::BUILD_NUMBER]}\", ) testfairy( api_key: \"...\", apk: \"../build/app/outputs/apk/qa/release/app-qa-release.apk\", comment: \"Build #{lane_context[SharedValues::BUILD_NUMBER]}\", )","title":"2 Examples"},{"location":"generated/actions/testfairy/#parameters","text":"Key Description Default api_key API Key for TestFairy ipa Path to your IPA file for iOS * apk Path to your APK file for Android * symbols_file Symbols mapping file * upload_url API URL for TestFairy https://upload.testfairy.com testers_groups Array of tester groups to be notified [] metrics Array of metrics to record (cpu,memory,network,phone_signal,gps,battery,mic,wifi) [] comment Additional release notes for this upload. This text will be added to email notifications No comment provided auto_update Allows an easy upgrade of all users to the current version. To enable set to 'on' off notify Send email to testers off options Array of options (shake,video_only_wifi,anonymous) [] custom Array of custom options. Contact support@testfairy.com for more information '' timeout Request timeout in seconds * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/testfairy/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The testfairy action generates the following Lane Variables: SharedValue Description SharedValues::TESTFAIRY_BUILD_URL URL for the sessions of the newly uploaded build SharedValues::TESTFAIRY_DOWNLOAD_URL URL directly to the newly uploaded build SharedValues::TESTFAIRY_LANDING_PAGE URL of the build's landing page To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/testfairy/#documentation","text":"To show the documentation in your terminal, run fastlane action testfairy","title":"Documentation"},{"location":"generated/actions/testfairy/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run testfairy To pass parameters, make use of the : symbol, for example fastlane run testfairy parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/testfairy/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/testflight/","text":"testflight Alias for the upload_to_testflight action The best way to manage your TestFlight testers and builds from your terminal pilot makes it easier to manage your app on Apple\u2019s TestFlight. You can: Upload & distribute builds Add & remove testers Retrieve information about testers & devices Import/export all available testers pilot uses spaceship.airforce to interact with App Store Connect \ud83d\ude80 Usage \u2022 Tips pilot is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Usage For all commands, you can either use an API Key or your Apple ID . App Store Connect API Key The App Store Connect API Key is the preferred authentication method (if you are able to use it). Uses official App Store Connect API No need for 2FA Better performance over Apple ID Specify the API key using --api_key_path ./path/to/api_key_info.json or --api_key \"{\\\"key_id\\\": \\\"D83848D23\\\", \\\"issuer_id\\\": \\\"227b0bbf-ada8-458c-9d62-3d8022b7d07f\\\", \\\"key_filepath\\\": \\\"D83848D23.p8\\\"}\" Go to Using App Store Connect API for information on obtaining an API key, the fastlane api_key_info.json format, and other API key usage. Apple ID Specify the Apple ID to use using -u felix@krausefx.com . If you execute pilot in a project already using fastlane the username and app identifier will automatically be determined. Uploading builds To upload a new build, just run fastlane pilot upload This will automatically look for an ipa in your current directory and tries to fetch the login credentials from your fastlane setup . You'll be asked for any missing information. Additionally, you can pass all kinds of parameters: fastlane action pilot You can pass a changelog using fastlane pilot upload --changelog \"Something that is new here\" You can also skip the submission of the binary, which means, the ipa file will only be uploaded and not distributed to testers: fastlane pilot upload --skip_submission pilot does all kinds of magic for you: Automatically detects the bundle identifier from your ipa file Automatically fetch the AppID of your app based on the bundle identifier pilot uses spaceship to submit the build metadata and the iTunes Transporter to upload the binary. Because iTunes Transporter's upload capability is only supported on OS X, pilot upload does not work on Linux, as described in this issue List builds To list all builds for specific application use fastlane pilot builds The result lists all active builds and processing builds: +-----------+---------+----------+ | Great App Builds | +-----------+---------+----------+ | Version # | Build # | Installs | +-----------+---------+----------+ | 0.9.13 | 1 | 0 | | 0.9.13 | 2 | 0 | | 0.9.20 | 3 | 0 | | 0.9.20 | 4 | 3 | +-----------+---------+----------+ Managing beta testers List of Testers This command will list all your testers, both internal and external. fastlane pilot list The output will look like this: +--------+--------+--------------------------+-----------+ | Internal Testers | +--------+--------+--------------------------+-----------+ | First | Last | Email | # Devices | +--------+--------+--------------------------+-----------+ | Felix | Krause | felix@krausefx.com | 2 | +--------+--------+--------------------------+-----------+ +-----------+---------+----------------------------+-----------+ | External Testers | +-----------+---------+----------------------------+-----------+ | First | Last | Email | # Devices | +-----------+---------+----------------------------+-----------+ | Max | Manfred | email@email.com | 0 | | Detlef | M\u00fcller | detlef@krausefx.com | 1 | +-----------+---------+----------------------------+-----------+ Add a new tester To add a new tester to your App Store Connect account and to associate it to at least one testing group of your app, use the pilot add command. This will create a new tester (if necessary) or add an existing tester to the app to test. fastlane pilot add email@invite.com -g group-1,group-2 Additionally you can specify the app identifier (if necessary): fastlane pilot add email@email.com -a com.krausefx.app -g group-1,group-2 Find a tester To find a specific tester use fastlane pilot find felix@krausefx.com The resulting output will look like this: +---------------------+---------------------+ | felix@krausefx.com | +---------------------+---------------------+ | First name | Felix | | Last name | Krause | | Email | felix@krausefx.com | | Latest Version | 0.9.14 (23 | | Latest Install Date | 03/28/15 19:00 | | 2 Devices | \u2022 iPhone 6, iOS 8.3 | | | \u2022 iPhone 5, iOS 7.0 | +---------------------+---------------------+ Remove a tester This command will remove beta tester from app (from all internal and external groups) fastlane pilot remove felix@krausefx.com You can also use groups option to remove the tester from the groups specified: fastlane pilot remove felix@krausefx.com -g group-1,group-2 Export testers To export all external testers to a CSV file. Useful if you need to import tester info to another system or a new account. fastlane pilot export Import testers Add external testers from a CSV file. Create a file (ex: testers.csv ) and fill it with the following format: John,Appleseed,appleseed_john@mac.com,group-1;group-2 fastlane pilot import You can also specify the directory using fastlane pilot export -c ~/Desktop/testers.csv fastlane pilot import -c ~/Desktop/testers.csv Tips Debug information If you run into any issues you can use the verbose mode to get a more detailed output: fastlane pilot upload --verbose Firewall Issues pilot uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol from the command line using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" pilot ... If you are using pilot via the fastlane action , add the following to your Fastfile ENV[\"DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS\"] = \"-t DAV\" pilot... Note, however, that Apple recommends you don\u2019t specify the -t transport and instead allow Transporter to use automatic transport discovery to determine the best transport mode for your packages. For this reason, if the t option is passed, we will raise a warning. Also note that -t is not the only additional parameter that can be used. The string specified in the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS environment variable will be forwarded to Transporter. For all the available options, check Apple's Transporter User Guide . Credentials Issues If your password contains special characters, pilot may throw a confusing error saying your \"Your Apple ID or password was entered incorrectly\". The easiest way to fix this error is to change your password to something that does not contains special characters. How is my password stored? pilot uses the CredentialsManager from fastlane . Provider Short Name If you are on multiple App Store Connect teams, iTunes Transporter may need a provider short name to know where to upload your binary. pilot will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option. Use an Application Specific Password to upload pilot / upload_to_testflight can use an Application Specific Password via the FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD environment variable to upload a binary if both the skip_waiting_for_build_processing and apple_id options are set. (If any of those are not set, it will use the normal Apple login process that might require 2FA authentication.) Role for App Store Connect User pilot / upload_to_testflight updates build information and testers after the build has finished processing. App Store Connect requires the \"App Manager\" or \"Admin\" role for your Apple account to update this information. The \"Developer\" role will allow builds to be uploaded but will not allow updating of build information and testers. testflight Supported platforms ios, mac Author @KrauseFx 7 Examples upload_to_testflight testflight # alias for \"upload_to_testflight\" pilot # alias for \"upload_to_testflight\" upload_to_testflight(skip_submission: true) # to only upload the build upload_to_testflight( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) upload_to_testflight( beta_app_feedback_email: \"email@email.com\", beta_app_description: \"This is a description of my app\", demo_account_required: true, notify_external_testers: false, changelog: \"This is my changelog of things that have changed in a log\" ) upload_to_testflight( beta_app_review_info: { contact_email: \"email@email.com\", contact_first_name: \"Connect\", contact_last_name: \"API\", contact_phone: \"5558675309\", demo_account_name: \"demo@email.com\", demo_account_password: \"connectapi\", notes: \"this is review note for the reviewer <3 thank you for reviewing\" }, localized_app_info: { \"default\": { feedback_email: \"default@email.com\", marketing_url: \"https://example.com/marketing-defafult\", privacy_policy_url: \"https://example.com/privacy-defafult\", description: \"Default description\", }, \"en-GB\": { feedback_email: \"en-gb@email.com\", marketing_url: \"https://example.com/marketing-en-gb\", privacy_policy_url: \"https://example.com/privacy-en-gb\", description: \"en-gb description\", } }, localized_build_info: { \"default\": { whats_new: \"Default changelog\", }, \"en-GB\": { whats_new: \"en-gb changelog\", } } ) Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of the app to upload or manage testers (optional) * app_platform The platform to use (optional) apple_id Apple ID property in the App Information section in App Store Connect * ipa Path to the ipa file to upload * pkg Path to your pkg file * demo_account_required Do you need a demo account when Apple does review? beta_app_review_info Beta app review information for contact info and demo account localized_app_info Localized beta app test info for description, feedback email, marketing url, and privacy policy beta_app_description Provide the 'Beta App Description' when uploading a new build beta_app_feedback_email Provide the beta app email when uploading a new build localized_build_info Localized beta app test info for what's new changelog Provide the 'What to Test' text when uploading a new build skip_submission Skip the distributing action of pilot and only upload the ipa file false skip_waiting_for_build_processing If set to true, the distribute_external option won't work and no build will be distributed to testers. (You might want to use this option if you are using this action on CI and have to pay for 'minutes used' on your CI plan). If set to true and a changelog is provided, it will partially wait for the build to appear on AppStore Connect so the changelog can be set, and skip the remaining processing steps false update_build_info_on_upload DEPRECATED! Update build info immediately after validation. This is deprecated and will be removed in a future release. App Store Connect no longer supports setting build info until after build processing has completed, which is when build info is updated by default false distribute_only Distribute a previously uploaded build (equivalent to the fastlane pilot distribute command) false uses_non_exempt_encryption Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist false distribute_external Should the build be distributed to external testers? If set to true, use of groups option is required false notify_external_testers Should notify external testers? (Not setting a value will use App Store Connect's default which is to notify) app_version The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed build_number The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed expire_previous_builds Should expire previous builds? false first_name The tester's first name last_name The tester's last name email The tester's email testers_file_path Path to a CSV file of testers ./testers.csv groups Associate tester to one group or more by group name / group id. E.g. -g \"Team 1\",\"Team 2\" This is required when distribute_external option is set to true or when we want to add a tester to one or more external testing groups team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your team in the developer portal, if you're in multiple teams. Different from your iTC team ID! * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column wait_processing_interval Interval in seconds to wait for App Store Connect processing 30 wait_processing_timeout_duration Timeout duration in seconds to wait for App Store Connect processing. If set, after exceeding timeout duration, this will force stop to wait for App Store Connect processing and exit with exception wait_for_uploaded_build DEPRECATED! No longer needed with the transition over to the App Store Connect API - Use version info from uploaded ipa file to determine what build to use for distribution. If set to false, latest processing or any latest build will be used false reject_build_waiting_for_review Expire previous if it's 'waiting for review' false submit_beta_review Send the build for a beta review true * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action testflight CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run testflight To pass parameters, make use of the : symbol, for example fastlane run testflight parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Testflight"},{"location":"generated/actions/testflight/#testflight","text":"Alias for the upload_to_testflight action","title":"testflight"},{"location":"generated/actions/testflight/#usage","text":"For all commands, you can either use an API Key or your Apple ID .","title":"Usage"},{"location":"generated/actions/testflight/#uploading-builds","text":"To upload a new build, just run fastlane pilot upload This will automatically look for an ipa in your current directory and tries to fetch the login credentials from your fastlane setup . You'll be asked for any missing information. Additionally, you can pass all kinds of parameters: fastlane action pilot You can pass a changelog using fastlane pilot upload --changelog \"Something that is new here\" You can also skip the submission of the binary, which means, the ipa file will only be uploaded and not distributed to testers: fastlane pilot upload --skip_submission pilot does all kinds of magic for you: Automatically detects the bundle identifier from your ipa file Automatically fetch the AppID of your app based on the bundle identifier pilot uses spaceship to submit the build metadata and the iTunes Transporter to upload the binary. Because iTunes Transporter's upload capability is only supported on OS X, pilot upload does not work on Linux, as described in this issue","title":"Uploading builds"},{"location":"generated/actions/testflight/#list-builds","text":"To list all builds for specific application use fastlane pilot builds The result lists all active builds and processing builds: +-----------+---------+----------+ | Great App Builds | +-----------+---------+----------+ | Version # | Build # | Installs | +-----------+---------+----------+ | 0.9.13 | 1 | 0 | | 0.9.13 | 2 | 0 | | 0.9.20 | 3 | 0 | | 0.9.20 | 4 | 3 | +-----------+---------+----------+","title":"List builds"},{"location":"generated/actions/testflight/#managing-beta-testers","text":"","title":"Managing beta testers"},{"location":"generated/actions/testflight/#tips","text":"","title":"Tips"},{"location":"generated/actions/testflight/#debug-information","text":"If you run into any issues you can use the verbose mode to get a more detailed output: fastlane pilot upload --verbose","title":"Debug information"},{"location":"generated/actions/testflight/#firewall-issues","text":"pilot uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol from the command line using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" pilot ... If you are using pilot via the fastlane action , add the following to your Fastfile ENV[\"DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS\"] = \"-t DAV\" pilot... Note, however, that Apple recommends you don\u2019t specify the -t transport and instead allow Transporter to use automatic transport discovery to determine the best transport mode for your packages. For this reason, if the t option is passed, we will raise a warning. Also note that -t is not the only additional parameter that can be used. The string specified in the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS environment variable will be forwarded to Transporter. For all the available options, check Apple's Transporter User Guide .","title":"Firewall Issues"},{"location":"generated/actions/testflight/#credentials-issues","text":"If your password contains special characters, pilot may throw a confusing error saying your \"Your Apple ID or password was entered incorrectly\". The easiest way to fix this error is to change your password to something that does not contains special characters.","title":"Credentials Issues"},{"location":"generated/actions/testflight/#how-is-my-password-stored","text":"pilot uses the CredentialsManager from fastlane .","title":"How is my password stored?"},{"location":"generated/actions/testflight/#provider-short-name","text":"If you are on multiple App Store Connect teams, iTunes Transporter may need a provider short name to know where to upload your binary. pilot will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option.","title":"Provider Short Name"},{"location":"generated/actions/testflight/#use-an-application-specific-password-to-upload","text":"pilot / upload_to_testflight can use an Application Specific Password via the FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD environment variable to upload a binary if both the skip_waiting_for_build_processing and apple_id options are set. (If any of those are not set, it will use the normal Apple login process that might require 2FA authentication.)","title":"Use an Application Specific Password to upload"},{"location":"generated/actions/testflight/#role-for-app-store-connect-user","text":"pilot / upload_to_testflight updates build information and testers after the build has finished processing. App Store Connect requires the \"App Manager\" or \"Admin\" role for your Apple account to update this information. The \"Developer\" role will allow builds to be uploaded but will not allow updating of build information and testers. testflight Supported platforms ios, mac Author @KrauseFx","title":"Role for App Store Connect User"},{"location":"generated/actions/testflight/#7-examples","text":"upload_to_testflight testflight # alias for \"upload_to_testflight\" pilot # alias for \"upload_to_testflight\" upload_to_testflight(skip_submission: true) # to only upload the build upload_to_testflight( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) upload_to_testflight( beta_app_feedback_email: \"email@email.com\", beta_app_description: \"This is a description of my app\", demo_account_required: true, notify_external_testers: false, changelog: \"This is my changelog of things that have changed in a log\" ) upload_to_testflight( beta_app_review_info: { contact_email: \"email@email.com\", contact_first_name: \"Connect\", contact_last_name: \"API\", contact_phone: \"5558675309\", demo_account_name: \"demo@email.com\", demo_account_password: \"connectapi\", notes: \"this is review note for the reviewer <3 thank you for reviewing\" }, localized_app_info: { \"default\": { feedback_email: \"default@email.com\", marketing_url: \"https://example.com/marketing-defafult\", privacy_policy_url: \"https://example.com/privacy-defafult\", description: \"Default description\", }, \"en-GB\": { feedback_email: \"en-gb@email.com\", marketing_url: \"https://example.com/marketing-en-gb\", privacy_policy_url: \"https://example.com/privacy-en-gb\", description: \"en-gb description\", } }, localized_build_info: { \"default\": { whats_new: \"Default changelog\", }, \"en-GB\": { whats_new: \"en-gb changelog\", } } )","title":"7 Examples"},{"location":"generated/actions/testflight/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of the app to upload or manage testers (optional) * app_platform The platform to use (optional) apple_id Apple ID property in the App Information section in App Store Connect * ipa Path to the ipa file to upload * pkg Path to your pkg file * demo_account_required Do you need a demo account when Apple does review? beta_app_review_info Beta app review information for contact info and demo account localized_app_info Localized beta app test info for description, feedback email, marketing url, and privacy policy beta_app_description Provide the 'Beta App Description' when uploading a new build beta_app_feedback_email Provide the beta app email when uploading a new build localized_build_info Localized beta app test info for what's new changelog Provide the 'What to Test' text when uploading a new build skip_submission Skip the distributing action of pilot and only upload the ipa file false skip_waiting_for_build_processing If set to true, the distribute_external option won't work and no build will be distributed to testers. (You might want to use this option if you are using this action on CI and have to pay for 'minutes used' on your CI plan). If set to true and a changelog is provided, it will partially wait for the build to appear on AppStore Connect so the changelog can be set, and skip the remaining processing steps false update_build_info_on_upload DEPRECATED! Update build info immediately after validation. This is deprecated and will be removed in a future release. App Store Connect no longer supports setting build info until after build processing has completed, which is when build info is updated by default false distribute_only Distribute a previously uploaded build (equivalent to the fastlane pilot distribute command) false uses_non_exempt_encryption Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist false distribute_external Should the build be distributed to external testers? If set to true, use of groups option is required false notify_external_testers Should notify external testers? (Not setting a value will use App Store Connect's default which is to notify) app_version The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed build_number The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed expire_previous_builds Should expire previous builds? false first_name The tester's first name last_name The tester's last name email The tester's email testers_file_path Path to a CSV file of testers ./testers.csv groups Associate tester to one group or more by group name / group id. E.g. -g \"Team 1\",\"Team 2\" This is required when distribute_external option is set to true or when we want to add a tester to one or more external testing groups team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your team in the developer portal, if you're in multiple teams. Different from your iTC team ID! * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column wait_processing_interval Interval in seconds to wait for App Store Connect processing 30 wait_processing_timeout_duration Timeout duration in seconds to wait for App Store Connect processing. If set, after exceeding timeout duration, this will force stop to wait for App Store Connect processing and exit with exception wait_for_uploaded_build DEPRECATED! No longer needed with the transition over to the App Store Connect API - Use version info from uploaded ipa file to determine what build to use for distribution. If set to false, latest processing or any latest build will be used false reject_build_waiting_for_review Expire previous if it's 'waiting for review' false submit_beta_review Send the build for a beta review true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/testflight/#documentation","text":"To show the documentation in your terminal, run fastlane action testflight","title":"Documentation"},{"location":"generated/actions/testflight/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run testflight To pass parameters, make use of the : symbol, for example fastlane run testflight parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/testflight/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/trainer/","text":"trainer Convert the Xcode plist log to a JUnit report trainer Supported platforms ios, mac Author @KrauseFx Returns A hash with the key being the path of the generated file, the value being if the tests were successful Parameters Key Description Default path Path to the directory that should be converted . extension The extension for the newly created file. Usually .xml or .junit .xml output_directory Directory in which the xml files should be written to. Same directory as source by default output_filename Filename the xml file should be written to. Defaults to name of input file. (Only works if one input file is used) fail_build Should this step stop the build if the tests fail? Set this to false if you're handling this with a test reporter true xcpretty_naming Produces class name and test name identical to xcpretty naming in junit file false silent Silences all output false output_remove_retry_attempts Doesn't include retry attempts in the output false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action trainer CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run trainer To pass parameters, make use of the : symbol, for example fastlane run trainer parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Trainer"},{"location":"generated/actions/trainer/#trainer","text":"Convert the Xcode plist log to a JUnit report trainer Supported platforms ios, mac Author @KrauseFx Returns A hash with the key being the path of the generated file, the value being if the tests were successful","title":"trainer"},{"location":"generated/actions/trainer/#parameters","text":"Key Description Default path Path to the directory that should be converted . extension The extension for the newly created file. Usually .xml or .junit .xml output_directory Directory in which the xml files should be written to. Same directory as source by default output_filename Filename the xml file should be written to. Defaults to name of input file. (Only works if one input file is used) fail_build Should this step stop the build if the tests fail? Set this to false if you're handling this with a test reporter true xcpretty_naming Produces class name and test name identical to xcpretty naming in junit file false silent Silences all output false output_remove_retry_attempts Doesn't include retry attempts in the output false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/trainer/#documentation","text":"To show the documentation in your terminal, run fastlane action trainer","title":"Documentation"},{"location":"generated/actions/trainer/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run trainer To pass parameters, make use of the : symbol, for example fastlane run trainer parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/trainer/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/tryouts/","text":"tryouts Upload a new build to Tryouts More information: http://tryouts.readthedocs.org/en/latest/releases.html#create-release tryouts Supported platforms ios, android Author @alicertel 1 Example tryouts( api_token: \"...\", app_id: \"application-id\", build_file: \"test.ipa\", ) Parameters Key Description Default app_id Tryouts application hash api_token API Token (api_key:api_secret) for Tryouts Access build_file Path to your IPA or APK file. Optional if you use the gym or xcodebuild action * notes Release notes notes_path Release notes text file path. Overrides the :notes parameter notify Notify testers? 0 for no 1 status 2 to make your release public. Release will be distributed to available testers. 1 to make your release private. Release won't be distributed to testers. This also prevents release from showing up for SDK update 2 * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The tryouts action generates the following Lane Variables: SharedValue Description SharedValues::TRYOUTS_BUILD_INFORMATION Contains release info like :application_name, :download_url. See http://tryouts.readthedocs.org/en/latest/releases.html#create-release To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action tryouts CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run tryouts To pass parameters, make use of the : symbol, for example fastlane run tryouts parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Tryouts"},{"location":"generated/actions/tryouts/#tryouts","text":"Upload a new build to Tryouts More information: http://tryouts.readthedocs.org/en/latest/releases.html#create-release tryouts Supported platforms ios, android Author @alicertel","title":"tryouts"},{"location":"generated/actions/tryouts/#1-example","text":"tryouts( api_token: \"...\", app_id: \"application-id\", build_file: \"test.ipa\", )","title":"1 Example"},{"location":"generated/actions/tryouts/#parameters","text":"Key Description Default app_id Tryouts application hash api_token API Token (api_key:api_secret) for Tryouts Access build_file Path to your IPA or APK file. Optional if you use the gym or xcodebuild action * notes Release notes notes_path Release notes text file path. Overrides the :notes parameter notify Notify testers? 0 for no 1 status 2 to make your release public. Release will be distributed to available testers. 1 to make your release private. Release won't be distributed to testers. This also prevents release from showing up for SDK update 2 * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/tryouts/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The tryouts action generates the following Lane Variables: SharedValue Description SharedValues::TRYOUTS_BUILD_INFORMATION Contains release info like :application_name, :download_url. See http://tryouts.readthedocs.org/en/latest/releases.html#create-release To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/tryouts/#documentation","text":"To show the documentation in your terminal, run fastlane action tryouts","title":"Documentation"},{"location":"generated/actions/tryouts/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run tryouts To pass parameters, make use of the : symbol, for example fastlane run tryouts parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/tryouts/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/twitter/","text":"twitter Post a tweet on Twitter.com Post a tweet on Twitter. Requires you to setup an app on twitter.com and obtain consumer and access_token . twitter Supported platforms ios, android, mac Author @hjanuschka 1 Example twitter( access_token: \"XXXX\", access_token_secret: \"xxx\", consumer_key: \"xxx\", consumer_secret: \"xxx\", message: \"You rock!\" ) Parameters Key Description Default consumer_key Consumer Key consumer_secret Consumer Secret access_token Access Token access_token_secret Access Token Secret message The tweet * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action twitter CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run twitter To pass parameters, make use of the : symbol, for example fastlane run twitter parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Twitter"},{"location":"generated/actions/twitter/#twitter","text":"Post a tweet on Twitter.com Post a tweet on Twitter. Requires you to setup an app on twitter.com and obtain consumer and access_token . twitter Supported platforms ios, android, mac Author @hjanuschka","title":"twitter"},{"location":"generated/actions/twitter/#1-example","text":"twitter( access_token: \"XXXX\", access_token_secret: \"xxx\", consumer_key: \"xxx\", consumer_secret: \"xxx\", message: \"You rock!\" )","title":"1 Example"},{"location":"generated/actions/twitter/#parameters","text":"Key Description Default consumer_key Consumer Key consumer_secret Consumer Secret access_token Access Token access_token_secret Access Token Secret message The tweet * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/twitter/#documentation","text":"To show the documentation in your terminal, run fastlane action twitter","title":"Documentation"},{"location":"generated/actions/twitter/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run twitter To pass parameters, make use of the : symbol, for example fastlane run twitter parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/twitter/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/typetalk/","text":"typetalk Post a message to Typetalk typetalk Supported platforms ios, android, mac Author @Nulab Inc. 1 Example typetalk( message: \"App successfully released!\", note_path: \"ChangeLog.md\", topicId: 1, success: true, typetalk_token: \"Your Typetalk Token\" ) Documentation To show the documentation in your terminal, run fastlane action typetalk CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run typetalk To pass parameters, make use of the : symbol, for example fastlane run typetalk parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Typetalk"},{"location":"generated/actions/typetalk/#typetalk","text":"Post a message to Typetalk typetalk Supported platforms ios, android, mac Author @Nulab Inc.","title":"typetalk"},{"location":"generated/actions/typetalk/#1-example","text":"typetalk( message: \"App successfully released!\", note_path: \"ChangeLog.md\", topicId: 1, success: true, typetalk_token: \"Your Typetalk Token\" )","title":"1 Example"},{"location":"generated/actions/typetalk/#documentation","text":"To show the documentation in your terminal, run fastlane action typetalk","title":"Documentation"},{"location":"generated/actions/typetalk/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run typetalk To pass parameters, make use of the : symbol, for example fastlane run typetalk parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/typetalk/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/unlock_keychain/","text":"unlock_keychain Unlock a keychain Unlocks the given keychain file and adds it to the keychain search list. Keychains can be replaced with add_to_search_list: :replace . unlock_keychain Supported platforms ios, android, mac Author @xfreebird 4 Examples unlock_keychain( # Unlock an existing keychain and add it to the keychain search list path: \"/path/to/KeychainName.keychain\", password: \"mysecret\" ) unlock_keychain( # By default the keychain is added to the existing. To replace them with the selected keychain you may use `:replace` path: \"/path/to/KeychainName.keychain\", password: \"mysecret\", add_to_search_list: :replace # To only add a keychain use `true` or `:add`. ) unlock_keychain( # In addition, the keychain can be selected as a default keychain path: \"/path/to/KeychainName.keychain\", password: \"mysecret\", set_default: true ) unlock_keychain( # If the keychain file is located in the standard location `~/Library/Keychains`, then it is sufficient to provide the keychain file name, or file name with its suffix. path: \"KeychainName\", password: \"mysecret\" ) Parameters Key Description Default path Path to the keychain file login password Keychain password add_to_search_list Add to keychain search list, valid values are true, false, :add, and :replace true set_default Set as default keychain false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action unlock_keychain CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run unlock_keychain To pass parameters, make use of the : symbol, for example fastlane run unlock_keychain parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Unlock keychain"},{"location":"generated/actions/unlock_keychain/#unlock_keychain","text":"Unlock a keychain Unlocks the given keychain file and adds it to the keychain search list. Keychains can be replaced with add_to_search_list: :replace . unlock_keychain Supported platforms ios, android, mac Author @xfreebird","title":"unlock_keychain"},{"location":"generated/actions/unlock_keychain/#4-examples","text":"unlock_keychain( # Unlock an existing keychain and add it to the keychain search list path: \"/path/to/KeychainName.keychain\", password: \"mysecret\" ) unlock_keychain( # By default the keychain is added to the existing. To replace them with the selected keychain you may use `:replace` path: \"/path/to/KeychainName.keychain\", password: \"mysecret\", add_to_search_list: :replace # To only add a keychain use `true` or `:add`. ) unlock_keychain( # In addition, the keychain can be selected as a default keychain path: \"/path/to/KeychainName.keychain\", password: \"mysecret\", set_default: true ) unlock_keychain( # If the keychain file is located in the standard location `~/Library/Keychains`, then it is sufficient to provide the keychain file name, or file name with its suffix. path: \"KeychainName\", password: \"mysecret\" )","title":"4 Examples"},{"location":"generated/actions/unlock_keychain/#parameters","text":"Key Description Default path Path to the keychain file login password Keychain password add_to_search_list Add to keychain search list, valid values are true, false, :add, and :replace true set_default Set as default keychain false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/unlock_keychain/#documentation","text":"To show the documentation in your terminal, run fastlane action unlock_keychain","title":"Documentation"},{"location":"generated/actions/unlock_keychain/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run unlock_keychain To pass parameters, make use of the : symbol, for example fastlane run unlock_keychain parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/unlock_keychain/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/update_app_group_identifiers/","text":"update_app_group_identifiers This action changes the app group identifiers in the entitlements file Updates the App Group Identifiers in the given Entitlements file, so you can have app groups for the app store build and app groups for an enterprise build. update_app_group_identifiers Supported platforms ios Author @mathiasAichinger 1 Example update_app_group_identifiers( entitlements_file: \"/path/to/entitlements_file.entitlements\", app_group_identifiers: [\"group.your.app.group.identifier\"] ) Parameters Key Description Default entitlements_file The path to the entitlement file which contains the app group identifiers app_group_identifiers An Array of unique identifiers for the app groups. Eg. ['group.com.test.testapp'] * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The update_app_group_identifiers action generates the following Lane Variables: SharedValue Description SharedValues::APP_GROUP_IDENTIFIERS The new App Group Identifiers To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action update_app_group_identifiers CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_app_group_identifiers To pass parameters, make use of the : symbol, for example fastlane run update_app_group_identifiers parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Update app group identifiers"},{"location":"generated/actions/update_app_group_identifiers/#update_app_group_identifiers","text":"This action changes the app group identifiers in the entitlements file Updates the App Group Identifiers in the given Entitlements file, so you can have app groups for the app store build and app groups for an enterprise build. update_app_group_identifiers Supported platforms ios Author @mathiasAichinger","title":"update_app_group_identifiers"},{"location":"generated/actions/update_app_group_identifiers/#1-example","text":"update_app_group_identifiers( entitlements_file: \"/path/to/entitlements_file.entitlements\", app_group_identifiers: [\"group.your.app.group.identifier\"] )","title":"1 Example"},{"location":"generated/actions/update_app_group_identifiers/#parameters","text":"Key Description Default entitlements_file The path to the entitlement file which contains the app group identifiers app_group_identifiers An Array of unique identifiers for the app groups. Eg. ['group.com.test.testapp'] * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/update_app_group_identifiers/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The update_app_group_identifiers action generates the following Lane Variables: SharedValue Description SharedValues::APP_GROUP_IDENTIFIERS The new App Group Identifiers To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/update_app_group_identifiers/#documentation","text":"To show the documentation in your terminal, run fastlane action update_app_group_identifiers","title":"Documentation"},{"location":"generated/actions/update_app_group_identifiers/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_app_group_identifiers To pass parameters, make use of the : symbol, for example fastlane run update_app_group_identifiers parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/update_app_group_identifiers/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/update_app_identifier/","text":"update_app_identifier Update the project's bundle identifier Update an app identifier by either setting CFBundleIdentifier or PRODUCT_BUNDLE_IDENTIFIER , depending on which is already in use. update_app_identifier Supported platforms ios Author @squarefrog, @tobiasstrebitzer 1 Example update_app_identifier( xcodeproj: \"Example.xcodeproj\", # Optional path to xcodeproj, will use the first .xcodeproj if not set plist_path: \"Example/Info.plist\", # Path to info plist file, relative to xcodeproj app_identifier: \"com.test.example\" # The App Identifier ) Parameters Key Description Default xcodeproj Path to your Xcode project * plist_path Path to info plist, relative to your Xcode project app_identifier The app Identifier you want to set * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_app_identifier CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_app_identifier To pass parameters, make use of the : symbol, for example fastlane run update_app_identifier parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Update app identifier"},{"location":"generated/actions/update_app_identifier/#update_app_identifier","text":"Update the project's bundle identifier Update an app identifier by either setting CFBundleIdentifier or PRODUCT_BUNDLE_IDENTIFIER , depending on which is already in use. update_app_identifier Supported platforms ios Author @squarefrog, @tobiasstrebitzer","title":"update_app_identifier"},{"location":"generated/actions/update_app_identifier/#1-example","text":"update_app_identifier( xcodeproj: \"Example.xcodeproj\", # Optional path to xcodeproj, will use the first .xcodeproj if not set plist_path: \"Example/Info.plist\", # Path to info plist file, relative to xcodeproj app_identifier: \"com.test.example\" # The App Identifier )","title":"1 Example"},{"location":"generated/actions/update_app_identifier/#parameters","text":"Key Description Default xcodeproj Path to your Xcode project * plist_path Path to info plist, relative to your Xcode project app_identifier The app Identifier you want to set * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/update_app_identifier/#documentation","text":"To show the documentation in your terminal, run fastlane action update_app_identifier","title":"Documentation"},{"location":"generated/actions/update_app_identifier/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_app_identifier To pass parameters, make use of the : symbol, for example fastlane run update_app_identifier parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/update_app_identifier/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/update_code_signing_settings/","text":"update_code_signing_settings Configures Xcode's Codesigning options Configures Xcode's Codesigning options of all targets in the project update_code_signing_settings Supported platforms ios, mac Author @mathiasAichinger, @hjanuschka, @p4checo, @portellaa, @aeons, @att55, @abcdev Returns The current status (boolean) of codesigning after modification 3 Examples # manual code signing update_code_signing_settings( use_automatic_signing: false, path: \"demo-project/demo/demo.xcodeproj\" ) # automatic code signing update_code_signing_settings( use_automatic_signing: true, path: \"demo-project/demo/demo.xcodeproj\" ) # more advanced manual code signing update_code_signing_settings( use_automatic_signing: false, path: \"demo-project/demo/demo.xcodeproj\", team_id: \"QABC123DEV\", bundle_identifier: \"com.demoapp.QABC123DEV\", code_sign_identity: \"iPhone Distribution\", sdk: \"iphoneos*\", profile_name: \"Demo App Deployment Profile\", entitlements_file_path: \"Demo App/generated/New.entitlements\" ) Parameters Key Description Default path Path to your Xcode project * use_automatic_signing Defines if project should use automatic signing false sdk Build target SDKs (iphoneos , macosx , iphonesimulator*) team_id Team ID, is used when upgrading project targets Specify targets you want to toggle the signing mech. (default to all targets) build_configurations Specify build_configurations you want to toggle the signing mech. (default to all configurations) code_sign_identity Code signing identity type (iPhone Developer, iPhone Distribution) entitlements_file_path Path to your entitlements file profile_name Provisioning profile name to use for code signing profile_uuid Provisioning profile UUID to use for code signing bundle_identifier Application Product Bundle Identifier * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_code_signing_settings CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_code_signing_settings To pass parameters, make use of the : symbol, for example fastlane run update_code_signing_settings parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Update code signing settings"},{"location":"generated/actions/update_code_signing_settings/#update_code_signing_settings","text":"Configures Xcode's Codesigning options Configures Xcode's Codesigning options of all targets in the project update_code_signing_settings Supported platforms ios, mac Author @mathiasAichinger, @hjanuschka, @p4checo, @portellaa, @aeons, @att55, @abcdev Returns The current status (boolean) of codesigning after modification","title":"update_code_signing_settings"},{"location":"generated/actions/update_code_signing_settings/#3-examples","text":"# manual code signing update_code_signing_settings( use_automatic_signing: false, path: \"demo-project/demo/demo.xcodeproj\" ) # automatic code signing update_code_signing_settings( use_automatic_signing: true, path: \"demo-project/demo/demo.xcodeproj\" ) # more advanced manual code signing update_code_signing_settings( use_automatic_signing: false, path: \"demo-project/demo/demo.xcodeproj\", team_id: \"QABC123DEV\", bundle_identifier: \"com.demoapp.QABC123DEV\", code_sign_identity: \"iPhone Distribution\", sdk: \"iphoneos*\", profile_name: \"Demo App Deployment Profile\", entitlements_file_path: \"Demo App/generated/New.entitlements\" )","title":"3 Examples"},{"location":"generated/actions/update_code_signing_settings/#parameters","text":"Key Description Default path Path to your Xcode project * use_automatic_signing Defines if project should use automatic signing false sdk Build target SDKs (iphoneos , macosx , iphonesimulator*) team_id Team ID, is used when upgrading project targets Specify targets you want to toggle the signing mech. (default to all targets) build_configurations Specify build_configurations you want to toggle the signing mech. (default to all configurations) code_sign_identity Code signing identity type (iPhone Developer, iPhone Distribution) entitlements_file_path Path to your entitlements file profile_name Provisioning profile name to use for code signing profile_uuid Provisioning profile UUID to use for code signing bundle_identifier Application Product Bundle Identifier * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/update_code_signing_settings/#documentation","text":"To show the documentation in your terminal, run fastlane action update_code_signing_settings","title":"Documentation"},{"location":"generated/actions/update_code_signing_settings/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_code_signing_settings To pass parameters, make use of the : symbol, for example fastlane run update_code_signing_settings parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/update_code_signing_settings/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/update_fastlane/","text":"update_fastlane Makes sure fastlane-tools are up-to-date when running fastlane This action will update fastlane to the most recent version - major version updates will not be performed automatically, as they might include breaking changes. If an update was performed, fastlane will be restarted before the run continues. If you are using rbenv or rvm, everything should be good to go. However, if you are using the system's default ruby, some additional setup is needed for this action to work correctly. In short, fastlane needs to be able to access your gem library without running in sudo mode. The simplest possible fix for this is putting the following lines into your ~/.bashrc or ~/.zshrc file: export GEM_HOME=~/.gems export PATH=$PATH:~/.gems/bin After the above changes, restart your terminal, then run mkdir $GEM_HOME to create the new gem directory. After this, you're good to go! Recommended usage of the update_fastlane action is at the top inside of the before_all block, before running any other action. update_fastlane Supported platforms ios, android, mac Author @milch, @KrauseFx 1 Example before_all do update_fastlane # ... end Parameters Key Description Default no_update Don't update during this run. This is used internally false nightly DEPRECATED! Nightly builds are no longer being made available - Opt-in to install and use nightly fastlane builds false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_fastlane CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_fastlane To pass parameters, make use of the : symbol, for example fastlane run update_fastlane parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Update fastlane"},{"location":"generated/actions/update_fastlane/#update_fastlane","text":"Makes sure fastlane-tools are up-to-date when running fastlane This action will update fastlane to the most recent version - major version updates will not be performed automatically, as they might include breaking changes. If an update was performed, fastlane will be restarted before the run continues. If you are using rbenv or rvm, everything should be good to go. However, if you are using the system's default ruby, some additional setup is needed for this action to work correctly. In short, fastlane needs to be able to access your gem library without running in sudo mode. The simplest possible fix for this is putting the following lines into your ~/.bashrc or ~/.zshrc file: export GEM_HOME=~/.gems export PATH=$PATH:~/.gems/bin After the above changes, restart your terminal, then run mkdir $GEM_HOME to create the new gem directory. After this, you're good to go! Recommended usage of the update_fastlane action is at the top inside of the before_all block, before running any other action. update_fastlane Supported platforms ios, android, mac Author @milch, @KrauseFx","title":"update_fastlane"},{"location":"generated/actions/update_fastlane/#1-example","text":"before_all do update_fastlane # ... end","title":"1 Example"},{"location":"generated/actions/update_fastlane/#parameters","text":"Key Description Default no_update Don't update during this run. This is used internally false nightly DEPRECATED! Nightly builds are no longer being made available - Opt-in to install and use nightly fastlane builds false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/update_fastlane/#documentation","text":"To show the documentation in your terminal, run fastlane action update_fastlane","title":"Documentation"},{"location":"generated/actions/update_fastlane/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_fastlane To pass parameters, make use of the : symbol, for example fastlane run update_fastlane parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/update_fastlane/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/update_icloud_container_identifiers/","text":"update_icloud_container_identifiers This action changes the iCloud container identifiers in the entitlements file Updates the iCloud Container Identifiers in the given Entitlements file, so you can use different iCloud containers for different builds like Adhoc, App Store, etc. update_icloud_container_identifiers Supported platforms ios Author @JamesKuang 1 Example update_icloud_container_identifiers( entitlements_file: \"/path/to/entitlements_file.entitlements\", icloud_container_identifiers: [\"iCloud.com.companyname.appname\"] ) Parameters Key Description Default entitlements_file The path to the entitlement file which contains the iCloud container identifiers icloud_container_identifiers An Array of unique identifiers for the iCloud containers. Eg. ['iCloud.com.test.testapp'] * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The update_icloud_container_identifiers action generates the following Lane Variables: SharedValue Description SharedValues::UPDATE_ICLOUD_CONTAINER_IDENTIFIERS The new iCloud Container Identifiers To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action update_icloud_container_identifiers CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_icloud_container_identifiers To pass parameters, make use of the : symbol, for example fastlane run update_icloud_container_identifiers parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Update icloud container identifiers"},{"location":"generated/actions/update_icloud_container_identifiers/#update_icloud_container_identifiers","text":"This action changes the iCloud container identifiers in the entitlements file Updates the iCloud Container Identifiers in the given Entitlements file, so you can use different iCloud containers for different builds like Adhoc, App Store, etc. update_icloud_container_identifiers Supported platforms ios Author @JamesKuang","title":"update_icloud_container_identifiers"},{"location":"generated/actions/update_icloud_container_identifiers/#1-example","text":"update_icloud_container_identifiers( entitlements_file: \"/path/to/entitlements_file.entitlements\", icloud_container_identifiers: [\"iCloud.com.companyname.appname\"] )","title":"1 Example"},{"location":"generated/actions/update_icloud_container_identifiers/#parameters","text":"Key Description Default entitlements_file The path to the entitlement file which contains the iCloud container identifiers icloud_container_identifiers An Array of unique identifiers for the iCloud containers. Eg. ['iCloud.com.test.testapp'] * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/update_icloud_container_identifiers/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The update_icloud_container_identifiers action generates the following Lane Variables: SharedValue Description SharedValues::UPDATE_ICLOUD_CONTAINER_IDENTIFIERS The new iCloud Container Identifiers To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/update_icloud_container_identifiers/#documentation","text":"To show the documentation in your terminal, run fastlane action update_icloud_container_identifiers","title":"Documentation"},{"location":"generated/actions/update_icloud_container_identifiers/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_icloud_container_identifiers To pass parameters, make use of the : symbol, for example fastlane run update_icloud_container_identifiers parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/update_icloud_container_identifiers/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/update_info_plist/","text":"update_info_plist Update a Info.plist file with bundle identifier and display name This action allows you to modify your Info.plist file before building. This may be useful if you want a separate build for alpha, beta or nightly builds, but don't want a separate target. update_info_plist Supported platforms ios Author @tobiasstrebitzer 4 Examples update_info_plist( # update app identifier string plist_path: \"path/to/Info.plist\", app_identifier: \"com.example.newappidentifier\" ) update_info_plist( # Change the Display Name of your app plist_path: \"path/to/Info.plist\", display_name: \"MyApp-Beta\" ) update_info_plist( # Target a specific `xcodeproj` rather than finding the first available one xcodeproj: \"path/to/Example.proj\", plist_path: \"path/to/Info.plist\", display_name: \"MyApp-Beta\" ) update_info_plist( # Advanced processing: find URL scheme for particular key and replace value xcodeproj: \"path/to/Example.proj\", plist_path: \"path/to/Info.plist\", block: proc do |plist| urlScheme = plist[\"CFBundleURLTypes\"].find{|scheme| scheme[\"CFBundleURLName\"] == \"com.acme.default-url-handler\"} urlScheme[:CFBundleURLSchemes] = [\"acme-production\"] end ) Parameters Key Description Default xcodeproj Path to your Xcode project plist_path Path to info plist scheme Scheme of info plist app_identifier The App Identifier of your app * display_name The Display Name of your app block A block to process plist with custom logic * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_info_plist CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_info_plist To pass parameters, make use of the : symbol, for example fastlane run update_info_plist parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Update info plist"},{"location":"generated/actions/update_info_plist/#update_info_plist","text":"Update a Info.plist file with bundle identifier and display name This action allows you to modify your Info.plist file before building. This may be useful if you want a separate build for alpha, beta or nightly builds, but don't want a separate target. update_info_plist Supported platforms ios Author @tobiasstrebitzer","title":"update_info_plist"},{"location":"generated/actions/update_info_plist/#4-examples","text":"update_info_plist( # update app identifier string plist_path: \"path/to/Info.plist\", app_identifier: \"com.example.newappidentifier\" ) update_info_plist( # Change the Display Name of your app plist_path: \"path/to/Info.plist\", display_name: \"MyApp-Beta\" ) update_info_plist( # Target a specific `xcodeproj` rather than finding the first available one xcodeproj: \"path/to/Example.proj\", plist_path: \"path/to/Info.plist\", display_name: \"MyApp-Beta\" ) update_info_plist( # Advanced processing: find URL scheme for particular key and replace value xcodeproj: \"path/to/Example.proj\", plist_path: \"path/to/Info.plist\", block: proc do |plist| urlScheme = plist[\"CFBundleURLTypes\"].find{|scheme| scheme[\"CFBundleURLName\"] == \"com.acme.default-url-handler\"} urlScheme[:CFBundleURLSchemes] = [\"acme-production\"] end )","title":"4 Examples"},{"location":"generated/actions/update_info_plist/#parameters","text":"Key Description Default xcodeproj Path to your Xcode project plist_path Path to info plist scheme Scheme of info plist app_identifier The App Identifier of your app * display_name The Display Name of your app block A block to process plist with custom logic * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/update_info_plist/#documentation","text":"To show the documentation in your terminal, run fastlane action update_info_plist","title":"Documentation"},{"location":"generated/actions/update_info_plist/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_info_plist To pass parameters, make use of the : symbol, for example fastlane run update_info_plist parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/update_info_plist/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/update_keychain_access_groups/","text":"update_keychain_access_groups This action changes the keychain access groups in the entitlements file Updates the Keychain Group Access Groups in the given Entitlements file, so you can have keychain access groups for the app store build and keychain access groups for an enterprise build. update_keychain_access_groups Supported platforms ios Author @yutae 1 Example update_keychain_access_groups( entitlements_file: \"/path/to/entitlements_file.entitlements\", identifiers: [\"your.keychain.access.groups.identifiers\"] ) Parameters Key Description Default entitlements_file The path to the entitlement file which contains the keychain access groups identifiers An Array of unique identifiers for the keychain access groups. Eg. ['your.keychain.access.groups.identifiers'] * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The update_keychain_access_groups action generates the following Lane Variables: SharedValue Description SharedValues::KEYCHAIN_ACCESS_GROUPS The new Keychain Access Groups To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action update_keychain_access_groups CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_keychain_access_groups To pass parameters, make use of the : symbol, for example fastlane run update_keychain_access_groups parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Update keychain access groups"},{"location":"generated/actions/update_keychain_access_groups/#update_keychain_access_groups","text":"This action changes the keychain access groups in the entitlements file Updates the Keychain Group Access Groups in the given Entitlements file, so you can have keychain access groups for the app store build and keychain access groups for an enterprise build. update_keychain_access_groups Supported platforms ios Author @yutae","title":"update_keychain_access_groups"},{"location":"generated/actions/update_keychain_access_groups/#1-example","text":"update_keychain_access_groups( entitlements_file: \"/path/to/entitlements_file.entitlements\", identifiers: [\"your.keychain.access.groups.identifiers\"] )","title":"1 Example"},{"location":"generated/actions/update_keychain_access_groups/#parameters","text":"Key Description Default entitlements_file The path to the entitlement file which contains the keychain access groups identifiers An Array of unique identifiers for the keychain access groups. Eg. ['your.keychain.access.groups.identifiers'] * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/update_keychain_access_groups/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The update_keychain_access_groups action generates the following Lane Variables: SharedValue Description SharedValues::KEYCHAIN_ACCESS_GROUPS The new Keychain Access Groups To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/update_keychain_access_groups/#documentation","text":"To show the documentation in your terminal, run fastlane action update_keychain_access_groups","title":"Documentation"},{"location":"generated/actions/update_keychain_access_groups/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_keychain_access_groups To pass parameters, make use of the : symbol, for example fastlane run update_keychain_access_groups parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/update_keychain_access_groups/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/update_plist/","text":"update_plist Update a plist file This action allows you to modify any value inside any plist file. update_plist Supported platforms ios Author @rishabhtayal, @matthiaszarzecki 6 Examples update_plist( # Updates the CLIENT_ID and GOOGLE_APP_ID string entries in the plist-file plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| plist[:CLIENT_ID] = \"new_client_id\" plist[:GOOGLE_APP_ID] = \"new_google_app_id\" end ) update_plist( # Sets a boolean entry plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| plist[:boolean_entry] = true end ) update_plist( # Sets a number entry plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| plist[:number_entry] = 13 end ) update_plist( # Sets an array-entry with multiple sub-types plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| plist[:array_entry] = [\"entry_01\", true, 1243] end ) update_plist( # The block can contain logic too plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| if options[:environment] == \"production\" plist[:CLIENT_ID] = \"new_client_id_production\" else plist[:CLIENT_ID] = \"new_client_id_development\" end end ) update_plist( # Advanced processing: find URL scheme for particular key and replace value plist_path: \"path/to/Info.plist\", block: proc do |plist| urlScheme = plist[\"CFBundleURLTypes\"].find{|scheme| scheme[\"CFBundleURLName\"] == \"com.acme.default-url-handler\"} urlScheme[:CFBundleURLSchemes] = [\"acme-production\"] end ) Parameters Key Description Default plist_path Path to plist file block A block to process plist with custom logic * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_plist CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_plist To pass parameters, make use of the : symbol, for example fastlane run update_plist parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Update plist"},{"location":"generated/actions/update_plist/#update_plist","text":"Update a plist file This action allows you to modify any value inside any plist file. update_plist Supported platforms ios Author @rishabhtayal, @matthiaszarzecki","title":"update_plist"},{"location":"generated/actions/update_plist/#6-examples","text":"update_plist( # Updates the CLIENT_ID and GOOGLE_APP_ID string entries in the plist-file plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| plist[:CLIENT_ID] = \"new_client_id\" plist[:GOOGLE_APP_ID] = \"new_google_app_id\" end ) update_plist( # Sets a boolean entry plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| plist[:boolean_entry] = true end ) update_plist( # Sets a number entry plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| plist[:number_entry] = 13 end ) update_plist( # Sets an array-entry with multiple sub-types plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| plist[:array_entry] = [\"entry_01\", true, 1243] end ) update_plist( # The block can contain logic too plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| if options[:environment] == \"production\" plist[:CLIENT_ID] = \"new_client_id_production\" else plist[:CLIENT_ID] = \"new_client_id_development\" end end ) update_plist( # Advanced processing: find URL scheme for particular key and replace value plist_path: \"path/to/Info.plist\", block: proc do |plist| urlScheme = plist[\"CFBundleURLTypes\"].find{|scheme| scheme[\"CFBundleURLName\"] == \"com.acme.default-url-handler\"} urlScheme[:CFBundleURLSchemes] = [\"acme-production\"] end )","title":"6 Examples"},{"location":"generated/actions/update_plist/#parameters","text":"Key Description Default plist_path Path to plist file block A block to process plist with custom logic * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/update_plist/#documentation","text":"To show the documentation in your terminal, run fastlane action update_plist","title":"Documentation"},{"location":"generated/actions/update_plist/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_plist To pass parameters, make use of the : symbol, for example fastlane run update_plist parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/update_plist/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/update_project_code_signing/","text":"update_project_code_signing Updated code signing settings from 'Automatic' to a specific profile You shouldn't use update_project_code_signing . Have you considered using the recommended way to do code signing: https://docs.fastlane.tools/codesigning/getting-started/ ? update_project_code_signing Supported platforms ios Author @KrauseFx Parameters Key Description Default path Path to your Xcode project udid DEPRECATED! Use :uuid instead * uuid The UUID of the provisioning profile you want to use * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_project_code_signing CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_project_code_signing To pass parameters, make use of the : symbol, for example fastlane run update_project_code_signing parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Update project code signing"},{"location":"generated/actions/update_project_code_signing/#update_project_code_signing","text":"Updated code signing settings from 'Automatic' to a specific profile You shouldn't use update_project_code_signing . Have you considered using the recommended way to do code signing: https://docs.fastlane.tools/codesigning/getting-started/ ? update_project_code_signing Supported platforms ios Author @KrauseFx","title":"update_project_code_signing"},{"location":"generated/actions/update_project_code_signing/#parameters","text":"Key Description Default path Path to your Xcode project udid DEPRECATED! Use :uuid instead * uuid The UUID of the provisioning profile you want to use * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/update_project_code_signing/#documentation","text":"To show the documentation in your terminal, run fastlane action update_project_code_signing","title":"Documentation"},{"location":"generated/actions/update_project_code_signing/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_project_code_signing To pass parameters, make use of the : symbol, for example fastlane run update_project_code_signing parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/update_project_code_signing/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/update_project_provisioning/","text":"update_project_provisioning Update projects code signing settings from your provisioning profile You should check out the code signing guide before using this action. This action retrieves a provisioning profile UUID from a provisioning profile ( .mobileprovision ) to set up the Xcode projects' code signing settings in *.xcodeproj/project.pbxproj . The :target_filter value can be used to only update code signing for the specified targets. The :build_configuration value can be used to only update code signing for the specified build configurations of the targets passing through the :target_filter . Example usage is the WatchKit Extension or WatchKit App, where you need separate provisioning profiles. Example: update_project_provisioning(xcodeproj: \"..\", target_filter: \".*WatchKit App.*\") . update_project_provisioning Supported platforms ios, mac Author @tobiasstrebitzer, @czechboy0 1 Example update_project_provisioning( xcodeproj: \"Project.xcodeproj\", profile: \"./watch_app_store.mobileprovision\", # optional if you use sigh target_filter: \".*WatchKit Extension.*\", # matches name or type of a target build_configuration: \"Release\", code_signing_identity: \"iPhone Development\" # optionally specify the codesigning identity ) Parameters Key Description Default xcodeproj Path to your Xcode project profile Path to provisioning profile (.mobileprovision) * target_filter A filter for the target name. Use a standard regex build_configuration_filter Legacy option, use 'target_filter' instead build_configuration A filter for the build configuration name. Use a standard regex. Applied to all configurations if not specified certificate Path to apple root certificate /tmp/AppleIncRootCertificate.cer code_signing_identity Code sign identity for build configuration * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_project_provisioning CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_project_provisioning To pass parameters, make use of the : symbol, for example fastlane run update_project_provisioning parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Update project provisioning"},{"location":"generated/actions/update_project_provisioning/#update_project_provisioning","text":"Update projects code signing settings from your provisioning profile You should check out the code signing guide before using this action. This action retrieves a provisioning profile UUID from a provisioning profile ( .mobileprovision ) to set up the Xcode projects' code signing settings in *.xcodeproj/project.pbxproj . The :target_filter value can be used to only update code signing for the specified targets. The :build_configuration value can be used to only update code signing for the specified build configurations of the targets passing through the :target_filter . Example usage is the WatchKit Extension or WatchKit App, where you need separate provisioning profiles. Example: update_project_provisioning(xcodeproj: \"..\", target_filter: \".*WatchKit App.*\") . update_project_provisioning Supported platforms ios, mac Author @tobiasstrebitzer, @czechboy0","title":"update_project_provisioning"},{"location":"generated/actions/update_project_provisioning/#1-example","text":"update_project_provisioning( xcodeproj: \"Project.xcodeproj\", profile: \"./watch_app_store.mobileprovision\", # optional if you use sigh target_filter: \".*WatchKit Extension.*\", # matches name or type of a target build_configuration: \"Release\", code_signing_identity: \"iPhone Development\" # optionally specify the codesigning identity )","title":"1 Example"},{"location":"generated/actions/update_project_provisioning/#parameters","text":"Key Description Default xcodeproj Path to your Xcode project profile Path to provisioning profile (.mobileprovision) * target_filter A filter for the target name. Use a standard regex build_configuration_filter Legacy option, use 'target_filter' instead build_configuration A filter for the build configuration name. Use a standard regex. Applied to all configurations if not specified certificate Path to apple root certificate /tmp/AppleIncRootCertificate.cer code_signing_identity Code sign identity for build configuration * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/update_project_provisioning/#documentation","text":"To show the documentation in your terminal, run fastlane action update_project_provisioning","title":"Documentation"},{"location":"generated/actions/update_project_provisioning/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_project_provisioning To pass parameters, make use of the : symbol, for example fastlane run update_project_provisioning parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/update_project_provisioning/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/update_project_team/","text":"update_project_team Update Xcode Development Team ID This action updates the Developer Team ID of your Xcode project. update_project_team Supported platforms ios, mac Author @lgaches 2 Examples update_project_team update_project_team( path: \"Example.xcodeproj\", teamid: \"A3ZZVJ7CNY\" ) Parameters Key Description Default path Path to your Xcode project * targets Name of the targets you want to update teamid The Team ID you want to use * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_project_team CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_project_team To pass parameters, make use of the : symbol, for example fastlane run update_project_team parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Update project team"},{"location":"generated/actions/update_project_team/#update_project_team","text":"Update Xcode Development Team ID This action updates the Developer Team ID of your Xcode project. update_project_team Supported platforms ios, mac Author @lgaches","title":"update_project_team"},{"location":"generated/actions/update_project_team/#2-examples","text":"update_project_team update_project_team( path: \"Example.xcodeproj\", teamid: \"A3ZZVJ7CNY\" )","title":"2 Examples"},{"location":"generated/actions/update_project_team/#parameters","text":"Key Description Default path Path to your Xcode project * targets Name of the targets you want to update teamid The Team ID you want to use * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/update_project_team/#documentation","text":"To show the documentation in your terminal, run fastlane action update_project_team","title":"Documentation"},{"location":"generated/actions/update_project_team/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_project_team To pass parameters, make use of the : symbol, for example fastlane run update_project_team parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/update_project_team/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/update_urban_airship_configuration/","text":"update_urban_airship_configuration Set Urban Airship plist configuration values This action updates the AirshipConfig.plist needed to configure the Urban Airship SDK at runtime, allowing keys and secrets to easily be set for the Enterprise and Production versions of the application. update_urban_airship_configuration Supported platforms ios Author @kcharwood 1 Example update_urban_airship_configuration( plist_path: \"AirshipConfig.plist\", production_app_key: \"PRODKEY\", production_app_secret: \"PRODSECRET\" ) Parameters Key Description Default plist_path Path to Urban Airship configuration Plist development_app_key The development app key development_app_secret The development app secret production_app_key The production app key production_app_secret The production app secret detect_provisioning_mode Automatically detect provisioning mode * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_urban_airship_configuration CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_urban_airship_configuration To pass parameters, make use of the : symbol, for example fastlane run update_urban_airship_configuration parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Update urban airship configuration"},{"location":"generated/actions/update_urban_airship_configuration/#update_urban_airship_configuration","text":"Set Urban Airship plist configuration values This action updates the AirshipConfig.plist needed to configure the Urban Airship SDK at runtime, allowing keys and secrets to easily be set for the Enterprise and Production versions of the application. update_urban_airship_configuration Supported platforms ios Author @kcharwood","title":"update_urban_airship_configuration"},{"location":"generated/actions/update_urban_airship_configuration/#1-example","text":"update_urban_airship_configuration( plist_path: \"AirshipConfig.plist\", production_app_key: \"PRODKEY\", production_app_secret: \"PRODSECRET\" )","title":"1 Example"},{"location":"generated/actions/update_urban_airship_configuration/#parameters","text":"Key Description Default plist_path Path to Urban Airship configuration Plist development_app_key The development app key development_app_secret The development app secret production_app_key The production app key production_app_secret The production app secret detect_provisioning_mode Automatically detect provisioning mode * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/update_urban_airship_configuration/#documentation","text":"To show the documentation in your terminal, run fastlane action update_urban_airship_configuration","title":"Documentation"},{"location":"generated/actions/update_urban_airship_configuration/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_urban_airship_configuration To pass parameters, make use of the : symbol, for example fastlane run update_urban_airship_configuration parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/update_urban_airship_configuration/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/update_url_schemes/","text":"update_url_schemes Updates the URL schemes in the given Info.plist This action allows you to update the URL schemes of the app before building it. For example, you can use this to set a different URL scheme for the alpha or beta version of the app. update_url_schemes Supported platforms ios, mac Author @kmikael 2 Examples update_url_schemes( path: \"path/to/Info.plist\", url_schemes: [\"com.myapp\"] ) update_url_schemes( path: \"path/to/Info.plist\", update_url_schemes: proc do |schemes| schemes + [\"anotherscheme\"] end ) Parameters Key Description Default path The Plist file's path url_schemes The new URL schemes update_url_schemes Block that is called to update schemes with current schemes passed in as parameter * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_url_schemes CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_url_schemes To pass parameters, make use of the : symbol, for example fastlane run update_url_schemes parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Update url schemes"},{"location":"generated/actions/update_url_schemes/#update_url_schemes","text":"Updates the URL schemes in the given Info.plist This action allows you to update the URL schemes of the app before building it. For example, you can use this to set a different URL scheme for the alpha or beta version of the app. update_url_schemes Supported platforms ios, mac Author @kmikael","title":"update_url_schemes"},{"location":"generated/actions/update_url_schemes/#2-examples","text":"update_url_schemes( path: \"path/to/Info.plist\", url_schemes: [\"com.myapp\"] ) update_url_schemes( path: \"path/to/Info.plist\", update_url_schemes: proc do |schemes| schemes + [\"anotherscheme\"] end )","title":"2 Examples"},{"location":"generated/actions/update_url_schemes/#parameters","text":"Key Description Default path The Plist file's path url_schemes The new URL schemes update_url_schemes Block that is called to update schemes with current schemes passed in as parameter * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/update_url_schemes/#documentation","text":"To show the documentation in your terminal, run fastlane action update_url_schemes","title":"Documentation"},{"location":"generated/actions/update_url_schemes/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_url_schemes To pass parameters, make use of the : symbol, for example fastlane run update_url_schemes parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/update_url_schemes/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/upload_app_privacy_details_to_app_store/","text":"upload_app_privacy_details_to_app_store Upload App Privacy Details for an app in App Store Connect Upload App Privacy Details for an app in App Store Connect. For more detail information, view https://docs.fastlane.tools/uploading-app-privacy-details upload_app_privacy_details_to_app_store Supported platforms ios, mac Author @joshdholtz 2 Examples upload_app_privacy_details_to_app_store( username: \"your@email.com\", team_name: \"Your Team\", app_identifier: \"com.your.bundle\" ) upload_app_privacy_details_to_app_store( username: \"your@email.com\", team_name: \"Your Team\", app_identifier: \"com.your.bundle\", json_path: \"fastlane/app_data_usages.json\" ) Parameters Key Description Default username Your Apple ID Username for App Store Connect * app_identifier The bundle identifier of your app * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * json_path Path to the app usage data JSON output_json_path Path to the app usage data JSON file generated by interactive questions ./fastlane/app_privacy_details.json skip_json_file_saving Whether to skip the saving of the JSON file false skip_upload Whether to skip the upload and only create the JSON file with interactive questions false skip_publish Whether to skip the publishing false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action upload_app_privacy_details_to_app_store CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_app_privacy_details_to_app_store To pass parameters, make use of the : symbol, for example fastlane run upload_app_privacy_details_to_app_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Upload app privacy details to app store"},{"location":"generated/actions/upload_app_privacy_details_to_app_store/#upload_app_privacy_details_to_app_store","text":"Upload App Privacy Details for an app in App Store Connect Upload App Privacy Details for an app in App Store Connect. For more detail information, view https://docs.fastlane.tools/uploading-app-privacy-details upload_app_privacy_details_to_app_store Supported platforms ios, mac Author @joshdholtz","title":"upload_app_privacy_details_to_app_store"},{"location":"generated/actions/upload_app_privacy_details_to_app_store/#2-examples","text":"upload_app_privacy_details_to_app_store( username: \"your@email.com\", team_name: \"Your Team\", app_identifier: \"com.your.bundle\" ) upload_app_privacy_details_to_app_store( username: \"your@email.com\", team_name: \"Your Team\", app_identifier: \"com.your.bundle\", json_path: \"fastlane/app_data_usages.json\" )","title":"2 Examples"},{"location":"generated/actions/upload_app_privacy_details_to_app_store/#parameters","text":"Key Description Default username Your Apple ID Username for App Store Connect * app_identifier The bundle identifier of your app * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * json_path Path to the app usage data JSON output_json_path Path to the app usage data JSON file generated by interactive questions ./fastlane/app_privacy_details.json skip_json_file_saving Whether to skip the saving of the JSON file false skip_upload Whether to skip the upload and only create the JSON file with interactive questions false skip_publish Whether to skip the publishing false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/upload_app_privacy_details_to_app_store/#documentation","text":"To show the documentation in your terminal, run fastlane action upload_app_privacy_details_to_app_store","title":"Documentation"},{"location":"generated/actions/upload_app_privacy_details_to_app_store/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_app_privacy_details_to_app_store To pass parameters, make use of the : symbol, for example fastlane run upload_app_privacy_details_to_app_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/upload_app_privacy_details_to_app_store/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/upload_symbols_to_crashlytics/","text":"upload_symbols_to_crashlytics Upload dSYM symbolication files to Crashlytics This action allows you to upload symbolication files to Crashlytics. It's extra useful if you use it to download the latest dSYM files from Apple when you use Bitcode. This action will not fail the build if one of the uploads failed. The reason for that is that sometimes some of dSYM files are invalid, and we don't want them to fail the complete build. upload_symbols_to_crashlytics Supported platforms ios Author @KrauseFx 1 Example upload_symbols_to_crashlytics(dsym_path: \"./App.dSYM.zip\") Parameters Key Description Default dsym_path Path to the DSYM file or zip to upload * dsym_paths Paths to the DSYM files or zips to upload api_token Crashlytics API Key gsp_path Path to GoogleService-Info.plist app_id Firebase Crashlytics APP ID binary_path The path to the upload-symbols file of the Fabric app platform The platform of the app (ios, appletvos, mac) ios dsym_worker_threads The number of threads to use for simultaneous dSYM upload 1 debug Enable debug mode for upload-symbols false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action upload_symbols_to_crashlytics CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_symbols_to_crashlytics To pass parameters, make use of the : symbol, for example fastlane run upload_symbols_to_crashlytics parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Upload symbols to crashlytics"},{"location":"generated/actions/upload_symbols_to_crashlytics/#upload_symbols_to_crashlytics","text":"Upload dSYM symbolication files to Crashlytics This action allows you to upload symbolication files to Crashlytics. It's extra useful if you use it to download the latest dSYM files from Apple when you use Bitcode. This action will not fail the build if one of the uploads failed. The reason for that is that sometimes some of dSYM files are invalid, and we don't want them to fail the complete build. upload_symbols_to_crashlytics Supported platforms ios Author @KrauseFx","title":"upload_symbols_to_crashlytics"},{"location":"generated/actions/upload_symbols_to_crashlytics/#1-example","text":"upload_symbols_to_crashlytics(dsym_path: \"./App.dSYM.zip\")","title":"1 Example"},{"location":"generated/actions/upload_symbols_to_crashlytics/#parameters","text":"Key Description Default dsym_path Path to the DSYM file or zip to upload * dsym_paths Paths to the DSYM files or zips to upload api_token Crashlytics API Key gsp_path Path to GoogleService-Info.plist app_id Firebase Crashlytics APP ID binary_path The path to the upload-symbols file of the Fabric app platform The platform of the app (ios, appletvos, mac) ios dsym_worker_threads The number of threads to use for simultaneous dSYM upload 1 debug Enable debug mode for upload-symbols false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/upload_symbols_to_crashlytics/#documentation","text":"To show the documentation in your terminal, run fastlane action upload_symbols_to_crashlytics","title":"Documentation"},{"location":"generated/actions/upload_symbols_to_crashlytics/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_symbols_to_crashlytics To pass parameters, make use of the : symbol, for example fastlane run upload_symbols_to_crashlytics parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/upload_symbols_to_crashlytics/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/upload_symbols_to_sentry/","text":"upload_symbols_to_sentry Upload dSYM symbolication files to Sentry Please use the sentry plugin instead. Install using fastlane add_plugin sentry . Replace upload_symbols_to_sentry(...) with sentry_upload_dsym(...) . This action allows you to upload symbolication files to Sentry. It's extra useful if you use it to download the latest dSYM files from Apple when you use Bitcode. upload_symbols_to_sentry Supported platforms ios Author @joshdholtz Returns The uploaded dSYM path(s) 1 Example upload_symbols_to_sentry( auth_token: \"...\", org_slug: \"...\", project_slug: \"...\", dsym_path: \"./App.dSYM.zip\" ) Parameters Key Description Default api_host API host url for Sentry https://app.getsentry.com/api/0 api_key API key for Sentry auth_token Authentication token for Sentry org_slug Organization slug for Sentry project project_slug Project slug for Sentry dsym_path Path to your symbols file. For iOS and Mac provide path to app.dSYM.zip * dsym_paths Path to an array of your symbols file. For iOS and Mac provide path to app.dSYM.zip * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action upload_symbols_to_sentry CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_symbols_to_sentry To pass parameters, make use of the : symbol, for example fastlane run upload_symbols_to_sentry parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Upload symbols to sentry"},{"location":"generated/actions/upload_symbols_to_sentry/#upload_symbols_to_sentry","text":"Upload dSYM symbolication files to Sentry Please use the sentry plugin instead. Install using fastlane add_plugin sentry . Replace upload_symbols_to_sentry(...) with sentry_upload_dsym(...) . This action allows you to upload symbolication files to Sentry. It's extra useful if you use it to download the latest dSYM files from Apple when you use Bitcode. upload_symbols_to_sentry Supported platforms ios Author @joshdholtz Returns The uploaded dSYM path(s)","title":"upload_symbols_to_sentry"},{"location":"generated/actions/upload_symbols_to_sentry/#1-example","text":"upload_symbols_to_sentry( auth_token: \"...\", org_slug: \"...\", project_slug: \"...\", dsym_path: \"./App.dSYM.zip\" )","title":"1 Example"},{"location":"generated/actions/upload_symbols_to_sentry/#parameters","text":"Key Description Default api_host API host url for Sentry https://app.getsentry.com/api/0 api_key API key for Sentry auth_token Authentication token for Sentry org_slug Organization slug for Sentry project project_slug Project slug for Sentry dsym_path Path to your symbols file. For iOS and Mac provide path to app.dSYM.zip * dsym_paths Path to an array of your symbols file. For iOS and Mac provide path to app.dSYM.zip * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/upload_symbols_to_sentry/#documentation","text":"To show the documentation in your terminal, run fastlane action upload_symbols_to_sentry","title":"Documentation"},{"location":"generated/actions/upload_symbols_to_sentry/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_symbols_to_sentry To pass parameters, make use of the : symbol, for example fastlane run upload_symbols_to_sentry parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/upload_symbols_to_sentry/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/upload_to_app_store/","text":"upload_to_app_store Upload metadata and binary to App Store Connect (via deliver ) deliver uploads screenshots, metadata and binaries to App Store Connect. Use deliver to submit your app for App Store review. Features \u2022 Quick Start \u2022 Usage \u2022 Tips deliver is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Features Upload hundreds of localized screenshots completely automatically Upload a new ipa/pkg file to App Store Connect without Xcode from any Mac Maintain your app metadata locally and push changes back to App Store Connect Easily implement a real Continuous Deployment process using fastlane Store the configuration in git to easily deploy from any Mac, including your Continuous Integration server Get a HTML preview of the fetched metadata before uploading the app metadata and screenshots to iTC Automatically uses precheck to ensure your app has the highest chances of passing app review the first time To upload builds to TestFlight check out pilot . Quick Start The guide will create all the necessary files for you, using the existing app metadata from App Store Connect. cd [your_project_folder] fastlane deliver init Enter your App Store Connect credentials Enter your app identifier Enjoy a good drink, while the computer does all the work for you From now on, you can run fastlane deliver to deploy a new update, or just upload new app metadata and screenshots. Usage Check out your local ./fastlane/metadata and ./fastlane/screenshots folders (if you don't use fastlane it's ./metadata instead) You'll see your metadata from App Store Connect. Feel free to store the metadata in git (not the screenshots). You can now modify it locally and push the changes back to App Store Connect. Run fastlane deliver to upload the app metadata from your local machine fastlane deliver Provide the path to an ipa file to upload and submit your app for review: fastlane deliver --ipa \"App.ipa\" --submit_for_review or you can specify path to pkg file for macOS apps: fastlane deliver --pkg \"MacApp.pkg\" If you use fastlane you don't have to manually specify the path to your ipa / pkg file. This is just a small sub-set of what you can do with deliver , check out the full documentation in #more-options Download existing screenshots from App Store Connect fastlane deliver download_screenshots Download existing metadata from App Store Connect fastlane deliver download_metadata To get a list of available options run fastlane action deliver Use in a Fastfile deliver deliver( submit_for_review: true, force: true, metadata_path: \"./metadata\" ) More options View all available options and their valid values Available options All the options below can easily be added to your Deliverfile . The great thing: if you use fastlane you can use all these options from your Fastfile too, for example: deliver( submit_for_review: true, metadata_path: \"../folder\" ) app_identifier The bundle identifier (e.g. \"com.krausefx.app\") username Your Apple ID email address ipa A path to a signed ipa file, which will be uploaded. If you don't provide this value, only app metadata will be uploaded. If you want to submit the app for review make sure to either use fastlane deliver --submit_for_review or add submit_for_review true to your Deliverfile ipa(\"App.ipa\") if you use fastlane the ipa file will automatically be detected. pkg A path to a signed pkg file, which will be uploaded. Submission logic of ipa applies to pkg files. pkg(\"MacApp.pkg\") app_version Optional, as it is usually automatically detected. Specify the version that should be created / edited on App Store Connect: app_version(\"2.0\") skip_app_version_update In the case if deliver uploads your application to App Store Connect it will automatically update \"Prepare for submission\" app version (which could be found on App Store Connect->My Apps->App Store page) The option allows uploading your app without updating \"Prepare for submission\" version. This could be useful in the case if you are generating a lot of uploads while not submitting the latest build for Apple review. The default value is false. skip_app_version_update(true) submit_for_review Add this to your Deliverfile to automatically submit the app for review after uploading metadata/binary. This will select the latest build. submit_for_review(true) screenshots_path A path to a folder containing subfolders for each language. This will automatically detect the device type based on the image resolution. Also includes \uf8ff Watch Support. metadata_path Path to the metadata you want to use. The folder has to be structured like this If you run deliver init this will automatically be created for you. force force(true) If set to true , no HTML report will be generated before the actual upload. You can also pass --force when calling deliver . price_tier Pass the price tier as number. This will be active from the current day. price_tier 0 trade_representative_contact_information Trade Representative Contact information for Korean App Store. Available options: first_name , last_name , address_line1 , address_line2 , address_line3 , city_name , state , country , postal_code , phone_number , email_address , is_displayed_on_app_store . trade_representative_contact_information( first_name: \"Felix\", last_name: \"Krause\", address_line1: \"1 Infinite Loop\", address_line2: \"\", address_line3: null, city_name: \"Cupertino\", state: \"California\", country: \"United States\", postal_code: \"95014\", phone_number: \"+43 123123123\", email_address: \"github@krausefx.com\", ) You can also provide these values by creating files in a metadata/trade_representative_contact_information/ directory. The file names must match the pattern .txt (e.g. first_name.txt , address_line1.txt etc.). The contents of each file will be used as the value for the matching key. Values provided in the Deliverfile or Fastfile will be take priority over values from these files. is_displayed_on_app_store is the option on App Store Connect described as: Display Trade Representative Contact Information on the Korean App Store app_review_information Contact information for the app review team. Available options: first_name , last_name , phone_number , email_address , demo_user , demo_password , notes . app_review_information( first_name: \"Felix\", last_name: \"Krause\", phone_number: \"+43 123123123\", email_address: \"github@krausefx.com\", demo_user: \"demoUser\", demo_password: \"demoPass\", notes: \"such notes, very text\" ) You can also provide these values by creating files in a metadata/review_information/ directory. The file names must match the pattern .txt (e.g. first_name.txt , notes.txt etc.). The contents of each file will be used as the value for the matching key. Values provided in the Deliverfile or Fastfile will be take priority over values from these files. app_review_attachment_file You can provide additional information to the app review team as a file attachment. As of this writing, Apple supports following file attachment formats: .pdf, .doc, .docx, .rtf, .pages, .xls, .xlsx, .numbers, .zip, .rar, .plist, .crash, .jpg, .png, .mp4, or .avi. Provide an empty string (i.e. \"\", not null) to remove the existing attachment file (if any) from the review information being edited. app_review_attachment_file: \"./readme.txt\" submission_information Must be a hash. This is used as the last step for the deployment process, where you define if you use third party content or use encryption. A list of available options . submission_information({ add_id_info_serves_ads: true, ... }) automatic_release Should the app be released to all users once Apple approves it? If set to false , you'll have to manually release the update once it got approved. automatic_release(true) # or automatic_release(false) phased_release Enable or disable the phased releases feature of App Store Connect. If set to true , the update will be released over a 7 day period. Default behavior is to leave whatever you defined on App Store Connect. phased_release(true) # or phased_release(false) reset_ratings Reset your app's summary rating for all territories. If set to true , it will reset rating when this version is released. Default behavior is to keep existing rating. reset_ratings(true) # or reset_ratings(false) app_rating_config_path You can set the app age ratings using deliver . You'll have to create and store a JSON configuration file. Copy the template to your project folder and pass the path to the JSON file using the app_rating_config_path option. The keys/values on the top allow one of 3 strings: \"NONE\", \"INFREQUENT_OR_MILD\" or \"FREQUENT_OR_INTENSE\", and the items on the bottom allow false or true. More information in #reference . Metadata All options below are useful if you want to specify certain app metadata in your Deliverfile or Fastfile Localized Localized values should be set like this description({ 'en-US' => \"English Description here\", 'de-DE' => \"Deutsche Beschreibung hier\" }) name The title/name of the app subtitle Localized subtitle of the app subtitle( \"en-US\" => \"Awesome English subtitle here\", \"de-DE\" => \"Jetzt mit deutschen Untertiteln!\" ) description The description of the app release_notes The release_notes (What's new / Changelog) of the latest version support_url, marketing_url, privacy_url These URLs are shown in the AppStore keywords Keywords separated using a comma. keywords( \"en-US\" => \"Keyword1, Keyword2\" ) promotional_text Localized promotional text promotional_text( \"en-US\" => \"Hey, you should totally buy our app, it's the best\", \"de-DE\" => \"App kaufen bitte\" ) app_icon A path to a new app icon, which must be exactly 1024x1024px app_icon('./AppIcon.png') apple_watch_app_icon A path to a new app icon for the \uf8ff Watch, which must be exactly 1024x1024px apple_watch_app_icon('./AppleWatchAppIcon.png') platform The platform of your application (a.e. ios, osx). This option is optional. The default value is \"ios\" and deliver should be able to figure out the platform from your binary. However, in the case if multiple binaries present, you can specify a platform which you want to deliver explicitly. The available options: 'ios' 'appletvos' 'osx' Non-Localized copyright The up to date copyright information. copyright(\"#{Time.now.year} Felix Krause\") primary_category The english name of the category you want to set (e.g. Business , Books ) See #reference for a list of available categories secondary_category The english name of the secondary category you want to set primary_first_sub_category The english name of the primary first sub category you want to set primary_second_sub_category The english name of the primary second sub category you want to set secondary_first_sub_category The english name of the secondary first sub category you want to set secondary_second_sub_category The english name of the secondary second sub category you want to set Submit Build deliver allows you to promote an existing build to production. Below are examples to select a previously uploaded build and submit it for review. fastlane deliver submit_build --build_number 830 Submit build in a Fastfile lane :submit_review do deliver( build_number: '830', submit_for_review: true, automatic_release: true, force: true, # Skip HTMl report verification skip_metadata: true, skip_screenshots: true, skip_binary_upload: true ) end Omit build_number to let fastlane automatically select the latest build number for the current version being edited for release from App Store Connect. Compliance and IDFA settings Use the submission_information parameter for additional submission specifiers, including compliance and IDFA settings. Look at the Spaceship's app_submission.rb file for options. See this example . fastlane deliver submit_build --build_number 830 --submission_information \"{\\\"export_compliance_uses_encryption\\\": false, \\\"add_id_info_uses_idfa\\\": false }\" App Privacy Details Starting on December 8, 2020, Apple announced that developers are required to provide app privacy details that will help users understand an app's privacy practies. deliver does not allow for updating of this information but this can be done with the upload_app_privacy_details_to_app_store action. More information on Uploading App Privacy Details Credentials A detailed description about how your credentials are handled is available in a credentials_manager . How does this thing even work? Is magic involved? \ud83c\udfa9 Your password will be stored in the macOS keychain, but can also be passed using environment variables. (More information available on CredentialsManager ) Before actually uploading anything to iTunes, deliver will generate a HTML summary of the collected data. deliver uses the following techniques under the hood: The iTMSTransporter tool is used to upload the binary to App Store Connect. iTMSTransporter is a command line tool provided by Apple. For all metadata related actions deliver uses spaceship Tips Available language codes ar-SA, ca, cs, da, de-DE, el, en-AU, en-CA, en-GB, en-US, es-ES, es-MX, fi, fr-CA, fr-FR, he, hi, hr, hu, id, it, ja, ko, ms, nl-NL, no, pl, pt-BR, pt-PT, ro, ru, sk, sv, th, tr, uk, vi, zh-Hans, zh-Hant Available Metadata Folder Options deliver allows for metadata to be set through .txt files in the metadata folder. This metadata folder location is defaulted to ./fastlane/metadata but can be overridden through the metadata_path parameter. Below are all allowed metadata options. Non-Localized Metadata Key Editable While Live Directory Filename copyright Yes copyright.txt primary_category No primary_category.txt secondary_category No secondary_category.txt primary_first_sub_category No primary_first_sub_category.txt primary_second_sub_category No primary_second_sub_category.txt secondary_first_sub_category No secondary_first_sub_category.txt secondary_second_sub_category No secondary_second_sub_category.txt Localized Metadata Key Editable While Live Directory Filename name No // name.txt subtitle No // subtitle.txt privacy_url Yes // privacy_url.txt apple_tv_privacy_policy No // apple_tv_privacy_policy.txt description Yes // description.txt keywords No // keywords.txt release_notes Yes // release_notes.txt support_url Yes // support_url.txt marketing_url Yes // marketing_url.txt promotional_text Yes // promotional_text.txt Review Information Metadata Key Editable While Live Directory Filename Deprecated Filename first_name Yes /review_information first_name.txt review_first_name.txt last_name Yes /review_information last_name.txt review_last_name.txt phone_number Yes /review_information phone_number.txt review_phone_number.txt email_address Yes /review_information email_address.txt review_email.txt demo_user Yes /review_information demo_user.txt review_demo_user.txt demo_password Yes /review_information demo_password.txt review_demo_password.txt notes Yes /review_information notes.txt review_notes.txt Reference View all available categories, etc. Available Categories FOOD_AND_DRINK BUSINESS EDUCATION SOCIAL_NETWORKING BOOKS SPORTS FINANCE REFERENCE GRAPHICS_AND_DESIGN DEVELOPER_TOOLS HEALTH_AND_FITNESS MUSIC WEATHER TRAVEL ENTERTAINMENT STICKERS GAMES LIFESTYLE MEDICAL MAGAZINES_AND_NEWSPAPERS UTILITIES SHOPPING PRODUCTIVITY NEWS PHOTO_AND_VIDEO NAVIGATION Available Game Subcategories MZGenre.Action MZGenre.Adventure MZGenre.Arcade MZGenre.Board MZGenre.Card MZGenre.Casino MZGenre.Dice MZGenre.Educational MZGenre.Family MZGenre.Music MZGenre.Puzzle MZGenre.Racing MZGenre.RolePlaying MZGenre.Simulation MZGenre.Sports MZGenre.Strategy MZGenre.Trivia MZGenre.Word GAMES_SPORTS GAMES_WORD GAMES_MUSIC GAMES_ADVENTURE GAMES_ACTION GAMES_ROLE_PLAYING GAMES_CASUAL GAMES_BOARD GAMES_TRIVIA GAMES_CARD GAMES_PUZZLE GAMES_CASINO GAMES_STRATEGY GAMES_SIMULATION GAMES_RACING GAMES_FAMILY Available Stickers Subcategories STICKERS_PLACES_AND_OBJECTS STICKERS_EMOJI_AND_EXPRESSIONS STICKERS_CELEBRATIONS STICKERS_CELEBRITIES STICKERS_MOVIES_AND_TV STICKERS_SPORTS_AND_ACTIVITIES STICKERS_EATING_AND_DRINKING STICKERS_CHARACTERS STICKERS_ANIMALS STICKERS_FASHION STICKERS_ART STICKERS_GAMING STICKERS_KIDS_AND_FAMILY STICKERS_PEOPLE STICKERS_MUSIC Available age rating groups Non Boolean Values 0: None (Legacy value, use NONE instead) 1: Infrequent/Mild (Legacy value, use INFREQUENT_OR_MILD instead) 2: Frequent/Intense (Legacy value, use FREQUENT_OR_INTENSE instead) NONE INFREQUENT_OR_MILD FREQUENT_OR_INTENSE Keys 'alcoholTobaccoOrDrugUseOrReferences' 'contests' 'gamblingSimulated' 'medicalOrTreatmentInformation' 'profanityOrCrudeHumor' 'sexualContentGraphicAndNudity' 'sexualContentOrNudity' 'horrorOrFearThemes' 'matureOrSuggestiveThemes' 'unrestrictedWebAccess' 'violenceCartoonOrFantasy' 'violenceRealisticProlongedGraphicOrSadistic' 'violenceRealistic' 'kidsAgeBand' Boolean Keys gambling 'seventeenPlus' unrestrictedWebAccess Kids Age Values FIVE_AND_UNDER SIX_TO_EIGHT NINE_TO_ELEVEN null Keys kidsAgeBand Default values Deliver has a special default language code which allows you to provide values that are not localized, and which will be used as defaults when you don\u2019t provide a specific localized value. In order to use default , you will need to tell deliver which languages your app uses. You can do this in either of two ways: Create the folders named with the language in the metadata folder (i.e. fastlane/metadata/en-US or fastlane/metadata/de-DE) Add the following to your Deliverfile languages(['en-US','de-DE']) You can use this either in json within your Deliverfile and/or as folders in your metadata folder. deliver will take the union of both language sets from the Deliverfile and from the metadata folder and create on single set of languages which will be enabled. Imagine that you have localized data for the following language codes: en-US, de-DE, el, it You can set the following in your Deliverfile release_notes({ 'default' => \"Shiny and new\", 'de-DE' => \"glaenzend und neu\" }) Deliver will use \"Shiny and new\" for en-US, el and it. It will use \"glaenzend und neu\" for de-DE. You can do the same with folders default keywords.txt marketing_url.txt name.txt privacy_url.txt support_url.txt release_notes.txt en-US description.txt de-DE description.txt el description.txt it description.txt In this case, default values for keywords, urls, name and release notes are used in all localizations, but each language has a fully localized description Uploading screenshots for \"iPad Pro (12.9-inch) (3rd generation)\" Starting March 20, 2019 Apple's App Store requires 12.9-inch iPad Pro (3rd generation) screenshots additionally to the iPad Pro 2nd generation screenshots . As fastlane historically uses the screenshot dimensions to determine the \"display family\" of a screenshot, this poses a problem as both use the same dimensions and are recognized as the same device family. To solve this a screenshot of a 12.9-inch iPad Pro (3rd generation) must contain either the string iPad Pro (12.9-inch) (3rd generation) , IPAD_PRO_3GEN_129 , or ipadPro129 (Apple's internal naming of the display family for the 3rd generation iPad Pro) in its filename to be assigned the correct display family and to be uploaded to the correct screenshot slot in your app's metadata. Automatically create screenshots If you want to integrate deliver with snapshot , check out fastlane ! Jenkins integration Detailed instructions about how to set up deliver and fastlane in Jenkins can be found in the fastlane README . Firewall Issues deliver uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" fastlane deliver HTTP Proxy iTunes Transporter is a Java application bundled with Xcode. In addition to utilizing the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" , you need to configure the transporter application to use the proxy independently from the system proxy or any environment proxy settings. You can find the configuration file within Xcode: for Xcode11 and later TOOLS_PATH=$( xcode-select -p ) REL_PATH='../SharedFrameworks/ContentDeliveryServices.framework/Versions/A/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" for Xcode10 or earlier TOOLS_PATH=$( xcode-select -p ) REL_PATH='../Applications/Application Loader.app/Contents/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" Add necessary proxy configuration values to the net.properties according to Java Proxy Configuration . As an alternative to editing the properties files, proxy configuration can be specified on the command line directly: DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV -Dhttp.proxyHost=myproxy.com -Dhttp.proxyPort=8080\" Limit App Store Connect has a limit of 150 binary uploads per day. Editing the Deliverfile Change syntax highlighting to Ruby . Provider Short Name If you are on multiple App Store Connect teams, deliver needs a provider short name to know where to upload your binary. deliver will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option. upload_to_app_store Supported platforms ios, mac Author @KrauseFx 3 Examples upload_to_app_store( force: true, # Set to true to skip verification of HTML preview itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) deliver # alias for \"upload_to_app_store\" appstore # alias for \"upload_to_app_store\" Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of your app * app_version The version that should be edited or created ipa Path to your ipa file * pkg Path to your pkg file * build_number If set the given build number (already uploaded to iTC) will be used instead of the current built one platform The platform to use (optional) ios edit_live Modify live metadata, this option disables ipa upload and screenshot upload false use_live_version Force usage of live version rather than edit version false metadata_path Path to the folder containing the metadata files screenshots_path Path to the folder containing the screenshots skip_binary_upload Skip uploading an ipa or pkg to App Store Connect false skip_screenshots Don't upload the screenshots false skip_metadata Don't upload the metadata (e.g. title, description). This will still upload screenshots false skip_app_version_update Don\u2019t create or update the app version that is being prepared for submission false force Skip verification of HTML preview file false overwrite_screenshots Clear all previously uploaded screenshots before uploading the new ones false sync_screenshots Sync screenshots with local ones. This is currently beta option so set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well false submit_for_review Submit the new version for Review after uploading everything false verify_only Verifies archive with App Store Connect without uploading false reject_if_possible Rejects the previously submitted build if it's in a state where it's possible false automatic_release Should the app be automatically released once it's approved? (Can not be used together with auto_release_date ) auto_release_date Date in milliseconds for automatically releasing on pending approval (Can not be used together with automatic_release ) phased_release Enable the phased release feature of iTC false reset_ratings Reset the summary rating when you release a new version of the application false price_tier The price tier of this application app_rating_config_path Path to the app rating's config submission_information Extra information for the submission (e.g. compliance specifications, IDFA settings) team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your Developer Portal team, if you're in multiple teams. Different from your iTC team ID! * dev_portal_team_name The name of your Developer Portal team if you're in multiple teams * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column * run_precheck_before_submit Run precheck before submitting to app review true precheck_default_rule_level The default precheck rule level unless otherwise configured :warn individual_metadata_items DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - An array of localized metadata items to upload individually by language so that errors can be identified. E.g. ['name', 'keywords', 'description']. Note: slow app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the app icon apple_watch_app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the Apple Watch app icon copyright Metadata: The copyright notice primary_category Metadata: The english name of the primary category (e.g. Business , Books ) secondary_category Metadata: The english name of the secondary category (e.g. Business , Books ) primary_first_sub_category Metadata: The english name of the primary first sub category (e.g. Educational , Puzzle ) primary_second_sub_category Metadata: The english name of the primary second sub category (e.g. Educational , Puzzle ) secondary_first_sub_category Metadata: The english name of the secondary first sub category (e.g. Educational , Puzzle ) secondary_second_sub_category Metadata: The english name of the secondary second sub category (e.g. Educational , Puzzle ) trade_representative_contact_information DEPRECATED! This is no longer used by App Store Connect - Metadata: A hash containing the trade representative contact information app_review_information Metadata: A hash containing the review information app_review_attachment_file Metadata: Path to the app review attachment file description Metadata: The localised app description name Metadata: The localised app name subtitle Metadata: The localised app subtitle keywords Metadata: An array of localised keywords promotional_text Metadata: An array of localised promotional texts release_notes Metadata: Localised release notes for this version privacy_url Metadata: Localised privacy url apple_tv_privacy_policy Metadata: Localised Apple TV privacy policy text support_url Metadata: Localised support url marketing_url Metadata: Localised marketing url languages Metadata: List of languages to activate ignore_language_directory_validation Ignore errors when invalid languages are found in metadata and screenshot directories false precheck_include_in_app_purchases Should precheck check in-app purchases? true app The (spaceship) app ID of the app you want to use/modify * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action upload_to_app_store CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_to_app_store To pass parameters, make use of the : symbol, for example fastlane run upload_to_app_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Upload to app store"},{"location":"generated/actions/upload_to_app_store/#upload_to_app_store","text":"Upload metadata and binary to App Store Connect (via deliver ) deliver uploads screenshots, metadata and binaries to App Store Connect. Use deliver to submit your app for App Store review. Features \u2022 Quick Start \u2022 Usage \u2022 Tips","title":"upload_to_app_store"},{"location":"generated/actions/upload_to_app_store/#features","text":"Upload hundreds of localized screenshots completely automatically Upload a new ipa/pkg file to App Store Connect without Xcode from any Mac Maintain your app metadata locally and push changes back to App Store Connect Easily implement a real Continuous Deployment process using fastlane Store the configuration in git to easily deploy from any Mac, including your Continuous Integration server Get a HTML preview of the fetched metadata before uploading the app metadata and screenshots to iTC Automatically uses precheck to ensure your app has the highest chances of passing app review the first time To upload builds to TestFlight check out pilot .","title":"Features"},{"location":"generated/actions/upload_to_app_store/#quick-start","text":"The guide will create all the necessary files for you, using the existing app metadata from App Store Connect. cd [your_project_folder] fastlane deliver init Enter your App Store Connect credentials Enter your app identifier Enjoy a good drink, while the computer does all the work for you From now on, you can run fastlane deliver to deploy a new update, or just upload new app metadata and screenshots.","title":"Quick Start"},{"location":"generated/actions/upload_to_app_store/#usage","text":"Check out your local ./fastlane/metadata and ./fastlane/screenshots folders (if you don't use fastlane it's ./metadata instead) You'll see your metadata from App Store Connect. Feel free to store the metadata in git (not the screenshots). You can now modify it locally and push the changes back to App Store Connect. Run fastlane deliver to upload the app metadata from your local machine fastlane deliver Provide the path to an ipa file to upload and submit your app for review: fastlane deliver --ipa \"App.ipa\" --submit_for_review or you can specify path to pkg file for macOS apps: fastlane deliver --pkg \"MacApp.pkg\" If you use fastlane you don't have to manually specify the path to your ipa / pkg file. This is just a small sub-set of what you can do with deliver , check out the full documentation in #more-options Download existing screenshots from App Store Connect fastlane deliver download_screenshots Download existing metadata from App Store Connect fastlane deliver download_metadata To get a list of available options run fastlane action deliver","title":"Usage"},{"location":"generated/actions/upload_to_app_store/#more-options","text":"View all available options and their valid values","title":"More options"},{"location":"generated/actions/upload_to_app_store/#available-options","text":"All the options below can easily be added to your Deliverfile . The great thing: if you use fastlane you can use all these options from your Fastfile too, for example: deliver( submit_for_review: true, metadata_path: \"../folder\" )","title":"Available options"},{"location":"generated/actions/upload_to_app_store/#metadata","text":"All options below are useful if you want to specify certain app metadata in your Deliverfile or Fastfile","title":"Metadata"},{"location":"generated/actions/upload_to_app_store/#submit-build","text":"deliver allows you to promote an existing build to production. Below are examples to select a previously uploaded build and submit it for review. fastlane deliver submit_build --build_number 830","title":"Submit Build"},{"location":"generated/actions/upload_to_app_store/#credentials","text":"A detailed description about how your credentials are handled is available in a credentials_manager .","title":"Credentials"},{"location":"generated/actions/upload_to_app_store/#tips","text":"","title":"Tips"},{"location":"generated/actions/upload_to_app_store/#available-language-codes","text":"ar-SA, ca, cs, da, de-DE, el, en-AU, en-CA, en-GB, en-US, es-ES, es-MX, fi, fr-CA, fr-FR, he, hi, hr, hu, id, it, ja, ko, ms, nl-NL, no, pl, pt-BR, pt-PT, ro, ru, sk, sv, th, tr, uk, vi, zh-Hans, zh-Hant","title":"Available language codes"},{"location":"generated/actions/upload_to_app_store/#available-metadata-folder-options","text":"deliver allows for metadata to be set through .txt files in the metadata folder. This metadata folder location is defaulted to ./fastlane/metadata but can be overridden through the metadata_path parameter. Below are all allowed metadata options.","title":"Available Metadata Folder Options"},{"location":"generated/actions/upload_to_app_store/#reference","text":"View all available categories, etc.","title":"Reference"},{"location":"generated/actions/upload_to_app_store/#default-values","text":"Deliver has a special default language code which allows you to provide values that are not localized, and which will be used as defaults when you don\u2019t provide a specific localized value. In order to use default , you will need to tell deliver which languages your app uses. You can do this in either of two ways: Create the folders named with the language in the metadata folder (i.e. fastlane/metadata/en-US or fastlane/metadata/de-DE) Add the following to your Deliverfile languages(['en-US','de-DE']) You can use this either in json within your Deliverfile and/or as folders in your metadata folder. deliver will take the union of both language sets from the Deliverfile and from the metadata folder and create on single set of languages which will be enabled. Imagine that you have localized data for the following language codes: en-US, de-DE, el, it You can set the following in your Deliverfile release_notes({ 'default' => \"Shiny and new\", 'de-DE' => \"glaenzend und neu\" }) Deliver will use \"Shiny and new\" for en-US, el and it. It will use \"glaenzend und neu\" for de-DE. You can do the same with folders default keywords.txt marketing_url.txt name.txt privacy_url.txt support_url.txt release_notes.txt en-US description.txt de-DE description.txt el description.txt it description.txt In this case, default values for keywords, urls, name and release notes are used in all localizations, but each language has a fully localized description","title":"Default values"},{"location":"generated/actions/upload_to_app_store/#uploading-screenshots-for-ipad-pro-129-inch-3rd-generation","text":"Starting March 20, 2019 Apple's App Store requires 12.9-inch iPad Pro (3rd generation) screenshots additionally to the iPad Pro 2nd generation screenshots . As fastlane historically uses the screenshot dimensions to determine the \"display family\" of a screenshot, this poses a problem as both use the same dimensions and are recognized as the same device family. To solve this a screenshot of a 12.9-inch iPad Pro (3rd generation) must contain either the string iPad Pro (12.9-inch) (3rd generation) , IPAD_PRO_3GEN_129 , or ipadPro129 (Apple's internal naming of the display family for the 3rd generation iPad Pro) in its filename to be assigned the correct display family and to be uploaded to the correct screenshot slot in your app's metadata.","title":"Uploading screenshots for \"iPad Pro (12.9-inch) (3rd generation)\""},{"location":"generated/actions/upload_to_app_store/#automatically-create-screenshots","text":"If you want to integrate deliver with snapshot , check out fastlane !","title":"Automatically create screenshots"},{"location":"generated/actions/upload_to_app_store/#jenkins-integration","text":"Detailed instructions about how to set up deliver and fastlane in Jenkins can be found in the fastlane README .","title":"Jenkins integration"},{"location":"generated/actions/upload_to_app_store/#firewall-issues","text":"deliver uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" fastlane deliver","title":"Firewall Issues"},{"location":"generated/actions/upload_to_app_store/#http-proxy","text":"iTunes Transporter is a Java application bundled with Xcode. In addition to utilizing the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" , you need to configure the transporter application to use the proxy independently from the system proxy or any environment proxy settings. You can find the configuration file within Xcode: for Xcode11 and later TOOLS_PATH=$( xcode-select -p ) REL_PATH='../SharedFrameworks/ContentDeliveryServices.framework/Versions/A/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" for Xcode10 or earlier TOOLS_PATH=$( xcode-select -p ) REL_PATH='../Applications/Application Loader.app/Contents/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" Add necessary proxy configuration values to the net.properties according to Java Proxy Configuration . As an alternative to editing the properties files, proxy configuration can be specified on the command line directly: DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV -Dhttp.proxyHost=myproxy.com -Dhttp.proxyPort=8080\"","title":"HTTP Proxy"},{"location":"generated/actions/upload_to_app_store/#limit","text":"App Store Connect has a limit of 150 binary uploads per day.","title":"Limit"},{"location":"generated/actions/upload_to_app_store/#editing-the-deliverfile","text":"Change syntax highlighting to Ruby .","title":"Editing the Deliverfile"},{"location":"generated/actions/upload_to_app_store/#provider-short-name","text":"If you are on multiple App Store Connect teams, deliver needs a provider short name to know where to upload your binary. deliver will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option. upload_to_app_store Supported platforms ios, mac Author @KrauseFx","title":"Provider Short Name"},{"location":"generated/actions/upload_to_app_store/#3-examples","text":"upload_to_app_store( force: true, # Set to true to skip verification of HTML preview itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) deliver # alias for \"upload_to_app_store\" appstore # alias for \"upload_to_app_store\"","title":"3 Examples"},{"location":"generated/actions/upload_to_app_store/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of your app * app_version The version that should be edited or created ipa Path to your ipa file * pkg Path to your pkg file * build_number If set the given build number (already uploaded to iTC) will be used instead of the current built one platform The platform to use (optional) ios edit_live Modify live metadata, this option disables ipa upload and screenshot upload false use_live_version Force usage of live version rather than edit version false metadata_path Path to the folder containing the metadata files screenshots_path Path to the folder containing the screenshots skip_binary_upload Skip uploading an ipa or pkg to App Store Connect false skip_screenshots Don't upload the screenshots false skip_metadata Don't upload the metadata (e.g. title, description). This will still upload screenshots false skip_app_version_update Don\u2019t create or update the app version that is being prepared for submission false force Skip verification of HTML preview file false overwrite_screenshots Clear all previously uploaded screenshots before uploading the new ones false sync_screenshots Sync screenshots with local ones. This is currently beta option so set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well false submit_for_review Submit the new version for Review after uploading everything false verify_only Verifies archive with App Store Connect without uploading false reject_if_possible Rejects the previously submitted build if it's in a state where it's possible false automatic_release Should the app be automatically released once it's approved? (Can not be used together with auto_release_date ) auto_release_date Date in milliseconds for automatically releasing on pending approval (Can not be used together with automatic_release ) phased_release Enable the phased release feature of iTC false reset_ratings Reset the summary rating when you release a new version of the application false price_tier The price tier of this application app_rating_config_path Path to the app rating's config submission_information Extra information for the submission (e.g. compliance specifications, IDFA settings) team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your Developer Portal team, if you're in multiple teams. Different from your iTC team ID! * dev_portal_team_name The name of your Developer Portal team if you're in multiple teams * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column * run_precheck_before_submit Run precheck before submitting to app review true precheck_default_rule_level The default precheck rule level unless otherwise configured :warn individual_metadata_items DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - An array of localized metadata items to upload individually by language so that errors can be identified. E.g. ['name', 'keywords', 'description']. Note: slow app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the app icon apple_watch_app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the Apple Watch app icon copyright Metadata: The copyright notice primary_category Metadata: The english name of the primary category (e.g. Business , Books ) secondary_category Metadata: The english name of the secondary category (e.g. Business , Books ) primary_first_sub_category Metadata: The english name of the primary first sub category (e.g. Educational , Puzzle ) primary_second_sub_category Metadata: The english name of the primary second sub category (e.g. Educational , Puzzle ) secondary_first_sub_category Metadata: The english name of the secondary first sub category (e.g. Educational , Puzzle ) secondary_second_sub_category Metadata: The english name of the secondary second sub category (e.g. Educational , Puzzle ) trade_representative_contact_information DEPRECATED! This is no longer used by App Store Connect - Metadata: A hash containing the trade representative contact information app_review_information Metadata: A hash containing the review information app_review_attachment_file Metadata: Path to the app review attachment file description Metadata: The localised app description name Metadata: The localised app name subtitle Metadata: The localised app subtitle keywords Metadata: An array of localised keywords promotional_text Metadata: An array of localised promotional texts release_notes Metadata: Localised release notes for this version privacy_url Metadata: Localised privacy url apple_tv_privacy_policy Metadata: Localised Apple TV privacy policy text support_url Metadata: Localised support url marketing_url Metadata: Localised marketing url languages Metadata: List of languages to activate ignore_language_directory_validation Ignore errors when invalid languages are found in metadata and screenshot directories false precheck_include_in_app_purchases Should precheck check in-app purchases? true app The (spaceship) app ID of the app you want to use/modify * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/upload_to_app_store/#documentation","text":"To show the documentation in your terminal, run fastlane action upload_to_app_store","title":"Documentation"},{"location":"generated/actions/upload_to_app_store/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_to_app_store To pass parameters, make use of the : symbol, for example fastlane run upload_to_app_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/upload_to_app_store/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/upload_to_play_store/","text":"upload_to_play_store Upload metadata, screenshots and binaries to Google Play (via supply ) Command line tool for updating Android apps and their metadata on the Google Play Store supply uploads app metadata, screenshots, binaries, and app bundles to Google Play. You can also select tracks for builds and promote builds to production. Features \u2022 Setup \u2022 Quick Start \u2022 Commands \u2022 Uploading an APK \u2022 Uploading an AAB \u2022 Images Features Update existing Android applications on Google Play via the command line Upload new builds (APKs and AABs) Retrieve and edit metadata, such as title and description, for multiple languages Upload the app icon, promo graphics and screenshots for multiple languages Have a local copy of the metadata in your git repository Retrieve version code numbers from existing Google Play tracks Setup Setup consists of setting up your Google Developers Service Account Tip: If you see Google Play Console or Google Developer Console in your local language, add &hl=en at the end of the URL (before any #... ) to switch to English. All the links below already have this to make it easier to find the correct buttons. Note: if you face issues when following these instructions, you might want to refer to the official documentation by Google . Open the Google Play Console Click Account Details , and note the Developer Account ID listed there Enable the Google Play Developer API by selecting an existing Google Cloud Project that fits your needs and pushing ENABLE If you don't have an existing project or prefer to have a dedicated one for fastlane , create a new one here and follow the instructions Open Service Accounts on Google Cloud and select the project you'd like to use Click the CREATE SERVICE ACCOUNT button at the top of the Google Cloud Platform Console page Verify that you are on the correct Google Cloud Platform Project by looking for the Developer Account ID from earlier within the light gray text in the second input, preceding .iam.gserviceaccount.com , or by checking the project name in the navigaton bar. If not, open the picker in the top navigation bar, and find the right one. Provide a Service account name (e.g. fastlane-supply) Copy the generated email address that is noted below the Service account-ID field for later use Click DONE (don't click CREATE AND CONTINUE as the optional steps such as granting access are not needed): Click on the Actions vertical three-dot icon of the service account you just created Select Manage keys on the menu Click ADD KEY \u2192 Create New Key Make sure JSON is selected as the Key type , and click CREATE Save the file on your computer when prompted and remember where it was saved at Open the Google Play Console and select Users and Permissions Click Invite new users Paste the email address you saved for later use into the email address field Click on Account Permissions Choose the permissions you'd like this account to have. We recommend Admin (all permissions) , but you may want to manually select all checkboxes and leave out some of the Releases permissions such as Release to production, exclude devices, and use Play App Signing Click on Invite User You can use fastlane run validate_play_store_json_key json_key:/path/to/your/downloaded/file.json to test the connection to Google Play Store with the downloaded private key. Once that works, add the path to the JSON file to your Appfile : json_key_file(\"path/to/your/play-store-credentials.json\") package_name(\"my.package.name\") The path is relative to where you normally run fastlane . Migrating Google credential format (from .p12 key file to .json) In previous versions of supply, credentials to your Play Console were stored as .p12 files. Since version 0.4.0, supply now supports the recommended .json key Service Account credential files. If you wish to upgrade: follow the Setup procedure once again to make sure you create the appropriate JSON file update your fastlane configuration or your command line invocation to use the appropriate argument if necessary. Note that you don't need to take note nor pass the issuer argument anymore. The previous p12 configuration is still currently supported. Quick Start Before using supply to connect to Google Play Store, you'll need to set up your app manually first by uploading at least one build to Google Play Store. See fastlane/fastlane#14686 for more info. cd [your_project_folder] fastlane supply init Make changes to the downloaded metadata, add images, screenshots and/or an APK fastlane supply Available Commands fastlane supply : update an app with metadata, a build, images and screenshots fastlane supply init : download metadata for an existing app to a local directory fastlane action supply : show information on available commands, arguments and environment variables You can either run supply on its own and use it interactively, or you can pass arguments or specify environment variables for all the options to skip the questions. Uploading an APK To upload a new binary to Google Play, simply run fastlane supply --apk path/to/app.apk This will also upload app metadata if you previously ran fastlane supply init . To gradually roll out a new build use fastlane supply --apk path/app.apk --track beta --rollout 0.5 To set the in-app update priority level for a release, set a valid update priority (an integer value from 0 to 5) using option in_app_update_priority fastlane supply --apk path/app.apk --track beta --in_app_update_priority 3 Expansion files ( .obb ) Expansion files (obbs) found under the same directory as your APK will also be uploaded together with your APK as long as: they are identified as type 'main' or 'patch' (by containing 'main' or 'patch' in their file name) you have at most one of each type If you only want to update the APK, but keep the expansion files from the previous version on Google Play use fastlane supply --apk path/app.apk --obb_main_references_version 21 --obb_main_file_size 666154207 or fastlane supply --apk path/app.apk --obb_patch_references_version 21 --obb_patch_file_size 666154207 Uploading an AAB To upload a new Android application bundle to Google Play, simply run fastlane supply --aab path/to/app.aab This will also upload app metadata if you previously ran fastlane supply init . To gradually roll out a new build use fastlane supply --aab path/app.aab --track beta --rollout 0.5 To set the in-app update priority level for a release, set a valid update priority (an integer value from 0 to 5) using option in_app_update_priority fastlane supply --aab path/app.aab --track beta --in_app_update_priority 3 Images and Screenshots After running fastlane supply init , you will have a metadata directory. This directory contains one or more locale directories (e.g. en-US, en-GB, etc.), and inside this directory are text files such as title.txt and short_description.txt . Inside of a given locale directory is a folder called images . Here you can supply images with the following file names (extension can be png, jpg or jpeg): featureGraphic icon promoGraphic tvBanner You can also supply screenshots by creating directories within the images directory with the following names, containing PNGs or JPEGs: phoneScreenshots/ sevenInchScreenshots/ (7-inch tablets) tenInchScreenshots/ (10-inch tablets) tvScreenshots/ wearScreenshots/ You may name images anything you like, but screenshots will appear in the Play Store in alphanumerical filename order. Note that these will replace the current images and screenshots on the play store listing, not add to them. Changelogs (What's new) You can add changelog files under the changelogs/ directory for each locale. The filename should exactly match the version code of the APK that it represents. You can also provide default notes that will be used if no files match the version code by adding a default.txt file. fastlane supply init will populate changelog files from existing data on Google Play if no metadata/ directory exists when it is run. \u2514\u2500\u2500 fastlane \u2514\u2500\u2500 metadata \u2514\u2500\u2500 android \u251c\u2500\u2500 en-US \u2502 \u2514\u2500\u2500 changelogs \u2502 \u251c\u2500\u2500 default.txt \u2502 \u251c\u2500\u2500 100000.txt \u2502 \u2514\u2500\u2500 100100.txt \u2514\u2500\u2500 fr-FR \u2514\u2500\u2500 changelogs \u251c\u2500\u2500 default.txt \u2514\u2500\u2500 100100.txt Track Promotion A common Play publishing scenario might involve uploading an APK version to a test track, testing it, and finally promoting that version to production. This can be done using the --track_promote_to parameter. The --track_promote_to parameter works with the --track parameter to command the Play API to promote existing Play track APK version(s) (those active on the track identified by the --track param value) to a new track ( --track_promote_to value). Retrieve Track Release Names & Version Codes Before performing a new APK upload you may want to check existing track version codes or release names, or you may simply want to provide an informational lane that displays the currently promoted version codes or release name for the production track. You can use the google_play_track_version_codes action to retrieve existing version codes for a package and track. You can use the google_play_track_release_names action to retrieve existing release names for a package and track. For more information, see the fastlane action google_play_track_version_codes and fastlane action google_play_track_release_names help output. Migration from AndroidPublisherV2 to AndroidPublisherV3 in fastlane 2.135.0 New Options :version_name Used when uploading with :apk_path , :apk_paths , :aab_path , and :aab_paths Can be any string such (example: \"October Release\" or \"Awesome New Feature\") Defaults to the version name in app/build.gradle or AndroidManifest.xml :release_status Used when uploading with :apk_path , :apk_paths , :aab_path , and :aab_paths Can set as \"draft\" to complete the release at some other time Defaults to \"completed\" :version_code Used for :update_rollout , :track_promote_to , and uploading of meta data and screenshots :skip_upload_changelogs Changelogs were previously included with the :skip_upload_metadata but is now its own option Deprecated Options :check_superseded_tracks Google Play will automatically remove releases that are superseded now :deactivate_on_promote Google Play will automatically deactivate a release from its previous track on promote : upload_to_play_store Supported platforms android Author @KrauseFx 2 Examples upload_to_play_store supply # alias for \"upload_to_play_store\" Parameters Key Description Default package_name The package name of the application to use * version_name Version name (used when uploading new apks/aabs) - defaults to 'versionName' in build.gradle or AndroidManifest.xml * version_code The versionCode for which to download the generated APK * release_status Release status (used when uploading new apks/aabs) - valid values are completed, draft, halted, inProgress * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production rollout The percentage of the user fraction when uploading to the rollout track (setting to 1 will complete the rollout) metadata_path Path to the directory containing the metadata files * key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * apk Path to the APK file to upload * apk_paths An array of paths to APK files to upload aab Path to the AAB file to upload * aab_paths An array of paths to AAB files to upload skip_upload_apk Whether to skip uploading APK false skip_upload_aab Whether to skip uploading AAB false skip_upload_metadata Whether to skip uploading metadata, changelogs not included false skip_upload_changelogs Whether to skip uploading changelogs false skip_upload_images Whether to skip uploading images, screenshots not included false skip_upload_screenshots Whether to skip uploading SCREENSHOTS false sync_image_upload Whether to use sha256 comparison to skip upload of images and screenshots that are already in Play Store false track_promote_to The track to promote to. The default available tracks are: production, beta, alpha, internal track_promote_release_status Promoted track release status (used when promoting a track) - valid values are completed, draft, halted, inProgress completed validate_only Only validate changes with Google Play rather than actually publish false mapping Path to the mapping file to upload (mapping.txt or native-debug-symbols.zip alike) mapping_paths An array of paths to mapping files to upload (mapping.txt or native-debug-symbols.zip alike) root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ check_superseded_tracks DEPRECATED! Google Play does this automatically now - Check the other tracks for superseded versions and disable them false timeout Timeout for read, open, and send (in seconds) 300 deactivate_on_promote DEPRECATED! Google Play does this automatically now - When promoting to a new track, deactivate the binary in the origin track true version_codes_to_retain An array of version codes to retain when publishing a new APK changes_not_sent_for_review Indicates that the changes in this edit will not be reviewed until they are explicitly sent for review from the Google Play Console UI false rescue_changes_not_sent_for_review Catches changes_not_sent_for_review errors when an edit is committed and retries with the configuration that the error message recommended true in_app_update_priority In-app update priority for all the newly added apks in the release. Can take values between [0,5] obb_main_references_version References version of 'main' expansion file obb_main_file_size Size of 'main' expansion file in bytes obb_patch_references_version References version of 'patch' expansion file obb_patch_file_size Size of 'patch' expansion file in bytes ack_bundle_installation_warning Must be set to true if the bundle installation may trigger a warning on user devices (e.g can only be downloaded over wifi). Typically this is required for bundles over 150MB false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action upload_to_play_store CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_to_play_store To pass parameters, make use of the : symbol, for example fastlane run upload_to_play_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Upload to play store"},{"location":"generated/actions/upload_to_play_store/#upload_to_play_store","text":"Upload metadata, screenshots and binaries to Google Play (via supply )","title":"upload_to_play_store"},{"location":"generated/actions/upload_to_play_store/#features","text":"Update existing Android applications on Google Play via the command line Upload new builds (APKs and AABs) Retrieve and edit metadata, such as title and description, for multiple languages Upload the app icon, promo graphics and screenshots for multiple languages Have a local copy of the metadata in your git repository Retrieve version code numbers from existing Google Play tracks","title":"Features"},{"location":"generated/actions/upload_to_play_store/#setup","text":"Setup consists of setting up your Google Developers Service Account Tip: If you see Google Play Console or Google Developer Console in your local language, add &hl=en at the end of the URL (before any #... ) to switch to English. All the links below already have this to make it easier to find the correct buttons. Note: if you face issues when following these instructions, you might want to refer to the official documentation by Google . Open the Google Play Console Click Account Details , and note the Developer Account ID listed there Enable the Google Play Developer API by selecting an existing Google Cloud Project that fits your needs and pushing ENABLE If you don't have an existing project or prefer to have a dedicated one for fastlane , create a new one here and follow the instructions Open Service Accounts on Google Cloud and select the project you'd like to use Click the CREATE SERVICE ACCOUNT button at the top of the Google Cloud Platform Console page Verify that you are on the correct Google Cloud Platform Project by looking for the Developer Account ID from earlier within the light gray text in the second input, preceding .iam.gserviceaccount.com , or by checking the project name in the navigaton bar. If not, open the picker in the top navigation bar, and find the right one. Provide a Service account name (e.g. fastlane-supply) Copy the generated email address that is noted below the Service account-ID field for later use Click DONE (don't click CREATE AND CONTINUE as the optional steps such as granting access are not needed): Click on the Actions vertical three-dot icon of the service account you just created Select Manage keys on the menu Click ADD KEY \u2192 Create New Key Make sure JSON is selected as the Key type , and click CREATE Save the file on your computer when prompted and remember where it was saved at Open the Google Play Console and select Users and Permissions Click Invite new users Paste the email address you saved for later use into the email address field Click on Account Permissions Choose the permissions you'd like this account to have. We recommend Admin (all permissions) , but you may want to manually select all checkboxes and leave out some of the Releases permissions such as Release to production, exclude devices, and use Play App Signing Click on Invite User You can use fastlane run validate_play_store_json_key json_key:/path/to/your/downloaded/file.json to test the connection to Google Play Store with the downloaded private key. Once that works, add the path to the JSON file to your Appfile : json_key_file(\"path/to/your/play-store-credentials.json\") package_name(\"my.package.name\") The path is relative to where you normally run fastlane .","title":"Setup"},{"location":"generated/actions/upload_to_play_store/#quick-start","text":"Before using supply to connect to Google Play Store, you'll need to set up your app manually first by uploading at least one build to Google Play Store. See fastlane/fastlane#14686 for more info. cd [your_project_folder] fastlane supply init Make changes to the downloaded metadata, add images, screenshots and/or an APK fastlane supply","title":"Quick Start"},{"location":"generated/actions/upload_to_play_store/#available-commands","text":"fastlane supply : update an app with metadata, a build, images and screenshots fastlane supply init : download metadata for an existing app to a local directory fastlane action supply : show information on available commands, arguments and environment variables You can either run supply on its own and use it interactively, or you can pass arguments or specify environment variables for all the options to skip the questions.","title":"Available Commands"},{"location":"generated/actions/upload_to_play_store/#uploading-an-apk","text":"To upload a new binary to Google Play, simply run fastlane supply --apk path/to/app.apk This will also upload app metadata if you previously ran fastlane supply init . To gradually roll out a new build use fastlane supply --apk path/app.apk --track beta --rollout 0.5 To set the in-app update priority level for a release, set a valid update priority (an integer value from 0 to 5) using option in_app_update_priority fastlane supply --apk path/app.apk --track beta --in_app_update_priority 3","title":"Uploading an APK"},{"location":"generated/actions/upload_to_play_store/#uploading-an-aab","text":"To upload a new Android application bundle to Google Play, simply run fastlane supply --aab path/to/app.aab This will also upload app metadata if you previously ran fastlane supply init . To gradually roll out a new build use fastlane supply --aab path/app.aab --track beta --rollout 0.5 To set the in-app update priority level for a release, set a valid update priority (an integer value from 0 to 5) using option in_app_update_priority fastlane supply --aab path/app.aab --track beta --in_app_update_priority 3","title":"Uploading an AAB"},{"location":"generated/actions/upload_to_play_store/#images-and-screenshots","text":"After running fastlane supply init , you will have a metadata directory. This directory contains one or more locale directories (e.g. en-US, en-GB, etc.), and inside this directory are text files such as title.txt and short_description.txt . Inside of a given locale directory is a folder called images . Here you can supply images with the following file names (extension can be png, jpg or jpeg): featureGraphic icon promoGraphic tvBanner You can also supply screenshots by creating directories within the images directory with the following names, containing PNGs or JPEGs: phoneScreenshots/ sevenInchScreenshots/ (7-inch tablets) tenInchScreenshots/ (10-inch tablets) tvScreenshots/ wearScreenshots/ You may name images anything you like, but screenshots will appear in the Play Store in alphanumerical filename order. Note that these will replace the current images and screenshots on the play store listing, not add to them.","title":"Images and Screenshots"},{"location":"generated/actions/upload_to_play_store/#changelogs-whats-new","text":"You can add changelog files under the changelogs/ directory for each locale. The filename should exactly match the version code of the APK that it represents. You can also provide default notes that will be used if no files match the version code by adding a default.txt file. fastlane supply init will populate changelog files from existing data on Google Play if no metadata/ directory exists when it is run. \u2514\u2500\u2500 fastlane \u2514\u2500\u2500 metadata \u2514\u2500\u2500 android \u251c\u2500\u2500 en-US \u2502 \u2514\u2500\u2500 changelogs \u2502 \u251c\u2500\u2500 default.txt \u2502 \u251c\u2500\u2500 100000.txt \u2502 \u2514\u2500\u2500 100100.txt \u2514\u2500\u2500 fr-FR \u2514\u2500\u2500 changelogs \u251c\u2500\u2500 default.txt \u2514\u2500\u2500 100100.txt","title":"Changelogs (What's new)"},{"location":"generated/actions/upload_to_play_store/#track-promotion","text":"A common Play publishing scenario might involve uploading an APK version to a test track, testing it, and finally promoting that version to production. This can be done using the --track_promote_to parameter. The --track_promote_to parameter works with the --track parameter to command the Play API to promote existing Play track APK version(s) (those active on the track identified by the --track param value) to a new track ( --track_promote_to value).","title":"Track Promotion"},{"location":"generated/actions/upload_to_play_store/#retrieve-track-release-names-version-codes","text":"Before performing a new APK upload you may want to check existing track version codes or release names, or you may simply want to provide an informational lane that displays the currently promoted version codes or release name for the production track. You can use the google_play_track_version_codes action to retrieve existing version codes for a package and track. You can use the google_play_track_release_names action to retrieve existing release names for a package and track. For more information, see the fastlane action google_play_track_version_codes and fastlane action google_play_track_release_names help output.","title":"Retrieve Track Release Names & Version Codes"},{"location":"generated/actions/upload_to_play_store/#migration-from-androidpublisherv2-to-androidpublisherv3-in-fastlane-21350","text":"","title":"Migration from AndroidPublisherV2 to AndroidPublisherV3 in fastlane 2.135.0"},{"location":"generated/actions/upload_to_play_store/#2-examples","text":"upload_to_play_store supply # alias for \"upload_to_play_store\"","title":"2 Examples"},{"location":"generated/actions/upload_to_play_store/#parameters","text":"Key Description Default package_name The package name of the application to use * version_name Version name (used when uploading new apks/aabs) - defaults to 'versionName' in build.gradle or AndroidManifest.xml * version_code The versionCode for which to download the generated APK * release_status Release status (used when uploading new apks/aabs) - valid values are completed, draft, halted, inProgress * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production rollout The percentage of the user fraction when uploading to the rollout track (setting to 1 will complete the rollout) metadata_path Path to the directory containing the metadata files * key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * apk Path to the APK file to upload * apk_paths An array of paths to APK files to upload aab Path to the AAB file to upload * aab_paths An array of paths to AAB files to upload skip_upload_apk Whether to skip uploading APK false skip_upload_aab Whether to skip uploading AAB false skip_upload_metadata Whether to skip uploading metadata, changelogs not included false skip_upload_changelogs Whether to skip uploading changelogs false skip_upload_images Whether to skip uploading images, screenshots not included false skip_upload_screenshots Whether to skip uploading SCREENSHOTS false sync_image_upload Whether to use sha256 comparison to skip upload of images and screenshots that are already in Play Store false track_promote_to The track to promote to. The default available tracks are: production, beta, alpha, internal track_promote_release_status Promoted track release status (used when promoting a track) - valid values are completed, draft, halted, inProgress completed validate_only Only validate changes with Google Play rather than actually publish false mapping Path to the mapping file to upload (mapping.txt or native-debug-symbols.zip alike) mapping_paths An array of paths to mapping files to upload (mapping.txt or native-debug-symbols.zip alike) root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ check_superseded_tracks DEPRECATED! Google Play does this automatically now - Check the other tracks for superseded versions and disable them false timeout Timeout for read, open, and send (in seconds) 300 deactivate_on_promote DEPRECATED! Google Play does this automatically now - When promoting to a new track, deactivate the binary in the origin track true version_codes_to_retain An array of version codes to retain when publishing a new APK changes_not_sent_for_review Indicates that the changes in this edit will not be reviewed until they are explicitly sent for review from the Google Play Console UI false rescue_changes_not_sent_for_review Catches changes_not_sent_for_review errors when an edit is committed and retries with the configuration that the error message recommended true in_app_update_priority In-app update priority for all the newly added apks in the release. Can take values between [0,5] obb_main_references_version References version of 'main' expansion file obb_main_file_size Size of 'main' expansion file in bytes obb_patch_references_version References version of 'patch' expansion file obb_patch_file_size Size of 'patch' expansion file in bytes ack_bundle_installation_warning Must be set to true if the bundle installation may trigger a warning on user devices (e.g can only be downloaded over wifi). Typically this is required for bundles over 150MB false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/upload_to_play_store/#documentation","text":"To show the documentation in your terminal, run fastlane action upload_to_play_store","title":"Documentation"},{"location":"generated/actions/upload_to_play_store/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_to_play_store To pass parameters, make use of the : symbol, for example fastlane run upload_to_play_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/upload_to_play_store/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/upload_to_play_store_internal_app_sharing/","text":"upload_to_play_store_internal_app_sharing Upload binaries to Google Play Internal App Sharing (via supply ) More information: https://docs.fastlane.tools/actions/upload_to_play_store_internal_app_sharing/ upload_to_play_store_internal_app_sharing Supported platforms android Author @andrewhavens Returns Returns a string containing the download URL for the uploaded APK/AAB (or array of strings if multiple were uploaded). 1 Example upload_to_play_store_internal_app_sharing Parameters Key Description Default package_name The package name of the application to use * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * apk Path to the APK file to upload * apk_paths An array of paths to APK files to upload aab Path to the AAB file to upload * aab_paths An array of paths to AAB files to upload root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action upload_to_play_store_internal_app_sharing CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_to_play_store_internal_app_sharing To pass parameters, make use of the : symbol, for example fastlane run upload_to_play_store_internal_app_sharing parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Upload to play store internal app sharing"},{"location":"generated/actions/upload_to_play_store_internal_app_sharing/#upload_to_play_store_internal_app_sharing","text":"Upload binaries to Google Play Internal App Sharing (via supply ) More information: https://docs.fastlane.tools/actions/upload_to_play_store_internal_app_sharing/ upload_to_play_store_internal_app_sharing Supported platforms android Author @andrewhavens Returns Returns a string containing the download URL for the uploaded APK/AAB (or array of strings if multiple were uploaded).","title":"upload_to_play_store_internal_app_sharing"},{"location":"generated/actions/upload_to_play_store_internal_app_sharing/#1-example","text":"upload_to_play_store_internal_app_sharing","title":"1 Example"},{"location":"generated/actions/upload_to_play_store_internal_app_sharing/#parameters","text":"Key Description Default package_name The package name of the application to use * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * apk Path to the APK file to upload * apk_paths An array of paths to APK files to upload aab Path to the AAB file to upload * aab_paths An array of paths to AAB files to upload root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/upload_to_play_store_internal_app_sharing/#documentation","text":"To show the documentation in your terminal, run fastlane action upload_to_play_store_internal_app_sharing","title":"Documentation"},{"location":"generated/actions/upload_to_play_store_internal_app_sharing/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_to_play_store_internal_app_sharing To pass parameters, make use of the : symbol, for example fastlane run upload_to_play_store_internal_app_sharing parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/upload_to_play_store_internal_app_sharing/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/upload_to_testflight/","text":"upload_to_testflight Upload new binary to App Store Connect for TestFlight beta testing (via pilot ) The best way to manage your TestFlight testers and builds from your terminal pilot makes it easier to manage your app on Apple\u2019s TestFlight. You can: Upload & distribute builds Add & remove testers Retrieve information about testers & devices Import/export all available testers pilot uses spaceship.airforce to interact with App Store Connect \ud83d\ude80 Usage \u2022 Tips pilot is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Usage For all commands, you can either use an API Key or your Apple ID . App Store Connect API Key The App Store Connect API Key is the preferred authentication method (if you are able to use it). Uses official App Store Connect API No need for 2FA Better performance over Apple ID Specify the API key using --api_key_path ./path/to/api_key_info.json or --api_key \"{\\\"key_id\\\": \\\"D83848D23\\\", \\\"issuer_id\\\": \\\"227b0bbf-ada8-458c-9d62-3d8022b7d07f\\\", \\\"key_filepath\\\": \\\"D83848D23.p8\\\"}\" Go to Using App Store Connect API for information on obtaining an API key, the fastlane api_key_info.json format, and other API key usage. Apple ID Specify the Apple ID to use using -u felix@krausefx.com . If you execute pilot in a project already using fastlane the username and app identifier will automatically be determined. Uploading builds To upload a new build, just run fastlane pilot upload This will automatically look for an ipa in your current directory and tries to fetch the login credentials from your fastlane setup . You'll be asked for any missing information. Additionally, you can pass all kinds of parameters: fastlane action pilot You can pass a changelog using fastlane pilot upload --changelog \"Something that is new here\" You can also skip the submission of the binary, which means, the ipa file will only be uploaded and not distributed to testers: fastlane pilot upload --skip_submission pilot does all kinds of magic for you: Automatically detects the bundle identifier from your ipa file Automatically fetch the AppID of your app based on the bundle identifier pilot uses spaceship to submit the build metadata and the iTunes Transporter to upload the binary. Because iTunes Transporter's upload capability is only supported on OS X, pilot upload does not work on Linux, as described in this issue List builds To list all builds for specific application use fastlane pilot builds The result lists all active builds and processing builds: +-----------+---------+----------+ | Great App Builds | +-----------+---------+----------+ | Version # | Build # | Installs | +-----------+---------+----------+ | 0.9.13 | 1 | 0 | | 0.9.13 | 2 | 0 | | 0.9.20 | 3 | 0 | | 0.9.20 | 4 | 3 | +-----------+---------+----------+ Managing beta testers List of Testers This command will list all your testers, both internal and external. fastlane pilot list The output will look like this: +--------+--------+--------------------------+-----------+ | Internal Testers | +--------+--------+--------------------------+-----------+ | First | Last | Email | # Devices | +--------+--------+--------------------------+-----------+ | Felix | Krause | felix@krausefx.com | 2 | +--------+--------+--------------------------+-----------+ +-----------+---------+----------------------------+-----------+ | External Testers | +-----------+---------+----------------------------+-----------+ | First | Last | Email | # Devices | +-----------+---------+----------------------------+-----------+ | Max | Manfred | email@email.com | 0 | | Detlef | M\u00fcller | detlef@krausefx.com | 1 | +-----------+---------+----------------------------+-----------+ Add a new tester To add a new tester to your App Store Connect account and to associate it to at least one testing group of your app, use the pilot add command. This will create a new tester (if necessary) or add an existing tester to the app to test. fastlane pilot add email@invite.com -g group-1,group-2 Additionally you can specify the app identifier (if necessary): fastlane pilot add email@email.com -a com.krausefx.app -g group-1,group-2 Find a tester To find a specific tester use fastlane pilot find felix@krausefx.com The resulting output will look like this: +---------------------+---------------------+ | felix@krausefx.com | +---------------------+---------------------+ | First name | Felix | | Last name | Krause | | Email | felix@krausefx.com | | Latest Version | 0.9.14 (23 | | Latest Install Date | 03/28/15 19:00 | | 2 Devices | \u2022 iPhone 6, iOS 8.3 | | | \u2022 iPhone 5, iOS 7.0 | +---------------------+---------------------+ Remove a tester This command will remove beta tester from app (from all internal and external groups) fastlane pilot remove felix@krausefx.com You can also use groups option to remove the tester from the groups specified: fastlane pilot remove felix@krausefx.com -g group-1,group-2 Export testers To export all external testers to a CSV file. Useful if you need to import tester info to another system or a new account. fastlane pilot export Import testers Add external testers from a CSV file. Create a file (ex: testers.csv ) and fill it with the following format: John,Appleseed,appleseed_john@mac.com,group-1;group-2 fastlane pilot import You can also specify the directory using fastlane pilot export -c ~/Desktop/testers.csv fastlane pilot import -c ~/Desktop/testers.csv Tips Debug information If you run into any issues you can use the verbose mode to get a more detailed output: fastlane pilot upload --verbose Firewall Issues pilot uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol from the command line using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" pilot ... If you are using pilot via the fastlane action , add the following to your Fastfile ENV[\"DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS\"] = \"-t DAV\" pilot... Note, however, that Apple recommends you don\u2019t specify the -t transport and instead allow Transporter to use automatic transport discovery to determine the best transport mode for your packages. For this reason, if the t option is passed, we will raise a warning. Also note that -t is not the only additional parameter that can be used. The string specified in the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS environment variable will be forwarded to Transporter. For all the available options, check Apple's Transporter User Guide . Credentials Issues If your password contains special characters, pilot may throw a confusing error saying your \"Your Apple ID or password was entered incorrectly\". The easiest way to fix this error is to change your password to something that does not contains special characters. How is my password stored? pilot uses the CredentialsManager from fastlane . Provider Short Name If you are on multiple App Store Connect teams, iTunes Transporter may need a provider short name to know where to upload your binary. pilot will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option. Use an Application Specific Password to upload pilot / upload_to_testflight can use an Application Specific Password via the FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD environment variable to upload a binary if both the skip_waiting_for_build_processing and apple_id options are set. (If any of those are not set, it will use the normal Apple login process that might require 2FA authentication.) Role for App Store Connect User pilot / upload_to_testflight updates build information and testers after the build has finished processing. App Store Connect requires the \"App Manager\" or \"Admin\" role for your Apple account to update this information. The \"Developer\" role will allow builds to be uploaded but will not allow updating of build information and testers. upload_to_testflight Supported platforms ios, mac Author @KrauseFx 7 Examples upload_to_testflight testflight # alias for \"upload_to_testflight\" pilot # alias for \"upload_to_testflight\" upload_to_testflight(skip_submission: true) # to only upload the build upload_to_testflight( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) upload_to_testflight( beta_app_feedback_email: \"email@email.com\", beta_app_description: \"This is a description of my app\", demo_account_required: true, notify_external_testers: false, changelog: \"This is my changelog of things that have changed in a log\" ) upload_to_testflight( beta_app_review_info: { contact_email: \"email@email.com\", contact_first_name: \"Connect\", contact_last_name: \"API\", contact_phone: \"5558675309\", demo_account_name: \"demo@email.com\", demo_account_password: \"connectapi\", notes: \"this is review note for the reviewer <3 thank you for reviewing\" }, localized_app_info: { \"default\": { feedback_email: \"default@email.com\", marketing_url: \"https://example.com/marketing-defafult\", privacy_policy_url: \"https://example.com/privacy-defafult\", description: \"Default description\", }, \"en-GB\": { feedback_email: \"en-gb@email.com\", marketing_url: \"https://example.com/marketing-en-gb\", privacy_policy_url: \"https://example.com/privacy-en-gb\", description: \"en-gb description\", } }, localized_build_info: { \"default\": { whats_new: \"Default changelog\", }, \"en-GB\": { whats_new: \"en-gb changelog\", } } ) Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of the app to upload or manage testers (optional) * app_platform The platform to use (optional) apple_id Apple ID property in the App Information section in App Store Connect * ipa Path to the ipa file to upload * pkg Path to your pkg file * demo_account_required Do you need a demo account when Apple does review? beta_app_review_info Beta app review information for contact info and demo account localized_app_info Localized beta app test info for description, feedback email, marketing url, and privacy policy beta_app_description Provide the 'Beta App Description' when uploading a new build beta_app_feedback_email Provide the beta app email when uploading a new build localized_build_info Localized beta app test info for what's new changelog Provide the 'What to Test' text when uploading a new build skip_submission Skip the distributing action of pilot and only upload the ipa file false skip_waiting_for_build_processing If set to true, the distribute_external option won't work and no build will be distributed to testers. (You might want to use this option if you are using this action on CI and have to pay for 'minutes used' on your CI plan). If set to true and a changelog is provided, it will partially wait for the build to appear on AppStore Connect so the changelog can be set, and skip the remaining processing steps false update_build_info_on_upload DEPRECATED! Update build info immediately after validation. This is deprecated and will be removed in a future release. App Store Connect no longer supports setting build info until after build processing has completed, which is when build info is updated by default false distribute_only Distribute a previously uploaded build (equivalent to the fastlane pilot distribute command) false uses_non_exempt_encryption Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist false distribute_external Should the build be distributed to external testers? If set to true, use of groups option is required false notify_external_testers Should notify external testers? (Not setting a value will use App Store Connect's default which is to notify) app_version The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed build_number The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed expire_previous_builds Should expire previous builds? false first_name The tester's first name last_name The tester's last name email The tester's email testers_file_path Path to a CSV file of testers ./testers.csv groups Associate tester to one group or more by group name / group id. E.g. -g \"Team 1\",\"Team 2\" This is required when distribute_external option is set to true or when we want to add a tester to one or more external testing groups team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your team in the developer portal, if you're in multiple teams. Different from your iTC team ID! * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column wait_processing_interval Interval in seconds to wait for App Store Connect processing 30 wait_processing_timeout_duration Timeout duration in seconds to wait for App Store Connect processing. If set, after exceeding timeout duration, this will force stop to wait for App Store Connect processing and exit with exception wait_for_uploaded_build DEPRECATED! No longer needed with the transition over to the App Store Connect API - Use version info from uploaded ipa file to determine what build to use for distribution. If set to false, latest processing or any latest build will be used false reject_build_waiting_for_review Expire previous if it's 'waiting for review' false submit_beta_review Send the build for a beta review true * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action upload_to_testflight CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_to_testflight To pass parameters, make use of the : symbol, for example fastlane run upload_to_testflight parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Upload to testflight"},{"location":"generated/actions/upload_to_testflight/#upload_to_testflight","text":"Upload new binary to App Store Connect for TestFlight beta testing (via pilot )","title":"upload_to_testflight"},{"location":"generated/actions/upload_to_testflight/#usage","text":"For all commands, you can either use an API Key or your Apple ID .","title":"Usage"},{"location":"generated/actions/upload_to_testflight/#uploading-builds","text":"To upload a new build, just run fastlane pilot upload This will automatically look for an ipa in your current directory and tries to fetch the login credentials from your fastlane setup . You'll be asked for any missing information. Additionally, you can pass all kinds of parameters: fastlane action pilot You can pass a changelog using fastlane pilot upload --changelog \"Something that is new here\" You can also skip the submission of the binary, which means, the ipa file will only be uploaded and not distributed to testers: fastlane pilot upload --skip_submission pilot does all kinds of magic for you: Automatically detects the bundle identifier from your ipa file Automatically fetch the AppID of your app based on the bundle identifier pilot uses spaceship to submit the build metadata and the iTunes Transporter to upload the binary. Because iTunes Transporter's upload capability is only supported on OS X, pilot upload does not work on Linux, as described in this issue","title":"Uploading builds"},{"location":"generated/actions/upload_to_testflight/#list-builds","text":"To list all builds for specific application use fastlane pilot builds The result lists all active builds and processing builds: +-----------+---------+----------+ | Great App Builds | +-----------+---------+----------+ | Version # | Build # | Installs | +-----------+---------+----------+ | 0.9.13 | 1 | 0 | | 0.9.13 | 2 | 0 | | 0.9.20 | 3 | 0 | | 0.9.20 | 4 | 3 | +-----------+---------+----------+","title":"List builds"},{"location":"generated/actions/upload_to_testflight/#managing-beta-testers","text":"","title":"Managing beta testers"},{"location":"generated/actions/upload_to_testflight/#tips","text":"","title":"Tips"},{"location":"generated/actions/upload_to_testflight/#debug-information","text":"If you run into any issues you can use the verbose mode to get a more detailed output: fastlane pilot upload --verbose","title":"Debug information"},{"location":"generated/actions/upload_to_testflight/#firewall-issues","text":"pilot uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol from the command line using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" pilot ... If you are using pilot via the fastlane action , add the following to your Fastfile ENV[\"DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS\"] = \"-t DAV\" pilot... Note, however, that Apple recommends you don\u2019t specify the -t transport and instead allow Transporter to use automatic transport discovery to determine the best transport mode for your packages. For this reason, if the t option is passed, we will raise a warning. Also note that -t is not the only additional parameter that can be used. The string specified in the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS environment variable will be forwarded to Transporter. For all the available options, check Apple's Transporter User Guide .","title":"Firewall Issues"},{"location":"generated/actions/upload_to_testflight/#credentials-issues","text":"If your password contains special characters, pilot may throw a confusing error saying your \"Your Apple ID or password was entered incorrectly\". The easiest way to fix this error is to change your password to something that does not contains special characters.","title":"Credentials Issues"},{"location":"generated/actions/upload_to_testflight/#how-is-my-password-stored","text":"pilot uses the CredentialsManager from fastlane .","title":"How is my password stored?"},{"location":"generated/actions/upload_to_testflight/#provider-short-name","text":"If you are on multiple App Store Connect teams, iTunes Transporter may need a provider short name to know where to upload your binary. pilot will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option.","title":"Provider Short Name"},{"location":"generated/actions/upload_to_testflight/#use-an-application-specific-password-to-upload","text":"pilot / upload_to_testflight can use an Application Specific Password via the FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD environment variable to upload a binary if both the skip_waiting_for_build_processing and apple_id options are set. (If any of those are not set, it will use the normal Apple login process that might require 2FA authentication.)","title":"Use an Application Specific Password to upload"},{"location":"generated/actions/upload_to_testflight/#role-for-app-store-connect-user","text":"pilot / upload_to_testflight updates build information and testers after the build has finished processing. App Store Connect requires the \"App Manager\" or \"Admin\" role for your Apple account to update this information. The \"Developer\" role will allow builds to be uploaded but will not allow updating of build information and testers. upload_to_testflight Supported platforms ios, mac Author @KrauseFx","title":"Role for App Store Connect User"},{"location":"generated/actions/upload_to_testflight/#7-examples","text":"upload_to_testflight testflight # alias for \"upload_to_testflight\" pilot # alias for \"upload_to_testflight\" upload_to_testflight(skip_submission: true) # to only upload the build upload_to_testflight( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) upload_to_testflight( beta_app_feedback_email: \"email@email.com\", beta_app_description: \"This is a description of my app\", demo_account_required: true, notify_external_testers: false, changelog: \"This is my changelog of things that have changed in a log\" ) upload_to_testflight( beta_app_review_info: { contact_email: \"email@email.com\", contact_first_name: \"Connect\", contact_last_name: \"API\", contact_phone: \"5558675309\", demo_account_name: \"demo@email.com\", demo_account_password: \"connectapi\", notes: \"this is review note for the reviewer <3 thank you for reviewing\" }, localized_app_info: { \"default\": { feedback_email: \"default@email.com\", marketing_url: \"https://example.com/marketing-defafult\", privacy_policy_url: \"https://example.com/privacy-defafult\", description: \"Default description\", }, \"en-GB\": { feedback_email: \"en-gb@email.com\", marketing_url: \"https://example.com/marketing-en-gb\", privacy_policy_url: \"https://example.com/privacy-en-gb\", description: \"en-gb description\", } }, localized_build_info: { \"default\": { whats_new: \"Default changelog\", }, \"en-GB\": { whats_new: \"en-gb changelog\", } } )","title":"7 Examples"},{"location":"generated/actions/upload_to_testflight/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of the app to upload or manage testers (optional) * app_platform The platform to use (optional) apple_id Apple ID property in the App Information section in App Store Connect * ipa Path to the ipa file to upload * pkg Path to your pkg file * demo_account_required Do you need a demo account when Apple does review? beta_app_review_info Beta app review information for contact info and demo account localized_app_info Localized beta app test info for description, feedback email, marketing url, and privacy policy beta_app_description Provide the 'Beta App Description' when uploading a new build beta_app_feedback_email Provide the beta app email when uploading a new build localized_build_info Localized beta app test info for what's new changelog Provide the 'What to Test' text when uploading a new build skip_submission Skip the distributing action of pilot and only upload the ipa file false skip_waiting_for_build_processing If set to true, the distribute_external option won't work and no build will be distributed to testers. (You might want to use this option if you are using this action on CI and have to pay for 'minutes used' on your CI plan). If set to true and a changelog is provided, it will partially wait for the build to appear on AppStore Connect so the changelog can be set, and skip the remaining processing steps false update_build_info_on_upload DEPRECATED! Update build info immediately after validation. This is deprecated and will be removed in a future release. App Store Connect no longer supports setting build info until after build processing has completed, which is when build info is updated by default false distribute_only Distribute a previously uploaded build (equivalent to the fastlane pilot distribute command) false uses_non_exempt_encryption Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist false distribute_external Should the build be distributed to external testers? If set to true, use of groups option is required false notify_external_testers Should notify external testers? (Not setting a value will use App Store Connect's default which is to notify) app_version The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed build_number The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed expire_previous_builds Should expire previous builds? false first_name The tester's first name last_name The tester's last name email The tester's email testers_file_path Path to a CSV file of testers ./testers.csv groups Associate tester to one group or more by group name / group id. E.g. -g \"Team 1\",\"Team 2\" This is required when distribute_external option is set to true or when we want to add a tester to one or more external testing groups team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your team in the developer portal, if you're in multiple teams. Different from your iTC team ID! * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column wait_processing_interval Interval in seconds to wait for App Store Connect processing 30 wait_processing_timeout_duration Timeout duration in seconds to wait for App Store Connect processing. If set, after exceeding timeout duration, this will force stop to wait for App Store Connect processing and exit with exception wait_for_uploaded_build DEPRECATED! No longer needed with the transition over to the App Store Connect API - Use version info from uploaded ipa file to determine what build to use for distribution. If set to false, latest processing or any latest build will be used false reject_build_waiting_for_review Expire previous if it's 'waiting for review' false submit_beta_review Send the build for a beta review true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/upload_to_testflight/#documentation","text":"To show the documentation in your terminal, run fastlane action upload_to_testflight","title":"Documentation"},{"location":"generated/actions/upload_to_testflight/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_to_testflight To pass parameters, make use of the : symbol, for example fastlane run upload_to_testflight parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/upload_to_testflight/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/validate_play_store_json_key/","text":"validate_play_store_json_key Validate that the Google Play Store json_key works Use this action to test and validate your private key json key file used to connect and authenticate with the Google Play API validate_play_store_json_key Supported platforms android Author @janpio 1 Example validate_play_store_json_key( json_key: 'path/to/you/json/key/file' ) Parameters Key Description Default json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action validate_play_store_json_key CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run validate_play_store_json_key To pass parameters, make use of the : symbol, for example fastlane run validate_play_store_json_key parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Validate play store json key"},{"location":"generated/actions/validate_play_store_json_key/#validate_play_store_json_key","text":"Validate that the Google Play Store json_key works Use this action to test and validate your private key json key file used to connect and authenticate with the Google Play API validate_play_store_json_key Supported platforms android Author @janpio","title":"validate_play_store_json_key"},{"location":"generated/actions/validate_play_store_json_key/#1-example","text":"validate_play_store_json_key( json_key: 'path/to/you/json/key/file' )","title":"1 Example"},{"location":"generated/actions/validate_play_store_json_key/#parameters","text":"Key Description Default json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/validate_play_store_json_key/#documentation","text":"To show the documentation in your terminal, run fastlane action validate_play_store_json_key","title":"Documentation"},{"location":"generated/actions/validate_play_store_json_key/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run validate_play_store_json_key To pass parameters, make use of the : symbol, for example fastlane run validate_play_store_json_key parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/validate_play_store_json_key/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/verify_build/","text":"verify_build Able to verify various settings in ipa file Verifies that the built app was built using the expected build resources. This is relevant for people who build on machines that are used to build apps with different profiles, certificates and/or bundle identifiers to guard against configuration mistakes. verify_build Supported platforms ios Author @CodeReaper 1 Example verify_build( provisioning_type: \"distribution\", bundle_identifier: \"com.example.myapp\" ) Parameters Key Description Default provisioning_type Required type of provisioning provisioning_uuid Required UUID of provisioning profile team_identifier Required team identifier team_name Required team name app_name Required app name bundle_identifier Required bundle identifier ipa_path Explicitly set the ipa path build_path Explicitly set the ipa, app or xcarchive path * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action verify_build CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run verify_build To pass parameters, make use of the : symbol, for example fastlane run verify_build parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Verify build"},{"location":"generated/actions/verify_build/#verify_build","text":"Able to verify various settings in ipa file Verifies that the built app was built using the expected build resources. This is relevant for people who build on machines that are used to build apps with different profiles, certificates and/or bundle identifiers to guard against configuration mistakes. verify_build Supported platforms ios Author @CodeReaper","title":"verify_build"},{"location":"generated/actions/verify_build/#1-example","text":"verify_build( provisioning_type: \"distribution\", bundle_identifier: \"com.example.myapp\" )","title":"1 Example"},{"location":"generated/actions/verify_build/#parameters","text":"Key Description Default provisioning_type Required type of provisioning provisioning_uuid Required UUID of provisioning profile team_identifier Required team identifier team_name Required team name app_name Required app name bundle_identifier Required bundle identifier ipa_path Explicitly set the ipa path build_path Explicitly set the ipa, app or xcarchive path * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/verify_build/#documentation","text":"To show the documentation in your terminal, run fastlane action verify_build","title":"Documentation"},{"location":"generated/actions/verify_build/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run verify_build To pass parameters, make use of the : symbol, for example fastlane run verify_build parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/verify_build/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/verify_pod_keys/","text":"verify_pod_keys Verifies all keys referenced from the Podfile are non-empty Runs a check against all keys specified in your Podfile to make sure they're more than a single character long. This is to ensure you don't deploy with stubbed keys. verify_pod_keys Supported platforms ios, mac Author @ashfurrow 1 Example verify_pod_keys Documentation To show the documentation in your terminal, run fastlane action verify_pod_keys CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run verify_pod_keys To pass parameters, make use of the : symbol, for example fastlane run verify_pod_keys parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Verify pod keys"},{"location":"generated/actions/verify_pod_keys/#verify_pod_keys","text":"Verifies all keys referenced from the Podfile are non-empty Runs a check against all keys specified in your Podfile to make sure they're more than a single character long. This is to ensure you don't deploy with stubbed keys. verify_pod_keys Supported platforms ios, mac Author @ashfurrow","title":"verify_pod_keys"},{"location":"generated/actions/verify_pod_keys/#1-example","text":"verify_pod_keys","title":"1 Example"},{"location":"generated/actions/verify_pod_keys/#documentation","text":"To show the documentation in your terminal, run fastlane action verify_pod_keys","title":"Documentation"},{"location":"generated/actions/verify_pod_keys/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run verify_pod_keys To pass parameters, make use of the : symbol, for example fastlane run verify_pod_keys parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/verify_pod_keys/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/verify_xcode/","text":"verify_xcode Verifies that the Xcode installation is properly signed by Apple This action was implemented after the recent Xcode attack to make sure you're not using a hacked Xcode installation . verify_xcode Supported platforms ios, mac Author @KrauseFx 2 Examples verify_xcode verify_xcode(xcode_path: \"/Applications/Xcode.app\") Parameters Key Description Default xcode_path The path to the Xcode installation to test * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action verify_xcode CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run verify_xcode To pass parameters, make use of the : symbol, for example fastlane run verify_xcode parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Verify xcode"},{"location":"generated/actions/verify_xcode/#verify_xcode","text":"Verifies that the Xcode installation is properly signed by Apple This action was implemented after the recent Xcode attack to make sure you're not using a hacked Xcode installation . verify_xcode Supported platforms ios, mac Author @KrauseFx","title":"verify_xcode"},{"location":"generated/actions/verify_xcode/#2-examples","text":"verify_xcode verify_xcode(xcode_path: \"/Applications/Xcode.app\")","title":"2 Examples"},{"location":"generated/actions/verify_xcode/#parameters","text":"Key Description Default xcode_path The path to the Xcode installation to test * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/verify_xcode/#documentation","text":"To show the documentation in your terminal, run fastlane action verify_xcode","title":"Documentation"},{"location":"generated/actions/verify_xcode/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run verify_xcode To pass parameters, make use of the : symbol, for example fastlane run verify_xcode parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/verify_xcode/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/version_bump_podspec/","text":"version_bump_podspec Increment or set the version in a podspec file You can use this action to manipulate any 'version' variable contained in a ruby file. For example, you can use it to bump the version of a CocoaPods' podspec file. It also supports versions that are not semantic: 1.4.14.4.1 . For such versions, there is an option to change the appendix (e.g. 4.1 ). version_bump_podspec Supported platforms ios, mac Author @Liquidsoul, @KrauseFx 2 Examples version = version_bump_podspec(path: \"TSMessages.podspec\", bump_type: \"patch\") version = version_bump_podspec(path: \"TSMessages.podspec\", version_number: \"1.4\") Parameters Key Description Default path You must specify the path to the podspec file to update * bump_type The type of this version bump. Available: patch, minor, major patch version_number Change to a specific version. This will replace the bump type value version_appendix Change version appendix to a specific value. For example 1.4.14.4.1 -> 1.4.14.5 require_variable_prefix true by default, this is used for non CocoaPods version bumps only true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The version_bump_podspec action generates the following Lane Variables: SharedValue Description SharedValues::PODSPEC_VERSION_NUMBER The new podspec version number To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action version_bump_podspec CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run version_bump_podspec To pass parameters, make use of the : symbol, for example fastlane run version_bump_podspec parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Version bump podspec"},{"location":"generated/actions/version_bump_podspec/#version_bump_podspec","text":"Increment or set the version in a podspec file You can use this action to manipulate any 'version' variable contained in a ruby file. For example, you can use it to bump the version of a CocoaPods' podspec file. It also supports versions that are not semantic: 1.4.14.4.1 . For such versions, there is an option to change the appendix (e.g. 4.1 ). version_bump_podspec Supported platforms ios, mac Author @Liquidsoul, @KrauseFx","title":"version_bump_podspec"},{"location":"generated/actions/version_bump_podspec/#2-examples","text":"version = version_bump_podspec(path: \"TSMessages.podspec\", bump_type: \"patch\") version = version_bump_podspec(path: \"TSMessages.podspec\", version_number: \"1.4\")","title":"2 Examples"},{"location":"generated/actions/version_bump_podspec/#parameters","text":"Key Description Default path You must specify the path to the podspec file to update * bump_type The type of this version bump. Available: patch, minor, major patch version_number Change to a specific version. This will replace the bump type value version_appendix Change version appendix to a specific value. For example 1.4.14.4.1 -> 1.4.14.5 require_variable_prefix true by default, this is used for non CocoaPods version bumps only true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/version_bump_podspec/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The version_bump_podspec action generates the following Lane Variables: SharedValue Description SharedValues::PODSPEC_VERSION_NUMBER The new podspec version number To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/version_bump_podspec/#documentation","text":"To show the documentation in your terminal, run fastlane action version_bump_podspec","title":"Documentation"},{"location":"generated/actions/version_bump_podspec/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run version_bump_podspec To pass parameters, make use of the : symbol, for example fastlane run version_bump_podspec parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/version_bump_podspec/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/version_get_podspec/","text":"version_get_podspec Receive the version number from a podspec file version_get_podspec Supported platforms ios, mac Author @Liquidsoul, @KrauseFx 1 Example version = version_get_podspec(path: \"TSMessages.podspec\") Parameters Key Description Default path You must specify the path to the podspec file * require_variable_prefix true by default, this is used for non CocoaPods version bumps only true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The version_get_podspec action generates the following Lane Variables: SharedValue Description SharedValues::PODSPEC_VERSION_NUMBER The podspec version number To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action version_get_podspec CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run version_get_podspec To pass parameters, make use of the : symbol, for example fastlane run version_get_podspec parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Version get podspec"},{"location":"generated/actions/version_get_podspec/#version_get_podspec","text":"Receive the version number from a podspec file version_get_podspec Supported platforms ios, mac Author @Liquidsoul, @KrauseFx","title":"version_get_podspec"},{"location":"generated/actions/version_get_podspec/#1-example","text":"version = version_get_podspec(path: \"TSMessages.podspec\")","title":"1 Example"},{"location":"generated/actions/version_get_podspec/#parameters","text":"Key Description Default path You must specify the path to the podspec file * require_variable_prefix true by default, this is used for non CocoaPods version bumps only true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/version_get_podspec/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The version_get_podspec action generates the following Lane Variables: SharedValue Description SharedValues::PODSPEC_VERSION_NUMBER The podspec version number To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/version_get_podspec/#documentation","text":"To show the documentation in your terminal, run fastlane action version_get_podspec","title":"Documentation"},{"location":"generated/actions/version_get_podspec/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run version_get_podspec To pass parameters, make use of the : symbol, for example fastlane run version_get_podspec parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/version_get_podspec/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/xcarchive/","text":"xcarchive Archives the project using xcodebuild xcarchive Supported platforms ios, mac Author @dtrenz 1 Example xcarchive Documentation To show the documentation in your terminal, run fastlane action xcarchive CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcarchive To pass parameters, make use of the : symbol, for example fastlane run xcarchive parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Xcarchive"},{"location":"generated/actions/xcarchive/#xcarchive","text":"Archives the project using xcodebuild xcarchive Supported platforms ios, mac Author @dtrenz","title":"xcarchive"},{"location":"generated/actions/xcarchive/#1-example","text":"xcarchive","title":"1 Example"},{"location":"generated/actions/xcarchive/#documentation","text":"To show the documentation in your terminal, run fastlane action xcarchive","title":"Documentation"},{"location":"generated/actions/xcarchive/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcarchive To pass parameters, make use of the : symbol, for example fastlane run xcarchive parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/xcarchive/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/xcbuild/","text":"xcbuild Builds the project using xcodebuild xcbuild Supported platforms ios, mac Author @dtrenz 1 Example xcbuild Documentation To show the documentation in your terminal, run fastlane action xcbuild CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcbuild To pass parameters, make use of the : symbol, for example fastlane run xcbuild parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Xcbuild"},{"location":"generated/actions/xcbuild/#xcbuild","text":"Builds the project using xcodebuild xcbuild Supported platforms ios, mac Author @dtrenz","title":"xcbuild"},{"location":"generated/actions/xcbuild/#1-example","text":"xcbuild","title":"1 Example"},{"location":"generated/actions/xcbuild/#documentation","text":"To show the documentation in your terminal, run fastlane action xcbuild","title":"Documentation"},{"location":"generated/actions/xcbuild/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcbuild To pass parameters, make use of the : symbol, for example fastlane run xcbuild parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/xcbuild/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/xcclean/","text":"xcclean Cleans the project using xcodebuild xcclean Supported platforms ios, mac Author @dtrenz 1 Example xcclean Documentation To show the documentation in your terminal, run fastlane action xcclean CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcclean To pass parameters, make use of the : symbol, for example fastlane run xcclean parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Xcclean"},{"location":"generated/actions/xcclean/#xcclean","text":"Cleans the project using xcodebuild xcclean Supported platforms ios, mac Author @dtrenz","title":"xcclean"},{"location":"generated/actions/xcclean/#1-example","text":"xcclean","title":"1 Example"},{"location":"generated/actions/xcclean/#documentation","text":"To show the documentation in your terminal, run fastlane action xcclean","title":"Documentation"},{"location":"generated/actions/xcclean/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcclean To pass parameters, make use of the : symbol, for example fastlane run xcclean parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/xcclean/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/xcexport/","text":"xcexport Exports the project using xcodebuild xcexport Supported platforms ios, mac Author @dtrenz 1 Example xcexport Documentation To show the documentation in your terminal, run fastlane action xcexport CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcexport To pass parameters, make use of the : symbol, for example fastlane run xcexport parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Xcexport"},{"location":"generated/actions/xcexport/#xcexport","text":"Exports the project using xcodebuild xcexport Supported platforms ios, mac Author @dtrenz","title":"xcexport"},{"location":"generated/actions/xcexport/#1-example","text":"xcexport","title":"1 Example"},{"location":"generated/actions/xcexport/#documentation","text":"To show the documentation in your terminal, run fastlane action xcexport","title":"Documentation"},{"location":"generated/actions/xcexport/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcexport To pass parameters, make use of the : symbol, for example fastlane run xcexport parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/xcexport/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/xcode_install/","text":"xcode_install Make sure a certain version of Xcode is installed The xcode-install gem, which this action depends on, has been sunset. Please migrate to xcodes . You can find a migration guide here: xcpretty/xcode-install/MIGRATION.md Makes sure a specific version of Xcode is installed. If that's not the case, it will automatically be downloaded by the xcode_install gem. This will make sure to use the correct Xcode for later actions. xcode_install Supported platforms ios, mac Author @Krausefx Returns The path to the newly installed Xcode version 1 Example xcode_install(version: \"7.1\") Parameters Key Description Default version The version number of the version of Xcode to install username Your Apple ID Username * team_id The ID of your team if you're in multiple teams * download_retry_attempts Number of times the download will be retried in case of failure 3 * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The xcode_install action generates the following Lane Variables: SharedValue Description SharedValues::XCODE_INSTALL_XCODE_PATH The path to the newly installed Xcode To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action xcode_install CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcode_install To pass parameters, make use of the : symbol, for example fastlane run xcode_install parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Xcode install"},{"location":"generated/actions/xcode_install/#xcode_install","text":"Make sure a certain version of Xcode is installed The xcode-install gem, which this action depends on, has been sunset. Please migrate to xcodes . You can find a migration guide here: xcpretty/xcode-install/MIGRATION.md Makes sure a specific version of Xcode is installed. If that's not the case, it will automatically be downloaded by the xcode_install gem. This will make sure to use the correct Xcode for later actions. xcode_install Supported platforms ios, mac Author @Krausefx Returns The path to the newly installed Xcode version","title":"xcode_install"},{"location":"generated/actions/xcode_install/#1-example","text":"xcode_install(version: \"7.1\")","title":"1 Example"},{"location":"generated/actions/xcode_install/#parameters","text":"Key Description Default version The version number of the version of Xcode to install username Your Apple ID Username * team_id The ID of your team if you're in multiple teams * download_retry_attempts Number of times the download will be retried in case of failure 3 * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/xcode_install/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The xcode_install action generates the following Lane Variables: SharedValue Description SharedValues::XCODE_INSTALL_XCODE_PATH The path to the newly installed Xcode To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/xcode_install/#documentation","text":"To show the documentation in your terminal, run fastlane action xcode_install","title":"Documentation"},{"location":"generated/actions/xcode_install/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcode_install To pass parameters, make use of the : symbol, for example fastlane run xcode_install parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/xcode_install/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/xcode_select/","text":"xcode_select Change the xcode-path to use. Useful for beta versions of Xcode Select and build with the Xcode installed at the provided path. Use the xcodes action if you want to select an Xcode: - Based on a version specifier or - You don't have known, stable paths, as may happen in a CI environment. xcode_select Supported platforms ios, mac Author @dtrenz 1 Example xcode_select(\"/Applications/Xcode-8.3.2.app\") Documentation To show the documentation in your terminal, run fastlane action xcode_select CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcode_select To pass parameters, make use of the : symbol, for example fastlane run xcode_select parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Xcode select"},{"location":"generated/actions/xcode_select/#xcode_select","text":"Change the xcode-path to use. Useful for beta versions of Xcode Select and build with the Xcode installed at the provided path. Use the xcodes action if you want to select an Xcode: - Based on a version specifier or - You don't have known, stable paths, as may happen in a CI environment. xcode_select Supported platforms ios, mac Author @dtrenz","title":"xcode_select"},{"location":"generated/actions/xcode_select/#1-example","text":"xcode_select(\"/Applications/Xcode-8.3.2.app\")","title":"1 Example"},{"location":"generated/actions/xcode_select/#documentation","text":"To show the documentation in your terminal, run fastlane action xcode_select","title":"Documentation"},{"location":"generated/actions/xcode_select/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcode_select To pass parameters, make use of the : symbol, for example fastlane run xcode_select parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/xcode_select/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/xcode_server_get_assets/","text":"xcode_server_get_assets Downloads Xcode Bot assets like the .xcarchive and logs This action downloads assets from your Xcode Server Bot (works with Xcode Server using Xcode 6 and 7. By default, this action downloads all assets, unzips them and deletes everything except for the .xcarchive . If you'd like to keep all downloaded assets, pass keep_all_assets: true . This action returns the path to the downloaded assets folder and puts into shared values the paths to the asset folder and to the .xcarchive inside it. xcode_server_get_assets Supported platforms ios, mac Author @czechboy0 1 Example xcode_server_get_assets( host: \"10.99.0.59\", # Specify Xcode Server's Host or IP Address bot_name: \"release-1.3.4\" # Specify the particular Bot ) Parameters Key Description Default host IP Address/Hostname of Xcode Server bot_name Name of the Bot to pull assets from integration_number Optionally you can override which integration's assets should be downloaded. If not provided, the latest integration is used username Username for your Xcode Server '' password Password for your Xcode Server '' target_folder Relative path to a folder into which to download assets ./xcs_assets keep_all_assets Whether to keep all assets or let the script delete everything except for the .xcarchive false trust_self_signed_certs Whether to trust self-signed certs on your Xcode Server true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The xcode_server_get_assets action generates the following Lane Variables: SharedValue Description SharedValues::XCODE_SERVER_GET_ASSETS_PATH Absolute path to the downloaded assets folder SharedValues::XCODE_SERVER_GET_ASSETS_ARCHIVE_PATH Absolute path to the downloaded xcarchive file To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action xcode_server_get_assets CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcode_server_get_assets To pass parameters, make use of the : symbol, for example fastlane run xcode_server_get_assets parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Xcode server get assets"},{"location":"generated/actions/xcode_server_get_assets/#xcode_server_get_assets","text":"Downloads Xcode Bot assets like the .xcarchive and logs This action downloads assets from your Xcode Server Bot (works with Xcode Server using Xcode 6 and 7. By default, this action downloads all assets, unzips them and deletes everything except for the .xcarchive . If you'd like to keep all downloaded assets, pass keep_all_assets: true . This action returns the path to the downloaded assets folder and puts into shared values the paths to the asset folder and to the .xcarchive inside it. xcode_server_get_assets Supported platforms ios, mac Author @czechboy0","title":"xcode_server_get_assets"},{"location":"generated/actions/xcode_server_get_assets/#1-example","text":"xcode_server_get_assets( host: \"10.99.0.59\", # Specify Xcode Server's Host or IP Address bot_name: \"release-1.3.4\" # Specify the particular Bot )","title":"1 Example"},{"location":"generated/actions/xcode_server_get_assets/#parameters","text":"Key Description Default host IP Address/Hostname of Xcode Server bot_name Name of the Bot to pull assets from integration_number Optionally you can override which integration's assets should be downloaded. If not provided, the latest integration is used username Username for your Xcode Server '' password Password for your Xcode Server '' target_folder Relative path to a folder into which to download assets ./xcs_assets keep_all_assets Whether to keep all assets or let the script delete everything except for the .xcarchive false trust_self_signed_certs Whether to trust self-signed certs on your Xcode Server true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/xcode_server_get_assets/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The xcode_server_get_assets action generates the following Lane Variables: SharedValue Description SharedValues::XCODE_SERVER_GET_ASSETS_PATH Absolute path to the downloaded assets folder SharedValues::XCODE_SERVER_GET_ASSETS_ARCHIVE_PATH Absolute path to the downloaded xcarchive file To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/xcode_server_get_assets/#documentation","text":"To show the documentation in your terminal, run fastlane action xcode_server_get_assets","title":"Documentation"},{"location":"generated/actions/xcode_server_get_assets/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcode_server_get_assets To pass parameters, make use of the : symbol, for example fastlane run xcode_server_get_assets parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/xcode_server_get_assets/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/xcodebuild/","text":"xcodebuild Use the xcodebuild command to build and sign your app Note : xcodebuild is a complex command, so it is recommended to use gym for building your ipa file and scan for testing your app instead. xcodebuild Supported platforms ios, mac Author @dtrenz 1 Example xcodebuild( archive: true, archive_path: \"./build-dir/MyApp.xcarchive\", scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\" ) Documentation To show the documentation in your terminal, run fastlane action xcodebuild CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcodebuild To pass parameters, make use of the : symbol, for example fastlane run xcodebuild parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Xcodebuild"},{"location":"generated/actions/xcodebuild/#xcodebuild","text":"Use the xcodebuild command to build and sign your app Note : xcodebuild is a complex command, so it is recommended to use gym for building your ipa file and scan for testing your app instead. xcodebuild Supported platforms ios, mac Author @dtrenz","title":"xcodebuild"},{"location":"generated/actions/xcodebuild/#1-example","text":"xcodebuild( archive: true, archive_path: \"./build-dir/MyApp.xcarchive\", scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\" )","title":"1 Example"},{"location":"generated/actions/xcodebuild/#documentation","text":"To show the documentation in your terminal, run fastlane action xcodebuild","title":"Documentation"},{"location":"generated/actions/xcodebuild/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcodebuild To pass parameters, make use of the : symbol, for example fastlane run xcodebuild parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/xcodebuild/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/xcodes/","text":"xcodes Make sure a certain version of Xcode is installed, installing it only if needed Makes sure a specific version of Xcode is installed. If that's not the case, it will automatically be downloaded by xcodes . This will make sure to use the correct Xcode version for later actions. Note that this action depends on xcodes CLI, so make sure you have it installed in your environment. For the installation guide, see: https://github.com/RobotsAndPencils/xcodes#installation xcodes Supported platforms ios, mac Author @rogerluan Returns The path to the newly installed Xcode version 2 Examples xcodes(version: \"14.1\") xcodes # When missing, the version value defaults to the value specified in the .xcode-version file Parameters Key Description Default version The version number of the version of Xcode to install. Defaults to the value specified in the .xcode-version file * update_list Whether the list of available Xcode versions should be updated before running the install command true select_for_current_build_only When true, it won't attempt to install an Xcode version, just find the installed Xcode version that best matches the passed version argument, and select it for the current build steps. It doesn't change the global Xcode version (e.g. via 'xcrun xcode-select'), which would require sudo permissions \u2014 when this option is true, this action doesn't require sudo permissions false binary_path Where the xcodes binary lives on your system (full path) * xcodes_args Pass in xcodes command line arguments directly. When present, other parameters are ignored and only this parameter is used to build the command to be executed * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The xcodes action generates the following Lane Variables: SharedValue Description SharedValues::XCODES_XCODE_PATH The path to the newly installed Xcode version To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action xcodes CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcodes To pass parameters, make use of the : symbol, for example fastlane run xcodes parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Xcodes"},{"location":"generated/actions/xcodes/#xcodes","text":"Make sure a certain version of Xcode is installed, installing it only if needed Makes sure a specific version of Xcode is installed. If that's not the case, it will automatically be downloaded by xcodes . This will make sure to use the correct Xcode version for later actions. Note that this action depends on xcodes CLI, so make sure you have it installed in your environment. For the installation guide, see: https://github.com/RobotsAndPencils/xcodes#installation xcodes Supported platforms ios, mac Author @rogerluan Returns The path to the newly installed Xcode version","title":"xcodes"},{"location":"generated/actions/xcodes/#2-examples","text":"xcodes(version: \"14.1\") xcodes # When missing, the version value defaults to the value specified in the .xcode-version file","title":"2 Examples"},{"location":"generated/actions/xcodes/#parameters","text":"Key Description Default version The version number of the version of Xcode to install. Defaults to the value specified in the .xcode-version file * update_list Whether the list of available Xcode versions should be updated before running the install command true select_for_current_build_only When true, it won't attempt to install an Xcode version, just find the installed Xcode version that best matches the passed version argument, and select it for the current build steps. It doesn't change the global Xcode version (e.g. via 'xcrun xcode-select'), which would require sudo permissions \u2014 when this option is true, this action doesn't require sudo permissions false binary_path Where the xcodes binary lives on your system (full path) * xcodes_args Pass in xcodes command line arguments directly. When present, other parameters are ignored and only this parameter is used to build the command to be executed * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/xcodes/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The xcodes action generates the following Lane Variables: SharedValue Description SharedValues::XCODES_XCODE_PATH The path to the newly installed Xcode version To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/xcodes/#documentation","text":"To show the documentation in your terminal, run fastlane action xcodes","title":"Documentation"},{"location":"generated/actions/xcodes/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcodes To pass parameters, make use of the : symbol, for example fastlane run xcodes parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/xcodes/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/xcov/","text":"xcov Nice code coverage reports without hassle Create nice code coverage reports and post coverage summaries on Slack (xcov gem is required) . More information: https://github.com/nakiostudio/xcov . xcov Supported platforms ios, mac Author @nakiostudio 1 Example xcov( workspace: \"YourWorkspace.xcworkspace\", scheme: \"YourScheme\", output_directory: \"xcov_output\" ) Parameters Key Description Default workspace Path the workspace file project Path the project file scheme The project's scheme. Make sure it's marked as Shared configuration The configuration used when building the app. Defaults to 'Release' source_directory The path to project's root directory derived_data_path The directory where build products and other derived data will go output_directory The directory in which all reports will be stored * html_report Produce an HTML report true markdown_report Produce a Markdown report false json_report Produce a JSON report false minimum_coverage_percentage Raise exception if overall coverage percentage is under this value (ie. 75) 0 slack_url Create an Incoming WebHook for your Slack group to post results there slack_channel #channel or @username skip_slack Don't publish to slack, even when an URL is given false slack_username The username which is used to publish to slack xcov slack_message The message which is published together with a successful report Your *xcov* coverage report ignore_file_path Relative or absolute path to the file containing the list of ignored files * include_test_targets Enables coverage reports for .xctest targets false exclude_targets Comma separated list of targets to exclude from coverage report include_targets Comma separated list of targets to include in coverage report. If specified then exlude_targets will be ignored only_project_targets Display the coverage only for main project targets (e.g. skip Pods targets) false disable_coveralls Add this flag to disable automatic submission to Coveralls false coveralls_service_name Name of the CI service compatible with Coveralls. i.e. travis-ci. This option must be defined along with coveralls_service_job_id coveralls_service_job_id Name of the current job running on a CI service compatible with Coveralls. This option must be defined along with coveralls_service_name coveralls_repo_token Repository token to be used by integrations not compatible with Coveralls xcconfig Use an extra XCCONFIG file to build your app ideFoundationPath Absolute path to the IDEFoundation.framework binary * legacy_support Whether xcov should parse a xccoverage file instead on xccovreport false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action xcov CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcov To pass parameters, make use of the : symbol, for example fastlane run xcov parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Xcov"},{"location":"generated/actions/xcov/#xcov","text":"Nice code coverage reports without hassle Create nice code coverage reports and post coverage summaries on Slack (xcov gem is required) . More information: https://github.com/nakiostudio/xcov . xcov Supported platforms ios, mac Author @nakiostudio","title":"xcov"},{"location":"generated/actions/xcov/#1-example","text":"xcov( workspace: \"YourWorkspace.xcworkspace\", scheme: \"YourScheme\", output_directory: \"xcov_output\" )","title":"1 Example"},{"location":"generated/actions/xcov/#parameters","text":"Key Description Default workspace Path the workspace file project Path the project file scheme The project's scheme. Make sure it's marked as Shared configuration The configuration used when building the app. Defaults to 'Release' source_directory The path to project's root directory derived_data_path The directory where build products and other derived data will go output_directory The directory in which all reports will be stored * html_report Produce an HTML report true markdown_report Produce a Markdown report false json_report Produce a JSON report false minimum_coverage_percentage Raise exception if overall coverage percentage is under this value (ie. 75) 0 slack_url Create an Incoming WebHook for your Slack group to post results there slack_channel #channel or @username skip_slack Don't publish to slack, even when an URL is given false slack_username The username which is used to publish to slack xcov slack_message The message which is published together with a successful report Your *xcov* coverage report ignore_file_path Relative or absolute path to the file containing the list of ignored files * include_test_targets Enables coverage reports for .xctest targets false exclude_targets Comma separated list of targets to exclude from coverage report include_targets Comma separated list of targets to include in coverage report. If specified then exlude_targets will be ignored only_project_targets Display the coverage only for main project targets (e.g. skip Pods targets) false disable_coveralls Add this flag to disable automatic submission to Coveralls false coveralls_service_name Name of the CI service compatible with Coveralls. i.e. travis-ci. This option must be defined along with coveralls_service_job_id coveralls_service_job_id Name of the current job running on a CI service compatible with Coveralls. This option must be defined along with coveralls_service_name coveralls_repo_token Repository token to be used by integrations not compatible with Coveralls xcconfig Use an extra XCCONFIG file to build your app ideFoundationPath Absolute path to the IDEFoundation.framework binary * legacy_support Whether xcov should parse a xccoverage file instead on xccovreport false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/xcov/#documentation","text":"To show the documentation in your terminal, run fastlane action xcov","title":"Documentation"},{"location":"generated/actions/xcov/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcov To pass parameters, make use of the : symbol, for example fastlane run xcov parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/xcov/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/xctest/","text":"xctest Runs tests on the given simulator xctest Supported platforms ios, mac Author @dtrenz 1 Example xctest( destination: \"name=iPhone 7s,OS=10.0\" ) Documentation To show the documentation in your terminal, run fastlane action xctest CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xctest To pass parameters, make use of the : symbol, for example fastlane run xctest parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Xctest"},{"location":"generated/actions/xctest/#xctest","text":"Runs tests on the given simulator xctest Supported platforms ios, mac Author @dtrenz","title":"xctest"},{"location":"generated/actions/xctest/#1-example","text":"xctest( destination: \"name=iPhone 7s,OS=10.0\" )","title":"1 Example"},{"location":"generated/actions/xctest/#documentation","text":"To show the documentation in your terminal, run fastlane action xctest","title":"Documentation"},{"location":"generated/actions/xctest/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xctest To pass parameters, make use of the : symbol, for example fastlane run xctest parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/xctest/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/xctool/","text":"xctool Run tests using xctool You can run any xctool action. This will require having xctool installed through Homebrew . It is recommended to store the build configuration in the .xctool-args file. More information: https://docs.fastlane.tools/actions/xctool/ . xctool Supported platforms ios, mac Author @KrauseFx 2 Examples xctool(:test) # If you prefer to have the build configuration stored in the `Fastfile`: xctool(:test, [ \"--workspace\", \"'AwesomeApp.xcworkspace'\", \"--scheme\", \"'Schema Name'\", \"--configuration\", \"Debug\", \"--sdk\", \"iphonesimulator\", \"--arch\", \"i386\" ].join(\" \")) Documentation To show the documentation in your terminal, run fastlane action xctool CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xctool To pass parameters, make use of the : symbol, for example fastlane run xctool parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Xctool"},{"location":"generated/actions/xctool/#xctool","text":"Run tests using xctool You can run any xctool action. This will require having xctool installed through Homebrew . It is recommended to store the build configuration in the .xctool-args file. More information: https://docs.fastlane.tools/actions/xctool/ . xctool Supported platforms ios, mac Author @KrauseFx","title":"xctool"},{"location":"generated/actions/xctool/#2-examples","text":"xctool(:test) # If you prefer to have the build configuration stored in the `Fastfile`: xctool(:test, [ \"--workspace\", \"'AwesomeApp.xcworkspace'\", \"--scheme\", \"'Schema Name'\", \"--configuration\", \"Debug\", \"--sdk\", \"iphonesimulator\", \"--arch\", \"i386\" ].join(\" \"))","title":"2 Examples"},{"location":"generated/actions/xctool/#documentation","text":"To show the documentation in your terminal, run fastlane action xctool","title":"Documentation"},{"location":"generated/actions/xctool/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xctool To pass parameters, make use of the : symbol, for example fastlane run xctool parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/xctool/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/xcversion/","text":"xcversion Select an Xcode to use by version specifier The xcode-install gem, which this action depends on, has been sunset. Please migrate to xcodes . You can find a migration guide here: xcpretty/xcode-install/MIGRATION.md Finds and selects a version of an installed Xcode that best matches the provided Gem::Version requirement specifier You can either manually provide a specific version using version: or you make use of the .xcode-version file. xcversion Supported platforms ios, mac Author @oysta, @rogerluan 3 Examples xcversion(version: \"8.1\") # Selects Xcode 8.1.0 xcversion(version: \"~> 8.1.0\") # Selects the latest installed version from the 8.1.x set xcversion # When missing, the version value defaults to the value specified in the .xcode-version file Parameters Key Description Default version The version of Xcode to select specified as a Gem::Version requirement string (e.g. '~> 7.1.0'). Defaults to the value specified in the .xcode-version file * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action xcversion CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcversion To pass parameters, make use of the : symbol, for example fastlane run xcversion parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Xcversion"},{"location":"generated/actions/xcversion/#xcversion","text":"Select an Xcode to use by version specifier The xcode-install gem, which this action depends on, has been sunset. Please migrate to xcodes . You can find a migration guide here: xcpretty/xcode-install/MIGRATION.md Finds and selects a version of an installed Xcode that best matches the provided Gem::Version requirement specifier You can either manually provide a specific version using version: or you make use of the .xcode-version file. xcversion Supported platforms ios, mac Author @oysta, @rogerluan","title":"xcversion"},{"location":"generated/actions/xcversion/#3-examples","text":"xcversion(version: \"8.1\") # Selects Xcode 8.1.0 xcversion(version: \"~> 8.1.0\") # Selects the latest installed version from the 8.1.x set xcversion # When missing, the version value defaults to the value specified in the .xcode-version file","title":"3 Examples"},{"location":"generated/actions/xcversion/#parameters","text":"Key Description Default version The version of Xcode to select specified as a Gem::Version requirement string (e.g. '~> 7.1.0'). Defaults to the value specified in the .xcode-version file * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/xcversion/#documentation","text":"To show the documentation in your terminal, run fastlane action xcversion","title":"Documentation"},{"location":"generated/actions/xcversion/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcversion To pass parameters, make use of the : symbol, for example fastlane run xcversion parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/xcversion/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/zip/","text":"zip Compress a file or folder to a zip zip Supported platforms ios, android, mac Author @KrauseFx Returns The path to the output zip file 6 Examples zip zip( path: \"MyApp.app\", output_path: \"Latest.app.zip\" ) zip( path: \"MyApp.app\", output_path: \"Latest.app.zip\", verbose: false ) zip( path: \"MyApp.app\", output_path: \"Latest.app.zip\", verbose: false, symlinks: true ) zip( path: \"./\", output_path: \"Source Code.zip\", exclude: [\".git/*\"] ) zip( path: \"./\", output_path: \"Swift Code.zip\", include: [\"**/*.swift\"], exclude: [\"Package.swift\", \"vendor/*\", \"Pods/*\"] ) Parameters Key Description Default path Path to the directory or file to be zipped output_path The name of the resulting zip file verbose Enable verbose output of zipped file true password Encrypt the contents of the zip archive using a password symlinks Store symbolic links as such in the zip archive false include Array of paths or patterns to include [] exclude Array of paths or patterns to exclude [] * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action zip CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run zip To pass parameters, make use of the : symbol, for example fastlane run zip parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Zip"},{"location":"generated/actions/zip/#zip","text":"Compress a file or folder to a zip zip Supported platforms ios, android, mac Author @KrauseFx Returns The path to the output zip file","title":"zip"},{"location":"generated/actions/zip/#6-examples","text":"zip zip( path: \"MyApp.app\", output_path: \"Latest.app.zip\" ) zip( path: \"MyApp.app\", output_path: \"Latest.app.zip\", verbose: false ) zip( path: \"MyApp.app\", output_path: \"Latest.app.zip\", verbose: false, symlinks: true ) zip( path: \"./\", output_path: \"Source Code.zip\", exclude: [\".git/*\"] ) zip( path: \"./\", output_path: \"Swift Code.zip\", include: [\"**/*.swift\"], exclude: [\"Package.swift\", \"vendor/*\", \"Pods/*\"] )","title":"6 Examples"},{"location":"generated/actions/zip/#parameters","text":"Key Description Default path Path to the directory or file to be zipped output_path The name of the resulting zip file verbose Enable verbose output of zipped file true password Encrypt the contents of the zip archive using a password symlinks Store symbolic links as such in the zip archive false include Array of paths or patterns to include [] exclude Array of paths or patterns to exclude [] * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/zip/#documentation","text":"To show the documentation in your terminal, run fastlane action zip","title":"Documentation"},{"location":"generated/actions/zip/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run zip To pass parameters, make use of the : symbol, for example fastlane run zip parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/zip/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"getting-started/android/beta-deployment/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 Deploy to Beta distribution services using fastlane If you would like to distribute your beta builds to Google Play, please make sure you've done the steps from Setting up supply before continuing. Building your app fastlane takes care of building your app by delegating to your existing Gradle build. Just add the following to your Fastfile : lane :beta do # Adjust the `build_type` and `flavor` params as needed to build the right APK for your setup gradle( task: 'assemble', build_type: 'Release' ) # ... end Try running the lane with: fastlane beta When that completes you should have the appropriate APK ready to go in the standard output directory. To get a list of all available parameters for the gradle action, run: fastlane action gradle Uploading your app After building your app, it's ready to be uploaded to a beta testing service of your choice. The beauty of fastlane is that you can easily switch beta providers, or even upload to multiple at once, with a minimum of configuration. Follow that with a notification posted to the group messaging service of your choice to let the team know that you've shipped. lane :beta do gradle(task: 'assemble', build_type: 'Release') upload_to_play_store(track: 'beta') slack(message: 'Successfully distributed a new beta build') end Supported beta testing services Google Play In order to distribute to Google Play with upload_to_play_store you will need to have your Google credentials set up. Make sure you've gone through Setting up supply before continuing! lane :beta do # ... gradle( task: 'assemble', build_type: 'Release' ) upload_to_play_store(track: 'beta') # ... end To get a list of all available options, run: fastlane action upload_to_play_store Firebase App Distribution Install the Firebase App Distribution plugin: fastlane add_plugin firebase_app_distribution Authenticate with Firebase by running the firebase_app_distribution_login action (or using one of the other authentication methods ): fastlane run firebase_app_distribution_login Then add the firebase_app_distribution action to your lane: lane :beta do # ... gradle( task: 'assemble', build_type: 'Release' ) firebase_app_distribution( app: \"1:123456789:android:abcd1234\", groups: \"qa-team, trusted-testers\" ) # ... end For more information and options (such as adding release notes) see the full Getting Started guide. More information about additional supported beta testing services can be found in the list of \"Beta\" actions Release Notes Generate based on Git commits You take the time to write great Git commit messages, right? Why not take advantage of them to automatically summarize the work done for your latest beta release? lane :beta do # ... # Generate the changelog based on commit messages since your last tag changelog_from_git_commits # The crashlytics action knows how to use the generated changelog automatically crashlytics( api_token: '[insert_key_here]', build_secret: '[insert_secret_here]' ) end You can get a list of all available options by running fastlane action changelog_from_git_commits , but here are some examples: changelog_from_git_commits( between: ['7b092b3', 'HEAD'], # Optional, lets you specify a revision/tag range between which to collect commit info merge_commit_filtering: 'exclude_merges' # Optional, lets you filter out merge commits ) Prompt for changelog You can automatically be asked for the changelog in your terminal using the prompt action: lane :beta do # Variant 1: Ask for a one line input changelog = prompt(text: \"Changelog: \") # Variant 2: Ask for a multi-line input # The user confirms their input by typing `END` and Enter changelog = prompt( text: \"Changelog: \", multi_line_end_keyword: \"END\" ) crashlytics( api_token: '[insert_key_here]', build_secret: '[insert_secret_here]', notes: changelog ) end Fetch the changelog from the file system or remote server You can fetch values from anywhere, including the file system and remote server, by writing code in your Fastfile lane :beta do # Variant 1: Read from file system # note the `..`, since fastlane runs in the _fastlane_ directory changelog = File.read(\"../Changelog.txt\") # Variant 2: Fetch data from a remote web server changelog = download(url: \"https://lookatmycms.com/changelog.txt\") crashlytics( api_token: '[insert_key_here]', build_secret: '[insert_secret_here]', notes: changelog ) end","title":"Beta Deployment"},{"location":"getting-started/android/beta-deployment/#deploy-to-beta-distribution-services-using-fastlane","text":"If you would like to distribute your beta builds to Google Play, please make sure you've done the steps from Setting up supply before continuing.","title":"Deploy to Beta distribution services using fastlane"},{"location":"getting-started/android/beta-deployment/#building-your-app","text":"fastlane takes care of building your app by delegating to your existing Gradle build. Just add the following to your Fastfile : lane :beta do # Adjust the `build_type` and `flavor` params as needed to build the right APK for your setup gradle( task: 'assemble', build_type: 'Release' ) # ... end Try running the lane with: fastlane beta When that completes you should have the appropriate APK ready to go in the standard output directory. To get a list of all available parameters for the gradle action, run: fastlane action gradle","title":"Building your app"},{"location":"getting-started/android/beta-deployment/#uploading-your-app","text":"After building your app, it's ready to be uploaded to a beta testing service of your choice. The beauty of fastlane is that you can easily switch beta providers, or even upload to multiple at once, with a minimum of configuration. Follow that with a notification posted to the group messaging service of your choice to let the team know that you've shipped. lane :beta do gradle(task: 'assemble', build_type: 'Release') upload_to_play_store(track: 'beta') slack(message: 'Successfully distributed a new beta build') end","title":"Uploading your app"},{"location":"getting-started/android/beta-deployment/#release-notes","text":"Generate based on Git commits You take the time to write great Git commit messages, right? Why not take advantage of them to automatically summarize the work done for your latest beta release? lane :beta do # ... # Generate the changelog based on commit messages since your last tag changelog_from_git_commits # The crashlytics action knows how to use the generated changelog automatically crashlytics( api_token: '[insert_key_here]', build_secret: '[insert_secret_here]' ) end You can get a list of all available options by running fastlane action changelog_from_git_commits , but here are some examples: changelog_from_git_commits( between: ['7b092b3', 'HEAD'], # Optional, lets you specify a revision/tag range between which to collect commit info merge_commit_filtering: 'exclude_merges' # Optional, lets you filter out merge commits ) Prompt for changelog You can automatically be asked for the changelog in your terminal using the prompt action: lane :beta do # Variant 1: Ask for a one line input changelog = prompt(text: \"Changelog: \") # Variant 2: Ask for a multi-line input # The user confirms their input by typing `END` and Enter changelog = prompt( text: \"Changelog: \", multi_line_end_keyword: \"END\" ) crashlytics( api_token: '[insert_key_here]', build_secret: '[insert_secret_here]', notes: changelog ) end Fetch the changelog from the file system or remote server You can fetch values from anywhere, including the file system and remote server, by writing code in your Fastfile lane :beta do # Variant 1: Read from file system # note the `..`, since fastlane runs in the _fastlane_ directory changelog = File.read(\"../Changelog.txt\") # Variant 2: Fetch data from a remote web server changelog = download(url: \"https://lookatmycms.com/changelog.txt\") crashlytics( api_token: '[insert_key_here]', build_secret: '[insert_secret_here]', notes: changelog ) end","title":"Release Notes"},{"location":"getting-started/android/release-deployment/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 Deploy to Google Play using fastlane Building your app fastlane takes care of building your app by delegating to your existing Gradle build. Just add the following to your Fastfile : lane :playstore do gradle( task: 'assemble', build_type: 'Release' ) end Try running the lane with: fastlane playstore When that completes you should have the appropriate APK ready to go in the standard output directory. To get a list of all available parameters for the gradle action, run: fastlane action gradle Uploading your APK To upload your binary to Google Play, fastlane uses a tool called supply . Because supply needs authentication information from Google, if you haven't yet done the supply setup steps , please do those now! With that done, simply add a call to supply to the lane you set up above: lane :playstore do gradle( task: 'assemble', build_type: 'Release' ) upload_to_play_store # Uploads the APK built in the gradle step above and releases it to all production users end This will also: Upload app metadata from fastlane/metadata/android if you previously ran fastlane supply init Upload expansion files (obbs) found under the same directory as your APK as long as: They are identified by type as main or patch by containing main or patch in their file names There is at most one of each type Upload screenshots from fastlane/metadata/android if you previously ran screengrab Create a new production build Release the production build to all users If you would like to capture and upload screenshots automatically as part of your deployment process, check out the fastlane screenshots for Android guide to get started! To gradually roll out a new build you can use: lane :playstore do # ... upload_to_play_store( track: 'rollout', rollout: '0.5' ) end To get a list of all available parameters for the upload_to_play_store action, run: fastlane action upload_to_play_store","title":"Release Deployment"},{"location":"getting-started/android/release-deployment/#deploy-to-google-play-using-fastlane","text":"","title":"Deploy to Google Play using fastlane"},{"location":"getting-started/android/release-deployment/#building-your-app","text":"fastlane takes care of building your app by delegating to your existing Gradle build. Just add the following to your Fastfile : lane :playstore do gradle( task: 'assemble', build_type: 'Release' ) end Try running the lane with: fastlane playstore When that completes you should have the appropriate APK ready to go in the standard output directory. To get a list of all available parameters for the gradle action, run: fastlane action gradle","title":"Building your app"},{"location":"getting-started/android/release-deployment/#uploading-your-apk","text":"To upload your binary to Google Play, fastlane uses a tool called supply . Because supply needs authentication information from Google, if you haven't yet done the supply setup steps , please do those now! With that done, simply add a call to supply to the lane you set up above: lane :playstore do gradle( task: 'assemble', build_type: 'Release' ) upload_to_play_store # Uploads the APK built in the gradle step above and releases it to all production users end This will also: Upload app metadata from fastlane/metadata/android if you previously ran fastlane supply init Upload expansion files (obbs) found under the same directory as your APK as long as: They are identified by type as main or patch by containing main or patch in their file names There is at most one of each type Upload screenshots from fastlane/metadata/android if you previously ran screengrab Create a new production build Release the production build to all users If you would like to capture and upload screenshots automatically as part of your deployment process, check out the fastlane screenshots for Android guide to get started! To gradually roll out a new build you can use: lane :playstore do # ... upload_to_play_store( track: 'rollout', rollout: '0.5' ) end To get a list of all available parameters for the upload_to_play_store action, run: fastlane action upload_to_play_store","title":"Uploading your APK"},{"location":"getting-started/android/running-tests/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 Running Android tests using fastlane To run your unit tests using fastlane, add the following to your Fastfile lane :tests do gradle(task: \"test\") end Replace \"test\" with the gradle task name for running unit tests of your app. Additionally you can specify more options for building and testing your app, check out the list of all available parameters To use the newly created lane, just run fastlane tests Setting up fastlane to run on CI To run Android tests using fastlane on a Continuous Integration service, check out the Continuous Integration docs . Since fastlane stores all configuration in simple configuration files, and runs via the command line, it supports every kind of CI system. We also prepared some docs to help you get started with some of the popular CI systems. Self-Hosted CIs Jenkins Bamboo GitLab Hosted CIs Circle Travis Visual Studio If your CI system isn't listed here, no problem, fastlane runs on any CI. To trigger fastlane , just add the command you would usually run from your terminal: fastlane tests Posting build results If you want to post test results on Slack, Hipchat, or other team chat client, check out the available fastlane actions . Build failures Hipchat To post a message when fastlane encounters a test or build failure, add the following to your Fastfile : error do |ex| hipchat(message: \"Tests have failed!\", channel: \"Room or @username\", success: false) end Other services The above example uses Hipchat, but fastlane supports many other services out there .","title":"Running Tests"},{"location":"getting-started/android/running-tests/#running-android-tests-using-fastlane","text":"To run your unit tests using fastlane, add the following to your Fastfile lane :tests do gradle(task: \"test\") end Replace \"test\" with the gradle task name for running unit tests of your app. Additionally you can specify more options for building and testing your app, check out the list of all available parameters To use the newly created lane, just run fastlane tests","title":"Running Android tests using fastlane"},{"location":"getting-started/android/screenshots/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 screenshots for Android Your app screenshots are probably the most important thing when it comes to convincing potential users to download or purchase your app. Unfortunately, many apps don't do screenshots well. This is often because taking screenshots of your app and then preparing them for display is time consuming, and it's hard to get everything right and consistent! For example: Are the screenshots in Google Play inconsistent with your latest app design? Is your app localized into many languages that require different screenshots for each? Is the same content displayed for each of your size variations? fastlane tools can automate this process, making it fast and consistent while giving you beautiful results! Capture Screenshots Automatically screengrab works with fastlane to automate the process of capturing screenshots of your app. It allows you to: Capture hundreds of screenshots in multiple languages on any simulator Do something else while the computer takes the screenshots for you Configure it once, and store the configuration so anyone on the team can run it Get a summary of how your app looks like across all supported devices and languages After screengrab completes, it will show you summary of the screenshots you captured: Getting Started Using Espresso screengrab uses the capabilities of Android's built-in Instrumented tests combined with Espresso to drive interactions with your app. To start writing UI Tests with Espresso, checkout the Create UI tests with Espresso Test Recorder video which talks about the Espresso Recording feature for writing UI tests. To learn more about UI testing in Android, refer to the Testing UI for a Single App guide. Installing screengrab Install the gem: sudo gem install screengrab Gradle dependency Add the test dependency to your Gradle build: androidTestImplementation 'tools.fastlane:screengrab:x.x.x' The latest version is Configuring your Manifest Permissions Ensure that the following permissions exist in your src/debug/AndroidManifest.xml Configuring your UI Tests for screengrab To handle automatic switching of locales, add @ClassRule public static final LocaleTestRule localeTestRule = new LocaleTestRule(); to /app/java/ (AndroidTest)/ExampleInstrumentedTest.java or to your tests class To capture screenshots, add the following to your tests Screengrab.screenshot(\"name_of_screenshot_here\"); on the appropriate screens Example UI Test Class (Using JUnit4) @RunWith(JUnit4.class) public class ExampleInstrumentedTest { @ClassRule public static final LocaleTestRule localeTestRule = new LocaleTestRule(); @Rule public ActivityTestRule activityRule = new ActivityTestRule<>(MainActivity.class); @Test public void testTakeScreenshot() { Screengrab.screenshot(\"before_button_click\"); // Your custom onView... onView(withId(R.id.fab)).perform(click()); Screengrab.screenshot(\"after_button_click\"); } } There is an example project showing how to use use JUnit 3 or 4 and Espresso with the screengrab Java library to capture screenshots during a UI test run. Using JUnit 4 is preferable because of its ability to perform actions before and after the entire test class is run. This means you will change the device's locale far fewer times when compared with JUnit 3 running those commands before and after each test method. When using JUnit 3 you'll need to add a bit more code: Use LocaleUtil.changeDeviceLocaleTo(LocaleUtil.getTestLocale()); in setUp() Use LocaleUtil.changeDeviceLocaleTo(LocaleUtil.getEndingLocale()); in tearDown() Use Screengrab.screenshot(\"name_of_screenshot_here\"); to capture screenshots at the appropriate points in your tests If you're having trouble getting your device unlocked and the screen activated to run tests, try using ScreenUtil.activateScreenForTesting(activity); in your test setup. Improved screenshot capture with UI Automator As of screengrab 0.5.0, you can specify different strategies to control the way screengrab captures screenshots. The newer strategy delegates to UI Automator which fixes a number of problems compared to the original strategy: Shadows/elevation are correctly captured for Material UI Multi-window situations are correctly captured (dialogs, etc.) Works on Android N However, UI Automator requires a device with API level >= 18 , so it is not yet the default strategy. To enable it for all screenshots by default, make the following call before your tests run: Screengrab.setDefaultScreenshotStrategy(new UiAutomatorScreenshotStrategy()); Clean Status Bar You can use QuickDemo to clean up the status bar for your screenshots. Generating Screenshots with Screengrab Run ./gradlew assembleDebug assembleAndroidTest manually to generate debug and test APKs You can also create a lane and use build_android_app : ruby desc \"Build debug and test APK for screenshots\" lane :build_for_screengrab do gradle( task: 'clean' ) build_android_app( task: 'assemble', build_type: 'Debug' ) build_android_app( task: 'assemble', build_type: 'AndroidTest' ) end Run fastlane screengrab in your app project directory to generate screenshots You will be prompted to provide any required parameters which are not in your Screengrabfile , or provided as command line arguments Your screenshots will be saved to fastlane/metadata/android in the directory where you ran fastlane screengrab Upload Screenshots to Google Play After generating your screenshots using fastlane screengrab , you'll usually want to upload them to Google Play. To upload the screenshots stored in fastlane/metadata/android , just run: fastlane supply Use in Fastfile To put all of this together so that anyone on your team could trigger generating and uploading new screenshots, you can define a fastlane lane called screenshots . It would be responsible for: Running your app through screengrab to automatically capture your screenshots Having supply send your screenshots to Google Play for use in the store Add the following code to your fastlane/Fastfile : lane :screenshots do capture_android_screenshots upload_to_play_store end To get a list of all available options for each of the steps, run fastlane action capture_android_screenshots fastlane action upload_to_play_store Advanced screengrab Launch Arguments You can provide additional arguments to your testcases on launch. These strings will be available in your tests through InstrumentationRegistry.getArguments() . launch_arguments([ \"username hjanuschka\", \"build_number 201\" ]) Bundle extras = InstrumentationRegistry.getArguments(); String peerID = null; if (extras != null) { if (extras.containsKey(\"username\")) { username = extras.getString(\"username\"); System.out.println(\"Username: \" + username); } else { System.out.println(\"No username in extras\"); } } else { System.out.println(\"No extras\"); }","title":"Screenshots"},{"location":"getting-started/android/screenshots/#fastlane-screenshots-for-android","text":"Your app screenshots are probably the most important thing when it comes to convincing potential users to download or purchase your app. Unfortunately, many apps don't do screenshots well. This is often because taking screenshots of your app and then preparing them for display is time consuming, and it's hard to get everything right and consistent! For example: Are the screenshots in Google Play inconsistent with your latest app design? Is your app localized into many languages that require different screenshots for each? Is the same content displayed for each of your size variations? fastlane tools can automate this process, making it fast and consistent while giving you beautiful results!","title":"fastlane screenshots for Android"},{"location":"getting-started/android/screenshots/#capture-screenshots-automatically","text":"screengrab works with fastlane to automate the process of capturing screenshots of your app. It allows you to: Capture hundreds of screenshots in multiple languages on any simulator Do something else while the computer takes the screenshots for you Configure it once, and store the configuration so anyone on the team can run it Get a summary of how your app looks like across all supported devices and languages After screengrab completes, it will show you summary of the screenshots you captured:","title":"Capture Screenshots Automatically"},{"location":"getting-started/android/screenshots/#upload-screenshots-to-google-play","text":"After generating your screenshots using fastlane screengrab , you'll usually want to upload them to Google Play. To upload the screenshots stored in fastlane/metadata/android , just run: fastlane supply","title":"Upload Screenshots to Google Play"},{"location":"getting-started/android/screenshots/#use-in-fastfile","text":"To put all of this together so that anyone on your team could trigger generating and uploading new screenshots, you can define a fastlane lane called screenshots . It would be responsible for: Running your app through screengrab to automatically capture your screenshots Having supply send your screenshots to Google Play for use in the store Add the following code to your fastlane/Fastfile : lane :screenshots do capture_android_screenshots upload_to_play_store end To get a list of all available options for each of the steps, run fastlane action capture_android_screenshots fastlane action upload_to_play_store","title":"Use in Fastfile"},{"location":"getting-started/android/screenshots/#advanced-screengrab","text":"Launch Arguments You can provide additional arguments to your testcases on launch. These strings will be available in your tests through InstrumentationRegistry.getArguments() . launch_arguments([ \"username hjanuschka\", \"build_number 201\" ]) Bundle extras = InstrumentationRegistry.getArguments(); String peerID = null; if (extras != null) { if (extras.containsKey(\"username\")) { username = extras.getString(\"username\"); System.out.println(\"Username: \" + username); } else { System.out.println(\"No username in extras\"); } } else { System.out.println(\"No extras\"); }","title":"Advanced screengrab"},{"location":"getting-started/android/setup/","text":"Getting started with fastlane for Android Installing fastlane fastlane can be installed in multiple ways. The preferred method is with Bundler . fastlane can also be installed directly through with Homebrew (if on macOS). It is possible to use macOS's system Ruby, but it's not recommended, as it can be hard to manage dependencies, and causes conflicts. Managed Ruby environment + Bundler (macOS/Linux/Windows) Ruby If you use macOS, system Ruby is not recommended. There is a variety of ways to install Ruby without having to modify your system environment . For macOS and Linux, rbenv is one of the most popular ways to manage your Ruby environment. fastlane supports Ruby versions 2.5 or newer. Verify which Ruby version you're using: $ ruby --version ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-darwin19] Bundler It is recommended that you use Bundler and Gemfile to define your dependency on fastlane . This will clearly define the fastlane version to be used and its dependencies, and will also speed up fastlane execution. Install Bundler by running gem install bundler Create a ./Gemfile in the root directory of your project with the content source \"https://rubygems.org\" gem \"fastlane\" Run bundle update and add both the ./Gemfile and the ./Gemfile.lock to version control Every time you run fastlane , use bundle exec fastlane [lane] On your CI, add bundle install as your first build step To update fastlane , just run bundle update fastlane Homebrew (macOS) This way, you don't have to install Ruby separately, and instead homebrew installs the adequate Ruby version for fastlane . See this page for details. brew install fastlane System Ruby + RubyGems (macOS/Linux/Windows) This is not recommended for your local environment, but you can still install fastlane to system Ruby's environment. Using sudo often occurs unwanted results later due to file permission and makes managing your environment harder. sudo gem install fastlane Setting up fastlane Navigate your terminal to your project's directory and run fastlane init You'll be asked to confirm that you're ready to begin, and then for a few pieces of information. To get started quickly: Provide the package name for your application when asked (e.g. io.fabric.yourapp) Press enter when asked for the path to your json secret file Answer 'n' when asked if you plan on uploading info to Google Play via fastlane (we can set this up later) That's it! fastlane will automatically generate a configuration for you based on the information provided. You can see the newly created ./fastlane directory, with the following files: Appfile which defines configuration information that is global to your app Fastfile which defines the \"lanes\" that drive the behavior of fastlane The most interesting file is fastlane/Fastfile , which contains all the information that is needed to distribute your app. Setting up supply supply is a fastlane tool that uploads app metadata, screenshots and binaries to Google Play. You can also select tracks for builds and promote builds to production! For supply to be able to initialize, you need to have successfully uploaded an APK to your app in the Google Play Console at least once. Setting it up requires downloading a credentials file from your Google Developers Service Account. Collect your Google credentials Tip: If you see Google Play Console or Google Developer Console in your local language, add &hl=en at the end of the URL (before any #... ) to switch to English. All the links below already have this to make it easier to find the correct buttons. Note: if you face issues when following these instructions, you might want to refer to the official documentation by Google . Open the Google Play Console Click Account Details , and note the Developer Account ID listed there Enable the Google Play Developer API by selecting an existing Google Cloud Project that fits your needs and pushing ENABLE If you don't have an existing project or prefer to have a dedicated one for fastlane , create a new one here and follow the instructions Open Service Accounts on Google Cloud and select the project you'd like to use Click the CREATE SERVICE ACCOUNT button at the top of the Google Cloud Platform Console page Verify that you are on the correct Google Cloud Platform Project by looking for the Developer Account ID from earlier within the light gray text in the second input, preceding .iam.gserviceaccount.com , or by checking the project name in the navigaton bar. If not, open the picker in the top navigation bar, and find the right one. Provide a Service account name (e.g. fastlane-supply) Copy the generated email address that is noted below the Service account-ID field for later use Click DONE (don't click CREATE AND CONTINUE as the optional steps such as granting access are not needed): Click on the Actions vertical three-dot icon of the service account you just created Select Manage keys on the menu Click ADD KEY \u2192 Create New Key Make sure JSON is selected as the Key type , and click CREATE Save the file on your computer when prompted and remember where it was saved at Open the Google Play Console and select Users and Permissions Click Invite new users Paste the email address you saved for later use into the email address field Click on Account Permissions Choose the permissions you'd like this account to have. We recommend Admin (all permissions) , but you may want to manually select all checkboxes and leave out some of the Releases permissions such as Release to production, exclude devices, and use Play App Signing Click on Invite User You can use fastlane run validate_play_store_json_key json_key:/path/to/your/downloaded/file.json to test the connection to Google Play Store with the downloaded private key. Once that works, add the path to the JSON file to your Appfile : json_key_file(\"path/to/your/play-store-credentials.json\") package_name(\"my.package.name\") The path is relative to where you normally run fastlane . Configure supply Edit your fastlane/Appfile and change the json_key_file line to have the path to your credentials file: json_key_file \"/path/to/your/downloaded/key.json\" Fetch your app metadata If your app has been created on the Google Play developer console, you're ready to start using supply to manage it! Run: fastlane supply init and all of your current Google Play store metadata will be downloaded to fastlane/metadata/android . Due to limitations of the Google Play API, supply can't download existing screenshots or videos. What's next? fastlane is ready to generate screenshots and automatically distribute new builds! To learn more, check out: fastlane screenshots for Android Deploy to Google Play using fastlane Set up environment variables fastlane requires some environment variables set up to run correctly. In particular, having your locale not set to a UTF-8 locale will cause issues with building and uploading your build. In your shell profile add the following lines: export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8 You can find your shell profile at ~/.bashrc , ~/.bash_profile , ~/.profile or ~/.zshrc depending on your system. Use a Gemfile It is recommended that you use a Gemfile to define your dependency on fastlane . This will clearly define the used fastlane version, and its dependencies, and will also speed up using fastlane . Create a ./Gemfile in the root directory of your project with the content source \"https://rubygems.org\" gem \"fastlane\" Run [sudo] bundle update and add both the ./Gemfile and the ./Gemfile.lock to version control Every time you run fastlane , use bundle exec fastlane [lane] On your CI, add [sudo] bundle install as your first build step To update fastlane , just run [sudo] bundle update fastlane","title":"Setup"},{"location":"getting-started/android/setup/#getting-started-with-fastlane-for-android","text":"","title":"Getting started with fastlane for Android"},{"location":"getting-started/cross-platform/flutter/","text":"Getting started with fastlane for Flutter Most of the fastlane docs on this page apply to Flutter projects as well. To get started, the Flutter team wrote an excellent official guide on Continuous Delivery using fastlane with Flutter .","title":"Flutter"},{"location":"getting-started/cross-platform/flutter/#getting-started-with-fastlane-for-flutter","text":"Most of the fastlane docs on this page apply to Flutter projects as well. To get started, the Flutter team wrote an excellent official guide on Continuous Delivery using fastlane with Flutter .","title":"Getting started with fastlane for Flutter"},{"location":"getting-started/cross-platform/nativescript/","text":"Getting started with fastlane for NativeScript Most of the fastlane docs on this page apply to NativeScript projects as well. To get started, please follow this tutorial from the official NativeScript Blog: Automatic NativeScript App Deployments with fastlane .","title":"NativeScript"},{"location":"getting-started/cross-platform/nativescript/#getting-started-with-fastlane-for-nativescript","text":"Most of the fastlane docs on this page apply to NativeScript projects as well. To get started, please follow this tutorial from the official NativeScript Blog: Automatic NativeScript App Deployments with fastlane .","title":"Getting started with fastlane for NativeScript"},{"location":"getting-started/cross-platform/react-native/","text":"Getting started with fastlane for React Native Most of the fastlane docs on this page apply to React Native projects as well. As there is no official getting started guide yet, here are some publications by the fastlane community: Distributing beta builds with Fastlane on Android and iOS Shipping React Native apps with fastlane React Native, fastlane and Visual Studio App Center Conference talk \"Automate your React Native world with fastlane\" Team Focused Fastlane Tutorials Simple Android Releases in React Native Simple iOS Releases in React Native Automatic Screenshots with Fastlane & Detox for React Native Automating React Native deployments for iOS with Fastlane","title":"React Native"},{"location":"getting-started/cross-platform/react-native/#getting-started-with-fastlane-for-react-native","text":"Most of the fastlane docs on this page apply to React Native projects as well. As there is no official getting started guide yet, here are some publications by the fastlane community: Distributing beta builds with Fastlane on Android and iOS Shipping React Native apps with fastlane React Native, fastlane and Visual Studio App Center Conference talk \"Automate your React Native world with fastlane\" Team Focused Fastlane Tutorials Simple Android Releases in React Native Simple iOS Releases in React Native Automatic Screenshots with Fastlane & Detox for React Native Automating React Native deployments for iOS with Fastlane","title":"Getting started with fastlane for React Native"},{"location":"getting-started/ios/appstore-deployment/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 iOS App Store deployment using fastlane Building your app fastlane takes care of building your app using an action called build_app , just add the following to your Fastfile : lane :release do build_app(scheme: \"MyApp\") end Additionally you can specify more options for building your app, for example lane :release do build_app(scheme: \"MyApp\", workspace: \"Example.xcworkspace\", include_bitcode: true) end Try running the lane using fastlane release If everything works, you should have a [ProductName].ipa file in the current directory. To get a list of all available parameters for build_app , run fastlane action build_app . Codesigning Chances are that something went wrong because of code signing at the previous step. We prepared our own Code Signing Guide that helps you setting up the right code signing approach for your project. Submitting your app Generating screenshots To find out more about how to automatically generate screenshots for the App Store, check out fastlane screenshots for iOS and tvOS . Upload the binary and app metadata After building your app, it's ready to be uploaded to the App Store. If you've already followed iOS Beta deployment using fastlane , the following code might look similar already. lane :release do capture_screenshots # generate new screenshots for the App Store sync_code_signing(type: \"appstore\") # see code signing guide for more information build_app(scheme: \"MyApp\") upload_to_app_store # upload your app to App Store Connect slack(message: \"Successfully uploaded a new App Store build\") end fastlane automatically passes on information about the generated screenshots and the binary to the upload_to_app_store action of your Fastfile . For a list of all options for each of the steps run fastlane action [action_name] . More details For more details on how upload_to_app_store works, how you can define more options, check out upload_to_app_store . Best Practices Push Notifications To make sure your latest push notification certificate is still valid during your submission process, add the following at the beginning of your lane: lane :release do get_push_certificate # ... end get_push_certificate will ensure your certificate is valid for at least another 2 weeks, and create a new one if it isn't. If you don't have any push certificates already, get_push_certificate will create one for you and store locally in your project's directory. To get more information about the available options run fastlane action get_push_certificate . Incrementing the build number The code sample below will use the latest build number from App Store Connect and temporarily set it. lane :beta do increment_build_number( build_number: app_store_build_number + 1, xcodeproj: \"Example.xcodeproj\" ) end For all the steps above, there are more parameters available, run the following to get a full list: fastlane action [action_name]","title":"App Store Deployment"},{"location":"getting-started/ios/appstore-deployment/#ios-app-store-deployment-using-fastlane","text":"","title":"iOS App Store deployment using fastlane"},{"location":"getting-started/ios/appstore-deployment/#building-your-app","text":"fastlane takes care of building your app using an action called build_app , just add the following to your Fastfile : lane :release do build_app(scheme: \"MyApp\") end Additionally you can specify more options for building your app, for example lane :release do build_app(scheme: \"MyApp\", workspace: \"Example.xcworkspace\", include_bitcode: true) end Try running the lane using fastlane release If everything works, you should have a [ProductName].ipa file in the current directory. To get a list of all available parameters for build_app , run fastlane action build_app .","title":"Building your app"},{"location":"getting-started/ios/appstore-deployment/#submitting-your-app","text":"","title":"Submitting your app"},{"location":"getting-started/ios/appstore-deployment/#best-practices","text":"Push Notifications To make sure your latest push notification certificate is still valid during your submission process, add the following at the beginning of your lane: lane :release do get_push_certificate # ... end get_push_certificate will ensure your certificate is valid for at least another 2 weeks, and create a new one if it isn't. If you don't have any push certificates already, get_push_certificate will create one for you and store locally in your project's directory. To get more information about the available options run fastlane action get_push_certificate . Incrementing the build number The code sample below will use the latest build number from App Store Connect and temporarily set it. lane :beta do increment_build_number( build_number: app_store_build_number + 1, xcodeproj: \"Example.xcodeproj\" ) end For all the steps above, there are more parameters available, run the following to get a full list: fastlane action [action_name]","title":"Best Practices"},{"location":"getting-started/ios/authentication/","text":"Authenticating with Apple services Several fastlane actions communicate with Apple services that need authentication. As this can pose several challenges especially on CI, this document focuses on those challenges, but everything described here can be done on your local machine as well. There are 4 ways to connect to Apple services: Method 1: App Store Connect API key (recommended) This is the recommended and official way of authenticating with Apple services. However, it doesn't support all of the fastlane features yet. Check out App Store Connect API for more information. Method 2: Two-step or two-factor authentication For actions that aren't yet supported by the official App Store Connect API, you will need to authenticate with your Apple ID. Luckily, fastlane fully supports 2-factor authentication (2FA) (and legacy 2-step verification (2SV) ) for logging in to your Apple ID and Apple Developer account. \ud83c\udf1f Manual verification With 2-factor authentication (or 2-step verification) enabled, you will be asked to verify your identity by entering a security code. If you already have a trusted device configured for your account, then the code will appear on the device. If you don't have any devices configured, but have trusted a phone number, then the code will be sent to your phone. The resulting session will be stored in ~/.fastlane/spaceship/[email]/cookie . Storing a manually verified session using spaceauth As your CI machine will not be able to prompt you for your two-factor authentication or two-step verification information, you can generate a login session for your Apple ID in advance by running: fastlane spaceauth -u user@email.com The generated value then has to be stored inside the FASTLANE_SESSION environment variable on your CI system. This session will be reused instead of triggering a new login each time fastlane communicates with Apple's APIs. It's advised that you run spaceauth in the same machine as your CI, instead of running it locally on your machine - see the notes below regarding session duration. Important note about session duration The session generated, stored and reused as part of a 2FA/2SV authentication, or as part of spaceauth is subject to technical limitations imposed by Apple. Namely: An Apple ID session is only valid within a certain region, meaning if the region you're using your session (e.g. CI system) is different than the region where you created that session (e.g. your local machine), you might run into issues. It's advised that you create the session in the same machine that will be used to consume it, to make the session last longer. The session's validity can greatly vary (anything between 1 day and 1 month, depending on factors such as geolocation of the session usage). This means you'll have to generate a new session at least once a month. Usually you'd only know about it when your build starts failing. Unfortunately there is nothing fastlane can do better in this regard, as these are technical limitations on how App Store Connect sessions are handled. Method 3: Application-specific passwords If you want to upload builds to App Store Connect (actions upload_to_app_store and deliver ) or TestFlight (actions upload_to_testflight , pilot or testflight ) from your CI machine, you may generate an application specific password : Visit appleid.apple.com/account/manage Generate a new application specific password Provide the application specific password using the environment variable FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD This will supply the application specific password to iTMSTransporter, the tool used by those actions to perform the upload. Note: The application specific password will not work if your action usage does anything else than uploading the binary, e.g. updating any metadata like setting release notes or distributing to testers, etc. For those actions, you must use one of the other methods. Method 4: Apple ID without 2FA (deprecated) Apple announced that as of February 27th 2019 , it would enforce 2-factor authentication on developer Apple IDs with the \"Account Holder\" role. Since then, they extended this rule to all roles, and then later throughout 2020 they slowly enforced all existing accounts to register 2FA. As of March 3rd 2021, no accounts without 2FA registered are able to login until they register a 2FA method, essentially breaking all \"non-2FA compliant Apple IDs\" that still existed. For this reason, when using fastlane in your CI, you will have to work your way with 2FA.","title":"Authentication"},{"location":"getting-started/ios/authentication/#authenticating-with-apple-services","text":"Several fastlane actions communicate with Apple services that need authentication. As this can pose several challenges especially on CI, this document focuses on those challenges, but everything described here can be done on your local machine as well. There are 4 ways to connect to Apple services:","title":"Authenticating with Apple services"},{"location":"getting-started/ios/beta-deployment/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 iOS Beta deployment using fastlane Building your app fastlane takes care of building your app using an action called build_app , just add the following to your Fastfile : lane :beta do build_app(scheme: \"MyApp\") end Additionally you can specify more options for building your app, for example lane :beta do build_app(scheme: \"MyApp\", workspace: \"Example.xcworkspace\", include_bitcode: true) end Try running the lane using fastlane beta If everything works, you should have a [ProductName].ipa file in the current directory. To get a list of all available parameters for build_app , run fastlane action build_app . Codesigning Chances are that something went wrong because of code signing at the previous step. We prepared our own Code Signing Guide that helps you setting up the right code signing approach for your project. Uploading your app After building your app, it's ready to be uploaded to a beta testing service of your choice. The beauty of fastlane is that you can easily switch beta provider, or even upload to multiple at once, without any extra work. All you have to do is to put the name of the beta testing provider of your choice after building the app using build_app : lane :beta do sync_code_signing(type: \"appstore\") # see code signing guide for more information build_app(scheme: \"MyApp\") upload_to_testflight slack(message: \"Successfully distributed a new beta build\") end fastlane automatically passes on information about the generated .ipa file from build_app to the beta testing provider of your choice. To get a list of all available parameters for a given action, run fastlane action slack Beta testing services TestFlight You can easily upload new builds to TestFlight (which is part of App Store Connect) using fastlane . To do so, just use the built-in testflight action after building your app lane :beta do # ... build_app upload_to_testflight end Some example use cases lane :beta do # ... build_app # Variant 1: Provide a changelog to your build upload_to_testflight(changelog: \"Add rocket emoji\") # Variant 2: Skip the \"Waiting for processing\" of the binary # While this will speed up your build, it will not distribute # the binary to your tests, nor set a changelog upload_to_testflight(skip_waiting_for_build_processing: true) end If you used fastlane init to setup fastlane , your Apple ID is stored in the fastlane/Appfile . You can also overwrite the username, using upload_to_testflight(username: \"bot@fastlane.tools\") . To get a list of all available options, run fastlane action upload_to_testflight With fastlane , you can also automatically manage your beta testers, check out the other actions available. Firebase App Distribution Install the Firebase App Distribution plugin: fastlane add_plugin firebase_app_distribution Authenticate with Firebase by running the firebase_app_distribution_login action (or using one of the other authentication methods ): fastlane run firebase_app_distribution_login Then add the firebase_app_distribution action to your lane: lane :beta do # ... build_app firebase_app_distribution( app: \"1:123456789:ios:abcd1234\", groups: \"qa-team, trusted-testers\" ) # ... end For more information and options (such as adding release notes) see the full Getting Started guide. HockeyApp lane :beta do # ... build_app hockey(api_token: \"[insert_key_here]\") end To get your API token, open API Tokens in Account Settings . From there, you can find your existing API token, or create a new one. To get a list of all available options see the hockey action docs , or run fastlane action hockey TestFairy lane :beta do # ... build_app testfairy(api_key: \"[insert_key_here]\") # Variant 1: Provide a changelog testfairy(api_key: \"[insert_key_here]\", comment: \"Add rocket emoji\") # Variant 2: Specify tester groups testfairy(api_key: \"[insert_key_here]\", testers_groups: [\"group1\"]) end To get a list of all available options, run fastlane action testfairy More information about the service on TestFairy.com . More information about additional supported beta testing services can be found in the list of \"Beta\" actions Release Notes Automatically based on git commits Your changelog changes, so it doesn't make a lot of sense to store a static release note in the Fastfile . lane :beta do sync_code_signing build_app changelog_from_git_commits # this will generate the changelog based on your last commits upload_to_testflight end Get a list of all available options using fastlane action changelog_from_git_commits , here are some examples changelog_from_git_commits( between: ['7b092b3', 'HEAD'], # Optional, lets you specify a revision/tag range between which to collect commit info merge_commit_filtering: 'exclude_merges' # Optional, lets you filter out merge commits ) Prompt for changelog You can automatically be asked for the changelog in your terminal using the prompt action: lane :beta do # Variant 1: Ask for a one line input changelog = prompt(text: \"Changelog: \") # Variant 2: Ask for a multi-line input # The user confirms their input by typing `END` and Enter changelog = prompt( text: \"Changelog: \", multi_line_end_keyword: \"END\" ) sync_code_signing build_app upload_to_testflight(changelog: changelog) end Fetching the changelog from the file system or remote server You can fetch values from anywhere in your Fastfile , including the file system and remote server lane :beta do # Variant 1: Read from file system # note the `..`, since fastlane runs in the _fastlane_ directory changelog = File.read(\"../Changelog.txt\") # Variant 2: Fetch data from a remote web server changelog = download(url: \"https://lookatmycms.com/changelog.txt\") sync_code_signing build_app upload_to_testflight(changelog: changelog) end Best Practices Manage devices and testers using fastlane TestFlight If you're using TestFlight you don't need to worry about UDIDs of your devices. Instead you just maintain a list of testers based on their Apple ID email address. fastlane supports automatically registering devices using different approaches boarding boarding allows you set up a registration page for your beta testers, so they can enter their email address and start testing your application. Check out the boarding GitHub repo for more information. pilot pilot is automatically installed with fastlane , you can use it to register individual testers to TestFlight # Register a new external tester fastlane pilot add email@invite.com # Register a new external tester and add them to your app fastlane pilot add email@invite.com -a com.app.name Third party beta testing services If you're using a third party beta testing service, you'll need to manage your registered devices and their UDIDs. fastlane already supports device registrations and updating provisioning profiles out of the box. lane :beta do # Before calling match, we make sure all our devices are registered on the Apple Developer Portal register_devices(devices_file: \"devices.txt\") # After registering the new devices, we'll make sure to update the provisioning profile if necessary # Note how we make sure to pass \"adhoc\" to get and use a provisioning profile for Ad Hoc distribution sync_code_signing(force_for_new_devices: true, type: \"adhoc\") build_app # ... end The devices.txt should look like this: Device ID Device Name A123456789012345678901234567890123456789 DeviceName1 B123456789012345678901234567890123456789 DeviceName2 Incrementing the build number Depending on the beta testing service you use, you'll have to increment the build number each time you upload a new build. This is a requirement for TestFlight for example. To do so, there are some built-in fastlane actions available, here are some examples Fetching the latest build number from TestFlight The code sample below will use the latest build number from TestFlight and temporarily set it. lane :beta do increment_build_number( build_number: latest_testflight_build_number + 1, xcodeproj: \"Example.xcodeproj\" ) end Committing the build number to version control The code sample below will increment the build number and commit the project changes to version control. lane :beta do # Ensure that your git status is not dirty ensure_git_status_clean # Increment the build number (not the version number) # Providing the xcodeproj is optional increment_build_number(xcodeproj: \"Example.xcodeproj\") # Commit the version bump commit_version_bump(xcodeproj: \"Example.xcodeproj\") # Add a git tag for this build. This will automatically # use an appropriate git tag name add_git_tag # Push the new commit and tag back to your git remote push_to_git_remote end For all the steps above, there are more parameters available, run the following to get a full list: fastlane action [action_name] Use the number of commits This isn't recommended, however some teams prefer this approach. You can use the number of commits of the current branch (via number_of_commits ) as the build number. This will only work if you always run the build on the same branch. lane :beta do increment_build_number(build_number: number_of_commits) end","title":"Beta Deployment"},{"location":"getting-started/ios/beta-deployment/#ios-beta-deployment-using-fastlane","text":"","title":"iOS Beta deployment using fastlane"},{"location":"getting-started/ios/beta-deployment/#building-your-app","text":"fastlane takes care of building your app using an action called build_app , just add the following to your Fastfile : lane :beta do build_app(scheme: \"MyApp\") end Additionally you can specify more options for building your app, for example lane :beta do build_app(scheme: \"MyApp\", workspace: \"Example.xcworkspace\", include_bitcode: true) end Try running the lane using fastlane beta If everything works, you should have a [ProductName].ipa file in the current directory. To get a list of all available parameters for build_app , run fastlane action build_app .","title":"Building your app"},{"location":"getting-started/ios/beta-deployment/#uploading-your-app","text":"After building your app, it's ready to be uploaded to a beta testing service of your choice. The beauty of fastlane is that you can easily switch beta provider, or even upload to multiple at once, without any extra work. All you have to do is to put the name of the beta testing provider of your choice after building the app using build_app : lane :beta do sync_code_signing(type: \"appstore\") # see code signing guide for more information build_app(scheme: \"MyApp\") upload_to_testflight slack(message: \"Successfully distributed a new beta build\") end fastlane automatically passes on information about the generated .ipa file from build_app to the beta testing provider of your choice. To get a list of all available parameters for a given action, run fastlane action slack","title":"Uploading your app"},{"location":"getting-started/ios/beta-deployment/#release-notes","text":"Automatically based on git commits Your changelog changes, so it doesn't make a lot of sense to store a static release note in the Fastfile . lane :beta do sync_code_signing build_app changelog_from_git_commits # this will generate the changelog based on your last commits upload_to_testflight end Get a list of all available options using fastlane action changelog_from_git_commits , here are some examples changelog_from_git_commits( between: ['7b092b3', 'HEAD'], # Optional, lets you specify a revision/tag range between which to collect commit info merge_commit_filtering: 'exclude_merges' # Optional, lets you filter out merge commits ) Prompt for changelog You can automatically be asked for the changelog in your terminal using the prompt action: lane :beta do # Variant 1: Ask for a one line input changelog = prompt(text: \"Changelog: \") # Variant 2: Ask for a multi-line input # The user confirms their input by typing `END` and Enter changelog = prompt( text: \"Changelog: \", multi_line_end_keyword: \"END\" ) sync_code_signing build_app upload_to_testflight(changelog: changelog) end Fetching the changelog from the file system or remote server You can fetch values from anywhere in your Fastfile , including the file system and remote server lane :beta do # Variant 1: Read from file system # note the `..`, since fastlane runs in the _fastlane_ directory changelog = File.read(\"../Changelog.txt\") # Variant 2: Fetch data from a remote web server changelog = download(url: \"https://lookatmycms.com/changelog.txt\") sync_code_signing build_app upload_to_testflight(changelog: changelog) end","title":"Release Notes"},{"location":"getting-started/ios/beta-deployment/#best-practices","text":"Manage devices and testers using fastlane TestFlight If you're using TestFlight you don't need to worry about UDIDs of your devices. Instead you just maintain a list of testers based on their Apple ID email address. fastlane supports automatically registering devices using different approaches","title":"Best Practices"},{"location":"getting-started/ios/fastlane-swift/","text":"Getting Started with Fastlane.swift (beta) Welcome to Fastlane.swift. Fastlane.swift allows you to write your fastlane configuration using Xcode, in Swift - the language you have come to know and love from the world of iOS development. Fastlane.swift is currently in beta. Please provide feedback by opening an issue in the fastlane repo . Currently Supported Fastlane.swift currently supports all built-in fastlane actions and 3rd party plugins . Make sure to update to the most recent fastlane release to try these features. Get Started (Xcode) Step 1 Run the following command in your terminal: fastlane init swift Step 2 Open the file located at [project]/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj to configure your lanes in Fastfile.swift . func betaLane() { desc(\"Submit a new Beta Build to Apple TestFlight. This will also make sure the profile is up to date\") syncCodeSigning(gitUrl: \"URL/for/your/git/repo\", appIdentifier: [appIdentifier], username: appleID) // Build your app - more options available buildIosApp(scheme: \"SchemeName\") uploadToTestflight(username: appleID) // You can also use other beta testing services here (run `fastlane actions`) } Step 3 Run fastlane in your terminal to execute fastlane . Step 4 \ud83c\udf89 Get Started (SPM) (Beta) Swift Package Manager (SPM) support adds the ability to distribute fastlane as a Swift Package Manager package, which allows other packages to integrate with the toolset. Step 1 Create an executable Swift Package Manager project with swift package init --type executable . Step 2 Add the fastlane dependency to your Package.swift . .package(name: \"Fastlane\", url: \"https://github.com/fastlane/fastlane\", from: \"2.179.0\") A full example of a working package description would be the following. // swift-tools-version:5.2 import PackageDescription let package = Package( name: \"fastlaneRunner\", products: [ .executable(name: \"fastlaneRunner\", targets: [\"fastlaneRunner\"]) ], dependencies: [ .package(name: \"Fastlane\", url: \"https://github.com/fastlane/fastlane\", from: \"2.179.0\") ], targets: [ .target( name: \"fastlaneRunner\", dependencies: [\"Fastlane\"], path: \"Sources/Thingy\" ) ] ) Step 3 Create your Fastfile.swift file in your package and add the desired lanes, as follows. import Fastlane // Create a class with: class FastFile: LaneFile { // Your lanes goes here. } Step 4 Add an entry point ( @main ) or a main.swift file (mandatory for executable SPM packages) and don't forget to start the fastlane runloop as follows: import Fastlane Main().run(with: Fastfile()) Step 5 Modify the target of your executable to have executable arguments lane myLane or add them in the call after making swift build . myExecutable lane myLane Notes: You can edit the created Package.swift file to add your desired dependencies so you can use them in the Fastfile. If you want to just push your Package.swift and Package.resolved to the repo, you'd need to swift build the package to create your executable again which can be found in the .debug or .release folders, depending on how you built the package ( .debug by default). Defining Lanes Lanes are defined with functions that end with Lane within the class Fastfile: LaneFile . class Fastfile: LaneFile { func testLane() { desc(\"This is a lane\") } func helper() { // This is not a lane but can be called from a lane } } Passing Parameters To pass parameters from the command line to your lane, use the following syntax: fastlane [lane] key:value key2:value2 fastlane deploy submit:false build_number:24 To access those values, change your lane declaration to also include withOptions options:[String: String]? class Fastfile: LaneFile { func deployLane(withOptions options:[String: String]?) { // ... if let submit = options?[\"submit\"], submit == \"true\" { // Only when submit is true } // ... incrementBuildNumber(buildNumber: options?[\"build_number\"]) // ... } } Using Plugins Once you add a plugin , fastlane will automatically generate the corresponding API and make it available in fastlane/swift/Plugins.swift . Example: bundle exec fastlane add_plugin ascii_art The fastlane/swift/Plugins.swift file should now contain the function asciiArt() , and you can access it in your lanes in fastlane/Fastlane.swift . Run Parallel Fastlane Swift uses socket internally. Therefore, for several Lane s to run in parallel at the same time, each Lane must be specified different socket port (lane's default socket port is 2000 ) To specify socket port from the command line to your lane, use the following syntax: fastlane [lane] --swift_server_port [socket port] We Would Love Your Feedback Please feel free to open an issue on GitHub to report any problems you are having with Fastlane.swift and we will respond as quickly as possible.","title":"Swift"},{"location":"getting-started/ios/fastlane-swift/#getting-started-with-fastlaneswift-beta","text":"Welcome to Fastlane.swift. Fastlane.swift allows you to write your fastlane configuration using Xcode, in Swift - the language you have come to know and love from the world of iOS development. Fastlane.swift is currently in beta. Please provide feedback by opening an issue in the fastlane repo .","title":"Getting Started with Fastlane.swift (beta)"},{"location":"getting-started/ios/running-tests/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 Running iOS tests using fastlane To run your unit tests or UI tests using fastlane, add the following to your Fastfile lane :tests do run_tests(scheme: \"MyAppTests\") end Additionally you can specify more options for building and testing your app, for example lane :tests do run_tests(workspace: \"Example.xcworkspace\", devices: [\"iPhone 6s\", \"iPad Air\"], scheme: \"MyAppTests\") end Check out the list of all available parameters To use the newly created lane, just run fastlane tests Setting up fastlane to run on CI To run iOS tests using fastlane on a Continuous Integration service, check out the Continuous Integration docs . Since fastlane stores all configuration in simple configuration files, and runs via the command line, it supports every kind of CI system. We also prepared some docs to help you get started with some of the popular CI systems. Self-Hosted CIs Jenkins Bamboo GitLab Hosted CIs Circle Travis Visual Studio If your CI system isn't listed here, no problem, fastlane runs on any CI. To trigger fastlane , just add the command you would usually run from your terminal: fastlane tests Setting up the environment Support for Two-step or Two-factor auth Environment variables to set Posting build results If you want to post test results on Slack, Hipchat or other team chat client, check out the available fastlane actions . Build failures Slack If you're using Slack, this is already built-into the default run_tests action, just provide your Slack URL: lane :tests do run_tests(scheme: \"MyAppTests\", slack_url: \"https://hooks.slack.com/services/T03N...\", slack_channel: \"#channel\") end To get the slack_url , create an Incoming WebHook for your Slack group. Other services To post a message when fastlane encounters a test or build failure, add the following to your Fastfile : error do |ex| hipchat(message: \"Tests have failed!\", channel: \"Room or @username\", success: false) end The above example uses Hipchat, but fastlane supports many other services out there .","title":"Running Tests"},{"location":"getting-started/ios/running-tests/#running-ios-tests-using-fastlane","text":"To run your unit tests or UI tests using fastlane, add the following to your Fastfile lane :tests do run_tests(scheme: \"MyAppTests\") end Additionally you can specify more options for building and testing your app, for example lane :tests do run_tests(workspace: \"Example.xcworkspace\", devices: [\"iPhone 6s\", \"iPad Air\"], scheme: \"MyAppTests\") end Check out the list of all available parameters To use the newly created lane, just run fastlane tests","title":"Running iOS tests using fastlane"},{"location":"getting-started/ios/screenshots/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 screenshots for iOS and tvOS Your App Store screenshots are probably the most important thing when it comes to convincing potential users to download or purchase your app. Unfortunately, many apps don't do screenshots well. This is often because taking screenshots of your app and then preparing them for display is time consuming, and it's hard to get everything right and consistent! For example: Are the screenshots in the App Store inconsistent with your latest app design? Is your app localized into many languages that require different screenshots for each? Have you made sure that no loading indicators are showing? Is the same content displayed for each of your size variations? fastlane tools can automate this process making it fast, and consistent while giving you beautiful results! Alternatives For the full story about the many ways that developers can capture and beautify screenshots check out this article . Manually Capturing Screenshots Manually taking screenshots takes too much time, which also decreases the quality of the screenshots. Since it is not automated, the screenshots will show slightly different content on the various devices and languages. Many companies choose to create screenshots in one language and use them for all languages. While this might seem okay to us developers, there are many potential users out there that cannot read the text on your app screenshots if they are not localised. Have you ever looked at a screenshot with content in a language you don't know? It won't convince you to download the app. However, the biggest disadvantage of this method is what happens when you need to repeat the process. If you notice a spelling mistake in the screenshots, if you release an update with a new design, or if you just want to show more up to date content, you'll have to create new screenshots for all languages and devices... manually. The positive side of this approach is that your screenshots will all be crisp and correctly sized, with readable text. Scaled Screenshots via App Store Connect App Store Connect allows you to use one set of screenshots per device type, which will then be scaled to the appropriate size when viewed in the App Store on a user's device. While this is convenient, this approach has the same problems as the device frame approach: The screenshots don't actually show how the app looks on the user's device. It's a valid way to start though, since you can gradually overwrite screenshots for specific languages and devices. Capture Screenshots Automatically snapshot works with fastlane to automate the process of capturing screenshots of your app. It allows you to: Capture hundreds of screenshots in multiple languages on all simulators Take screenshots in multiple device simulators concurrently to cut down execution time Do something else while the computer takes the screenshots for you Configure it once, and store the configuration so anyone on the team can run it Generate a beautiful web page showing all screenshots on all devices. This is perfect to send to Q&A, marketing, or translators for verification Avoid having loading indicators in your App Store screenshots by intelligently waiting for network requests to be finished Get a summary of how your app looks like across all supported devices and languages After snapshot successfully captures all the screenshots, it will show you a beautiful HTML page to summarize all the screens that were captured: Getting Started Using UI Tests snapshot uses the capabilities of Apple's UI Tests to drive interactions with your app. To get familiar with writing UI Tests, check out the following introductions: WWDC 2015 Introduction to UI Tests A first look into UI Tests UI Testing in Xcode 7 HSTestingBackchannel : \u2018Cheat\u2019 by communicating directly with your app Automating App Store screenshots using fastlane snapshot and frameit To jump-start your UI tests, you can use the UI Test recorder, which you can start by clicking the red record button on the bottom of the window. By interacting with your app through the simulator while using it, Xcode will generate UI Test code for you. To learn more, check out this this blog post ! Setting Up snapshot Create a new UI Test target in your Xcode project (See the top part of this article ) Run fastlane snapshot init in your project folder Add the ./SnapshotHelper.swift file to your UI Test target (You can move the file anywhere you want) Add a new Xcode scheme for the newly created UI Test target Edit the scheme In the list on the left click \"Build\", and enable the checkbox under the \"Run\" column for your target. Enable the Shared box of the newly created scheme (Objective C only) Add the bridging header to your test class. #import \"MYUITests-Swift.h\" The bridging header is named after your test target with -Swift.h appended. In your UI Test class, click the Record button on the bottom left and record your interaction To take a screenshot, call the following between interactions Swift: snapshot(\"01LoginScreen\") Objective C: [Snapshot snapshot:@\"01LoginScreen\" timeWaitingForIdle:10]; Add the following code to your setUp() method: Swift: let app = XCUIApplication() setupSnapshot(app) app.launch() Objective C: XCUIApplication *app = [[XCUIApplication alloc] init]; [Snapshot setupSnapshot:app waitForAnimations:NO]; [app launch]; 12. In the terminal run fastlane snapshot . WARNING: Running the test in Xcode does not create the snapshots and will not generate the correct results - although no tests will fail. The command line program creates the necessary subdirectories, renames the files as appropriate, and generates the overview html page. The setup process will also generate a Snapfile , looking similar to # A list of devices you want to take the screenshots from # devices([ # \"iPad (7th generation)\", # \"iPad Air (3rd generation)\", # \"iPad Pro (11-inch)\", # \"iPad Pro (12.9-inch) (3rd generation)\", # \"iPad Pro (9.7-inch)\", # \"iPhone 11\", # \"iPhone 11 Pro\", # \"iPhone 11 Pro Max\", # \"iPhone 8\", # \"iPhone 8 Plus\" # ]) languages([ \"en-US\", \"de-DE\" ]) # The name of the scheme which contains the UI Tests # scheme \"SchemeName\" # Where should the resulting screenshots be stored? # output_directory \"./screenshots\" # clear_previous_screenshots true # remove the '#' to clear all previously generated screenshots before creating new ones # Choose which project/workspace to use # project \"./Project.xcodeproj\" # workspace \"./Project.xcworkspace\" # For more information about all available options run # fastlane action snapshot You can adapt this file to fit your project. Every time you run fastlane snapshot the file will be loaded automatically. For a list of all available parameters that can be used in the Snapfile run fastlane action snapshot . If you have fastlane installed, it's easy to give snapshot a try. First clone the fastlane repo, head over to the snapshot example project, and then run fastlane snapshot git clone https://github.com/fastlane/fastlane # Clone the fastlane repo cd fastlane/snapshot/example # Navigate to the example project fastlane snapshot # Generate screenshots for the sample app Upload Screenshots to the App Store After generating your screenshots using fastlane snapshot , you usually want to upload them to App Store Connect. If you followed the setup guide, you already ran fastlane init before, so you should have your existing screenshots and metadata inside the fastlane/screenshots and fastlane/metadata directory. Running fastlane snapshot will store the screenshots in the fastlane/screenshots directory by default. To upload the screenshots stored in fastlane/screenshots , just run fastlane deliver This will also show you a metadata summary, before actually uploading the screenshots, as this will overwrite the metadata and screenshots you already have on App Store Connect. Use in Fastfile To put all of this together so that anyone on your team could trigger generating and uploading new screenshots, you can define a fastlane lane called screenshots . It would be responsible for: Running your app through snapshot to automatically capture your screenshots Having deliver send your final screenshots to App Store Connect for use in the App Store Add the following code to your fastlane/Fastfile : lane :screenshots do capture_screenshots upload_to_app_store end To get a list of all available options for each of the steps, run fastlane action capture_screenshots fastlane action upload_to_app_store Put Your Screenshots Into Device Frames frameit helps you beautify your screenshots with device frames and text by running one simple command. It provides support for: Multiple device types Portrait and landscape orientations Black and silver devices Setting a background color and decorating the image with text Usage To automatically add device frames around all screenshots in the current directory and its subdirectories, just run: fastlane frameit This will only add a device frame around the screenshots, not the background and title. Those images can be used for your website, email newsletter and similar. If you want to implement the custom titles and background, you'll have to setup a Framefile.json , more information can be found here . If you want to upload the screenshots to the App Store, you have to provide a Framefile.json , with titles and background, otherwise the resolution of the framed screenshots doesn't match the requirements of App Store Connect. Dependencies Installing ImageMagick To perform image manipulation, frameit depends on a tool called imagemagick . The easiest way to install it is through homebrew : brew install libpng jpeg imagemagick Troubleshooting ImageMagick If you have installed imagemagick but are seeing error messages like: mogrify: no decode delegate for this image format `PNG' You may need to reinstall and build from source. Run: brew uninstall imagemagick; brew install libpng jpeg; brew install imagemagick --build-from-source Setting Up Device Frames To download the latest device frames, you can run fastlane frameit setup This usually happens automatically when you use frameit for the first time on a new machine To add the framing to your deployment process, use the following code in your Fastfile : lane :screenshots do capture_screenshots frame_screenshots(white: true) upload_to_app_store end To get a list of all available options for frame_screenshots (which calls into frameit ) fastlane action frame_screenshots Advanced snapshot Sample uses lane :screenshots do capture_screenshots end Your screenshots will be stored in the ./screenshots/ folder by default (or ./fastlane/screenshots if you're using fastlane ) If any error occurs while running the snapshot script on a device, that device will not have any screenshots, and snapshot will continue with the next device or language. To stop the flow after the first error, run capture_screenshots(stop_after_first_error: true) Also by default, snapshot will open the HTML after all is done. This can be skipped with the following command capture_screenshots(skip_open_summary: true) There are a lot of options available that define how to build your app, for example capture_screenshots(scheme: \"UITests\", configuration: \"Release\", sdk: \"iphonesimulator\") Reinstall the app before running snapshot capture_screenshots(reinstall_app: true, app_identifier: \"tools.fastlane.app\") By default snapshot automatically retries running UI Tests if they fail. This is due to randomly failing UI Tests (e.g. #372 ). You can adapt this number using capture_screenshots(number_of_retries: 3) Add photos and/or videos to the simulator before running snapshot capture_screenshots(add_photos: \"MyTestApp/demo.jpg\", add_videos: \"MyTestApp/demo.mp4\") For a list for all available options run fastlane action capture_screenshots Reset Xcode simulators You can run this command in the terminal to delete and re-create all iOS simulators. This is useful when Xcode duplicated your local simulators. fastlane snapshot reset_simulators Launch Arguments You can provide additional arguments to your app on launch. These strings will be available in your app (eg. not in the testing target) through ProcessInfo.processInfo.arguments . Alternatively, use user-default syntax ( -key value ) and they will be available as key-value pairs in UserDefaults.standard . launch_arguments([ \"-firstName Felix -lastName Krause\" ]) name.text = UserDefaults.standard.string(forKey: \"firstName\") // name.text = \"Felix\" snapshot includes -FASTLANE_SNAPSHOT YES , which will set a temporary user default for the key FASTLANE_SNAPSHOT , you may use this to detect when the app is run by snapshot . if UserDefaults.standard.bool(forKey: \"FASTLANE_SNAPSHOT\") { // runtime check that we are in snapshot mode } Specify multiple argument strings and snapshot will generate screenshots for each combination of arguments, devices, and languages. This is useful for comparing the same screenshots with different feature flags, dynamic text sizes, and different data sets. # Snapfile for A/B Test Comparison launch_arguments([ \"-secretFeatureEnabled YES\", \"-secretFeatureEnabled NO\" ]) Update snapshot helpers Some updates require the helper files to be updated. snapshot will automatically warn you and tell you how to update. Basically you can run fastlane snapshot update to update your SnapshotHelper.swift files. In case you modified your SnapshotHelper.swift and want to manually update the file, check out SnapshotHelper.swift . Clean status bar To clean the status bar (9:41, full battery and full signal), use the override_status_bar parameter . How does snapshot work? The easiest solution would be to just render the UIWindow into a file. That's not possible because UI Tests don't run on a main thread. So snapshot uses a different approach: When you run unit tests in Xcode, the reporter generates a plist file, documenting all events that occurred during the tests ( More Information ). Additionally, Xcode generates screenshots before, during and after each of these events. There is no way to manually trigger a screenshot event. The screenshots and the plist files are stored in the DerivedData directory, which snapshot stores in a temporary folder. When the user calls snapshot(...) in the UI Tests (Swift or Objective C) the script actually does a rotation to .Unknown which doesn't have any effect on the actual app, but is enough to trigger a screenshot. It has no effect to the application and is not something you would do in your tests. The goal was to find some event that a user would never trigger, so that we know it's from snapshot . On tvOS, there is no orientation so we ask for a count of app views with type \"Browser\" (which should never exist on tvOS). snapshot then iterates through all test events and check where we either did this weird rotation (on iOS) or searched for browsers (on tvOS). Once snapshot has all events triggered by snapshot it collects a ordered list of all the file names of the actual screenshots of the application. In the test output, the Swift snapshot function will print out something like this snapshot: [some random text here] snapshot finds all these entries using a regex. The number of snapshot outputs in the terminal and the number of snapshot events in the plist file should be the same. Knowing that, snapshot automatically matches these 2 lists to identify the name of each of these screenshots. They are then copied over to the output directory and separated by language and device. Two things have to be passed on from snapshot to the xcodebuild command line tool: The device type is passed via the destination parameter of the xcodebuild parameter The language is passed via a temporary file which is written by snapshot before running the tests and read by the UI Tests when launching the application If you find a better way to do any of this, please submit an issue on GitHub or even a pull request :+1: Also, feel free to duplicate radar 23062925 .","title":"Screenshots"},{"location":"getting-started/ios/screenshots/#fastlane-screenshots-for-ios-and-tvos","text":"Your App Store screenshots are probably the most important thing when it comes to convincing potential users to download or purchase your app. Unfortunately, many apps don't do screenshots well. This is often because taking screenshots of your app and then preparing them for display is time consuming, and it's hard to get everything right and consistent! For example: Are the screenshots in the App Store inconsistent with your latest app design? Is your app localized into many languages that require different screenshots for each? Have you made sure that no loading indicators are showing? Is the same content displayed for each of your size variations? fastlane tools can automate this process making it fast, and consistent while giving you beautiful results!","title":"fastlane screenshots for iOS and tvOS"},{"location":"getting-started/ios/screenshots/#capture-screenshots-automatically","text":"snapshot works with fastlane to automate the process of capturing screenshots of your app. It allows you to: Capture hundreds of screenshots in multiple languages on all simulators Take screenshots in multiple device simulators concurrently to cut down execution time Do something else while the computer takes the screenshots for you Configure it once, and store the configuration so anyone on the team can run it Generate a beautiful web page showing all screenshots on all devices. This is perfect to send to Q&A, marketing, or translators for verification Avoid having loading indicators in your App Store screenshots by intelligently waiting for network requests to be finished Get a summary of how your app looks like across all supported devices and languages After snapshot successfully captures all the screenshots, it will show you a beautiful HTML page to summarize all the screens that were captured:","title":"Capture Screenshots Automatically"},{"location":"getting-started/ios/screenshots/#upload-screenshots-to-the-app-store","text":"After generating your screenshots using fastlane snapshot , you usually want to upload them to App Store Connect. If you followed the setup guide, you already ran fastlane init before, so you should have your existing screenshots and metadata inside the fastlane/screenshots and fastlane/metadata directory. Running fastlane snapshot will store the screenshots in the fastlane/screenshots directory by default. To upload the screenshots stored in fastlane/screenshots , just run fastlane deliver This will also show you a metadata summary, before actually uploading the screenshots, as this will overwrite the metadata and screenshots you already have on App Store Connect.","title":"Upload Screenshots to the App Store"},{"location":"getting-started/ios/screenshots/#use-in-fastfile","text":"To put all of this together so that anyone on your team could trigger generating and uploading new screenshots, you can define a fastlane lane called screenshots . It would be responsible for: Running your app through snapshot to automatically capture your screenshots Having deliver send your final screenshots to App Store Connect for use in the App Store Add the following code to your fastlane/Fastfile : lane :screenshots do capture_screenshots upload_to_app_store end To get a list of all available options for each of the steps, run fastlane action capture_screenshots fastlane action upload_to_app_store","title":"Use in Fastfile"},{"location":"getting-started/ios/screenshots/#put-your-screenshots-into-device-frames","text":"frameit helps you beautify your screenshots with device frames and text by running one simple command. It provides support for: Multiple device types Portrait and landscape orientations Black and silver devices Setting a background color and decorating the image with text","title":"Put Your Screenshots Into Device Frames"},{"location":"getting-started/ios/screenshots/#advanced-snapshot","text":"Sample uses lane :screenshots do capture_screenshots end Your screenshots will be stored in the ./screenshots/ folder by default (or ./fastlane/screenshots if you're using fastlane ) If any error occurs while running the snapshot script on a device, that device will not have any screenshots, and snapshot will continue with the next device or language. To stop the flow after the first error, run capture_screenshots(stop_after_first_error: true) Also by default, snapshot will open the HTML after all is done. This can be skipped with the following command capture_screenshots(skip_open_summary: true) There are a lot of options available that define how to build your app, for example capture_screenshots(scheme: \"UITests\", configuration: \"Release\", sdk: \"iphonesimulator\") Reinstall the app before running snapshot capture_screenshots(reinstall_app: true, app_identifier: \"tools.fastlane.app\") By default snapshot automatically retries running UI Tests if they fail. This is due to randomly failing UI Tests (e.g. #372 ). You can adapt this number using capture_screenshots(number_of_retries: 3) Add photos and/or videos to the simulator before running snapshot capture_screenshots(add_photos: \"MyTestApp/demo.jpg\", add_videos: \"MyTestApp/demo.mp4\") For a list for all available options run fastlane action capture_screenshots Reset Xcode simulators You can run this command in the terminal to delete and re-create all iOS simulators. This is useful when Xcode duplicated your local simulators. fastlane snapshot reset_simulators Launch Arguments You can provide additional arguments to your app on launch. These strings will be available in your app (eg. not in the testing target) through ProcessInfo.processInfo.arguments . Alternatively, use user-default syntax ( -key value ) and they will be available as key-value pairs in UserDefaults.standard . launch_arguments([ \"-firstName Felix -lastName Krause\" ]) name.text = UserDefaults.standard.string(forKey: \"firstName\") // name.text = \"Felix\" snapshot includes -FASTLANE_SNAPSHOT YES , which will set a temporary user default for the key FASTLANE_SNAPSHOT , you may use this to detect when the app is run by snapshot . if UserDefaults.standard.bool(forKey: \"FASTLANE_SNAPSHOT\") { // runtime check that we are in snapshot mode } Specify multiple argument strings and snapshot will generate screenshots for each combination of arguments, devices, and languages. This is useful for comparing the same screenshots with different feature flags, dynamic text sizes, and different data sets. # Snapfile for A/B Test Comparison launch_arguments([ \"-secretFeatureEnabled YES\", \"-secretFeatureEnabled NO\" ]) Update snapshot helpers Some updates require the helper files to be updated. snapshot will automatically warn you and tell you how to update. Basically you can run fastlane snapshot update to update your SnapshotHelper.swift files. In case you modified your SnapshotHelper.swift and want to manually update the file, check out SnapshotHelper.swift . Clean status bar To clean the status bar (9:41, full battery and full signal), use the override_status_bar parameter . How does snapshot work? The easiest solution would be to just render the UIWindow into a file. That's not possible because UI Tests don't run on a main thread. So snapshot uses a different approach: When you run unit tests in Xcode, the reporter generates a plist file, documenting all events that occurred during the tests ( More Information ). Additionally, Xcode generates screenshots before, during and after each of these events. There is no way to manually trigger a screenshot event. The screenshots and the plist files are stored in the DerivedData directory, which snapshot stores in a temporary folder. When the user calls snapshot(...) in the UI Tests (Swift or Objective C) the script actually does a rotation to .Unknown which doesn't have any effect on the actual app, but is enough to trigger a screenshot. It has no effect to the application and is not something you would do in your tests. The goal was to find some event that a user would never trigger, so that we know it's from snapshot . On tvOS, there is no orientation so we ask for a count of app views with type \"Browser\" (which should never exist on tvOS). snapshot then iterates through all test events and check where we either did this weird rotation (on iOS) or searched for browsers (on tvOS). Once snapshot has all events triggered by snapshot it collects a ordered list of all the file names of the actual screenshots of the application. In the test output, the Swift snapshot function will print out something like this snapshot: [some random text here] snapshot finds all these entries using a regex. The number of snapshot outputs in the terminal and the number of snapshot events in the plist file should be the same. Knowing that, snapshot automatically matches these 2 lists to identify the name of each of these screenshots. They are then copied over to the output directory and separated by language and device. Two things have to be passed on from snapshot to the xcodebuild command line tool: The device type is passed via the destination parameter of the xcodebuild parameter The language is passed via a temporary file which is written by snapshot before running the tests and read by the UI Tests when launching the application If you find a better way to do any of this, please submit an issue on GitHub or even a pull request :+1: Also, feel free to duplicate radar 23062925 .","title":"Advanced snapshot"},{"location":"getting-started/ios/setup/","text":"Getting started with fastlane for iOS Setup Xcode for fastlane Xcode command line tools (macOS) xcode-select --install Installing fastlane fastlane can be installed in multiple ways. The preferred method is with Bundler . fastlane can also be installed directly through with Homebrew (if on macOS). It is possible to use macOS's system Ruby, but it's not recommended, as it can be hard to manage dependencies, and causes conflicts. Managed Ruby environment + Bundler (macOS/Linux/Windows) Ruby If you use macOS, system Ruby is not recommended. There is a variety of ways to install Ruby without having to modify your system environment . For macOS and Linux, rbenv is one of the most popular ways to manage your Ruby environment. fastlane supports Ruby versions 2.5 or newer. Verify which Ruby version you're using: $ ruby --version ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-darwin19] Bundler It is recommended that you use Bundler and Gemfile to define your dependency on fastlane . This will clearly define the fastlane version to be used and its dependencies, and will also speed up fastlane execution. Install Bundler by running gem install bundler Create a ./Gemfile in the root directory of your project with the content source \"https://rubygems.org\" gem \"fastlane\" Run bundle update and add both the ./Gemfile and the ./Gemfile.lock to version control Every time you run fastlane , use bundle exec fastlane [lane] On your CI, add bundle install as your first build step To update fastlane , just run bundle update fastlane Homebrew (macOS) This way, you don't have to install Ruby separately, and instead homebrew installs the adequate Ruby version for fastlane . See this page for details. brew install fastlane System Ruby + RubyGems (macOS/Linux/Windows) This is not recommended for your local environment, but you can still install fastlane to system Ruby's environment. Using sudo often occurs unwanted results later due to file permission and makes managing your environment harder. sudo gem install fastlane Setting up fastlane Navigate your terminal to your project's directory and run fastlane init Note that if you want to create your first app on your App Store Connect account, you need to set the developer name ( company_name ) with PRODUCE_COMPANY_NAME environment variable: PRODUCE_COMPANY_NAME=\"YOUR COMPANY NAME\" fastlane init To get more information check company_name description in the Create app documentation . To have your Fastfile configuration written in Swift (Beta) fastlane init swift Swift setup is still in beta. See Fastlane.swift docs for more information. Depending on what kind of setup you choose, different files will be set up for you. If you chose to download the existing app metadata, you'll end up with new folders that look like this: The most interesting file is fastlane/Fastfile , which contains all the information that is needed to distribute your app. What's next? fastlane created all the required files for you. Now you can go ahead and customise fastlane to generate screenshots, or automatically distribute new builds, and much, much more. Here're some examples: Generate localized iOS screenshots for the App Store Automatic iOS Beta deployment Automatic iOS App Store deployment Discover all fastlane actions Do note that if the automation you're building requires connectivity with Apple's servers, such as for code signing when building your app, or uploading your app to the App Store Connect, and so on, you will need to authenticate. Check out Authenticating with Apple services to learn the best ways to authenticate, catered for your specific use case. Set up environment variables fastlane requires some environment variables set up to run correctly. In particular, having your locale not set to a UTF-8 locale will cause issues with building and uploading your build. In your shell profile add the following lines: export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8 You can find your shell profile at ~/.bashrc , ~/.bash_profile , ~/.profile or ~/.zshrc depending on your system. Use a Gemfile It is recommended that you use a Gemfile to define your dependency on fastlane . This will clearly define the used fastlane version, and its dependencies, and will also speed up using fastlane . Create a ./Gemfile in the root directory of your project with the content source \"https://rubygems.org\" gem \"fastlane\" Run [sudo] bundle update and add both the ./Gemfile and the ./Gemfile.lock to version control Every time you run fastlane , use bundle exec fastlane [lane] On your CI, add [sudo] bundle install as your first build step To update fastlane , just run [sudo] bundle update fastlane","title":"Setup"},{"location":"getting-started/ios/setup/#getting-started-with-fastlane-for-ios","text":"","title":"Getting started with fastlane for iOS"},{"location":"includes/google-credentials/","text":"Tip: If you see Google Play Console or Google Developer Console in your local language, add &hl=en at the end of the URL (before any #... ) to switch to English. All the links below already have this to make it easier to find the correct buttons. Note: if you face issues when following these instructions, you might want to refer to the official documentation by Google . Open the Google Play Console Click Account Details , and note the Developer Account ID listed there Enable the Google Play Developer API by selecting an existing Google Cloud Project that fits your needs and pushing ENABLE If you don't have an existing project or prefer to have a dedicated one for fastlane , create a new one here and follow the instructions Open Service Accounts on Google Cloud and select the project you'd like to use Click the CREATE SERVICE ACCOUNT button at the top of the Google Cloud Platform Console page Verify that you are on the correct Google Cloud Platform Project by looking for the Developer Account ID from earlier within the light gray text in the second input, preceding .iam.gserviceaccount.com , or by checking the project name in the navigaton bar. If not, open the picker in the top navigation bar, and find the right one. Provide a Service account name (e.g. fastlane-supply) Copy the generated email address that is noted below the Service account-ID field for later use Click DONE (don't click CREATE AND CONTINUE as the optional steps such as granting access are not needed): Click on the Actions vertical three-dot icon of the service account you just created Select Manage keys on the menu Click ADD KEY \u2192 Create New Key Make sure JSON is selected as the Key type , and click CREATE Save the file on your computer when prompted and remember where it was saved at Open the Google Play Console and select Users and Permissions Click Invite new users Paste the email address you saved for later use into the email address field Click on Account Permissions Choose the permissions you'd like this account to have. We recommend Admin (all permissions) , but you may want to manually select all checkboxes and leave out some of the Releases permissions such as Release to production, exclude devices, and use Play App Signing Click on Invite User You can use fastlane run validate_play_store_json_key json_key:/path/to/your/downloaded/file.json to test the connection to Google Play Store with the downloaded private key. Once that works, add the path to the JSON file to your Appfile : json_key_file(\"path/to/your/play-store-credentials.json\") package_name(\"my.package.name\") The path is relative to where you normally run fastlane .","title":"Google credentials"},{"location":"includes/installing-fastlane-ios/","text":"Xcode command line tools (macOS) xcode-select --install","title":"Installing fastlane ios"},{"location":"includes/installing-fastlane/","text":"fastlane can be installed in multiple ways. The preferred method is with Bundler . fastlane can also be installed directly through with Homebrew (if on macOS). It is possible to use macOS's system Ruby, but it's not recommended, as it can be hard to manage dependencies, and causes conflicts. Managed Ruby environment + Bundler (macOS/Linux/Windows) Ruby If you use macOS, system Ruby is not recommended. There is a variety of ways to install Ruby without having to modify your system environment . For macOS and Linux, rbenv is one of the most popular ways to manage your Ruby environment. fastlane supports Ruby versions 2.5 or newer. Verify which Ruby version you're using: $ ruby --version ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-darwin19] Bundler It is recommended that you use Bundler and Gemfile to define your dependency on fastlane . This will clearly define the fastlane version to be used and its dependencies, and will also speed up fastlane execution. Install Bundler by running gem install bundler Create a ./Gemfile in the root directory of your project with the content source \"https://rubygems.org\" gem \"fastlane\" Run bundle update and add both the ./Gemfile and the ./Gemfile.lock to version control Every time you run fastlane , use bundle exec fastlane [lane] On your CI, add bundle install as your first build step To update fastlane , just run bundle update fastlane Homebrew (macOS) This way, you don't have to install Ruby separately, and instead homebrew installs the adequate Ruby version for fastlane . See this page for details. brew install fastlane System Ruby + RubyGems (macOS/Linux/Windows) This is not recommended for your local environment, but you can still install fastlane to system Ruby's environment. Using sudo often occurs unwanted results later due to file permission and makes managing your environment harder. sudo gem install fastlane","title":"Installing fastlane"},{"location":"includes/setup-fastlane-header/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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","title":"Setup fastlane header"},{"location":"plugins/available-plugins/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 Available Plugins 24830 appcenter via Microsoft Corporation Fastlane plugin for App Center Provided actions Name Category Description appcenter_fetch_version_number - Fetches the latest version number of an app or the last build number of a version from App Center appcenter_fetch_devices - Fetches a list of devices from App Center to distribute an iOS app to appcenter_upload - Distribute new release to App Center Score details Metric Points Description contributors 246 The more contributors a project has, the more likely it is it stays alive subscribers 51 More subscribers = more popular project stars 404 More stars = more popular project forks 515 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -49 Lots of open issues are not a good sign usually, unless the project is really popular downloads 23457 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 23982 firebase_app_distribution via Stefan Natchev, Manny Jimenez, Alonso Salas Infante Release your beta builds to Firebase App Distribution. https://firebase.google.com/docs/app-distribution Provided actions Name Category Description firebase_app_distribution_login - Authenticate with Firebase App Distribution using a Google account. firebase_app_distribution_add_testers - Create testers in bulk from a comma-separated list or a file firebase_app_distribution_get_udids - Download the UDIDs of your Firebase App Distribution testers firebase_app_distribution - Release your beta builds with Firebase App Distribution firebase_app_distribution_remove_testers - Delete testers in bulk from a comma-separated list or a file Score details Metric Points Description contributors 84 The more contributors a project has, the more likely it is it stays alive subscribers 36 More subscribers = more popular project stars 97 More stars = more popular project forks 60 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -13 Lots of open issues are not a good sign usually, unless the project is really popular downloads 23556 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 12769 badge via Daniel Griesser Add a badge overlay to your app icon Provided actions Name Category Description add_badge - Automatically add a badge to your app icon Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 175 More stars = more popular project forks 75 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12374 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 12537 versioning via Siarhei Fiedartsou, John Douglas Allows to set/get app version and build number directly to/from Info.plist Provided actions Name Category Description get_version_number_from_git_branch - Extract version number from git branch name increment_build_number_in_xcodeproj - Increment build number in xcodeproj get_version_number_from_plist - Get the version number of your project get_build_number_from_plist - Get the build number of your project ci_build_number building Detects current build number defined by CI system get_version_number_from_xcodeproj - Get the version number of your project increment_version_number_in_xcodeproj - Increment build number in xcodeproj increment_version_number_in_plist - Increment the version number of your project get_app_store_version_number - Get the version number of your app in the App Store get_info_plist_path - Get the version number of your project get_build_number_from_xcodeproj - Get the build number of your project increment_build_number_in_plist - Increment the build number of your project Score details Metric Points Description contributors 90 The more contributors a project has, the more likely it is it stays alive subscribers 18 More subscribers = more popular project stars 381 More stars = more popular project forks 220 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -8 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11655 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 7280 sentry via Sentry Upload symbols to Sentry Provided actions Name Category Description sentry_upload_dsym - Upload dSYM symbolication files to Sentry sentry_set_commits - Set commits of a release sentry_upload_sourcemap - Upload a sourcemap to a release of a project on Sentry sentry_finalize_release - Finalize a release for a project on Sentry sentry_upload_file - Upload files to a release of a project on Sentry sentry_create_deploy - Creates a new release deployment for a project on Sentry sentry_upload_proguard - Upload mapping to a project on Sentry sentry_create_release - Create new releases for a project on Sentry sentry_check_cli_installed - Checks that sentry-cli with the correct version is installed sentry_upload_dif - Upload debugging information files. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 51 More subscribers = more popular project stars 85 More stars = more popular project forks 210 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -17 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6740 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 6980 bugsnag via Delisa Mason Uploads dSYM files to Bugsnag Provided actions Name Category Description upload_symbols_to_bugsnag - Uploads dSYM debug symbol files to Bugsnag send_build_to_bugsnag building Notifies Bugsnag of a build dsym_magic - Sets the dsym path Score details Metric Points Description contributors 96 The more contributors a project has, the more likely it is it stays alive subscribers 63 More subscribers = more popular project stars 30 More stars = more popular project forks 40 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6625 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 6625 aws_s3 via Josh Holtz Upload IPA and APK to S3 Provided actions Name Category Description aws_s3 - Generates a plist file and uploads all to AWS S3 Score details Metric Points Description contributors 150 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 118 More stars = more popular project forks 275 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -17 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5944 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 6513 test_center via Lyndsey Ferguson \ud83c\udfaf Understand, tame, and train your iOS & Mac tests \ud83c\udf89 Provided actions Name Category Description suppressed_tests testing \ud83d\udddc Retrieves a list of tests that are suppressed in a specific or all Xcode Schemes in a project suppress_tests testing \ud83d\udddc Suppresses specific tests in a specific or all Xcode Schemes in a given project tests_from_xcresult testing \u2611\ufe0f Retrieves the failing, passing, and skipped tests as reported in a xcresult bundle suppress_tests_from_junit testing \ud83d\udddc Uses a junit xml report file to suppress either passing or failing tests in an Xcode Scheme tests_from_xctestrun testing \ufe0f\ufe0f\u2611\ufe0f Retrieves all of the tests from xctest bundles referenced by the xctestrun file quit_core_simulator_service testing \ud83d\udcf2 Force-quits the com.apple.CoreSimulator.CoreSimulatorService to fix mysterious iOS Simulator issues. collate_test_result_bundles testing \ud83d\udd38 Combines multiple test_result bundles into one test_result bundle tests_from_junit testing \u2611\ufe0f Retrieves the failing and passing tests as reported in a junit xml file multi_scan testing \u267b\ufe0f Uses scan to run Xcode tests a given number of times, with the option of batching and/or parallelizing them, only re-testing failing tests. test_options_from_testplan testing \u2611\ufe0f Gets test info from a given test plan collate_html_reports testing \ud83d\udd36 Combines multiple html report files into one html report file collate_junit_reports testing \ud83d\udd37 Combines multiple junit report files into one junit report file collate_json_reports testing \ud83d\udd39 Combines multiple json report files into one json report file testplans_from_scheme testing \u2611\ufe0fGets all the testplans that a Scheme references collate_xcresults - \ud83d\udd38 Combines multiple xcresult bundles into one xcresult bundle Score details Metric Points Description contributors 66 The more contributors a project has, the more likely it is it stays alive subscribers 33 More subscribers = more popular project stars 208 More stars = more popular project forks 195 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -14 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5822 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 6086 increment_version_code via Jems Increment the version code of your android project. Provided actions Name Category Description increment_version_code - Increment the version code of your android project. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 40 More stars = more popular project forks 35 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5916 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 5789 trainer via KrauseFx Convert xcodebuild plist files to JUnit reports Provided actions Name Category Description trainer - Convert the Xcode plist log to a JUnit report. This will raise an exception if the tests failed Score details Metric Points Description contributors 42 The more contributors a project has, the more likely it is it stays alive subscribers 18 More subscribers = more popular project stars 132 More stars = more popular project forks 110 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -8 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5370 More downloads = more users have been using the plugin for a while tests 24 The more tests a plugin has, the better Open on GitHub 4025 versioning_android via Igor Lamos Android Versioning Plugin for Fastlane Provided actions Name Category Description android_get_version_name - Get the Version Name of your Android project android_set_version_code - Set the Version Code of your Android project android_set_version_name - Set the Version Name of your Android project android_get_version_code - Get the Version Code of your Android project Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3911 More downloads = more users have been using the plugin for a while tests 36 The more tests a plugin has, the better Open on GitHub 3595 changelog via Pavel Prochazka Automate changes to your project CHANGELOG.md Provided actions Name Category Description read_changelog - Reads content of a section from your project CHANGELOG.md file update_changelog - Updates content of a section of your project CHANGELOG.md file emojify_changelog - Emojifies the output of read_changelog action stamp_changelog - Stamps the [Unreleased] section with provided identifier in your project CHANGELOG.md file Score details Metric Points Description contributors 60 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 176 More stars = more popular project forks 225 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2952 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 3291 appicon via Boris Bu\u0308gling, Felix Krause Generate required icon sizes and iconset from a master application icon. Provided actions Name Category Description android_appicon - Generate required icon sizes from a master application icon appicon - Generate required icon sizes and iconset from a master application icon Score details Metric Points Description contributors 120 The more contributors a project has, the more likely it is it stays alive subscribers 27 More subscribers = more popular project stars 295 More stars = more popular project forks 205 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -19 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2562 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 2572 load_json via Felix Krause Loads a local JSON file and parses it Provided actions Name Category Description load_json - Loads a local JSON file and parses it Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2489 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 2420 get_version_name via Jems Get the version name of an Android project. Provided actions Name Category Description get_version_name - Get the version name of an Android project. This action will return the version name of your project according to the one set in your build.gradle file Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 4 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2313 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 2197 yarn via Josh Lesch Execute Yarn commands from your Fastfile Provided actions Name Category Description yarn - Execute Yarn commands from your Fastfile Score details Metric Points Description contributors 24 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 16 More stars = more popular project forks 30 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1972 More downloads = more users have been using the plugin for a while tests 21 The more tests a plugin has, the better Open on GitHub 2038 browserstack via BrowserStack Uploads IPA and APK files to BrowserStack for automation and manual testing. Provided actions Name Category Description upload_to_browserstack_app_automate - Uploads IPA and APK files to BrowserStack AppAutomate for running automated tests. upload_to_browserstack_app_live - Uploads IPA and APK files to BrowserStack AppLive for running manual tests. Score details Metric Points Description contributors 24 The more contributors a project has, the more likely it is it stays alive subscribers 27 More subscribers = more popular project stars 10 More stars = more popular project forks 35 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 19 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1804 More downloads = more users have been using the plugin for a while tests 51 The more tests a plugin has, the better Open on GitHub 2022 xcconfig via Sergii Ovcharenko Adds 2 actions to fastlane to read and update xcconfig files. Provided actions Name Category Description update_xcconfig_value - Updates value of a setting in xcconfig file. set_xcconfig_value - Sets the value of a setting in xcconfig file. get_xcconfig_value - Reads a value of a setting from xcconfig file. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 6 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1847 More downloads = more users have been using the plugin for a while tests 30 The more tests a plugin has, the better Open on GitHub 1804 get_version_code via Jems Get the version code of anAndroid project. This action will return the version code of your project according to the one set in your build.gradle file Provided actions Name Category Description get_version_code - Get the version code of an Android project. This action will return the version code of your project according to the one set in your build.gradle file Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1697 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 1779 android_versioning via Manabu OHTAKE Allows to set/get app version name and version code directly to/from build.gradle Provided actions Name Category Description get_value_from_build - - increment_version_code - Increment the version code of your project set_value_in_build - Set the value of your project get_version_name - Get the version name of your project increment_version_name - Increment the version name of your project get_version_code - Get the version code of your project Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 41 More stars = more popular project forks 60 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1531 More downloads = more users have been using the plugin for a while tests 66 The more tests a plugin has, the better Open on GitHub 1760 slack_upload via Dawid Cieslak Uploads specified file to Slack Provided actions Name Category Description slack_upload - Uploads given file to Slack Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 19 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1668 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 1633 rome via Fran\u00e7ois Benaiteau, Tommaso Piazza A cache tool for Carthage Provided actions Name Category Description rome - An S3 cache tool for Carthage Score details Metric Points Description contributors 30 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 14 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1466 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 1552 semantic_release via Jir\u030ci\u0301 Ota\u0301hal Automated version managment and generator of release notes. Provided actions Name Category Description conventional_changelog - Uses conventional commits. It groups commits by their types and generates release notes in markdown or slack format. analyze_commits - Finds a tag of last release and determinates version of next release Score details Metric Points Description contributors 36 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 108 More stars = more popular project forks 130 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1081 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 1532 dropbox via Dominik Kapusta Uploads files to Dropbox Provided actions Name Category Description dropbox - Uploads files to Dropbox Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 3 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1369 More downloads = more users have been using the plugin for a while tests 30 The more tests a plugin has, the better Open on GitHub 1453 aws_device_farm via Helmut Januschka Run UI Tests on AWS Devicefarm Provided actions Name Category Description aws_device_farm - Upload the application to the AWS device farm aws_device_farm_package - Packages .app from deriveddata to an aws-compatible ipa Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 80 More stars = more popular project forks 170 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -5 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1091 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 1384 bundletool via Martin Gonzalez Extracts a universal apk from an .aab file Provided actions Name Category Description bundletool - Extracts an universal apk from an .aab file Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 14 More stars = more popular project forks 20 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1207 More downloads = more users have been using the plugin for a while tests 12 The more tests a plugin has, the better Open on GitHub 1380 update_provisioning_profile_specifier via Jordan Bondo Update the provisioning profile in the Xcode Project file for a specified target Provided actions Name Category Description update_provisioning_profile_specifier - Update the provisioning profile in the Xcode Project file for a specified target Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 20 More stars = more popular project forks 30 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1216 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 1332 cordova via Almouro Build your Cordova app Provided actions Name Category Description cordova building Build your Cordova app Score details Metric Points Description contributors 78 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 108 More stars = more popular project forks 160 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -19 Lots of open issues are not a good sign usually, unless the project is really popular downloads 856 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 1313 xchtmlreport via Titouan Van Belle Plugin for XCHTMLReport Provided actions Name Category Description xchtmlreport - Xcode-like HTML report for Unit and UI Tests Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1219 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 1311 automated_test_emulator_run via Kamil Krzyk Starts n AVDs based on JSON file config. AVDs are created and configured according to user liking before instrumentation test process (started either via shell command or gradle) and killed/deleted after test process finishes. Provided actions Name Category Description automated_test_emulator_run - Starts AVD, based on AVD_setup.json file, before test launch and kills it after testing is done. Score details Metric Points Description contributors 30 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 75 More stars = more popular project forks 85 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -5 Lots of open issues are not a good sign usually, unless the project is really popular downloads 983 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 1225 increment_version_name via fierysolid Increment the version name of your android project. Provided actions Name Category Description increment_version_name project Increment the version name of your android project. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1143 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 1217 commit_android_version_bump via jems This Android plugins allow you to commit every modification done in your build.gradle file during the execution of a lane. In fast, it do the same as the commit_version_bump action, but for Android Provided actions Name Category Description commit_android_version_bump - This Android plugins allow you to commit every modification done in your build.gradle file during the execution of a lane. In fast, it do the same as the commit_version_bump action, but for Android Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 20 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1103 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 1205 update_android_strings via bang Update Android res strings.xml Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1185 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 1174 synx via Afonso Gra\u00e7a Organise your Xcode project folder to match your Xcode groups. Provided actions Name Category Description synx - Organise your Xcode project folder to match your Xcode groups. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 26 More stars = more popular project forks 20 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1043 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 1170 lizard via Moses Liao Run swift code complexity analytics using Lizard Provided actions Name Category Description lizard - Run lizard code cyclomatic complexity analysis. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 19 More stars = more popular project forks 55 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 882 More downloads = more users have been using the plugin for a while tests 72 The more tests a plugin has, the better Open on GitHub 1142 tpa via The Perfect App TPA gives you advanced user behaviour analytics, app distribution, crash analytics and more Provided actions Name Category Description upload_to_tpa beta Upload app builds to The Perfect App (tpa.io) upload_symbols_to_tpa misc Upload dsym files downloaded from App Store Connect directly to TPA Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 9 More stars = more popular project forks 35 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 876 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 1099 xcake via James Campbell Create your Xcode projects automatically using a stupid simple DSL. Provided actions Name Category Description xcake - Runs `xcake` for the project Score details Metric Points Description contributors 114 The more contributors a project has, the more likely it is it stays alive subscribers 48 More subscribers = more popular project stars 464 More stars = more popular project forks 190 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 35 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -5 Lots of open issues are not a good sign usually, unless the project is really popular downloads 103 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 1059 teams via Morten B\u00f8gh Send a success/error message to your Microsoft Teams channel Provided actions Name Category Description teams notifications Send a message to your Microsoft Teams channel via the webhook connector Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 6 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 943 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 990 brew via Michael Ruhl Run Homebrew/Linuxbrew command Provided actions Name Category Description brew - Run Homebrew/Linuxbrew command Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 36 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 847 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 951 update_xcodeproj via Fumiya Nakamura Update Xcode projects Provided actions Name Category Description update_xcodeproj - Update Xcode projects Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 6 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 778 More downloads = more users have been using the plugin for a while tests 12 The more tests a plugin has, the better Open on GitHub 941 firebase_test_lab via Shihua Zheng Test your app with Firebase Test Lab with ease using fastlane Provided actions Name Category Description firebase_test_lab_ios_xctest - Submit an iOS XCTest job to Firebase Test Lab Score details Metric Points Description contributors 42 The more contributors a project has, the more likely it is it stays alive subscribers 39 More subscribers = more popular project stars 54 More stars = more popular project forks 105 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -8 Lots of open issues are not a good sign usually, unless the project is really popular downloads 591 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 941 download_github_release_asset via Anton Domashnev This action downloads a GitHub release's asset using the GitHub API and puts it in a destination path.\\nIf the file has been previously downloaded, it will be overrided. Provided actions Name Category Description download_github_release_asset - Downloads a GitHub release's asset Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 795 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 875 run_tests_firebase_testlab via Bruno Correia Runs Android tests in Firebase Test Lab. Provided actions Name Category Description run_tests_firebase_testlab - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 25 More stars = more popular project forks 40 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 633 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 862 carthage_cache via Thi Doan A Fastlane plugin that allows to cache Carthage/Build folder in Amazon S3. Provided actions Name Category Description carthage_cache_install - Download Carthage cache from Amazon S3 carthage_cache_publish - Upload Carthage cache to Amazon S3 carthage_cache_exist - Check if Carthage cache exists for Cartfile.resolved in Amazon S3 Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 10 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 736 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 856 xcodegen via Michael Ruhl Run xcodegen for the project Provided actions Name Category Description xcodegen - Runs `xcodegen` for the project Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 17 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 629 More downloads = more users have been using the plugin for a while tests 36 The more tests a plugin has, the better Open on GitHub 830 setup_fragile_tests_for_rescan via Lyndsey Ferguson Suppress stabile tests so that 'scan' can run the fragile tests again Provided actions Name Category Description setup_fragile_tests_for_rescan deprecated Suppress stabile tests so that 'scan' can run the fragile tests again Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 6 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 654 More downloads = more users have been using the plugin for a while tests 36 The more tests a plugin has, the better Open on GitHub 799 properties via Pavlo Pakholka Adds 4 actions to fastlane to read and update properties files. Provided actions Name Category Description increment_version_name_in_properties_file - Sets a value of a setting in .properties file. set_properties_value - Sets a value of a setting in .properties file. get_properties_value - Reads a value of a setting from .properties file. write_properties_file - Write any Hash-like structure as a properties file. This action won't create a new file. parse_properties_file - Load .properties file and returns it as a ruby hash-map. increment_version_code_in_properties_file - Increase version code inside .properties file. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 667 More downloads = more users have been using the plugin for a while tests 15 The more tests a plugin has, the better Open on GitHub 786 huawei_appgallery_connect via Shreejan Shrestha Huawei AppGallery Connect Plugin Provided actions Name Category Description huawei_appgallery_connect_submit_for_review - Huawei AppGallery Connect Plugin huawei_appgallery_connect - Huawei AppGallery Connect Plugin huawei_appgallery_connect_get_app_info - Huawei AppGallery Connect Plugin Score details Metric Points Description contributors 36 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 34 More stars = more popular project forks 50 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 549 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 786 android_change_package_identifier via MaximusMcCann Change the package identifier in the AndroidManifest.xml file. Can revert as well. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 766 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 760 settings_bundle via Jimmy Dee Fastlane plugin to update static settings in an iOS settings bundle Provided actions Name Category Description update_settings_bundle project actions. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 20 More stars = more popular project forks 40 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 486 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 734 property_file_read via United Classifieds Reads property file into dictionary Provided actions Name Category Description property_file_read - Reads property file into dictionary Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 625 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 708 prepare_build_resources via Jakob Jensen Prepares certificates and provisioning profiles for building and removes them afterwards. Provided actions Name Category Description prepare_build_resources - Prepares certificates and provisioning profiles for building and removes them afterwards. Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 6 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license -50 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 601 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 681 diawi via pacification Upload .ipa or .apk file to diawi.com Provided actions Name Category Description diawi - Upload .ipa/.apk file to diawi.com Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 32 More stars = more popular project forks 25 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 489 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 662 act via Richard Szalay Applies changes to plists and app icons inside a compiled IPA or xcarchive Provided actions Name Category Description act - Reconfigures .plists and icons inside a compiled IPA Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 20 More stars = more popular project forks 30 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 402 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 661 merge_junit_report via Derek Yang Merges multiple junit reports into one Provided actions Name Category Description merge_junit_report - Provides the ability to merge multiple junit reports into one Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 516 More downloads = more users have been using the plugin for a while tests 30 The more tests a plugin has, the better Open on GitHub 659 json via Martin Gonzalez actions related to json files Provided actions Name Category Description write_json - Write a json file from a hash at the provided path download_json - Downloads a json file and expose a hash with symbolized names as result merge_jsons - Merge a group of jsons files and expose a hash with symbolized names as result. Last json predominate over the rest read_json - Read a json file and expose a hash with symbolized names as result Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 504 More downloads = more users have been using the plugin for a while tests 45 The more tests a plugin has, the better Open on GitHub 658 google_drive via Bumsoo Kim Upload files to Google Drive Provided actions Name Category Description update_google_drive_file - Update a Google Drive file upload_to_google_drive - Upload files to Google Drive create_google_drive_folder - Create new folder on Google Drive Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 42 More stars = more popular project forks 50 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 399 More downloads = more users have been using the plugin for a while tests 57 The more tests a plugin has, the better Open on GitHub 604 codecov_reporter via BinaryBeard Uploads coverage report to Codecov.io Provided actions Name Category Description codecov_reporter - Uploads coverage report to Codecov.io Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 5 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 472 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 603 ionic via Jan Piotrowski Build your Ionic app Provided actions Name Category Description ionic building Build your Ionic app Score details Metric Points Description contributors 72 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 41 More stars = more popular project forks 55 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -23 Lots of open issues are not a good sign usually, unless the project is really popular downloads 345 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 602 upload_symbols_to_new_relic via Helmut Januschka Uploads dSym to New Relic Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 582 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 588 mango via Serghei Moret, Daniel Hartwich This plugin orchtestrates Android tasks on docker images Provided actions Name Category Description run_dockerized_task - Action that runs Android tasks on a specified Docker image Score details Metric Points Description contributors 30 The more contributors a project has, the more likely it is it stays alive subscribers 69 More subscribers = more popular project stars 48 More stars = more popular project forks 35 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 208 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 581 download_file via Massimo Oliviero This action downloads a file from an HTTP/HTTPS url (e.g. ZIP file) and puts it in a destination path Provided actions Name Category Description download_file - - Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 430 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 580 git_tags via Fernando Saragoca List git tags sorted by taggerdate Provided actions Name Category Description git_tags source_control List git tags Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 467 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 574 unzip via Massimo Oliviero Extract compressed files in a ZIP Provided actions Name Category Description unzip - Extract compressed files in a ZIP Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 429 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 565 simctl via Renzo Crisostomo Fastlane plugin to interact with xcrun simctl Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 545 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 560 danger-device_grid via Felix Krause, Boris Bu\u0308gling Danger plugin for the fastlane device grid. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 5 More stars = more popular project forks 20 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 407 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 545 semantic_release2 via William Lauze Fork for: Automated version managment and generator of release notes. Provided actions Name Category Description conventional_changelog - Uses conventional commits. It groups commits by their types and generates release notes in markdown or slack format. analyze_commits - Finds a tag of last release and determinates version of next release Score details Metric Points Description contributors 30 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 83 More stars = more popular project forks 120 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 113 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 529 mobile_center via Microsoft Corporation Fastlane plugin for Mobile Center Provided actions Name Category Description appcenter_upload - Distribute new release to App Center Score details Metric Points Description contributors 42 The more contributors a project has, the more likely it is it stays alive subscribers 33 More subscribers = more popular project stars 47 More stars = more popular project forks 45 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -11 Lots of open issues are not a good sign usually, unless the project is really popular downloads 197 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 483 remove_provisioning_profile via Anton Domashnev Remove provision profile from your local machine Provided actions Name Category Description remove_provisioning_profile - Remove the provisioning profile for the given app_identifier and type from local machine Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 7 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 258 More downloads = more users have been using the plugin for a while tests 60 The more tests a plugin has, the better Open on GitHub 467 jira_release_notes via Alexander Ignition Release notes from JIRA for version Provided actions Name Category Description jira_release_notes - Jira release notes Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 12 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 299 More downloads = more users have been using the plugin for a while tests 36 The more tests a plugin has, the better Open on GitHub 463 ruby via Felix Krause Useful fastlane actions for Ruby projects Provided actions Name Category Description rubocop - Runs the code style checks rspec - Run tests using rspec Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 4 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 32 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 335 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 463 gradle_properties via Ryo Sakaguchi Read properties in your Fastfile easily Provided actions Name Category Description gradle_properties - Read properties in your Fastfile easily Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 395 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 459 android_emulator via Michael Ruhl Creates and starts an Android Emulator (AVD) Provided actions Name Category Description android_emulator - Creates and starts an Android Emulator (AVD) Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 7 More stars = more popular project forks 60 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 240 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 456 flutter via Artem Sheremet Flutter actions plugin for Fastlane Provided actions Name Category Description flutter_bootstrap - Flutter SDK installation, upgrade and application bootstrap flutter - Run \"flutter\" binary with the specified arguments flutter_build building Run \"flutter build\" to build a Flutter application flutter_generate - (1) Run `flutter packages get`; (2) Run `build_runner build` if build_runner is in dev_dependencies; (3) According to `package:intl`, take `$strings_file` and generate `${strings_file.dirname}/arb/intl_messages.arb`, then take all files matching `${strings_file.dirname}/intl_*.arb`, fix them and generate .dart files from them. (4) Generate an empty test importing all files, which would be used to calculate correct full coverage numbers. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 20 More stars = more popular project forks 25 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 268 More downloads = more users have been using the plugin for a while tests 42 The more tests a plugin has, the better Open on GitHub 454 firebase_test_lab_android via wasabeef Test your app with Firebase Test Lab with ease using fastlane Provided actions Name Category Description firebase_test_lab_android - Runs Android tests in Firebase Test Lab. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 51 More subscribers = more popular project stars 25 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 247 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 451 google_cloud_storage via Fernando Saragoca Google Cloud Storage Provided actions Name Category Description google_cloud_storage_check_file - Check if file exists in Google Cloud Storage google_cloud_storage_download - Download a file from Google Cloud Storage google_cloud_storage_upload - Upload a file to Google Cloud Storage Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 348 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 445 upgrade_super_old_xcode_project via Jan Piotrowski Upgrades super old Xcode projects to Xcode 8 Provided actions Name Category Description upgrade_super_old_xcode_project - Upgrades super old Xcode projects to Xcode 8 Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 328 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 444 clean_testflight_testers via Felix Krause Automatically remove TestFlight testers that are not actually testing your app Provided actions Name Category Description clean_testflight_testers - Automatically remove TestFlight testers that are not actually testing your app Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 26 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 287 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 435 pgyer via rexshi distribute app to pgyer beta testing service Provided actions Name Category Description pgyer - distribute app to pgyer beta testing service Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 22 More stars = more popular project forks 35 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 274 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 433 cryptex via Helmut Januschka fastlane Crypt Store Git repo Provided actions Name Category Description cryptex - Secure Git-Backed Storage cryptex_generate_keystore - Generate a new Android Keystore Score details Metric Points Description contributors 36 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 26 More stars = more popular project forks 55 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 206 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 417 instabug_official via Instabug Plugin to upload DSYMs to Instabug Dashboard. Provided actions Name Category Description instabug_official - - Score details Metric Points Description contributors 48 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 4 More stars = more popular project forks 25 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 235 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 408 notarize via Zeplin, Inc. fastlane plugin to notarize a macOS app Provided actions Name Category Description notarize deprecated Notarizes a macOS app Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 60 More subscribers = more popular project stars 64 More stars = more popular project forks 35 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 136 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 404 icon_versioning via Iulian Onofrei Overlay build information on top of your app icon Provided actions Name Category Description version_icon - Overlay build information on top of your app icon. Based on original work by Krzysztof Zab\u0142ocki (https://github.com/krzysztofzablocki/Bootstrap). Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 48 More stars = more popular project forks 20 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 115 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 394 onesky via Daniel Kiedrowski Helps to update the translations of your app using the OneSky service. Provided actions Name Category Description onesky_upload - Upload a strings file to OneSky onesky_download - Download a translation file from OneSky Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 15 More stars = more popular project forks 65 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 201 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 385 code_push via Manuel Koch CodePush functionality for fastlane Provided actions Name Category Description code_push_promote - CodePush promote code_push_login - CodePush login with accessKey code_push_release_react - CodePush release-react functionality for fastlane code_push_release_cordova - CodePush release-cordova functionality for fastlane Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 23 More stars = more popular project forks 25 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 217 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 384 jira_versions via Sandy Chapman Manage your JIRA project's releases/versions with this plugin. Provided actions Name Category Description release_jira_version - Releases a version in your JIRA project create_jira_version - Creates a new version in your JIRA project get_jira_versions - Gets a list of all versions for a JIRA project Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 14 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 240 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 380 flutter_version via tianhaoz95 A plugin to retrieve versioning information for Flutter projects. Provided actions Name Category Description flutter_version - A plugin to retrieve versioning information for Flutter projects. Score details Metric Points Description contributors 36 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 44 More stars = more popular project forks 65 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 86 More downloads = more users have been using the plugin for a while tests 39 The more tests a plugin has, the better Open on GitHub 368 retry via gmgchow Retries failed XCUITest test cases Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 318 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 365 tunes via Boris Bu\u0308gling Play music using fastlane, because you can. Provided actions Name Category Description tunes - Play music using fastlane, because you can Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 8 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 229 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 355 s3_actions via Fernando Saragoca Download and upload files to AWS S3 Provided actions Name Category Description s3_download - Download a file from AWS S3 s3_check_file - Check if file exists in AWS S3 s3_upload - Upload a file to AWS S3 Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 241 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 351 dynatrace via Dynatrace LLC This action processes and uploads your symbol files to Dynatrace Provided actions Name Category Description dynatrace_process_symbols - This action processes and uploads your symbol files to Dynatrace. Score details Metric Points Description contributors 30 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 9 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 93 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 350 gs_deliver via \u0421\u0435\u0440\u0433\u0435\u0438\u0306 \u0412\u0435\u0441\u0435\u043b\u043e\u0432\u0441\u043a\u0438\u0438\u0306 Gradoservice plugin to rule apps releases Provided actions Name Category Description gs_move_to_ready_for_sale - Gradoservice plugin to rule apps releases gs_remove_from_testflight_review - Gradoservice plugin to rule apps releases gs_get_release_notes - Gradoservice plugin to rule apps releases gs_get_app_status - Gradoservice plugin to rule apps releases gs_move_rc_to_beta_review - Gradoservice plugin to rule apps releases gs_start_external_testing - Gradoservice plugin to rule apps releases gs_reject_latest_version - Gradoservice plugin to rule apps releases gs_execute_command - Gradoservice plugin to rule apps releases Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 270 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 348 rocket_chat via Thiago Felix Send message to Rocket.Chat right from fastlane Provided actions Name Category Description rocket_chat - Send a success/error message to your RocketChat group Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 6 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 234 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 346 wpmreleasetoolkit via Lorenzo Mattei GitHub helper functions Score details Metric Points Description contributors 54 The more contributors a project has, the more likely it is it stays alive subscribers 54 More subscribers = more popular project stars 21 More stars = more popular project forks 30 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 19 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -28 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 343 patch via Jimmy Dee Apply and revert pattern-based patches to any text file. Provided actions Name Category Description apply_patch deprecated Apply pattern-based patches to any text file. revert_patch deprecated Revert the action of apply_patch patch project Apply pattern-based patches to any text file. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 25 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 173 More downloads = more users have been using the plugin for a while tests 60 The more tests a plugin has, the better Open on GitHub 335 lokalise via Abbas Jaffery Sync metadata with Lokalise Provided actions Name Category Description add_keys_to_lokalise - Add keys to lokalise lokalise - Download Lokalise localization lokalise_metadata - Upload metadata to lokalise. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 213 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 331 android_change_string_app_name via MaximusMcCann Change the app_name in the strings.xml file & revert method Provided actions Name Category Description android_change_string_app_name - Change the app_name in the strings.xml file & revert method android_change_string_app_name_revert - Revert strings.xml app_name using ANDROID_CHANGE_STRING_APP_NAME_ORIGINAL_NAME Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 234 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 329 xcode_log_parser via KrauseFx Convert the Xcode plist log to a JUnit report Provided actions Name Category Description trainer - Convert the Xcode plist log to a JUnit report. This will raise an exception if the tests failed Score details Metric Points Description contributors 30 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 102 More stars = more popular project forks 60 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -5 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 24 The more tests a plugin has, the better Open on GitHub 327 waldo via J. G. Pusey Upload build to Waldo Provided actions Name Category Description waldo testing Upload a new build to [Waldo](https://www.waldo.io) Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 5 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 157 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 325 pretty_junit via GaryJohnson Pretty JUnit test results for your Android projects. Provided actions Name Category Description pretty_junit - Pretty JUnit test results for your Android projects. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 219 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 305 get_product_bundle_id via Lyndsey Ferguson Gets PRODUCT_BUNDLE_IDENTIFIER from the first buildable target in a given scheme Provided actions Name Category Description get_product_bundle_id - Gets PRODUCT_BUNDLE_IDENTIFIER from a buildable target in an Xcode project using a provided scheme Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 6 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 176 More downloads = more users have been using the plugin for a while tests 27 The more tests a plugin has, the better Open on GitHub 304 gmail via Alexander Ignition send mail from gmail Provided actions Name Category Description gmail - A short description with < = 80 characters of what this action does Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 7 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 166 More downloads = more users have been using the plugin for a while tests 18 The more tests a plugin has, the better Open on GitHub 303 clubmate via KrauseFx Print the Club Mate logo in your build output Provided actions Name Category Description clubmate - Print a Club Mate in your build output Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 8 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 32 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 166 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 300 latest_hockeyapp_version_number via Travis Palmer Easily fetch the most recent HockeyApp version number for your app Provided actions Name Category Description latest_hockeyapp_version_number - Easily fetch the most recent HockeyApp version number for your app Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 6 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 172 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 298 jira_set_fix_version via Tommy Sadiq Hinrichsen Tags all Jira issues mentioned in git changelog with with a fix version from parameter :name Provided actions Name Category Description jira_set_fix_version - Tags all Jira issues mentioned in git changelog with with a fix version from parameter :name Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 3 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 152 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 297 cerberus via Harry Singh Cerberus is a fastlane plugin for extracting Jira issues from commit messages and sharing information on its respective Jenkins job and HockeyApp upload. Provided actions Name Category Description find_commits - Extracts additional issues from the log jira_comment - This action adds comments on Jira issues with the current build number and url of that build find_tickets - Extracts the Jira issue keys between commits release_notes - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 57 More subscribers = more popular project stars 6 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 101 More downloads = more users have been using the plugin for a while tests 30 The more tests a plugin has, the better Open on GitHub 297 ci_changelog via icyleaf Automate generate changelog between previous build failed and the latest commit of scm in CI Provided actions Name Category Description ci_changelog - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 6 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 100 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 297 google_sheet_localize via Mario Hahn Creates .strings files for iOS and strings.xml files for Android Provided actions Name Category Description google_sheet_localize - Creates .strings files for iOS and strings.xml files for Android Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 16 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -5 Lots of open issues are not a good sign usually, unless the project is really popular downloads 168 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 296 applivery via Alejandro Jimenez Upload new build to Applivery Provided actions Name Category Description applivery beta Upload new iOS or Android build to Applivery Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 12 More stars = more popular project forks 20 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 121 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 296 gs_project_flow_ios via \u0421\u0435\u0440\u0433\u0435\u0438\u0306 \u0412\u0435\u0441\u0435\u043b\u043e\u0432\u0441\u043a\u0438\u0438\u0306 Plugin contains project flow code for code sharing between projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 276 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 294 cosigner via Andr\u00e9 Pacheco Neves, Lu\u00eds Portela Afonso A fastlane plugin to help you sign your iOS builds Provided actions Name Category Description cosigner - A fastlane plugin to help you sign your iOS builds Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 39 More subscribers = more popular project stars 21 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 90 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 289 versioning_ios via Igor Lamo\u0161 iOS Versioning Plugin for Fastlane Provided actions Name Category Description ios_set_build_number - Set the Build Number of your iOS project ios_get_build_number - Get the Build Number of your iOS project ios_set_version - Set the Version of your iOS project ios_get_version - Get the Version of your iOS project Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 158 More downloads = more users have been using the plugin for a while tests 51 The more tests a plugin has, the better Open on GitHub 280 uninow-sentry via Tom Krusch Upload symbols to Sentry Provided actions Name Category Description sentry_upload_sourcemap - Upload a sourcemap to a release of a project on Sentry sentry_finalize_release - Finalize a release for a project on Sentry sentry_create_release - Create new releases for a project on Sentry sentry_upload_file - Upload files to a release of a project on Sentry sentry_upload_dsym - Upload dSYM symbolication files to Sentry sentry_set_commits - Set commits of a release sentry_upload_proguard - Upload mapping to a project on Sentry Score details Metric Points Description contributors 66 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 279 framer via DrAL3X Create images combining app screenshots with templates to make nice pictures for the App Store Provided actions Name Category Description framer - Create images combining app screenshots to templates to make a nice \\'screenshot\\' to upload in App Store and Google Play Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 31 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 51 The more tests a plugin has, the better Open on GitHub 279 changelog_generator via Fernando Saragoca Changelog generation based on merged pull requests & tags Provided actions Name Category Description generate_changelog - Changelog generation based on merged pull requests & tags generate_release_changelog - Changelog generation based on merged pull requests & tags, filtered by one or two tags Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 8 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 158 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 278 branch via Branch, Jimmy Dee Adds Branch keys, custom URI schemes and domains to iOS and Android projects. Validates the Universal Link configuration for any Xcode project. Provided actions Name Category Description update_action_docs - Generate a standard action page for each action update_readme - Update the contents of the README in this repo branch_report project Generate a brief summary or a full build report for your project. setup_branch project configuration for Xcode projects. validate_universal_links project Validates Universal Link configuration for an Xcode project. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 24 More subscribers = more popular project stars 8 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 59 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 272 get_unprovisioned_devices_from_hockey via GaryJohnson Retrieves a list of unprovisioned devices from Hockey which can be passed directly into register_devices. Provided actions Name Category Description get_unprovisioned_devices_from_hockey - Retrieves a list of unprovisioned devices from Hockey which can be passed directly into register_devices. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 24 More subscribers = more popular project stars 6 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 117 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 272 airwatch_workspaceone via Ram Awadhesh Sharan The main purpose of this plugin is to upload an IPA or an APK file to an AirWatch or Workspace ONE enterprise instance/console. Provided actions Name Category Description add_or_update_assignments - The main purpose of this action is to add a new smart group assignment to an application or to update an existing smart group assignment of an application with a given dictionary of deployment/assignment parameters. If a smart group name is provided which does not exist yet on Console, assignment for that smart group is ignored. unretire_specific_version - The main purpose of this action is to unretire a specific version of an application. This action takes a string parameter where you can specify the version number to unretire. retire_previous_versions - The main purpose of this action is to retire previous active versions of an application. This action takes a string parameter where you can specify the number of latest versions to keep if you do not want to retire all the previous active versions. delete_specific_version - The main purpose of this action is to delete a specific version of an application. This action takes a string parameter where you can specify the version number to delete. latest_version - The main purpose of this action is to find the version number of the latest version of the app on the console and output the same. It also finds and outputs arrays of active app version numbers and retired app version numbers of the app. deploy_build - The main purpose of this action is to upload an IPA or an APK file to an AirWatch or Workspace ONE enterprise console. delete_previous_versions - The main purpose of this action is to delete versions of an application. This action takes a string parameter where you can specify the number of latest versions to keep if you do not want to delete all the versions. retire_specific_version - The main purpose of this action is to retire a specific version of an application. This action takes a string parameter where you can specify the version number to retire. unretire_all_versions - The main purpose of this action is to unretire all retired versions of an application. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 6 More stars = more popular project forks 25 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 13 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 119 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 267 latest_hockey_build_number via Sergii Stotskyi, Kirill Pahnev Gets latest version number of the app with the bundle id from HockeyApp Provided actions Name Category Description latest_hockey_build_number - Gets latest version number of the app with the bundle id from HockeyApp Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 146 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 266 android_sdk_update via Philipp Burgk, Michael Ruhl Install required Android-SDK packages Provided actions Name Category Description android_sdk_update - Install and update required Android-SDK packages Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 33 More subscribers = more popular project stars 10 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 74 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 264 telegram via sergpetrov Allows post messages to telegram channel Provided actions Name Category Description telegram - Allows post messages to telegram channel Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 10 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 167 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 262 swiftlint_codequality via Mads B\u00f8geskov Converts SwiftLint reports into GitLab support CodeQuality reports Provided actions Name Category Description swiftlint_codequality - Converts SwiftLint reports into GitLab support CodeQuality reports Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 144 More downloads = more users have been using the plugin for a while tests 24 The more tests a plugin has, the better Open on GitHub 257 sharethemeal via Helmut Januschka ShareTheMeal Provided actions Name Category Description sharethemeal - Donate food via ShareTheMeal Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 7 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 116 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 252 github_job_status via Justin Singer Post the status of your test jobs to your pull requests Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 220 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 250 polidea via Piotrek Dubiel Polidea's fastlane action Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 200 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 249 icon_banner via E\u0301mile Be\u0301lair IconBanner adds custom nice-looking banners over your mobile app icons Provided actions Name Category Description icon_banner_restore - Restores the original app icons (can be used after build to clean up the repository) icon_banner - Adds custom nice-looking banners over your mobile app icons Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 155 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 248 souyuz via Felix Rudat A fastlane component to make Xamarin builds a breeze Provided actions Name Category Description app_version - Easily set or print app version with `app_version` souyuz - Easily build and sign your app using `souyuz` Score details Metric Points Description contributors 24 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 32 More stars = more popular project forks 35 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 32 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 74 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 247 semaphore via Dmitry Bespalov Semaphore CI integration Provided actions Name Category Description setup_semaphore - Semaphore CI integration Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 132 More downloads = more users have been using the plugin for a while tests 21 The more tests a plugin has, the better Open on GitHub 245 ftp via Allan Vialatte Simple ftp upload and download for Fastlane Provided actions Name Category Description ftp - Upload and Download files via FTP Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 27 More stars = more popular project forks 50 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 61 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 243 firebase_management via Ackee Unofficial tool to access Firebase project settings Provided actions Name Category Description firebase_management_add_app - Add new app to Firebase project firebase_management_list - List all Firebase projects and their apps firebase_management_download_config - Download configuration file for Firebase app Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 8 More stars = more popular project forks 25 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 66 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 243 slack_train via Felix Krause Show a train of the fastlane progress Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 223 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 241 giffy via SiarheiFiedartsou Fastlane plugin for Giffy.com API Provided actions Name Category Description giffy_random_sticker_url - Allows to obtain URL to some random GIF sticker from Giffy.com giffy_random_gif_url - Allows to obtain URL to some random funny GIF from Giffy.com Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 5 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 104 More downloads = more users have been using the plugin for a while tests 12 The more tests a plugin has, the better Open on GitHub 240 create_xcframework via Boris Bielik, Alexey Alter-Pesotskiy Fastlane plugin that creates xcframework for given list of destinations. Provided actions Name Category Description create_xcframework building Fastlane plugin that creates xcframework for given list of destinations. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 11 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 109 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 239 fir_cli via atpking upload ipa or apk to fir.im Provided actions Name Category Description fir_cli - invoke fir-cli from fastlane plugin directly. \\nfir-cli: https://github.com/FIRHQ/fir-cli Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 27 More stars = more popular project forks 20 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 73 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 238 slack_bot via Manish Rathi A fastlane plugin to post slack message using bot api token. \ud83d\ude80 Provided actions Name Category Description file_upload_to_slack - Upload a file to slack channel post_to_slack - Post a slack message fetch_files_slack - List files of any #channel using Slack bot `files.list` api. update_slack_message - Update a slack message using time-stamp(ts) value Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 7 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 108 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 238 bugsee via Dmitry Fink Bugsee symbols uploader Provided actions Name Category Description upload_symbols_to_bugsee - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 103 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 237 automated_test_emulator_run_xing via Daniel Hartwich Starts n AVDs based on JSON file config. AVDs are created and configured according to user liking before instrumentation test process (started either via shell command or gradle) and killed/deleted after test process finishes. Provided actions Name Category Description automated_test_emulator_run_xing - Starts AVD, based on AVD_setup.json file, before test launch and kills it after testing is done. Score details Metric Points Description contributors 36 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 0 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 59 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 237 upload_folder_to_s3 via teriiehina Upload a folder to S3 Provided actions Name Category Description upload_folder_to_s3 - Upload a folder to S3 Score details Metric Points Description contributors 30 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 7 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 32 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 67 More downloads = more users have been using the plugin for a while tests 18 The more tests a plugin has, the better Open on GitHub 233 instrumented_tests via Silviu Paragina New action to run instrumented tests for android. This plugin creates and boots an emulator before running a gradle command so that you can run instrumented tests against that emulator. After the gradle command is executed, the avd gets shut down and deleted. This is really helpful on CI services, keeping them clean and always having a fresh avd for testing. Provided actions Name Category Description instrumented_tests - Run android instrumented tests via a gradle command againts a newly created avd Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 14 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 95 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 233 xcconfig_actions via Maksym Grebenets Adds actions to fastlane to work with xcconfig files Provided actions Name Category Description build_settings_to_flags building Map xcconfig build settings to compiler and linker build flags read_xcconfig building Read and resolve contents of xcconfig file and return as JSON validate_xcconfig linting Validate xcconfig file Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 6 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 232 jira_transition via Valerio Mazzeo Apply a JIRA transition to issues mentioned in the changelog Provided actions Name Category Description jira_transition - Apply a JIRA transition to issues mentioned in the changelog Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 12 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 129 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 228 forsis via Azadeh Bagheri This plugin produces generic test execution reports supported by SonarQube from JUnit test reports generated by fastlane. Provided actions Name Category Description forsis - This plugin produces generic test execution reports supported by SonarQube from JUnit test reports generated by fastlane Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 11 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 85 More downloads = more users have been using the plugin for a while tests 24 The more tests a plugin has, the better Open on GitHub 228 blackberry_mam via Lyndsey Ferguson A fastlane plugin that works with Blackberry Dynamics (formerly Good Dynamics) provides Mobile Application Management Provided actions Name Category Description update_info_plist_for_blackberry_mam - updates the plist so that the built application can be deployed and managed within BlackBerry's Good Dynamics Control Center for Enterprise Mobility Management. blackberry_mam_network_check - Checks to see if the required network ports for BlackBerry Dynamics are open on the network blackberry_mam_version - Checks the version of the installed Good framework Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 227 latest_appcenter_build_number via Jack Spargo Use AppCenter API to get the latest version and build number for an App Center app Provided actions Name Category Description latest_appcenter_build_number - Gets latest version number of the app from AppCenter Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 48 More downloads = more users have been using the plugin for a while tests 48 The more tests a plugin has, the better Open on GitHub 224 uninow_sentry via Tom Krusch Upload symbols to Sentry Provided actions Name Category Description sentry_upload_sourcemap - Upload a sourcemap to a release of a project on Sentry sentry_finalize_release - Finalize a release for a project on Sentry sentry_create_release - Create new releases for a project on Sentry sentry_upload_file - Upload files to a release of a project on Sentry sentry_upload_dsym - Upload dSYM symbolication files to Sentry sentry_set_commits - Set commits of a release sentry_upload_proguard - Upload mapping to a project on Sentry Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 223 hours via Rishabh Tayal Record total time saved by fastlane Provided actions Name Category Description hours - Record total time saved by fastlane Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 85 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 220 jira_issue_details via Zaim Ramlan Get the details for the given jira issue key(s) Provided actions Name Category Description get_jira_issue - Get the details for the given jira issue key(s). Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 110 More downloads = more users have been using the plugin for a while tests 21 The more tests a plugin has, the better Open on GitHub 220 sftp via Oliver Limberg Plugin to upload files via SFTP Provided actions Name Category Description sftp_download misc download files from a remote Server via SFTP sftp_upload misc upload files to a remote Server via SFTP Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 63 The more tests a plugin has, the better Open on GitHub 220 app_info via icyleaf Teardown tool for mobile app(ipa/apk), analysis metedata like version, name, icon etc. Provided actions Name Category Description app_info - Parse and dump mobile app(ipa/apk) metedata. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 68 More downloads = more users have been using the plugin for a while tests 39 The more tests a plugin has, the better Open on GitHub 220 git_info_extract via alexander sun Extract JIRA information from git merge Provided actions Name Category Description git_info_extract - Extract JIRA information from git merge Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 144 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 220 altool via Shashikant Jagtap Upload IPA to iTunes Connect using altool Provided actions Name Category Description altool - Upload IPA to iTunes Connect using altool Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 12 More stars = more popular project forks 30 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 48 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 219 codepush via Pranit Harekar Fastlane plugin for App Center CodePush actions \ud83d\ude80 Provided actions Name Category Description codepush_exists_deployment - CodePush check if deployment exists codepush_release_react - CodePush release-react action codepush_login - CodePush login action codepush_get_deployment_key - CodePush get deployment key given deployment name codepush_list_deployment - CodePush list deployment action codepush_remove_deployment - CodePush remove deployment action codepush_logout - CodePush logout action codepush_rename_deployment - CodePush rename deployment action codepush_add_deployment - CodePush add deployment action codepush_promote - CodePush promote action Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 10 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 100 More downloads = more users have been using the plugin for a while tests 18 The more tests a plugin has, the better Open on GitHub 219 localization via Viktor Malyi Export/import app localizations with help of xcodebuild -exportLocalizations/-importLocalizations tool Provided actions Name Category Description import_localizations - Import app localizations with help of xcodebuild -importLocalizations tool export_localizations - Export app localizations with help of xcodebuild -exportLocalizations tool Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 9 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 86 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 218 setup_app_feedback_sdk via Yahoo Japan Corporation Setup the Info.plist for App Feedback SDK Provided actions Name Category Description setup_app_feedback_sdk - Setup the Info.plist for App Feedback SDK Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 101 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 217 demo_mode via Florian Rauscha Sets your connected android devices to demo mode Provided actions Name Category Description demo_mode - Sets your device to demo mode Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 64 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 216 facelift via Richard Szalay Deprecated in favor of 'fastlane-plugin-act' Provided actions Name Category Description act - Reconfigures .plists and icons inside a compiled IPA Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 17 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 72 The more tests a plugin has, the better Open on GitHub 216 xamarin_build via punksta Build xamarin android\\ios projects Provided actions Name Category Description extract_certificate - Extract certificate public key from provision profile xamarin_update_configuration - Set properties of specific build configuration in Xamarin configuration file xamarin_build - Build xamarin android and ios projects Score details Metric Points Description contributors 24 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 7 More stars = more popular project forks 40 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 33 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 215 ciutils via Nicolae Ghimbovschi Various utilities for iOS CI Provided actions Name Category Description en_build_number - Get the value for build number from environment en_install_provisioning_profiles - Copies recursively all provisioning profiles from current folder to system Provisioning Profiles en_profile_name - A short description with < = 80 characters of what this action does en_remove_keychain - Removes the keychain setup by en_setup_keychain en_ci_utils_init - Sets env variables for gym, scan, swiftlint and lizard actions en_setup_project - Updates Xcode project, plist and entitlements file if config file is provided en_setup_keychain - Creates the keychain, and imports the provided certificate en_git_changelog - Creates a change log from git commits by filtering commits by a pattern (e.g. JIRA task prefix) en_close_simulator - Closes all simulator instances en_create_sonar_reports - Creates swiftlint, lizard and oclint reports and adjusts junit reports for sonarqube (with the open source swift/objc plugin) Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 5 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 102 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 213 msbuild via Jeff Ward Build a Xamarin.iOS or Xamarin.Android project using msbuild Provided actions Name Category Description msbuild - Build a Xamarin.iOS or Xamarin.Android project using msbuild assembly_info_poke_version - Set the version in an AssemblyInfo.cs file. Optionally only set the revision number nuget_pack - Package a nuspec nuspec_poke_version - Set the version in a Nuspec file. Optionally only set the revision number Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 27 More subscribers = more popular project stars 4 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 101 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 213 huawei_appgallery via Arne Kaiser Plugin to deploy an app to the Huawei AppGallery Provided actions Name Category Description huawei_appgallery - Plugin to deploy an app to the Huawei AppGallery Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 21 More stars = more popular project forks 55 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 211 android_version_manager via Jonathan Cardoso Machado Android's App Version Managment Provided actions Name Category Description android_base - - Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 3 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 26 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 211 git_status via Bruno Coelho Show the status of one or multiple files/directories Provided actions Name Category Description git_status - Show the status of one or multiple files/directories Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 95 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 211 find_replace_string via Jonathan Ritchie Find a string in a file and replace it with a new one. Provided actions Name Category Description find_replace_string - Find and replace a string in a project file Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 125 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 210 semantic_convention_release via Jir\u030ci\u0301 Ota\u0301hal, Sergio Fierro Automated version managment and generator of release notes. Provided actions Name Category Description conventional_changelog - Uses conventional commits. It groups commits by their types and generates release notes in markdown or slack format. analyze_commits - Finds a tag of last release and determinates version of next release Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 210 secret_keeper via Daniel Jankowski secret_keeper is a wrapped on keychain access. Provided actions Name Category Description remove_item_from_keychain - Removes the credentials from the keychain on behalf of the user add_item_to_keychain - Adds the credentials to the keychain on behalf of the user read_item_from_keychain - Reads the password from the keychain for a given item Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 87 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 207 ensure_xcode_build_version via Fumiya Nakamura Ensure Xcode Build Version for working with Beta, GM and Release Provided actions Name Category Description ensure_xcode_build_version - Ensure the selected Xcode Build version with xcode-select matches a value Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 51 More downloads = more users have been using the plugin for a while tests 15 The more tests a plugin has, the better Open on GitHub 206 aws_sns via Josh Holtz Creates AWS SNS platform applications Provided actions Name Category Description aws_sns - Creates AWS SNS platform applications Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 10 More stars = more popular project forks 35 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 80 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 206 semantic_release_workflow via Phong Nguyen Automated version managment, generator of release notes, create gitlab release then notify Provided actions Name Category Description conventional_changelog - Uses conventional commits. It groups commits by their types and generates release notes in markdown or slack format. create_release - Create Gitlab release analyze_commits - Finds a tag of last release and determinates version of next release Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 206 set_jira_fix_version via yuriy-tolstoguzov Adds fix version to specified JIRA issues. Creates version if needed Provided actions Name Category Description set_jira_fix_version misc Adds fix version to specified JIRA issues. Creates version if needed jira_issue_keys_from_changelog misc Gets list of JIRA issues kyes from git log starting from specified tag Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 86 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 206 instabug via Siarhei Fiedartsou Uploads dSYM to Instabug Provided actions Name Category Description instabug - - Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 64 More downloads = more users have been using the plugin for a while tests 21 The more tests a plugin has, the better Open on GitHub 205 jira_util via %q{Alexey Martynov} %q{Create JIRA issues and manage versions with this plugin} Provided actions Name Category Description release_jira_version - Releases a version in your JIRA project get_jira_release_report_link - Return link to JIRA release report. create_jira_issue - Creates a new issue in your JIRA project update_jira_version - Creates a new version in your JIRA project create_jira_version - Creates a new version in your JIRA project get_jira_version - Finds project version in your JIRA project by id or by name Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 99 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 204 google_chat via Narlei Am\u00e9rico Moreira Send messages to Google Chat Provided actions Name Category Description google_chat - Send messages to Google Chat Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 13 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 112 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 204 code_static_analyzer via Olga Kniazska Runs different Static Analyzers and generate report Provided actions Name Category Description ruby_analyzer - This analyzer detect warnings, errors and check syntax in ruby files. This is based on rubocop cpd_analyzer - This analyzer detect copy paste code (it uses PMD CPD) clang_analyzer - A short description with < = 80 characters of what this action does warning_analyzer - This analyzer detect warnings in Xcode projects. code_static_analyzer - - Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 5 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 89 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 202 android_versioning_kts via zmunm android versioning for gradle kotlin DSL Provided actions Name Category Description get_value_from_build - - increment_version_code - Increment the version code of your project set_value_in_build - Set the value of your project get_version_name - Get the version name of your project increment_version_name - Increment the version name of your project get_version_code - Get the version code of your project Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 57 More downloads = more users have been using the plugin for a while tests 66 The more tests a plugin has, the better Open on GitHub 201 simple_loco via Yves Delcoigne A simple implementation for exporting translations from Loco. Provided actions Name Category Description simple_loco - A simple implementation for exporting translations from Loco. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 70 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 199 xcov_report via Gianfranco Manganiello Generate custom HTML for coverage Provided actions Name Category Description xcov_report - Generate custom HTML for coverage Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 45 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 199 trigger_bitrise_build via Nick Hammond Trigger a Bitrise build from Fastlane Provided actions Name Category Description trigger_bitrise_build - Trigger a Bitrise build from Fastlane Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 53 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 198 get_android_version via MaximusMcCann gets the android versionName and versionCode from the AndroidManifest.xml file located in the provided apk Provided actions Name Category Description get_android_version - Gets the android versionName, versionCode and parsed appName (label) from AndroidManifest.xml file in provided apk Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 109 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 197 bitrise_automation via Mario Cecchi Trigger builds on Bitrise, check their status and download artifacts using Fastlane Provided actions Name Category Description bitrise_build_artifacts - Get the list or full contents of the artifacts produced by a build on Bitrise trigger_bitrise_workflow - Trigger a Bitrise workflow with the specified parameters, synchronously or asynchronously bitrise_build_status - Get the status of the Bitrise build Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 36 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license -50 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 74 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 196 automated_test_emulator_run_mik via Kamil Krzyk Starts n AVDs based on JSON file config. AVDs are created and configured according to user liking before instrumentation test process (started either via shell command or gradle) and killed/deleted after test process finishes. Provided actions Name Category Description automated_test_emulator_run - Starts AVD, based on AVD_setup.json file, before test launch and kills it after testing is done. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 59 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 196 transporter via Maksym Grebenets Manage Apple iTMSTransporter installation Provided actions Name Category Description configure_transporter - Configure Apple iTMSTransporter installation update_transporter_path - Configure Fastlane to use custom Transporter installation install_transporter - Install Apple iTMSTransporter Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 18 More downloads = more users have been using the plugin for a while tests 60 The more tests a plugin has, the better Open on GitHub 196 snapshot_test via Moyuru Aizawa Compare snapshots Provided actions Name Category Description take_screenshot - Take screenshots Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 60 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 38 More downloads = more users have been using the plugin for a while tests 12 The more tests a plugin has, the better Open on GitHub 193 poeditor_export via James Campbell Exports translations from POEditor.com Provided actions Name Category Description poeditor_export - Exports translations from POEditor.com Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 8 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 64 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 192 store_sizer via Marcelo Oliveira Estimates download and install sizes for your app, also checks if sizes fit the requirements Provided actions Name Category Description store_size_xcarchive_check - Checks if the size report fits the requirements store_size_xcarchive - Estimates download and install sizes for your app Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 11 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 25 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 32 More downloads = more users have been using the plugin for a while tests 39 The more tests a plugin has, the better Open on GitHub 192 perfecto via Perfecto This plugin allows you to automatically upload ipa/apk files to Perfecto for manual/automation testing Provided actions Name Category Description perfecto - This plugin allows you to automatically upload ipa/apk files to Perfecto for manual/automation testing Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 49 More downloads = more users have been using the plugin for a while tests 42 The more tests a plugin has, the better Open on GitHub 190 twine via Jonas Rottmann A fastlane plugin providing actions related to twine Provided actions Name Category Description twine_generate building Generates all localization files specified by the configuration file twine_check building Checks the source twine file against the localization file to make sure they are in sync twine_validate building Validates all twine files mentioned in the config file Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 36 The more tests a plugin has, the better Open on GitHub 189 humanable_build_number via icyleaf Automatic generate app build number unque and human readable friendly, like yymmHHMM. both support iOS and Android. Provided actions Name Category Description humanable_build_number - Automatic generate app build number unque and human readable friendly, like yymmHHMM. both support iOS and Android. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 75 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 188 download_circleci_artifacts via Manabu OHTAKE Downloads a Circle CI artifact's Provided actions Name Category Description show_builds - This action show recent builds a Circle CI artifact's using the Circle CI API get_recent_builds - This action recent builds a Circle CI artifact's using the Circle CI API download_circleci_artifacts - This action downloads a Circle CI artifact's using the Circle CI API and puts it in a destination path. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 107 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 184 github_status via Michael Furtak Provides the ability to display and act upon GitHub server status as part of your build Provided actions Name Category Description github_status - Provides the ability to check on GitHub server status as part of your build Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 8 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 21 More downloads = more users have been using the plugin for a while tests 48 The more tests a plugin has, the better Open on GitHub 181 file_manager via Jason Nam Copy and remove files Provided actions Name Category Description remove_files - Remove files copy_files - Copy files Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 87 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 180 xml_editor via Jonathan Ritchie Generic xml editor for iOS and Android projects. Provided actions Name Category Description xml_editor - Generic XML file editor xml_add - Generic XML file add content using XPath xml_remove - Generic XML file remover using XPath xml_set_attribute - Add XML attribute using XPath Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 90 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 180 upload_to_server via Maxim Toyberman Upload IPA and APK to your own server Provided actions Name Category Description upload_to_server - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 19 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 69 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 177 build_log_info via tarappo show build log info Provided actions Name Category Description build_log_info - build log information Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 82 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 176 xcodebuild_analyze via Meniga Run code analyzer using xcodebuild Provided actions Name Category Description xcodebuild_analyze building Run code analyzer using xcodebuild xcodebuild_analyze_and_ensure_no_results building Run code analyzer using xcodebuild and fail if any vulnerability is found ensure_no_results_from_xcodebuild_analyze building Check if the are any vulnerabilities under provided analyzer output path Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 45 The more tests a plugin has, the better Open on GitHub 174 jira_issue_link via Aleksey Novikov Plugin to add remote link to jira issue Provided actions Name Category Description jira_issue_link - Plugin to add remote link to jira issue Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 4 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 94 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 174 appbox via Vineet Choudhary Deploy Development, Ad-Hoc and In-house (Enterprise) iOS applications directly to the devices from your Dropbox account. Provided actions Name Category Description appbox - Deploy Development, Ad-Hoc and In-house (Enterprise) iOS applications directly to the devices from your Dropbox account. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 7 More stars = more popular project forks 25 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 174 replace_file via Jonathan Ritchie Replace any file in your mobile project. Provided actions Name Category Description replace_file - Replace any file in your mobile project Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 93 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 174 ionic_integration via Adrian Regan Integrating Fastlane with Ionic Generated Projects Provided actions Name Category Description ionic_ios_config_snapshot - Create a Sample iOS UI Unit Test to get started with in a generated Ionic/Cordova project ionic_ios_snapshot - Bridge between Ionic/Cordova Projects and Fastlane for Automated Snapshot Generation for iOS Projects Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 22 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 17 More downloads = more users have been using the plugin for a while tests 15 The more tests a plugin has, the better Open on GitHub 173 verify_ipa via Derek Yang Verify various aspects of iOS ipa file Provided actions Name Category Description verify_ipa_files - Verify files in ipa file verify_ipa_entitlements - Verify ipa entitlements Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 51 The more tests a plugin has, the better Open on GitHub 173 xcpretty_report via Fernando Saragoca Generate xcodebuild reports using xcpretty Provided actions Name Category Description xcpretty_report - xcpretty Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 63 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 170 menigit via Meniga Missing git actions Provided actions Name Category Description add_git_remote source_control This will add a remote repository remove_git_remote source_control This will remove a remote repository ensure_no_changes source_control Raises an exception if there are uncommitted git changes at path ensure_tag_not_exists source_control Checks if the git tag with the given name not exists in the current repo set_git_config_user source_control This will set git config user Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 33 The more tests a plugin has, the better Open on GitHub 170 upload_dsym_to_bugly via liubo upload_dsym_to_bugly Provided actions Name Category Description upload_dsym_to_bugly - upload_dsym_to_bugly Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 15 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 169 clang_format via Meniga Format your C/C++/Java/JavaScript/Objective-C/Protobuf/C code with clang-format Provided actions Name Category Description clang_format - A tool to format C/C++/Java/JavaScript/Objective-C/Protobuf/C run_clang_format - Run clang format python script: https://github.com/Sarcasm/run-clang-format Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 42 The more tests a plugin has, the better Open on GitHub 169 flurry via Akash Duseja Upload dSYM symbolication files to Flurry Provided actions Name Category Description flurry_upload_dsym misc Upload dSYM symbolication files to Flurry Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 30 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 21 More downloads = more users have been using the plugin for a while tests 12 The more tests a plugin has, the better Open on GitHub 169 android_keystore via Josh Holtz Generate an Android keystore file Provided actions Name Category Description android_keystore - Generate an Android keystore file Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 63 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 168 bugsnag_sourcemaps_upload via Evgrafov Denis Helps to upload sourcemaps to Bugsnag Provided actions Name Category Description bugsnag_sourcemaps_upload - - Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 4 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 53 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 167 compilation_time_report via Tinkoff.ru Generate custom HTML report compilation time of each Swift func Provided actions Name Category Description compilation_time_report - Generate custom HTML report compilation time of each Swift func Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 24 More subscribers = more popular project stars 5 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 167 create_merge_request via masashi mizuno This will create a new merge request on GitLab. Provided actions Name Category Description create_merge_request source_control This will create a new marge request on GitLab Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 1 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 50 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 167 bluepill via tbrand Fastlane plugin to use bluepill in fastlane Provided actions Name Category Description bluepill - Plugin to use bluepill in fastlane Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 13 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 167 release_helper via Artem Ivanov release heper Provided actions Name Category Description release_helper - release heper Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 13 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 94 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 167 remove_setting via Colin Harris Fastlane plugin to remove settings from an iOS settings bundle Provided actions Name Category Description remove_setting project Fastlane plugin action to remove settings in an iOS settings bundle Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 60 The more tests a plugin has, the better Open on GitHub 166 analyze_apk via kochavi-daniel Analyzes an apk to fetch: versionCode, versionName, apk size, etc. Provided actions Name Category Description analyze_apk - Analyzes an apk to fetch: versionCode, versionName, apk size, permissions, etc. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 5 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 25 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 61 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 165 install_provisioning_profiles via Dylan Gyesbreghs Install all the provisioning profiles located in you're project. Provided actions Name Category Description install_provisioning_profiles - Install all the provisioning profiles located in you're project. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 60 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 165 validate_app via Thi Validate your build before uploading to iTunes Connect Provided actions Name Category Description validate_app - Validate your ipa file Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 11 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 54 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 165 git_switch_branch via zhangqi switch to branch Provided actions Name Category Description git_switch_branch - switch to branch Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 25 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 82 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 163 raven via Marten Klitzke Plugin to manage Releases and upload JS Sourcemaps Provided actions Name Category Description raven - Create new Sentry/Raven Release and Upload Sourcemaps Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 30 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 35 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 163 translation via Jakob Jensen Handling translations from Google sheet. Provided actions Name Category Description create_translation - Create sheet for translations in Google sheets. translation - Output translations from Google sheet into templates. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 3 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 38 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 163 try_scan via Alexey Alter-Pesotskiy The easiest way to retry your fastlane scan action Provided actions Name Category Description try_scan testing Simple way to retry your scan action Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 7 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 43 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 161 clang_analyzer via Siarhei Fiedartsou Runs Clang Static Analyzer(http://clang-analyzer.llvm.org/) and generates report Provided actions Name Category Description clang_analyzer - Runs Clang Static Analyzer(http://clang-analyzer.llvm.org/) and generates report Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 5 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 26 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 161 wait_xcrun via Maksym Grebenets Wait for Xcode toolchain to come back online after switching Xcode versions. Provided actions Name Category Description wait_xcrun - Wait for Xcode toolchain to come back online after switching Xcode versions. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 21 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 159 delete_files via GaryJohnson Deletes a file, folder or multiple files using shell glob pattern. Provided actions Name Category Description delete_files - Deletes a file, folder or multiple files using shell glob pattern. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 54 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 159 docker via Manu Wallner fastlane Actions to support building images, logging into Docker Hub, and pushing those images to the Hub Provided actions Name Category Description docker_build - Build docker images in the current directory docker_login - Login to Docker Hub ensure_docker_machine_available - Makes sure a docker machine is created and available for us to use docker_compose - Define and run multi-container applications with Docker docker_push - Push a docker image to its' repository Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 6 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 27 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 157 repack_ios via Omer Duzyol Enables your build pipeline to repack your pre-built ipa with new assets without rebuilding the native code. Provided actions Name Category Description repack_ios - Enables your build pipeline to repack your pre-built ipa with new assets without rebuilding the native code. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 10 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 157 swiftformat via Felix Mau Run swift code formatting using SwiftFormat Provided actions Name Category Description swiftformat testing Run swift code formatting using SwiftFormat Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 39 More downloads = more users have been using the plugin for a while tests 30 The more tests a plugin has, the better Open on GitHub 157 coveralls via Atsushi Nagase Send coverage information to Coveralls Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 107 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 157 create_github_issue via Ryo Sakaguchi Create GitHub issue Provided actions Name Category Description create_github_issue - Create GitHub issue Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 92 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 157 resetsims via Lui\u0301s Esteves Makes an reset on xcode simulators Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 137 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 156 branding via Stefan Natchev Add some branding to your fastlane output Provided actions Name Category Description branding - Add some branding to your fastlane output Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 11 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 26 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 156 branding via Stefan Natchev Add some branding to your fastlane output Provided actions Name Category Description branding - Add some branding to your fastlane output Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 11 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 26 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 155 xcresult_to_junit via Shane Birdsall Produces junit xml files from Xcode 11+ xcresult files Provided actions Name Category Description xcresult_to_junit - Produces junit xml files from Xcode 11+ xcresult files Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 7 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 47 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 154 firebase via Tomas Kohout Unofficial tool to access Firebase project settings Provided actions Name Category Description firebase_delete_client - An unofficial tool to access Firebase firebase_add_client - An unofficial tool to access Firebase firebase_list - An unofficial tool to access Firebase firebase_download_config - An unofficial tool to access Firebase firebase_upload_certificate - An unofficial tool to access Firebase Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 23 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 154 number_of_swift_lines via Dennis Charmington Outputs the total number of swift lines and other useful statistics Provided actions Name Category Description number_of_swift_lines - Outputs the total number of lines of swift code, number of swift files, and a list of the largest swift files, and some other useful statistics Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 75 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 154 dmg via Alexey Dvoryanskiy Easily create dmg for your Mac app Provided actions Name Category Description dmg misc Create DMG for your Mac app Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 23 More downloads = more users have been using the plugin for a while tests 27 The more tests a plugin has, the better Open on GitHub 154 mackerel_api via yutailang0119 Call a Mackerel API endpoint and get the resulting JSON response Provided actions Name Category Description mackerel_api source_control Call a Mackerel API endpoint and get the resulting JSON response Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 33 More downloads = more users have been using the plugin for a while tests 39 The more tests a plugin has, the better Open on GitHub 151 apprepo via Matej Sychra Fastlane plugin SFTP/AppRepo uploader Provided actions Name Category Description download_manifest - Runs the Apprepo plugin apprepo - - init - Initializes Repofile run - Runs the default Apprepo action submit - Submits IPA to Apprepo Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 32 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 68 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 151 android_emulator_kami via Michael Ruhl Creates and starts an Android Emulator (AVD) Provided actions Name Category Description android_emulator_kami - Creates and starts an Android Emulator (AVD) Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 21 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 149 xcode_test_reporter via Taisuke Hori Generates JUnit or HTML report from Xcode plist test report files. Provided actions Name Category Description xcode_test_reporter - Generates JUnit or HTML report from Xcode `plist` test report files Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 23 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 149 provisioning via Pawel Jankowski Helps provision your app in the CI environment Provided actions Name Category Description set_key_partition_list - Sets key partition list (required by macOS Sierra) install_profiles - Install profiles from specified directory Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 148 ipa_info via tarappo show ipa info Provided actions Name Category Description ipa_info - Show information of an ipa file. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 19 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 46 More downloads = more users have been using the plugin for a while tests 12 The more tests a plugin has, the better Open on GitHub 147 napp_distribution via Mads M\u00f8ller Upload IPA AND APK builds to Napp Distribution Provided actions Name Category Description napp_distribution - Upload builds to Napp Distribution Center Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 146 android_emulator-kami via Michael Ruhl Creates and starts an Android Emulator (AVD) Provided actions Name Category Description android_emulator_kami - Creates and starts an Android Emulator (AVD) Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 146 accessibility_test via Takeshi Tsukamoto Accessibility test with Firebase Test Lab for Android. Provided actions Name Category Description accessibility_test - Accessibility test with Firebase Test Lab for Android. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 5 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 63 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 146 ascii_art via Boris Bu\u0308gling Add some fun to your fastlane output. Provided actions Name Category Description ascii_art - Add some fun to your fastlane output. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 20 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 32 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 145 teak via Pat Wilson Fastlane plugins for the Teak SDK Provided actions Name Category Description teak_extensions - Add App Extension teak_sdk - Download the Teak SDK teak - Fastlane plugins for the Teak SDK Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 38 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 144 gitlab_release via Andrea Del Fante Fastlane wrapper of gitlab-release-tools Provided actions Name Category Description gitlab_release_changelog - - gitlab_release_close - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 56 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 144 elux_actions via Dennis Granath Plugin including actions for releasing the android SDK Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 94 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 143 moronepo via Meniga Run dart pub moronepo with fastlane! Provided actions Name Category Description moronepo_update_flutter_sdk building Runs command for all subprojects or a specified project moronepo_run building Runs command for all subprojects or a specified project moronepo_activate building Run flutter pub global activate moronepo Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 21 The more tests a plugin has, the better Open on GitHub 142 retry_tests via Gloria Chow This fastlane plugin includes the following actions: 1) multi_scan: uses scan to run Xcode tests, optionally in batches, a given number of times: only re-testing failing tests. 2) suppress_tests_from_junit: uses a junit xml report file to suppress either passing or failing tests in an Xcode Scheme. 3) suppress_tests: suppresses specific tests in a specific or all Xcode Schemes in a given project. 4) suppressed_tests: retrieves a list of tests that are suppressed in a specific or all Xcode Schemes in a project. 5) tests_from_junit: retrieves the failing and passing tests as reported in a junit xml file. 6) tests_from_xctestrun: retrieves all of the tests from xctest bundles referenced by the xctestrun file 7) collate_junit_reports: collects and correctly organizes junit reports from multiple test passes. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 80 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 141 no_u via Boris Bu\u0308gling no u Provided actions Name Category Description no_u - no u Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 5 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 17 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 141 discord_notifier via Nikos Theodosis Discord Notifier Provided actions Name Category Description discord_notifier - Discord Webhook Notifier Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 8 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 50 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 141 taiwan_number_one via andrew54068 approve or reject first if status is Pending Developer Release. Provided actions Name Category Description taiwan_number_one - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 8 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 24 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 141 emerge via Emerge Tools, Inc Fastlane plugin for Emerge Provided actions Name Category Description emerge - Fastlane plugin for Emerge Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 4 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 54 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 141 testdroid_runner via josepmc Allows to run BitBar tests on fastlane Provided actions Name Category Description testdroid_runner - BitBar Test Runner upload_testdroid - Uploads a file to bitbar Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 140 remove_git_tag via Marker Digital This will remove a specific tag from your remote branch Provided actions Name Category Description remove_git_tag source_control This will remove a tag from the remote repository Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 59 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 138 influxdb via giginet Post values to InfluxDB Provided actions Name Category Description influxdb - Post values to IndluxDB Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 137 auth0_shipper via Hernan Zalazar OSS libraries release process for Auth0 Provided actions Name Category Description perform_release - Performs the release for an Auth0 OSS library publish_release - Performs a pending release represented by the latest tag prepare_release - Prepares the release for an Auth0 OSS library Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 52 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 137 set_sonar_properties via Paldom Load and edit sonar-project.properties files Provided actions Name Category Description set_sonar_properties - Load and edit sonar properties file Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 12 The more tests a plugin has, the better Open on GitHub 136 ad_licenselint via Pierre Felgines Lint the licenses for iOS projects Provided actions Name Category Description ad_licenselint - Lint the licenses for iOS projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 21 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 136 hockey_devices via Viktoras Laukevi\u010dius Retrieves a list of devices from Hockey which can then be used with Match Provided actions Name Category Description hockey_devices - Retrieves a list of devices from Hockey which can then be used with Match Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 21 The more tests a plugin has, the better Open on GitHub 135 get_application_id_flavor via Helder Pinhal Get the applicationId of an Android project. Provided actions Name Category Description get_application_id_flavor - Get the applicationId of an Android project. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 49 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 134 property_file_write via Jan Meier writes property files Provided actions Name Category Description property_file_write - Writes value into properties file Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 29 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 134 upload_symbols_to_hockey via Justin Williams Upload dSYM symbolication files to Hockey Provided actions Name Category Description upload_symbols_to_hockey - Upload dSYM symbolication files to Hockey Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 134 ya_tu_sabes via Boris Bu\u0308gling Ya tu sabes. Provided actions Name Category Description ya_tu_sabes - Ya tu sabes. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 8 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 133 device_image_selector via Mario Zimmermann Takes the screenshots from devices which match the specified names and puts them in a new directory for frameit to process. The screenshot files can then be cleaned up after the device images are created. Provided actions Name Category Description device_image_selector - Selects screenshots with specified names for processing with frameit device_image_selector_cleanup - Cleanup screenshot files after frameit Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 133 ti_build_app via Adam Armstrong Build Axway Appcelerator Mobile Applications from within fastlane Provided actions Name Category Description ti_build_app - Build Axway Appcelerator Mobile Applications from within fastlane Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 6 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 132 napp_notifications via Mads M\u00f8ller Napp Notifications Provided actions Name Category Description napp_notifications push Napp Notifications Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 132 oclint_json_compilation_database via Meniga Run OCLint validation with oclint-json-compilation-database and fastlane :dart: :rocket: Provided actions Name Category Description oclint_json_compilation_database testing - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 39 The more tests a plugin has, the better Open on GitHub 132 certificate_expirydate via Lyndsey Ferguson Retrieves the expiry date of the given p12 certificate file Provided actions Name Category Description certificate_expirydate - Retrieves the expiry date of the given p12 certificate file Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 12 The more tests a plugin has, the better Open on GitHub 132 wechat via xiongzenghui this is a wechat api wrapper Provided actions Name Category Description wechat - this is a wechat api wrapper Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 39 The more tests a plugin has, the better Open on GitHub 131 shuttle via Shuttle Project Publish your builds on Shuttle.tools Provided actions Name Category Description shuttle - Publish your builds on [Shuttle.tools](https://www.shuttle.tools) Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 24 More subscribers = more popular project stars 6 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 19 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 131 unity_exporter via ar:met Plugin for 'fastlane' that defines an action to export iOS and Android projects via Unity3d. This allows Unity3d to more easily integrate with 'fastlane'. Provided actions Name Category Description unity_commit_version_bump - Commits a version bump, if there is any. unity_export - Exports a Unity project. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 27 The more tests a plugin has, the better Open on GitHub 131 connected via Abgier Avraha Fastlane plugin that allows you to use your App Store Connect API key to download certificates and upload apps to TestFlight Provided actions Name Category Description connected_certs - App Store Connect API Certificates Module connected_upload - App Store Connect API Uploader Module connected_auth - App Store Connect API Authentication Module Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 19 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 130 unity via safu9 Fastlane plugin for Unity Provided actions Name Category Description unity - Fastlane plugin for Unity Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 5 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 130 swift_doc via Joshua Kaplan Generate documentation, documentation coverage, or a class diagram using SwiftDoc Provided actions Name Category Description swift_doc documentation Generate documentation, documentation coverage, or a class diagram using SwiftDoc Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 2 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 42 The more tests a plugin has, the better Open on GitHub 130 match_keystore via Christopher NEY Easily sync your Android keystores across your team Provided actions Name Category Description match_keystore - Easily sync your Android keystores across your team Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 20 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -5 Lots of open issues are not a good sign usually, unless the project is really popular downloads 40 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 130 appmetrica via Yandex, LLC Upload dSYM symbolication files to AppMetrica Provided actions Name Category Description upload_symbols_to_appmetrica - Upload dSYM symbolication files to AppMetrica Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 27 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license -50 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 86 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 129 verify_two_step_session via Takashi Hasegawa Verifies the session cookie for 'Two-Step verification for Apple ID' Provided actions Name Category Description verify_two_step_session misc Verifies the session cookie for 'Two-Factor authentication/Two-Step verification for Apple ID' Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 21 The more tests a plugin has, the better Open on GitHub 129 create_bitbucket_pull_request via Issarapong Poesua This lane creates create bitbucket pull request Provided actions Name Category Description create_bitbucket_pull_request - This lane creates create bitbucket pull request Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 38 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 129 github_action via Josh Holtz Helper to setup GitHub actions for fastlane and match Provided actions Name Category Description github_action - Helper to setup GitHub actions for fastlane and match Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 129 bitbucket_auth via rlestesr Generate a OAuth Token for Bitbucket API Access. Provided actions Name Category Description bitbucket_auth - Generate a OAuth Token for Bitbucket API Access. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 15 The more tests a plugin has, the better Open on GitHub 128 firim via whlsxl firim Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 96 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 127 killsimulator via Lui\u0301s Esteves Kill all the open simulatores Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 107 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 126 build_cache via Fernando Saragoca Helper for caching builds when using 'build for testing' & 'test without building' Provided actions Name Category Description clean_build_cache_workspace - Cleans workspace by removing old builds, using last access time for comparison archive_derived_data - Archives derived data folder in a zip file for later use check_build_cache_workspace - Check if cache for current build is avaiable unarchive_derived_data - Unarchives derived data folder from a zip file Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 18 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 126 appdynamics via Artur Rybak Upload dSYM files to AppDynamics Provided actions Name Category Description appdynamics - Upload dSYM symbolication files to AppDynamics Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 1 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 35 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 125 dependency_check_ios_analyzer via Alexey Alter-Pesotskiy Fastlane wrapper around the OWASP dependency-check iOS analyzers (Swift Package Manager and CocoaPods). Provided actions Name Category Description dependency_check_ios_analyzer testing Fastlane wrapper around the OWASP dependency-check iOS analyzers (Swift Package Manager and CocoaPods). Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 2 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 17 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 125 bearychat via dvlprliu send messages to a bearychat channal Provided actions Name Category Description bearychat - send messages to a bearychat channal Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 124 find_firebase_app_id via Tigran Hambardzumyan Helper plugin which will allow to find Firebase App ID from GoogleService-Info.plist [iOS] or google-services.json [Android]. Provided actions Name Category Description find_firebase_app_id - Helper plugin which will allow to find Firebase App ID from GoogleService-Info.plist [iOS] or google-services.json [Android]. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 12 The more tests a plugin has, the better Open on GitHub 124 cordova_screenshots via Jan Piotrowski Take screenshots of your Cordova/Ionic app with fastlane Provided actions Name Category Description init_cordova_screenshots_ios - Creates an iOS UI Unit Tests in '#{CordovaScreenshots::CORDOVA_SCREENSHOTS_IOS_CONFIG_PATH}' retrofit_cordova_screenshots_android - Retrofit test into Android project retrofit_cordova_screenshots_ios - Retrofit test into iOS Xcode project init_cordova_screenshots_android - Creates an Android UI test in '#{CordovaScreenshots::CORDOVA_SCREENSHOTS_ANDROID_CONFIG_PATH}' Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 1 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -10 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 15 The more tests a plugin has, the better Open on GitHub 123 flutter_version_manager via Davor Maric Manages app versioning of Flutter project Provided actions Name Category Description flutter_version_manager - Manages app versioning of a Flutter project. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 123 msi via Paul Niezborala Create Windows Installer Provided actions Name Category Description msi - Create Windows Installer Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 123 fir via dongorigin Upload a new build to fir.im Provided actions Name Category Description fir beta Upload a new build to fir.im Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 123 localize via Wolfgang Lutz Searches the code for extractable strings and allows interactive extraction to .strings file. Provided actions Name Category Description localize - Searches the code for extractable strings and allows interactive extraction to .strings file. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 4 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 123 plural_converter via Benoit Deldicque Convert Android plural XML resource file to iOS stringsdict file. Provided actions Name Category Description plural_converter - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 30 The more tests a plugin has, the better Open on GitHub 123 queue via Josh Holtz Queue up fastlane jobs Provided actions Name Category Description queue_stop - Stops web server and worker for queueing fastlane jobs queue_start - Starts web server and worker for queueing fastlane jobs queue - Adds fastlane jobs to a queue Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 8 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 122 update_jenkins_build via icyleaf Update Description of Build Provided actions Name Category Description update_jenkins_build - Update build's description of jenkins Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 18 The more tests a plugin has, the better Open on GitHub 122 static_assets via Jakob Jensen Generate code for buildtime-safe assignments of assets. Provided actions Name Category Description unused_images - - static_images - Generate code for buildtime-safe assignments of images. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 122 supply_aptoide via wschurman Upload metadata, screenshots and binaries to Aptoide Provided actions Name Category Description supply_aptoide - Upload metadata, screenshots and binaries to Aptoide. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 122 ios_dependency_parser via kochavi-daniel Analyzes results of 'pod outdated' in a structured manner Provided actions Name Category Description parse_pod_dependencies - Analyzes 'pod outdated' results and structures it for further usage. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 121 analyze_ios_linkmap via xiongzenghui iOS parse linkmap.txt to ruby Hash Provided actions Name Category Description analyze_ios_linkmap - iOS parse linkmap.txt to ruby Hash or JSON Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 45 The more tests a plugin has, the better Open on GitHub 119 teams_bot via Hugo EXTRAT Easily alert a Microsoft Teams channel Provided actions Name Category Description teams_bot - Easily send a message to a Microsoft Teams channel through the Webhook connector Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 119 sparkplugg via Boris Bu\u0308gling Quickly try out fastlane plugins. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 32 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 119 updateplistfromstrings via Jonas Schmid Allow to take values from the localization.strings and put them into Info.plist Provided actions Name Category Description updateplistfromstrings - Update InfoPlist.strings from translation file Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 118 imessage via Alexander Ignition send imessage Provided actions Name Category Description imessage notifications send imessage Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 18 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 118 rollbar via Evgrafov Denis Helps to upload sourcemaps/dsyms/proguard mapping/deploy report to Rollbar Provided actions Name Category Description rollbar_proguard_upload - Helps to upload Proguard mappings to Rollbar rollbar_dsym_upload - Helps to upload Dsym to Rollbar rollbar_report_deploy - Helps to report deploy to Rollbar rollbar_sourcemaps_upload - Helps to upload sourcemaps to Rollbar Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 6 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 28 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 117 trello via Oscar De Moya Fastlane plugin for moving a trello card to a given list Provided actions Name Category Description trello_comment - Adds a comment to a given Trello card trello_move_card - Moves a Trello card to a given list Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 117 farol via Felipe Plets Enable your app to use Farol Platform services Provided actions Name Category Description farol_api - Integrate your app with the Farol Platform using services like push notifications farol_get_version - Enable your app to use Farol Platform services farol - Enable your app to use Farol Platform services farol_set_version - Integrate your app with the Farol Platform using services like push notifications Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 31 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 116 xcresult_actions via yutailang0119 fastlane actions for .xcresult Provided actions Name Category Description summarize_xcresult_report - Summarize about test coverage rate from `.xcresult` file Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 27 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 116 androidmanifest_editor via \u4efb\u798f\u65b0 edit meta-data in AndroidManifest.xml Provided actions Name Category Description modify_meta_data - edit meta-data in AndroidManifest.xml modify_intent_scheme - edit scheme data of intent-filter in AndroidManifest.xml androidmanifest_editor - edit meta-data in AndroidManifest.xml Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 49 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 116 analyze_ios_ipa via xiongzenghui analysis iOS app/ipa multiple data. eg: 1) ipa basic info 2) Size occupied by each component = code + resource Provided actions Name Category Description analyze_ios_ipa - analysis iOS app/ipa multiple data. eg: 1) ipa basic info 2) Size occupied by each component = code + resource Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 116 ios_readme_generate via Erik Flores Create readme for ios projects Provided actions Name Category Description ios_readme_generate - Create readme for ios projects :D Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 116 gradle_manager via Helder Pinhal Exposes some Android configurations from the gradle file. Provided actions Name Category Description get_version_name - Get the parsed Gradle file of an Android project. get_version_code - Get the parsed Gradle file of an Android project. get_gradle_data - Get the parsed Gradle file of an Android project. get_application_id - Get the parsed Gradle file of an Android project. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 115 google_analytics via Helmut Januschka Fire universal Analytics Provided actions Name Category Description google_analytics - Fire universal Analytics Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 115 xclogparser via Josh Lesch Parse Xcode or xcodebuild build and test logs with XCLogParser Provided actions Name Category Description xclogparser - Parse Xcode or xcodebuild build and test logs with XCLogParser Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 30 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 115 jira_transitions via Ostap Taran Runs transitions for specified JIRA tickets Provided actions Name Category Description jira_transitions - Runs transitions for specified JIRA tickets Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 22 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 115 bitrise via Robin AUTHIAT Fastlane plugin to trigger a bitrise build with some options Provided actions Name Category Description bitrise - Trigger a bitrise build Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 115 write_changelog_from_commits via Lewis Bright Writes a changelog by pattern matching on git commits since the last tag. Organises these into sections and creates a changelog with the same name as the current version code Provided actions Name Category Description write_changelog_from_commits - Writes a changelog file by pattern matching on git commits since the last tag. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 4 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 21 The more tests a plugin has, the better Open on GitHub 115 csv_translation via Manish Rathi A fastlane plugin to manage translation using a CSV file under git repository. \ud83d\ude80 Provided actions Name Category Description create_csv_feature_branch - Create a csv feature branch. delete_csv_translation_request - Delete a translation request based on identifier value. fetch_csv_branch - Fetch a csv file branch. create_csv_translation_request - Create a csv translation request. rebase_csv_translation_request - Rebase a translation request based on identifier value. get_csv_translation_requests - Get CSV translation requests info Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 115 yafirim via wd Yet another fastlane fir.im plugin Provided actions Name Category Description yafirim - Yet another fastlane fir.im plugin Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 114 android_version_manage via futabooo Manage Android App Versioning Provided actions Name Category Description android_set_version_code - Set the Version Code of your Android project android_commit_version_bump - This action is like a commit_version_bump action for Android android_set_version_name - Set the Version Name of your Android project Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 29 More downloads = more users have been using the plugin for a while tests 27 The more tests a plugin has, the better Open on GitHub 114 test_report via Naylin Medina customized template for iOS test reports\u001b Provided actions Name Category Description test_report - Create customized HTML template for test reports Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 113 zealot via icyleaf Upload IPA/APK/dSYM/Proguard files to Zealot which it provides a self-host Over The Air Server for deployment of Android and iOS apps. Provided actions Name Category Description zealot_version_check - Check app version exists from Zealot zealot_sync_devices - Check app version exists from Zealot zealot_debug_file - Upload dSYM/Proguard files to Zealot which it provides a self-host Over The Air Server for deployment of Android and iOS apps. zealot - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 113 mattermost via cpfriend1721994 Fastlane plugin for push messages to Mattermost Provided actions Name Category Description mattermost - Fastlane plugin for push messages to Mattermost Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 19 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 113 testfairy via Josh Holtz Upload IPA to TestFairy Provided actions Name Category Description testfairy - Upload an IPA to TestFairy Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 112 souyuz-ventaapps via Felix Rudat A fastlane component to make Xamarin builds a breeze Provided actions Name Category Description app_version - Easily set or print app version with `app_version` souyuz - Easily build and sign your app using `souyuz` Score details Metric Points Description contributors 30 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 32 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 112 upload_to_onesky via joshrlesch Upload a strings file to OneSky Provided actions Name Category Description upload_to_onesky - Upload a strings file to OneSky Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 112 twitter via rb_de0 A simple twitter plugin Provided actions Name Category Description tweet - Tweet a message specified in the parameter Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 112 podspec_dependency_versioning via Cole Dunsby Edit the versions of your podspec dependencies Provided actions Name Category Description change_podspec_dependency_version - This action will modify the version of a dependency in your podspec. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 19 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 17 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 112 download_hockey_ipa via horimislime A fastlane plugin that helps downloading .ipa from HockeyApp Provided actions Name Category Description download_hockey_ipa - A fastlane plugin that helps downloading .ipa from HockeyApp Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 25 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 111 dingtalk_robot via InfiniteReverse webhook for dingtalk robot Provided actions Name Category Description dingtalk_robot - webhook for dingtalk robot Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 111 alioss via woodwu upload ipa/apk to aliyun oos server, and scan QRcode to install app on mobile phone. Provided actions Name Category Description alioss - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -6 Lots of open issues are not a good sign usually, unless the project is really popular downloads 37 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 110 try_adb_test via Alexey Alter-Pesotskiy The easiest way to retry your Android Instrumented Tests Provided actions Name Category Description try_adb_test - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 2 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 110 version via Jason Nam Set version Provided actions Name Category Description set_version - Set version Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 110 git_commit_changelog_to_markdown via Fernando Berrios This plugin will take the output of the changelog_from_git_commits plugin and convert it into markdown Provided actions Name Category Description git_commit_changelog_to_markdown - This plugin will take the output of the 'changelog_from_git_commits' plugin and convert it into markdown Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 33 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 109 jira_build_number via Tom Elrod Insert build number into related jira issues Provided actions Name Category Description jira_build_number - Adds build number from CI as comment to associated jira issue. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 109 android_change_app_name via MaximusMcCann Changes the manifest's label attribute (appName). Stores the original name for revertinng. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 89 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 108 update_team_identifier via Jordan Bondo Updates the Team Identifier for a given target Provided actions Name Category Description update_team_identifier - Updates the Team Identifier for a given target Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 108 app_store_build_info via Rishabh Tayal Get build info from App Store Connect Provided actions Name Category Description app_store_build_info - Get build info from App Store Connect Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 22 More downloads = more users have been using the plugin for a while tests 18 The more tests a plugin has, the better Open on GitHub 108 submit_to_beta_app_review via Dan Loewenherz Submits an already processed build to Beta App Review. Provided actions Name Category Description submit_to_beta_app_review - Submits an already processed build to Beta App Review. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 108 jira_issues_release_notes via Erick Martins It generates a release note based on the issues keys and descriptions found in the commits Provided actions Name Category Description jira_release_changelog - It generates a release note based on the issues keys and descriptions found in the commits jira_comment - It generates a release note based on the issues keys found in branch name and descriptions found in the commits jira_versions - It generates a release note based on the issues keys found in branch name and descriptions found in the commits jira_issues_keys_from_commits - It generates a release note based on the issues keys found in branch name and descriptions found in the commits jira_feature_validation - It generates a release note based on the issues keys found in branch name and descriptions found in the commits jira_release_validation - It generates a release note based on the issues keys and descriptions found in the commits Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 107 run_lane via Jonathan Ritchie Run a specified fastlane lane in your project. Provided actions Name Category Description run_lane - Run a specified fastlane lane in your project Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 26 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 106 ixguard via Evgeniy Kubyshin ixguard plugin Provided actions Name Category Description ixguard - iXGuard build plugin Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 32 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 106 mocha_run_tests via Adam T Armstrong Run Mocha Tests from within fastlane Provided actions Name Category Description mocha_run_tests - Run Mocha Tests from within fastlane Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 106 git_build_versioning via Mikko Va\u0308lima\u0308ki Store build numbers in git tags for distributed sequential builds Provided actions Name Category Description reserve_git_build_number - Use git for tagging your builds for unique distributed sequential build numbers get_git_build_number - Use git for tagging your builds for unique distributed sequential build numbers Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 23 More downloads = more users have been using the plugin for a while tests 18 The more tests a plugin has, the better Open on GitHub 105 droidicon via @chrhsmt Generate required icon sizes and iconset from a master application icon Provided actions Name Category Description droidicon - Generate required icon sizes and iconset from a master application icon Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 104 update_provisioning_profile via Duy Nguyen This action will update xcodeproj with values extracted from your provisioning profile. Provided actions Name Category Description update_provisioning_profile - This action will update xcodeproj with values extracted from your provisioning profile. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 104 deploy_file_provider via Kamil Krzyk, Przemys\u0142aw Wo\u015bko Prepares metadata files with structure ready for AppStore, PlayStore deploy Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 84 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 104 au_auto_close_upload via Emil Upload artifacts to AppUnite's auto-close service Provided actions Name Category Description au_auto_close_upload - Upload artifacts to AppUnite's auto-close service Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 104 ding_talk via gaoxiang Auto send the pgyer app qr code to the ding talk. Provided actions Name Category Description ding_talk - Send the packaging information to the ding talk. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 104 react_native_release via Chris Ball Simplify releases for React Native apps. Provided actions Name Category Description create_fastlane_session - Simplify 2FA authentication for App Store Connect react_native_release - Simplify releases for React Native apps encrypt_fastlane_vars - Encrypt fastlane vars for CI decrypt_google_play_credentials - Decrypts app env vars and sets the values in the root .env file read_fastlane_session - Simplify 2FA authentication for App Store Connect create_changelog - Determines if a release should happen based on conventional commits. generate_android_keystore - Decrypts app env vars and sets the values in the root .env file accept_android_sdk_licenses - Accepts Android sdk licenses add_fastlane_var - Adds a single ENV var for fastlane to the encrypted repository encrypt_google_play_credentials - Encrypts credentials from Google Play and stores in the context repo. tag_release - Tags a release based on a prefix, version, and build numbers encrypt_app_vars - Encrypts app env vars and stores them in the context repo. determine_release_from_commits - Determines if a release should happen based on conventional commits. decrypt_android_keystore - Decrypts app env vars and sets the values in the root .env file decrypt_fastlane_vars - Decrypts fastlane ENV vars from the encrypted repo. Optionally sets them in ENV. add_app_var - Adds a single ENV var to the encrypted repository decrypt_app_vars - Decrypts app env vars and sets the values in the root .env file Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 6 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -13 Lots of open issues are not a good sign usually, unless the project is really popular downloads 26 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 103 transifex via junjie basic transifex wrapper Provided actions Name Category Description transifex - basic transifex wrapper Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 25 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 17 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 103 release via Cole Dunsby Automates the steps to create a new release for a project. Provided actions Name Category Description make_release - Automates the steps to create a new release for a framework. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 19 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 103 send_e_mail via huangj a tool to sendmail Provided actions Name Category Description send_e_mail - a tool to sendmail Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 103 apphoster via JerryFans A simple plugin to upload your ipa file to AppHost Server in fastlane. Provided actions Name Category Description apphoster - A simple plugin to upload your ipa file to AppHost Server in fastlane. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 102 phraseapp via Issarapong Poesua a phraseapp-cli tool wrapper Provided actions Name Category Description phraseapp - a phraseapp-cli tool wrapper Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 102 xliff_en_gen via alexander sun gen Localizable.strings file from xliff Provided actions Name Category Description export_xliff - export xliff for an xcode project xliff_en_gen - Overwrite project Localizable.strings file from English version xliff Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 26 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 102 ipa_install_plist_generate via xiongzenghui iOS ipa enterprise install plist generate plugn Provided actions Name Category Description ipa_install_plist_generate - iOS ipa enterprise install plist generate plugn Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 101 gitlab_changelog via Z\u030cilvinas Sebeika Get changelog using GitLab API Provided actions Name Category Description gitlab_changelog - - Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 101 buildnumber via Nick Griffith Generates unique build numbers for iOS projects. Provided actions Name Category Description buildnumber - Generates unique build numbers for iOS projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 30 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 101 kuhverij via Morten B\u00f8gh Simplified Code Coverage Provided actions Name Category Description kuhverij testing Simplified Code Coverage Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 13 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 33 The more tests a plugin has, the better Open on GitHub 100 mobileiron via Roman Ivannikov Release your builds to Mobileiron In-Hause instance. https://www.mobileiron.com Provided actions Name Category Description mobileiron - Release your app with Mobileiron Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 21 The more tests a plugin has, the better Open on GitHub 100 summonbin via Jason Nam Execute command with summonbin Provided actions Name Category Description summonbin - Execute command with summonbin Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 100 update_build_settings_key via ungacy Updated code signing settings from 'Automatic' to a specific profile Provided actions Name Category Description update_build_settings_key - Updates build settings key to a new value Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 17 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 99 unsetinfoplistvalue via David Cordero Unsets value to Info.plist of your project as native Ruby data structures Provided actions Name Category Description unset_info_plist_value project Unsets value to Info.plist of your project as native Ruby data structures Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 99 line_notify via AKKHARAWAT CHAYAPIWAT To be able to send message to Line Notify Provided actions Name Category Description line_notify - You can use this action to send message via Line Notify Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 19 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 29 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 99 android_change_package_name via yeppao Change the package name in the AndroidManifest.xml file Provided actions Name Category Description android_change_package_name - Change the package identifier in the AndroidManifest.xml file Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 31 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 99 redmine_upload via Mattia Salvetti A fastlane plugin to upload file contents to Redmine Provided actions Name Category Description redmine_file_post - Uploads a file in a Redmine Files section of a given Redmine project redmine_upload - A fastlane plugin to upload file contents to Redmine Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 98 coreos via Oliver Letterer Deploy docker services to CoreOS hosts Provided actions Name Category Description coreos_deploy - Deploy docker services to CoreOS hosts Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 17 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 98 unity3d via fuzhongqing fastlane for unity3d engine Provided actions Name Category Description unity3d building fastlane plugin for unity3d engine Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 4 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 17 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 98 analyze_ios_framework via xiongzenghui analysis ios framework in buildout or pods dir Provided actions Name Category Description analyze_ios_framework - analysis ios framework in buildout or pods dir Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 17 More downloads = more users have been using the plugin for a while tests 15 The more tests a plugin has, the better Open on GitHub 97 last_fabric_version_code via Andr\u00e9s Hern\u00e1ndez Get the last Fabric version code for your Android app Provided actions Name Category Description last_fabric_version_code - Get the last Fabric version code for your Android app Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 97 debug_file via icyleaf Compress iOS/macApp dSYM or Android Proguard(mapping/R/AndroidManifest) to zip file Provided actions Name Category Description list_dsym misc Find and generate iOS/MacOS dSYM file(s) to zip file proguard misc Find and generate Android proguard file(s) to zip file dsym misc Find and generate iOS/MacOS dSYM file(s) to zip file Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 96 clear_archived_data via Onur Y\u0131ld\u0131r\u0131m Deletes the archive file located at SharedValues::XCODEBUILD_ARCHIVE. Provided actions Name Category Description clear_archived_data - Deletes the archive file located at SharedValues::XCODEBUILD_ARCHIVE. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 96 copy via Jason Nam Copy file Provided actions Name Category Description copy - Copy file Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 96 bomb_emoji via Josh Holtz \ud83d\udca3\ud83d\udca5 No more emojis Provided actions Name Category Description bomb_emoji - No more emojis Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 96 get_last_circleci_build_number via Dawid van der Hoven fetches the last build number from circleci. Provided actions Name Category Description get_last_circleci_build_number - fetches the last build number from circleci. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 96 buddybuild via Jorge Revuelta This plugin allows the communication with the Buddybuild API. Provided actions Name Category Description buddybuild_list_apps - Retrieves all the applications for a given account in Buddybuild. buddybuild_get_latest_build_number - Retrieves the latest build number for a given Application Identifier. buddybuild_show_latest_build - Retrieves the latest build for a given Application Identifier. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 95 match_import via Serhii Batsevych Match repository custom import Provided actions Name Category Description match_export_apns - Match repository apns certs export match_export - Match repository custom export match_import - Match repository custom import match_import_apns - Match repository apns certs import match_remove_invalid_apns - Match repository apns certs remove invalid match_remove - Match repository custom export Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 95 get_application_id via Helder Pinhal Get the applicationId of an Android project. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 63 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 95 lastpass via Antoine Lamy Easily sync your Apple ID credentials stored in LastPass with your keychain using CredentialManager Provided actions Name Category Description lastpass - Easily sync your Apple ID credentials stored in LastPass with your keychain using CredentialManager Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 19 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 95 transifex_tool via maydin Transifex tool that pulls translations using transifex rest api Provided actions Name Category Description rest_pull - Transifex plugin for pull and push translations cli_pull - Transifex tool that pulls translations using transifex cli client cli_push - Transifex tool that push translations using transifex cli client Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 94 sous via Jonathan Nogueira A tool to help create and sync keystores, as well as sign apks and aabs for the play store Provided actions Name Category Description plate - This action signs apks using an existing keystore pass - This action retrieves existing keystores for the android build system Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 94 dingtalk via Kim Huang a fastlane plugin for dingtalk robot Provided actions Name Category Description dingtalk - a fastlane plugin for dingtalk. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 94 fabric_beta_unregistered_devices via Slava Kornienko SHORT Provided actions Name Category Description fabric_beta_unregistered_devices - Get unregistered devices from Fabric Beta. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 94 promo_code via marumemomo promo_code Provided actions Name Category Description promo_code - promo_code Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 93 aws_device_farm_upload via Takuma Homma Uploads specified file to AWS Device Farm project Provided actions Name Category Description aws_device_farm_upload - Uploads specified file to AWS Device Farm project Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 93 xbluepill via UladzimirKisialiou It is a fastlane plugin that allows to use bluepill (linkedin library) as a fastlane command Provided actions Name Category Description xbluepill - Fastlane plugin that allows to use bluepill (linkedin library) as a fastlane command Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 5 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 93 source_env_from_file via xiongzenghui set ENV[\"key\"]=value from file like key=value Provided actions Name Category Description source_env_from_file - set ENV['key']=value from file like key=value Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 93 check_good_version via Lyndsey Ferguson Checks the version of the installed Good framework Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 31 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 93 flint via Jyrno Ader Easily sync your keystores across your team using git Provided actions Name Category Description flint - DESCRIPTION Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 93 react_native_util via Jimmy Dee Community utilities for React Native projects Provided actions Name Category Description react_pod - Community utilities for React Native projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 93 increment_version_code_android via SimoneCorsini Increment the version code of your android project, supporting different product flavors. Provided actions Name Category Description increment_version_code_android - Increment the version code of your android project, supporting different flavors. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 92 poesie via Patrik Potoc\u030cek Exports translations from POEditor using poesie tool. Provided actions Name Category Description poesie - Exports translations from POEditor using poesie tool. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 28 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 92 apperian via Tomi Blank Allows to upload your IPA file to Apperian Provided actions Name Category Description apperian - Allows to upload your app file to Apperian Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 91 wexlane via Chris River Common tools for CI Provided actions Name Category Description android_get_version - Common tools for CI ios_get_version - Common tools for CI Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 91 xamarin via Thomas Charriere Build Xamarin Android + iOS projects Provided actions Name Category Description msbuild - Build Solutions with msbuild nuget_restore - Nuget xamarin_android - Build Xamarin Android + iOS projects xamarin_ios - Build Xamarin Android + iOS projects nuget_install - Nuget clean - Clean artifacts Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 23 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 91 android_update_package_identifier via Jonathan Nogueira Changes the applicationId inside of your build.gradle file Provided actions Name Category Description android_update_package_identifier - Changes the applicationId inside of your build.gradle file. Does not change the AndroidManifest Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 90 sunny_project via ericmartineau Sunny flutter projects Provided actions Name Category Description rename_assets - Renames assets, generates an assets.dart file to reference them. pubspec_doctor - Modify pubspec for local or git development sunny_release - - increase_version - Increment version number in pubspec.yaml file sunny_build_runner - Cleans and runs flutter build_runner sunny_build_web - Builds a web project local_packages - Checks out local dart packages finalize_version - Commit version tags release_notes - Get or retrieve release notes from git generate_icons - Generates a flutter icon set as a font dart_package_status - - curr_semver - Gets the current version from the project's pubspec.yaml file pub_release - Releases a dart package pub_publish - Executes pub publish command Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 31 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 90 copy_screenshots via yosshi4486 Copy screenshots with a specified device name. Provided actions Name Category Description copy_screenshots screenshots Copy screenshots with a specified device name. This action should be executed after `capture_ios_screenshots` action. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 2 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 90 update_app_associated_domains via Nicolas TRUTET [iOS] Replace associated domains array for the key in the entitlement file. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 58 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 89 git_authors via Viktor Rutberg List authors of a Git repository Provided actions Name Category Description git_authors - List all authors of a Git repository Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 89 google_chat_message via Douglas Garcia Send simple text messages to Google Chat Provided actions Name Category Description google_chat_message - Send simple text messages to Google Chat Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 89 aws_sns_topic via Levi Bostian Fastlane plugin to public message to SNS topic. Provided actions Name Category Description aws_sns_topic - Public a message to a AWS SNS topic. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 88 docc via Kukurijek Automate docc - documentation for swift frameworks and packages Provided actions Name Category Description docc - Automate docc - documentation for swift frameworks and packages Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 1 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 88 poeditor via Kostia Myts Upload strings to POEditor Provided actions Name Category Description upload_strings_to_poeditor - Upload strings to POEditor Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 88 goodify_info_plist via Lyndsey Ferguson This plugin will update the plist so that the built application can be deployed and managed within BlackBerry's Good Dynamics Control Center for Enterprise Mobility Management. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 56 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 88 unreleased_changelog via Manish Rathi A fastlane plugin to manage unreleased changelog using a YAML file. \ud83d\ude80 Provided actions Name Category Description get_unreleased_changelog - Get the unreleased changelog add_unreleased_changelog - Add a new entry in unreleased changelog delete_unreleased_changelog - Delete changelog entry from unreleased changelog stamp_unreleased_changelog - Stamp unreleased changelog ensure_unreleased_changelog - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 88 verify_ipa_with_app_store_connect via Onno Bergob Uses iTMSTransporter to verify an ipa with App Store Connect. Provided actions Name Category Description verify_ipa_with_app_store_connect - Uses the command line tool iTMSTransporter provided with Xcode to verify the ipa. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 1 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 30 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 88 svn_commit via cleexiang svn plugin with fastlane Provided actions Name Category Description svn_commit - Commit to svn repos with fastlane Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 88 postmark via Levi Bostian Fastlane plugin to public message to SNS topic. Provided actions Name Category Description postmark - Send emails via Postmark in fastlane! Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 88 danger_result via marumemomo Get danger data plugin. Provided actions Name Category Description danger_result - Get danger data plugin. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 87 android_reporter via Yazan Tarifi Open Android Emeulators Then Generate Report File From Tests then Upload the File To Slack Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 55 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 87 hello_test via Gianfranco Manganiello test Provided actions Name Category Description hello_test - test Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 87 ios_flavors via Zachary Davison Create multiple build flavors of an iOS .ipa file using a directory of .plist files. Provided actions Name Category Description create_ipa_flavors - Create multiple build flavors of an iOS .ipa file using a directory of .plist files create_sim_flavors - Create multiple build flavors of an iOS .app (for the simulator) using a directory of .plist files Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 87 maintenance via Jimmy Dee Maintenance actions for plugin repos. Provided actions Name Category Description rake - General-purpose rake action to invoke tasks from a Rakefile or elsewhere. update_rubocop - Automatically updates RuboCop to the latest version. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 87 fetch_version_code via CoorpAcademy Fetch (and increment) version code for given platform Provided actions Name Category Description fetch_version_code - Fetch (and increment) version code for given platform Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 18 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license -50 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 51 The more tests a plugin has, the better Open on GitHub 87 xcode_tools_select via Vincent HO-SUNE Sets the DEVELOPER_DIR environment, used by fastlane to run Xcode command line tools, to a specific Xcode version found on the current system. Provided actions Name Category Description xcode_tools_select building Set the [version] of the default Xcode Command Line Tools path to use. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 86 simulator_add_root_cert via Nico Richard Add a root cert to your simulators with Fastlane Provided actions Name Category Description simulator_add_root_cert - Easily add a root cert to your simulators with Fastlane Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 2 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 86 user_default_get via zhangqi get value like ios userDefault Provided actions Name Category Description user_default_get - get value like ios userDefault Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 25 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 86 git_status_clean via zhangqi clean git status Provided actions Name Category Description git_status_clean - clean git status Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 25 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 86 flutter_build via viniciusmo Build your flutter project directly from your lane. Provided actions Name Category Description flutter_build - Build our project directly from your lane. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 18 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 86 download_hocky_build via Anton Morozov Download newest build from HockeyApp (iOS & Android) Provided actions Name Category Description download_hocky_build - Download newest build from HockeyApp (iOS & Android) Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 86 allure_zephyr via Nikita Ianenko Publish Allure results to Zephyr Provided actions Name Category Description allure_zephyr - Publish Allure results to Zephyr Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 1 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 86 user_default_set via zhangqi fastlane save user default like ios userDefault Provided actions Name Category Description user_default_set - fastlane save user default like ios userDefault Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 25 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 85 buggly via zhuyunlong \u4e0a\u4f20Bugly Provided actions Name Category Description buggly - Upload the dSYM file to Buggly crash analyze system. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 85 discord via Matheus Gambati Discord integration with Fastlane Provided actions Name Category Description discord - Discord integration with Fastlane Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 85 pgyer_v2 via nice2m pgyer for v2 suppor Provided actions Name Category Description pgyer - distribute app to pgyer beta testing service Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 85 simplemdm via Shannon Hicks Fastlane plugin for uploading iOS builds to SimpleMDM Provided actions Name Category Description upload_to_simplemdm - Upload IPA to Simple MDM Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 0 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 84 xamversion via Jake Barnby Read and manipulate Android and iOS app versions. Provided actions Name Category Description xamversion - Read and manipulate Android and iOS app versions. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 4 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 84 generate_xliff via Kostia Myts Generates XLIFF file Provided actions Name Category Description generate_xliff - Generates XLIFF file remove_xliff_artifacts - Generates XLIFF file Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 84 schedule via marumemomo Run lane from current time Provided actions Name Category Description get_lane - Run lane from current time Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 84 testbm via Bemobile A Test plugin Provided actions Name Category Description testbm - A Test plugin bmversion - TODO bmdistribution - Distributes an app version via firebase, testflight, browsertack or the play store. bmbuild - TODO salutation - Returns hello world bminfo - TODO bmslack - Sends a message to a Slack chat specified in the SLACK_URL environment variable Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 30 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 83 flutter_dart_version_manager via Marvin Moeltgen A version manager for flutter Provided actions Name Category Description flutter_dart_version_manager - A version manager for flutter flutter_set_version - A version manager for flutter Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 83 enumerated_translations via Mads B\u00f8geskov Converts a strings file to an enum, to make it more safe to access translations. Provided actions Name Category Description enumerated_translations - Converts a strings file to an enum, to make it more safe to access translations. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 82 dependency_manager_outdated via matsuda Fastlane plugin to check project's outdated dependencies Provided actions Name Category Description cocoapods_outdated - Check outdated CocoaPods dependencies dependency_manager_outdated - Fastlane plugin to check project's outdated dependencies carthage_outdated - Check outdated Carthage dependencies Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 82 creator via David Ackerman Mobile build framework for rust-lang Provided actions Name Category Description creator_build_android - Builds apk file from rust project creator_build_ios - Builds ipa file from rust project Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 82 gitlab_tag_release via Erick Martins Simple plugin to manage gitlab releases Provided actions Name Category Description gitlab_get_release - - gitlab_create_release - - gitlab_collect_release_evidence - - gitlab_list_releases - - gitlab_delete_tag - - gitlab_update_release - - gitlab_delete_release - - Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 0 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 82 lock_keychain via Alex Antonyuk Plugin for locking unlocked keychain Provided actions Name Category Description lock_keychain - Plugin for locking unlocked keychain Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 82 xambuild via Jake Barnby Fastlane plugin to make Xamarin builds easy Provided actions Name Category Description xambuild - Easily build and sign your Xamarin iOS or Android app using `xambuild` Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 4 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 81 managed_google_play via Jan Piotrowski Create Managed Google Play Apps Provided actions Name Category Description get_managed_play_store_publishing_rights - Obtain publishing rights for custom apps on Managed Google Play Store managed_google_play - Create Managed Google Play Apps create_app_on_managed_play_store - Create Managed Google Play Apps Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -5 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 81 publish_dropbox via Tommyvanvliet This plugin publishes artifacts over to Dropbox via a generated api token from Dropbox Developer API. Provided actions Name Category Description publish_dropbox - This plugin publishes artifacts over to Dropbox via a generated api token from Dropbox Developer API. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 81 bitrise_bcsymbolmaps via Oleksandr Skrypnyk Download BCSymbolMaps from Bitrise Provided actions Name Category Description bitrise_download_bcsymbolmaps - Downloads BCSymbolMaps from Bitrise before uploading them to a crash reporting tool. bitrise_clean_bcsymbolmaps - Cleans up downloaded artifacts. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 81 upload_dsym via xiongzenghui upload dsym to your specify server Provided actions Name Category Description upload_dsym - upload dsym to your specify server Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 13 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 19 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 80 line_message via Wasith Theerapattrathamrong Use to send message to Line chat Provided actions Name Category Description line_message notifications Use to send message to Line chat Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 80 periphery via Liam Nichols Identifies unused code in Swift projects using Periphery Provided actions Name Category Description periphery - - Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 24 The more tests a plugin has, the better Open on GitHub 80 gitlab_get_max_version_branch via xiongzenghui get a max version branch from a gitlab project, like: master_5.11.9 Provided actions Name Category Description gitlab_get_max_version_branch - get a max version branch from a gitlab project, like: master_5.11.9 Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 80 depman via Andrey Shapovalov Invokes depman-scanner to programmatically run Depman analysis Provided actions Name Category Description depman testing Arcsinus Dependency manager Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 1 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 80 git_clone via xiongzenghui a wrapper for git clone command Provided actions Name Category Description git_clone source_control this is a wrapper for git clone command Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 13 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 79 build_app_for_simulator via Alexey Alter-Pesotskiy This plugin builds apps exclusively for iOS, tvOS or watchOS Simulators. Provided actions Name Category Description build_app_for_simulator building This plugin builds apps exclusively for iOS, tvOS or watchOS Simulators. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 1 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 78 download_object_from_s3 via aomathwift Download objects from AWS S3 Provided actions Name Category Description download_object_from_s3 - Download objects from AWS S3 Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 15 The more tests a plugin has, the better Open on GitHub 78 ding_talk_msg_push via asynclog dingTalk robot msg push tool Provided actions Name Category Description ding_talk_msg_push - dingTalk robot msg push tool Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 77 git_pull_branch via Bhuvanesh BS pull code from different branch Provided actions Name Category Description git_pull_branch - pull code from different branch Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 76 rename_android_package via Josh Holtz Renames Android package Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 56 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 76 release_version via Leon Keijzer This plugin makes it possible to release an already approved version in AppStore Connect Provided actions Name Category Description reject_version - This action makes it possible to reject a binary in AppStore Connect release_version - This plugin makes it possible to release an already approved version in AppStore Connect Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 76 fivethree_ionic via Marc Stammerjohann Fastlane plugin for Ionic v4 Projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 56 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 76 dropbox_upload via jason upload files to dropbox Provided actions Name Category Description dropbox_upload - upload files to dropbox Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 75 git_add_tag via xiongzenghui git add tag wrapper Provided actions Name Category Description git_add_tag source_control git add tag wrapper Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 75 sequenia_gitflow via Semen Kologrivov Script for communicating with sequenia's git repos Provided actions Name Category Description fetch_merged_tasks - Fetch merged into current branch feature tasks after last release tag Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 18 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 75 secrets via Cyril Cermak, Jo\u0308rg Nestele Securely store secrets in source code. Provided actions Name Category Description decrypt_secrets - Securely store secrets in source code encrypt_secrets - Securely store secrets in source code Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 75 import_from_url via Doruk Kangal Import another Fastfile from given url to use its lanes Provided actions Name Category Description import_from_url - Import another Fastfile from given url to use its lanes Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 75 bitwarden via Ilija Boshkov Bitwarden CLI warpper plugin Provided actions Name Category Description bitwarden_login - You can use this action to login to BitWarden and unlock the vault. bitwarden_unlock_vault - You can use this action to download an item's attachment from BitWarden. bitwarden_get_object - You can use this action to download an item's attachment from BitWarden. bitwarden_download_attachment - You can use this action to download an item's attachment from BitWarden. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 74 logme via Lui\u0301s Esteves Provides a simple way to get logs from two delta commits Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 54 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 74 gitlab_branch_diff via xiongzenghui gitlab compare two branch to get diffs Provided actions Name Category Description gitlab_branch_diff - gitlab compare two branch to get diffs Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 73 speculid via Leo Dion Use speculid to easily manage graphics in Xcode projects Provided actions Name Category Description speculid - Use speculid to Easily Manage Graphics in Xcode Projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 73 gsheet_metadata via Kevin Morais Generate metadata from Google Spreadsheet Provided actions Name Category Description gsheet_metadata - Generate metadata from Google Spreadsheet Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 73 make via xiongzenghui Linux GNU Makefile make wrapper Provided actions Name Category Description make building Linux GNU Makefile make wrapper Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 73 pgyer_jvtd via \u9648\u78ca\u7684MacBook Pro \u84b2\u516c\u82f1\u805a\u901a\u8fbe\u63d2\u4ef6 Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 53 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 73 jira_set_feature_build via Tommy Sadiq Hinrichsen Tags passed in Jira issue with a feature build url from parameter :url Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 73 resize_screenshots via Levi Bostian Resize screenshots taken from your simulator to use for Frameit. Provided actions Name Category Description resize_screenshots - Resize screenshots taken from your simulator to use for Frameit. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 73 android_channels via icyleaf Package unsign apk with channels Provided actions Name Category Description android_channels building Package apk file with channels Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 72 bugtags via wliu6 Upload symbols to Bugtags Provided actions Name Category Description bugtags - Upload symbols to Bugtags Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 72 deploy_aws_s3_cloudfront via Hector Deploy local directory to AWS S3 bucket and invalidate CloudFront Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 22 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 72 report via Bruno Migue\u0302ns After an action, like scan for instance, you're able to generate a report file. This fastlane plugin gives you a way to upload and share your report using Slack. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 40 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 72 acknowledgements via Simon Rice, Christophe Knage Use Fastlane to give credit where it's rightfully due Provided actions Name Category Description acknowledgements - Use Fastlane to give credit where it's rightfully due. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license -50 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 72 goyuyun via vincentwu08 \u4e00\u952e\u53d1\u5e03\u81f3\u4e70\u597d\u4e91 Provided actions Name Category Description goyuyun - \u4e00\u952e\u53d1\u5e03\u81f3\u4e70\u597d\u4e91 Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 72 sns_http_subscribe via mnk98 Subscribe to sns topic using http/https endpoint Provided actions Name Category Description sns_http_subscribe - - Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 71 mailjet via thibaut noah plugin to send mail notifications for build release Provided actions Name Category Description mailjet - Send a custom message to an email group with mailjet Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 13 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 71 rm_derived_data via xiongzenghui de Provided actions Name Category Description rm_derived_data building after build finish remove xx.xcworkspace/xx.xcodeproj specify DerivedDatagst/* Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 70 upload_symbols_to_shake via Shake Team Upload dSYM to Shake Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 70 app_previews via Fausto Upload app previews to the App Store Connect Provided actions Name Category Description upload_app_previews - Upload app previews to the App Store Connect Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 70 s3_cert via Josh Lesch Store and install encrypted Certs from s3 Provided actions Name Category Description s3_upload_certs - Upload encrypted certs to s3 s3_cert - Pull Certs from s3 and install them into keychain. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 70 appsigner via Valeriy Makarshin AppSigner Provided actions Name Category Description appsigner - AppSigner Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 69 get_derived_data_path via Rajiv Shah Retrieves the path of a workspace in DerivedData Provided actions Name Category Description get_derived_data_path - Retrieves the path of a workspace in DerivedData Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 69 checkbuild via Johannes Steudle This plugin will check any binary library for unwanted symbols and architectures Provided actions Name Category Description checkbuild - This plugin will check any binary library for unwanted symbols and architectures. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 69 ci_apps via JiaqiangSong Config multiple apps of CI Provided actions Name Category Description get_extensions - A short description with < = 80 characters of what this action does ci_apps - Config multiple apps of CI get_ci_apps - A short description with < = 80 characters of what this action does get_ci_app_value - A short description with < = 80 characters of what this action does get_ci_app - A short description with < = 80 characters of what this action does get_emtitlements_plist_file_path - A short description with < = 80 characters of what this action does get_target_type - A short description with < = 80 characters of what this action does get_info_plist_file_path - A short description with < = 80 characters of what this action does Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 69 appcenter_get_recent_release_version via Kitti Pariyaakkarakul Get recent release version from appcenter Provided actions Name Category Description appcenter_get_recent_release_version - Get recent release version from appcenter Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 68 gitlab_merge_request_add_note via xiongzenghui add merge request note for gitlab server api Provided actions Name Category Description gitlab_merge_request_add_note - add merge request note for gitlab server api Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 68 gitlab_merge_request_participants via xiongzenghui Get a list of merge request participants Provided actions Name Category Description gitlab_merge_request_participants - Get a list of merge request participants Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 68 redpill via omniprojects Fastlane plugin to use bluepill in fastlane Provided actions Name Category Description redpill - Plugin to use bluepill in fastlane Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license -50 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 68 avd_emulator via Guillaume Elloy This plugin is listing available android avd emulators, allowing you to start the selected one. Provided actions Name Category Description start_avd_emulator - This plugin is listing available android avd emulators, allowing you to start the selected one. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 13 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 68 cuttly_api via Yalan fastlane plugin for cuttly. Provided actions Name Category Description cuttly_api - fastlane plugin for cuttly. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 68 load_erb_config via Joaomon7eiro Fastlane plugin to read erb configuration file Provided actions Name Category Description load_erb_config - Fastlane plugin to load configuration object from yml file Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 68 git_remove_tag via xiongzenghui remove git origin and remote repo tag Provided actions Name Category Description git_remove_tag source_control remove git origin and remote repo tag Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 67 fetch_metadata_from_google_sheets via kurarararara Get App Store metadata from Google Sheets. Provided actions Name Category Description fetch_metadata_from_google_sheets - Get App Store metadata from Google Sheets. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 67 bugly via chaosky Upload dSYM to bugly. Provided actions Name Category Description bugly - Upload dSYM to bugly. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 13 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 67 bowl via Benjamin Wulff Handles uploads to BOWL backend Provided actions Name Category Description bowl - Handles uploads to BOWL backend get_gradle_property - - set_gradle_property - Set the value of your project Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 67 work_wechat via DevZhang work wecaht webhook Provided actions Name Category Description work_wechat - work wecaht webhook Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 66 microsft_teams_message_card via Dorian Cheignon Send a message card to your Microsoft teams channel Provided actions Name Category Description microsft_teams_message_card notifications Send a message card to your Microsoft teams channel Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 65 u3d via Jerome Lacoste Fastgame's u3d (a Unity3d CLI) integration Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 33 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 65 gitlab_increate_line_notes via xiongzenghui filter gitlab merge request changes files & swiftlint json, last add line code with gitlab discussion Provided actions Name Category Description gitlab_increate_line_notes - filter gitlab merge request changes files & swiftlint json, last add line code with gitlab discussion Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 65 circle_ci via Manish Rathi A fastlane plugin for Circle CI. \ud83d\ude80 Provided actions Name Category Description download_circle_ci_artifact - Download the CircleCI artifact file. trigger_circle_ci_job - Triggers a new CircleCI Job get_circle_ci_build_status - CircleCI build status get_circle_ci_artifacts - List the CircleCI artifacts. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 65 deploy_module_bintray via Bruno Oliveira Gradle action to deploy a Module from an Android project Provided actions Name Category Description deploy_module_bintray - Gradle actions to deploy a module from an Android project Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 65 gitter via Andrew Havens A Fastlane plugin for sending a message to a Gitter room. Provided actions Name Category Description gitter - Send a message to a Gitter room. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 64 google_chat_v2 via \u201cmao-karrostech\u201d google chat v2 Provided actions Name Category Description google_chat_v2 - Send message to google chat v2 Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 64 moss via Shaggon du Moss is a tool that allows developers on Apple platforms to use any frameworks as a shared cache for frameworks built with Carthage. Provided actions Name Category Description moss - moss is a tool that allows developers on Apple platforms to use any frameworks as a shared cache for frameworks built with Carthage. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 64 azuredevops_envvars via Star Leasing Company A Fastlane plugin that provides passthrough access to AzureDevOps environment variables Provided actions Name Category Description azuredevops_envvars - A Fastlane plugin that provides passthrough access to AzureDevOps environment variables Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 62 jira_ticket via Dorian Cheignon get ticket in jira board Provided actions Name Category Description jira_ticket - get ticket in jira board Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 62 jira_link via David Brooks This plugin allows you to link two tickets together in JIRA Provided actions Name Category Description jira_link misc This plugin allows you to link two tickets together in JIRA Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 62 codemagic via Mikhail Matsera Fastlane plugin to trigger a Codemagic build with some options Provided actions Name Category Description codemagic - Fastlane plugin to trigger a Codemagic build with some options Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 62 appcenter_get_version via Markus Kramm get the latest build version from the app center Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 42 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 61 retrieve_devices via Lachlan Young, BuiltByProxy retrieve all devices registered to your apple certrificate Provided actions Name Category Description retrieve_devices misc This action will retrieve a list of each device registered with Apple Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 60 app47 via Shannon Hicks Fastlane plugin for uploading builds to App47 Provided actions Name Category Description upload_to_app47 - Upload IPA to Simple MDM Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 0 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 60 asana_task via respecu asana task plugin Provided actions Name Category Description asana_task - asana task plugin Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 2 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 60 fabulove via carry \"fabulove\" distribution system fastlane plugin Provided actions Name Category Description fabulove - 'fabulove' distribution system fastlane plugin Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 59 git_import via Dmitry Frishbuter Import all required fastlane dependencies from the git repository and keep your Fastfile simple! Provided actions Name Category Description git_import - Import all required fastlane dependencies from the git repository and keep your Fastfile simple! Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 59 npm via Erick Martins A very simple plugin to run npm scripts Provided actions Name Category Description npm_test - A very simple plugin to run npm scripts npm_run - A very simple plugin to run npm scripts npm_post_install - A very simple plugin to run npm scripts npm_install - A very simple plugin to run npm scripts upgrade_package_json_version - A very simple plugin to run npm scripts npm_lint - Runs lint script Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 59 aliyunoss via yigua upload package to aliyunoss Provided actions Name Category Description aliyunoss - - Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 58 teams_message_card via Dorian Cheignon Send a message card to your Microsoft teams channel Provided actions Name Category Description teams_message_card notifications Send a message card to your Microsoft teams channel Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 56 clean_xcarchive via matsuda Fastlane plugin to remove xcarchive created when build & archive Provided actions Name Category Description clean_xcarchive - Delete the archive created at build Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 56 pgyer_cl via chenlei pgyer_cl Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 52 dingtalk_msg via fuzhongqing dingtalk robot Provided actions Name Category Description dingtalk_msg - dingtalk robot Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 52 bw_open_finder via xubowen this is tool for mac osx to open finder Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 51 open_finder via xiongzenghui this is tool for mac os x to open finder Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 51 fiv_increment_build_no via Fivethree fastlane plugin for ionic 4 Provided actions Name Category Description fivethree_ionic - Fastlane plugin for Ionic v4 Projects fiv_update_version_and_build_no - Fastlane plugin for Ionic v4 Projects fiv_update_version - A short description with < = 80 characters of what this action does fiv_increment_build_no - fastlane plugin for ionic 4 fiv_build_ionic_android - A short description with < = 80 characters of what this action does fiv_add_transparent_statusbar - You can use this action to do cool things... Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 50 itargetchecker via Catalin Prata Checks the xcode proj file for targets and points out which files from the project are not present in a certain target. Provided actions Name Category Description itargetchecker - Checks the xcodeproj file for targets and points out which files from the project are not present in a certain target. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license -50 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 47 emoji_fetcher via Felix Krause Fetch the emoji font file and copy it to a local directory Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 47 update_device_name via huyanping update device name Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 45 au_danger_gitlab via Emil Allows to use Danger on GitLab Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 45 fetch_itc_versions via Bennett Rogers Returns a listing of all app versions and their latest builds from iTunes Connect. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 45 discord_webhook_notifier via Samuel B Bispo Notify a Discord channel easuly when a build breake Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 45 jandi_webhook via respecu webhook for jandi Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 44 imagesgoldenrun via Lui\u0301s Esteves this allows comparing images from a golden run with the actual results Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 24 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 41 pixie via Piotrek Dubiel Show your build status on PIXIE! Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 21 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 40 match_android_keystore via izzis92 Get android keystores from github Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 40 pgyer-password via Kila2 distribute app to pgyer beta testing service Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 39 version_from_last_tag via Jeff Stein Perform a regex on last (latest) git tag and perform a regex to extract a version number such as Release 1.2.3 Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 19 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 39 transifex_api via alexander sun basic transifex api wrapper Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 38 profile_expiration_info via Steven Chung Returns if the provisioning profile has expired and the DateTime it expires Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 38 testin via rudy.li testin Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 37 rescan_flaky_tests via Ichiko Moro Re-run scan action for each failed test cases. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 37 appcenter_releases via Qutaibah Esa Get app releases information from AppCenter Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 37 xcode8_srgb_workaround via Siarhei Fiedartsou Converts PNGs and JPEGs in your project to sRGB format to avoid crashes when building with Xcode 8 for iOS 8 and earlier deployment target Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 37 gen_dev_workspace via Andrew Breckenridge Configures an xcworkspace with specified xcodeprojs Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 36 parse_json via Felix Krause Parse a JSON file Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 36 install_certificates via Dylan Gyesbreghs Install all the certificates located in you're project. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 36 ipa_scale via Danilo Caetano \"Checks the size of your built .ipa and warns you if you you are near the given threshold.\" Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 35 carthage_cache_res via Thi Doan A Fastlane plugin that allows to cache Carthage/Build folder in Amazon S3. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 35 test_demo via StephenCurry30 A test demo of fastlane plugin Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 35 parse_configurations via Melki It is used to parse json configration Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 35 bluepillar via Shashikant86 Fastlane Plugin to Run XCUITests in Parallel using Bluepill. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 35 carthage_cache_ftps via Wolfgang Lutz Allows to publish or install the carthage builds via ftps to avoid recompilation Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 35 bluepillarx via jterhorst Fastlane Plugin to Run XCUITests in Parallel using Bluepill. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 34 google_cloud_storage_update via Jeroen Stoker Google Cloud Storage Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 34 linear_api via Vini\u0301cius Provide an interface to access the Linear API Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 33 scipio via evandcoleman A fastlane plugin for Scipio - A caching tool for Swift Package Manager Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 33 hello_gem_kimjg via kimjg hello gem kimjg Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 33 sxc_aliyun_oss via JimmyDaddy sxc aliyun oss uploader Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 32 screenshot_notifier via Moyuru Aizawa Post screenshots to a pull request Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 32 flutter_build_increment via Matthias Seiderer Increments pubspec.yaml build version number i.e. 1.0.0+1 to 1.0.0+2 Provided actions Name Category Description flutter_build_increment - Increments pubspec.yaml build version number i.e. 1.0.0+1 to 1.0.0+2 Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 0 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 32 box via Wesley Sui library for the Box Content API Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 32 intentconfirmation via Kamil Krzyk Halts the lane invocation, asks user to confirm if he wants to continue, may require password or key. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 32 ensure_swift_version via Shashikant86 This plugin ensure version of Swift language used for project Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 31 manage_android_versions via Bruno Correia An easy way to manage your Android App versions. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 31 playship via Helmut Januschka Interact with Google Play Api Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 30 git_commit_lzx via zhenxingliu git commit all add change to git Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 29 yalantis_ci via Dima Vorona Set of utilities and useful actions to help setup CI for Yalantis projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 29 install_provisioning_profile via Alexey Martynov This plugin installs provisioning profile to Xcode Provisioning Profiles directory Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 29 jenkins_job_config via Jerome Lacoste Generate the config for a Jenkins job Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 27 figlet via Jeff Stein Wrapper around figlet which makes large ascii text words Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 27 covfefe via Jakob Jensen A templating engine for generating common file structures. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 27 devicelab_bot via Almouro Automatically install your app on your devicelab with the devicelab bot Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 26 bitly via Thang Nguyen create bit.ly short link from url Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 25 add_fix_version via Dmitry Krasulia Create and makr tickets with fix version Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 25 gitlab_increate_swiftlint via xiongzenghui Incremental Code Check using swiftlint for swift language files on gitlab platform ! Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 25 update_app_name via huyanping update app name Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 24 mobile_common via Alexander Semenov Collection of common CI actions for Android, iOS and MacOSX projects - like unit tests, app publishing, version increment, screenshots, etc. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 24 bump_android_version via Sea\u0301n Labastille Bump Android Manifest Version Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 24 current_datetime via Melki To get current date and time as string Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 24 devresponse via Helmut Januschka Enables Spaceship to deal with developer response Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 24 ram_disk via icyleaf Use a temporary ram disk to do anything else Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 24 mynewplu via lingshijun new plugin Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 24 asciii via Danielle Tomlinson Add ascii text to your fastlane output Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 23 xcodebuildonlytesting via Lu\u00eds Esteves Creates a array of tests from a junit to feed the xcodebuild only-testing Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 23 incloud_xamarin_build via punksta, torben.carstens@incloud.de Build xamarin android\\ios projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 23 xamarin_build_switch via punksta Build xamarin android\\ios projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 22 ms_teams via Thang Nguyen Send a success/error message to your Microsoft Teams channel Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 22 teamify via Ron June Valdoz MS Teams message card fastlane plugin Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 22 switchmedia_xamarin_build via punksta Build xamarin android\\ios projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 22 unp via Xu Zhen \u6d4b\u8bd5 Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 22 binary via huanglei \u7528\u4e8e\u6253iOS\u4e8c\u8fdb\u5236\u5305 Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 22 my via lujun10446 Hello fastlane plugin demo Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 21 rocket via \u4e09\u5757 rocket \u652f\u6301app\u6253\u5305\u3001\u7ec4\u4ef6\u6253\u5305\u7b49\u529f\u80fd Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 21 aomi via lihaijian this is fastlane plugin for aomi Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 21 youtrack via Semen Kologrivov Use for communicating with YouTrack (fetching issue's info, adding comments and tags etc.) Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 21 opendir via majianjie open dir Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 21 upload_to_bugly via fisherman \u5feb\u901f\u4e0a\u4f20 .dSYM \u5230 bugly Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 21 android_unpack via yejinxin Fastlane Android Unpack Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 20 feishu_bot via cook A fastlane plugin to customize your automation workflow(s) with a Feishu Bot Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 0 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 20 common_fastfile via Pawel Szymanski Gets the requested file, saves it into ./fastlane/imports and return the path Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 0 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) -10 clang_tools via squirrel-explorer A series of clang-based tools for CI/CD, including clang analyzer. Provided actions Name Category Description clang_analyzer - Analyze source codes with clang analyzer Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license -50 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub -12 retry_failed_tests via Gloria Chow Retries failed iOS tests Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license -50 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec)","title":"Available Plugins"},{"location":"plugins/available-plugins/#available-plugins","text":"24830","title":"Available Plugins"},{"location":"plugins/create-plugin/","text":"Create your own fastlane plugin cd ~/new/folder/ fastlane new_plugin [plugin_name] fastlane creates the directory structure that's needed to be a valid Ruby gem Edit the lib/fastlane/plugin/[plugin_name]/actions/[plugin_name].rb and implement your action Easily test the plugin locally by running fastlane add_plugin in your project's directory and specifying the local path when asked for it New plugin for existing gem If you already have an existing gem you want to provide a fastlane plugin for, you'll still have to create a new Ruby gem. The reason for that is the way plugins are imported. The example project xcake contains a folder named fastlane-plugin-xcake . All you have to do if you have an existing gem: Navigate to your gem fastlane new_plugin [plugin_name] Inside the newly created folder, edit the fastlane-plugin-[plugin_name].gemspec and add your gem as a dependency. It is recommended to also specify a version number requirement Publishing your plugin RubyGems The recommended way to publish your plugin is to publish it on RubyGems.org . Follow the steps below to publish your plugin. Create an account at RubyGems.org Publish your plugin to a GitHub repo Update the fastlane-plugin-[plugin_name].gemspec file so that the spec.homepage points to your github repo. Publish the first release of your plugin: bundle install rake install rake release Now all your users can run fastlane add_plugin [plugin_name] to install and use your plugin. GitHub If for some reason you don't want to use RubyGems, you can also make your plugin available on GitHub. Your users then need to add the following to the Pluginfile gem \"fastlane-plugin-[plugin_name]\", git: \"https://github.com/[user]/[plugin_name]\" Advanced Multiple actions in one plugin Let's assume you work on a fastlane plugin for project management software. You could call it fastlane-plugin-pm and it may contain any number of actions and helpers, just add them to your actions folder. Make sure to mention the available actions in your plugin's README.md .","title":"Create Your Own Plugin"},{"location":"plugins/create-plugin/#create-your-own-fastlane-plugin","text":"cd ~/new/folder/ fastlane new_plugin [plugin_name] fastlane creates the directory structure that's needed to be a valid Ruby gem Edit the lib/fastlane/plugin/[plugin_name]/actions/[plugin_name].rb and implement your action Easily test the plugin locally by running fastlane add_plugin in your project's directory and specifying the local path when asked for it","title":"Create your own fastlane plugin"},{"location":"plugins/create-plugin/#new-plugin-for-existing-gem","text":"If you already have an existing gem you want to provide a fastlane plugin for, you'll still have to create a new Ruby gem. The reason for that is the way plugins are imported. The example project xcake contains a folder named fastlane-plugin-xcake . All you have to do if you have an existing gem: Navigate to your gem fastlane new_plugin [plugin_name] Inside the newly created folder, edit the fastlane-plugin-[plugin_name].gemspec and add your gem as a dependency. It is recommended to also specify a version number requirement","title":"New plugin for existing gem"},{"location":"plugins/create-plugin/#publishing-your-plugin","text":"","title":"Publishing your plugin"},{"location":"plugins/create-plugin/#advanced","text":"","title":"Advanced"},{"location":"plugins/plugins-troubleshooting/","text":"fastlane plugins troubleshooting If you're having trouble calling a plugin action, here is a simple guide on how to resolve the issue: Make sure fastlane is up to date Run fastlane -v and bundle exec fastlane -v and make sure it's at least version 1.93.0. Update your plugins Run fastlane update_plugins to make sure to have all the latest plugins and their dependencies installed. Use bundle exec Run fastlane using bundle exec fastlane [lane] to make sure your plugins are properly loaded. This is required when you use plugins from a local path or a git remote. Use the --verbose mode Running fastlane [lane] --verbose will show a lot more information that might be useful to resolve the issue. Make sure the action name is correct A plugin can contain any number of actions. Make sure to read the docs for the plugin itself! Additionally check out the source code of the plugin: lib/fastlane/plugin/[plugin_name]/actions/[action_name].rb Open the [action_name].rb file and make sure the name of the class on line 3 looks like this: class [ActionName]Action < Action Note how the name of the class should be capitalised and have Action appended in the name. Additionally this class must be a subclass of Action . Gemfile and Pluginfile Your Gemfile should look something like this: gem \"fastlane\" plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile') eval_gemfile(plugins_path) if File.exist?(plugins_path) Your Pluginfile should look something like this # Autogenerated by fastlane gem 'fastlane-plugin-ruby' Building your own plugin If you have issues with running your local plugins during plugin development, make sure to run bundle install --with development to install all required development dependencies More help If it's still not working for you, please submit a new GitHub issue with your Gemfile , Gemfile.lock , Pluginfile , Fastfile and terminal output when running fastlane using the --verbose flag.","title":"Plugins Troubleshooting"},{"location":"plugins/plugins-troubleshooting/#fastlane-plugins-troubleshooting","text":"If you're having trouble calling a plugin action, here is a simple guide on how to resolve the issue:","title":"fastlane plugins troubleshooting"},{"location":"plugins/using-plugins/","text":"fastlane Plugins The instructions below require fastlane 1.93.0 or higher fastlane is an open platform and we enable every developer to extend it to fit their needs. That's why we built a plugin system that allows you and your company to provide fastlane plugins to other fastlane users. You have the full power and responsibility of maintaining your plugin and keeping it up to date. This is useful if you maintain your own library or web service, and want to make sure the fastlane plugin is always up to date. Local actions (function () { var anchorMap = { \"local-actions\": \"/create-action/\" } var hash = window.location.hash.substring(1); if (hash) { if (anchorMap[hash]) { link = anchorMap[hash] + '#' + hash; window.location.replace(link); } } })(); This content was moved and now lives here . Find a plugin Head over to Available Plugins for a list of plugins you can use. List all available plugins using fastlane search_plugins To search for something specific fastlane search_plugins [query] Add a plugin to your project fastlane add_plugin [name] fastlane will assist you on setting up your project to start using plugins. This will: Add the plugin to fastlane/Pluginfile Make sure your fastlane/Pluginfile is properly referenced from your ./Gemfile Run fastlane install_plugins to make sure all required dependencies are installed on your local machine (this step might ask for your admin password to install Ruby gems) You'll have 3 new files, that should all be checked into version control: Gemfile , Gemfile.lock and fastlane/Pluginfile Plugin Source Your fastlane/Pluginfile contains the list of all fastlane plugins your project uses. The Pluginfile is a Gemfile that gets imported from your main Gemfile . You specify all dependencies, including the required version numbers: # Fetched from RubyGems.org gem \"fastlane-plugin-xcversion\" # Fetched from GitHub gem \"fastlane-plugin-xcversion\", git: \"https://github.com/fastlane/fastlane-plugin-xcversion\" gem \"fastlane-plugin-xcversion\", git: \"https://github.com/fastlane/fastlane-plugin-xcversion\", branch: \"xcode-14-support\" gem \"fastlane-plugin-xcversion\", git: \"https://github.com/fastlane/fastlane-plugin-xcversion\", tag: \"2.0.0\" # Fetched from a local directory gem \"fastlane-plugin-xcversion\", path: \"../fastlane-plugin-xcversion\" # Specify a version requirements gem \"fastlane-plugin-xcversion\", \"1.1.0\" gem \"fastlane-plugin-xcversion\", \">= 1.0\" More information about a Gemfile Run with plugins Run fastlane using bundle exec fastlane [lane] to make sure your plugins are properly loaded. This is required when you use plugins from a local path or a git remote. If you have multiple versions of the same plugin loaded, you may not be using the one you specified in your Pluginfile or Gemfile . Install plugins on another machine To make sure all plugins are installed on the local machine, run fastlane install_plugins Update all plugins To make sure all plugins are updated to the latest version, run fastlane update_plugins Remove a plugin Open your fastlane/Pluginfile and remove the line that looks like this gem \"fastlane-plugin-[plugin_name]\"","title":"Use Plugins"},{"location":"plugins/using-plugins/#fastlane-plugins","text":"The instructions below require fastlane 1.93.0 or higher fastlane is an open platform and we enable every developer to extend it to fit their needs. That's why we built a plugin system that allows you and your company to provide fastlane plugins to other fastlane users. You have the full power and responsibility of maintaining your plugin and keeping it up to date. This is useful if you maintain your own library or web service, and want to make sure the fastlane plugin is always up to date.","title":"fastlane Plugins"},{"location":"plugins/using-plugins/#local-actions","text":"(function () { var anchorMap = { \"local-actions\": \"/create-action/\" } var hash = window.location.hash.substring(1); if (hash) { if (anchorMap[hash]) { link = anchorMap[hash] + '#' + hash; window.location.replace(link); } } })(); This content was moved and now lives here .","title":"Local actions"},{"location":"plugins/using-plugins/#find-a-plugin","text":"Head over to Available Plugins for a list of plugins you can use. List all available plugins using fastlane search_plugins To search for something specific fastlane search_plugins [query]","title":"Find a plugin"},{"location":"plugins/using-plugins/#add-a-plugin-to-your-project","text":"fastlane add_plugin [name] fastlane will assist you on setting up your project to start using plugins. This will: Add the plugin to fastlane/Pluginfile Make sure your fastlane/Pluginfile is properly referenced from your ./Gemfile Run fastlane install_plugins to make sure all required dependencies are installed on your local machine (this step might ask for your admin password to install Ruby gems) You'll have 3 new files, that should all be checked into version control: Gemfile , Gemfile.lock and fastlane/Pluginfile","title":"Add a plugin to your project"},{"location":"plugins/using-plugins/#install-plugins-on-another-machine","text":"To make sure all plugins are installed on the local machine, run fastlane install_plugins","title":"Install plugins on another machine"},{"location":"plugins/using-plugins/#update-all-plugins","text":"To make sure all plugins are updated to the latest version, run fastlane update_plugins","title":"Update all plugins"},{"location":"plugins/using-plugins/#remove-a-plugin","text":"Open your fastlane/Pluginfile and remove the line that looks like this gem \"fastlane-plugin-[plugin_name]\"","title":"Remove a plugin"}]} \ No newline at end of file +{"config":{"lang":["en"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"fastlane fastlane is the easiest way to automate beta deployments and releases for your iOS and Android apps. \ud83d\ude80 It handles all tedious tasks, like generating screenshots, dealing with code signing, and releasing your application. You can start by creating a Fastfile file in your repository, here\u2019s one that defines your beta or App Store release process: lane :beta do increment_build_number build_app upload_to_testflight end lane :release do capture_screenshots build_app upload_to_app_store # Upload the screenshots and the binary to iTunes slack # Let your team-mates know the new version is live end You just defined 2 different lanes, one for beta deployment, one for App Store. To release your app in the App Store, all you have to do is fastlane release Why fastlane? fastlane \ud83d\ude80 Save hours every time you push a new release to the store or beta testing service \u2728 Integrates with all your existing tools and services (more than 400 integrations) \ud83d\udcd6 100% open source under the MIT license \ud83c\udfa9 Easy setup assistant to get started in a few minutes \u2692 Runs on your machine, it's your app and your data \ud83d\udc7b Integrates with all major CI systems \ud83d\udda5 Supports iOS, Mac, and Android apps \ud83d\udd27 Extend and customise fastlane to fit your needs, you're not dependent on anyone \ud83d\udcad Never remember any commands any more, just fastlane \ud83d\udea2 Deploy from any computer, including a CI server Getting Started Installing fastlane fastlane can be installed in multiple ways. The preferred method is with Bundler . fastlane can also be installed directly through Homebrew (if on macOS). It is possible to use macOS's system Ruby, but it's not recommended, as it can be hard to manage dependencies and cause conflicts. Managed Ruby environment + Bundler (macOS/Linux/Windows) Ruby If you use macOS, system Ruby is not recommended. There are a variety of ways to install Ruby without having to modify your system environment . For macOS and Linux, rbenv is one of the most popular ways to manage your Ruby environment. fastlane supports Ruby versions 2.5 or newer. Verify which Ruby version you're using: $ ruby --version ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-darwin19] Bundler It is recommended that you use Bundler and Gemfile to define your dependency on fastlane . This will clearly define the fastlane version to be used and its dependencies, and will also speed up fastlane execution. Install Bundler by running gem install bundler Create a ./Gemfile in the root directory of your project with the content source \"https://rubygems.org\" gem \"fastlane\" Run bundle update and add both the ./Gemfile and the ./Gemfile.lock to version control Every time you run fastlane , use bundle exec fastlane [lane] On your CI, add bundle install as your first build step To update fastlane , just run bundle update fastlane Homebrew (macOS) This way, you don't have to install Ruby separately, and instead homebrew installs the adequate Ruby version for fastlane . See this page for details. brew install fastlane System Ruby + RubyGems (macOS/Linux/Windows) This is not recommended for your local environment, but you can still install fastlane to system Ruby's environment. Using sudo often occurs unwanted results later due to file permission and makes managing your environment harder. sudo gem install fastlane Setting up fastlane Navigate to your iOS or Android app and run fastlane init fastlane will automatically detect your project, and ask for any missing information. For more details about how to get up and running, check out the getting started guides: fastlane Getting Started guide for iOS fastlane Getting Started guide for Android Questions and support Before submitting a new GitHub issue, please make sure to search for existing GitHub issues . If that doesn't help, please submit an issue on GitHub and provide information about your setup, in particular the output of the fastlane env command. System requirements fastlane is officially supported to run on macOS. \ud83d\udc27 Linux and \ud83d\udda5\ufe0f Windows are partially supported. Some underlying software like Xcode are only available on macOS, but many other tools, actions, and the spaceship module can work on other platforms. fastlane team Helmut Januschka Felix Krause J\u00e9r\u00f4me Lacoste Jan Piotrowski Luka Mirosevic Olivier Halligon Jimmy Dee Iulian Onofrei Danielle Tomlinson Aaron Brager Kohki Miki Stefan Natchev Maksym Grebenets Joshua Liebowitz Manu Wallner Fumiya Nakamura Matthew Ellis Josh Holtz Special thanks to all contributors for extending and improving fastlane . Metrics fastlane tracks a few key metrics to understand how developers are using the tool and to help us know what areas need improvement. No personal/sensitive information is ever collected. Metrics that are collected include: The number of fastlane runs A salted hash of the app identifier or package name, which helps us anonymously identify unique usage of fastlane You can easily opt-out of metrics collection by adding opt_out_usage at the top of your Fastfile or by setting the environment variable FASTLANE_OPT_OUT_USAGE . Check out the metrics code on GitHub 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. Where to go from here? fastlane Getting Started guide for iOS fastlane Getting Started guide for Android","title":"Home"},{"location":"#fastlane","text":"fastlane is the easiest way to automate beta deployments and releases for your iOS and Android apps. \ud83d\ude80 It handles all tedious tasks, like generating screenshots, dealing with code signing, and releasing your application. You can start by creating a Fastfile file in your repository, here\u2019s one that defines your beta or App Store release process: lane :beta do increment_build_number build_app upload_to_testflight end lane :release do capture_screenshots build_app upload_to_app_store # Upload the screenshots and the binary to iTunes slack # Let your team-mates know the new version is live end You just defined 2 different lanes, one for beta deployment, one for App Store. To release your app in the App Store, all you have to do is fastlane release","title":"fastlane"},{"location":"#why-fastlane","text":"fastlane \ud83d\ude80 Save hours every time you push a new release to the store or beta testing service \u2728 Integrates with all your existing tools and services (more than 400 integrations) \ud83d\udcd6 100% open source under the MIT license \ud83c\udfa9 Easy setup assistant to get started in a few minutes \u2692 Runs on your machine, it's your app and your data \ud83d\udc7b Integrates with all major CI systems \ud83d\udda5 Supports iOS, Mac, and Android apps \ud83d\udd27 Extend and customise fastlane to fit your needs, you're not dependent on anyone \ud83d\udcad Never remember any commands any more, just fastlane \ud83d\udea2 Deploy from any computer, including a CI server","title":"Why fastlane?"},{"location":"#getting-started","text":"","title":"Getting Started"},{"location":"#questions-and-support","text":"Before submitting a new GitHub issue, please make sure to search for existing GitHub issues . If that doesn't help, please submit an issue on GitHub and provide information about your setup, in particular the output of the fastlane env command.","title":"Questions and support"},{"location":"#system-requirements","text":"fastlane is officially supported to run on macOS. \ud83d\udc27 Linux and \ud83d\udda5\ufe0f Windows are partially supported. Some underlying software like Xcode are only available on macOS, but many other tools, actions, and the spaceship module can work on other platforms.","title":"System requirements"},{"location":"#fastlane-team","text":"","title":"fastlane team"},{"location":"#metrics","text":"fastlane tracks a few key metrics to understand how developers are using the tool and to help us know what areas need improvement. No personal/sensitive information is ever collected. Metrics that are collected include: The number of fastlane runs A salted hash of the app identifier or package name, which helps us anonymously identify unique usage of fastlane You can easily opt-out of metrics collection by adding opt_out_usage at the top of your Fastfile or by setting the environment variable FASTLANE_OPT_OUT_USAGE . Check out the metrics code on GitHub","title":"Metrics"},{"location":"#license","text":"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.","title":"License"},{"location":"actions/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 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 build_mac_app Alias for the build_app action but only for macOS mac spm Runs Swift Package Manager on your project ios, android, mac build_ios_app Alias for the build_app action but only for iOS ios xcclean Cleans the project using xcodebuild ios, mac xcarchive Archives the project using xcodebuild ios, mac build_android_app Alias for the gradle action ios, android xcexport Exports the project using xcodebuild ios, mac build_app Easily build and sign your app (via gym ) ios, mac xcbuild Builds the project using xcodebuild ios, mac xctest Runs tests on the given simulator ios, mac xcodes Make sure a certain version of Xcode is installed, installing it only if needed ios, mac create_xcframework Package multiple build configs of a library/framework into a single xcframework ios, 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 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 capture_android_screenshots Automated localized screenshots of your Android app (via screengrab ) android 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 match_nuke Easily nuke your certificate and provisioning profiles (via match ) ios, mac get_provisioning_profile Generates a provisioning profile, saving it in the current folder (via sigh ) ios, mac sync_code_signing Easily sync your certificates and profiles across your team (via match ) ios, mac notarize Notarizes a macOS app mac get_certificates Create new iOS code signing certificates (via cert ) ios update_code_signing_settings Configures Xcode's Codesigning options ios, mac install_provisioning_profile Install provisioning profile from path 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 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_app_store Upload metadata and binary to App Store Connect (via deliver ) 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_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 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 commit_github_file This will commit a file directly on GitHub via the API 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 backuped 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 \ud83d\ude80 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 google_play_track_version_codes Retrieves version codes for a Google Play track android plugin_scores \u001b[31mNo description provided\u001b[0m ios, android, mac ruby_version Verifies the minimum ruby version required ios, android, mac setup_travis Setup the keychain and match to work with Travis CI ios, android, mac ensure_env_vars Raises an exception if the specified env vars are not set ios, android, mac google_play_track_release_names Retrieves release names for a Google Play track android opt_out_usage This will stop uploading the information which actions were run ios, android, mac environment_variable Sets/gets env vars for Fastlane.swift. Don't use in ruby, use ENV[key] = val ios, android, mac get_managed_play_store_publishing_rights Obtain publishing rights for custom apps on Managed Google Play Store android min_fastlane_version Verifies the minimum fastlane version required ios, android, mac println Alias for the puts action ios, android, mac create_app_on_managed_play_store Create Managed Google Play Apps android validate_play_store_json_key Validate that the Google Play Store json_key works android echo Alias for the puts action ios, android, mac setup_ci Setup the keychain and match to work with CI ios, mac setup_circle_ci Setup the keychain and match to work with CircleCI ios, android, mac ensure_bundle_exec Raises an exception if not using bundle exec to run fastlane ios, android, mac modify_services Modifies the services of the app created on Developer Portal ios 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 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","title":"Available Actions"},{"location":"actions/#fastlane-actions","text":"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","title":"fastlane actions"},{"location":"actions/#testing","text":"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","title":"Testing"},{"location":"actions/#building","text":"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 build_mac_app Alias for the build_app action but only for macOS mac spm Runs Swift Package Manager on your project ios, android, mac build_ios_app Alias for the build_app action but only for iOS ios xcclean Cleans the project using xcodebuild ios, mac xcarchive Archives the project using xcodebuild ios, mac build_android_app Alias for the gradle action ios, android xcexport Exports the project using xcodebuild ios, mac build_app Easily build and sign your app (via gym ) ios, mac xcbuild Builds the project using xcodebuild ios, mac xctest Runs tests on the given simulator ios, mac xcodes Make sure a certain version of Xcode is installed, installing it only if needed ios, mac create_xcframework Package multiple build configs of a library/framework into a single xcframework ios, mac","title":"Building"},{"location":"actions/#screenshots","text":"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 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 capture_android_screenshots Automated localized screenshots of your Android app (via screengrab ) android","title":"Screenshots"},{"location":"actions/#project","text":"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","title":"Project"},{"location":"actions/#code-signing","text":"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 match_nuke Easily nuke your certificate and provisioning profiles (via match ) ios, mac get_provisioning_profile Generates a provisioning profile, saving it in the current folder (via sigh ) ios, mac sync_code_signing Easily sync your certificates and profiles across your team (via match ) ios, mac notarize Notarizes a macOS app mac get_certificates Create new iOS code signing certificates (via cert ) ios update_code_signing_settings Configures Xcode's Codesigning options ios, mac install_provisioning_profile Install provisioning profile from path ios, mac","title":"Code Signing"},{"location":"actions/#documentation","text":"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","title":"Documentation"},{"location":"actions/#beta","text":"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","title":"Beta"},{"location":"actions/#push","text":"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","title":"Push"},{"location":"actions/#releasing-your-app","text":"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 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_app_store Upload metadata and binary to App Store Connect (via deliver ) 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_play_store Upload metadata, screenshots and binaries to Google Play (via supply ) android","title":"Releasing your app"},{"location":"actions/#source-control","text":"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 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 commit_github_file This will commit a file directly on GitHub via the API ios, android, mac","title":"Source Control"},{"location":"actions/#notifications","text":"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","title":"Notifications"},{"location":"actions/#app-store-connect","text":"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","title":"App Store Connect"},{"location":"actions/#misc","text":"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 backuped 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 \ud83d\ude80 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 google_play_track_version_codes Retrieves version codes for a Google Play track android plugin_scores \u001b[31mNo description provided\u001b[0m ios, android, mac ruby_version Verifies the minimum ruby version required ios, android, mac setup_travis Setup the keychain and match to work with Travis CI ios, android, mac ensure_env_vars Raises an exception if the specified env vars are not set ios, android, mac google_play_track_release_names Retrieves release names for a Google Play track android opt_out_usage This will stop uploading the information which actions were run ios, android, mac environment_variable Sets/gets env vars for Fastlane.swift. Don't use in ruby, use ENV[key] = val ios, android, mac get_managed_play_store_publishing_rights Obtain publishing rights for custom apps on Managed Google Play Store android min_fastlane_version Verifies the minimum fastlane version required ios, android, mac println Alias for the puts action ios, android, mac create_app_on_managed_play_store Create Managed Google Play Apps android validate_play_store_json_key Validate that the Google Play Store json_key works android echo Alias for the puts action ios, android, mac setup_ci Setup the keychain and match to work with CI ios, mac setup_circle_ci Setup the keychain and match to work with CircleCI ios, android, mac ensure_bundle_exec Raises an exception if not using bundle exec to run fastlane ios, android, mac modify_services Modifies the services of the app created on Developer Portal ios 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","title":"Misc"},{"location":"actions/#deprecated","text":"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","title":"Deprecated"},{"location":"advanced/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 Advanced fastlane This file is not used any more and its content was moved to subpages. Please follow the links to the content's new location. // Closure-wrapped for security. (function () { var anchorMap = { // templates \"A\": \"/advanced/actions/\", \"B\": \"/advanced/Appfile/\", \"C\": \"/advanced/Fastfile/\", \"D\": \"/advanced/lanes/\", \"E\": \"/advanced/other/\", \"F\": \"/advanced/fastlane/\", // actual anchors \"passing-parameters\": \"/advanced/lanes/\", \"switching-lanes\": \"/advanced/lanes/\", \"output-environment-variables\": \"/advanced/fastlane/\", \"interacting-with-the-user\": \"/advanced/actions/\", \"run-actions-directly\": \"/advanced/actions/\", \"shell-values\": \"/advanced/actions/\", \"priorities-of-parameters-and-options\": \"/advanced/fastlane/\", \"importing-another-fastfile\": \"/advanced/Fastfile/\", \"using-fastlane_require\": \"/advanced/Fastfile/\", \"environment-variables\": \"/advanced/other/\", \"lane-properties\": \"/advanced/lanes/\", \"lane-context\": \"/advanced/lanes/\", \"private-lanes\": \"/advanced/lanes/\", \"load-own-actions-from-external-folder\": \"/advanced/Fastfile/\", \"skip-update-check-when-launching-fastlane\": \"/advanced/fastlane/\", \"hide-changelog-information-at-the-end-of-running-fastlane\": \"/advanced/fastlane/\", \"adding-credentials\": \"/advanced/other/\", \"control-configuration-by-lane-and-by-platform\": \"/advanced/lanes/\", \"manually-manage-the-fastlane-match-repo\": \"/advanced/other/\", \"directory-behavior\": \"/advanced/fastlane/\", \"appfile\": \"/advanced/Appfile/\", \"building-actions\": \"/advanced/actions/\", } /* * Best practice for extracting hashes: * https://stackoverflow.com/a/10076097/151365 */ var hash = window.location.hash.substring(1); if (hash) { /* * Best practice for javascript redirects: * https://stackoverflow.com/a/506004/151365 */ if (anchorMap[hash]) { link = anchorMap[hash] + '#' + hash; window.location.replace(link); } } })(); Passing Parameters This content was moved and now lives here . Switching lanes This content was moved and now lives here . Output environment variables This content was moved and now lives here . Interacting with the user This content was moved and now lives here . Run actions directly This content was moved and now lives here . Shell values This content was moved and now lives here . Priorities of parameters and options This content was moved and now lives here . Importing another Fastfile This content was moved and now lives here . Using fastlane_require This content was moved and now lives here . Environment Variables This content was moved and now lives here . Lane Properties This content was moved and now lives here . Lane Context This content was moved and now lives here . Private Lanes This content was moved and now lives here . Load own actions from external folder This content was moved and now lives here . Skip update check when launching fastlane This content was moved and now lives here . Hide changelog information at the end of running fastlane This content was moved and now lives here . Adding Credentials This content was moved and now lives here . Control configuration by lane and by platform This content was moved and now lives here . Manually Manage the fastlane match Repo This content was moved and now lives here . Directory behavior This content was moved and now lives here . Appfile This content was moved and now lives here . Building Actions This content was moved and now lives here .","title":"Advanced"},{"location":"advanced/#advanced-fastlane","text":"This file is not used any more and its content was moved to subpages. Please follow the links to the content's new location. // Closure-wrapped for security. (function () { var anchorMap = { // templates \"A\": \"/advanced/actions/\", \"B\": \"/advanced/Appfile/\", \"C\": \"/advanced/Fastfile/\", \"D\": \"/advanced/lanes/\", \"E\": \"/advanced/other/\", \"F\": \"/advanced/fastlane/\", // actual anchors \"passing-parameters\": \"/advanced/lanes/\", \"switching-lanes\": \"/advanced/lanes/\", \"output-environment-variables\": \"/advanced/fastlane/\", \"interacting-with-the-user\": \"/advanced/actions/\", \"run-actions-directly\": \"/advanced/actions/\", \"shell-values\": \"/advanced/actions/\", \"priorities-of-parameters-and-options\": \"/advanced/fastlane/\", \"importing-another-fastfile\": \"/advanced/Fastfile/\", \"using-fastlane_require\": \"/advanced/Fastfile/\", \"environment-variables\": \"/advanced/other/\", \"lane-properties\": \"/advanced/lanes/\", \"lane-context\": \"/advanced/lanes/\", \"private-lanes\": \"/advanced/lanes/\", \"load-own-actions-from-external-folder\": \"/advanced/Fastfile/\", \"skip-update-check-when-launching-fastlane\": \"/advanced/fastlane/\", \"hide-changelog-information-at-the-end-of-running-fastlane\": \"/advanced/fastlane/\", \"adding-credentials\": \"/advanced/other/\", \"control-configuration-by-lane-and-by-platform\": \"/advanced/lanes/\", \"manually-manage-the-fastlane-match-repo\": \"/advanced/other/\", \"directory-behavior\": \"/advanced/fastlane/\", \"appfile\": \"/advanced/Appfile/\", \"building-actions\": \"/advanced/actions/\", } /* * Best practice for extracting hashes: * https://stackoverflow.com/a/10076097/151365 */ var hash = window.location.hash.substring(1); if (hash) { /* * Best practice for javascript redirects: * https://stackoverflow.com/a/506004/151365 */ if (anchorMap[hash]) { link = anchorMap[hash] + '#' + hash; window.location.replace(link); } } })();","title":"Advanced fastlane"},{"location":"advanced/#passing-parameters","text":"This content was moved and now lives here .","title":"Passing Parameters"},{"location":"advanced/#switching-lanes","text":"This content was moved and now lives here .","title":"Switching lanes"},{"location":"advanced/#output-environment-variables","text":"This content was moved and now lives here .","title":"Output environment variables"},{"location":"advanced/#interacting-with-the-user","text":"This content was moved and now lives here .","title":"Interacting with the user"},{"location":"advanced/#run-actions-directly","text":"This content was moved and now lives here .","title":"Run actions directly"},{"location":"advanced/#shell-values","text":"This content was moved and now lives here .","title":"Shell values"},{"location":"advanced/#priorities-of-parameters-and-options","text":"This content was moved and now lives here .","title":"Priorities of parameters and options"},{"location":"advanced/#importing-another-fastfile","text":"This content was moved and now lives here .","title":"Importing another Fastfile"},{"location":"advanced/#using-fastlane_require","text":"This content was moved and now lives here .","title":"Using fastlane_require"},{"location":"advanced/#environment-variables","text":"This content was moved and now lives here .","title":"Environment Variables"},{"location":"advanced/#lane-properties","text":"This content was moved and now lives here .","title":"Lane Properties"},{"location":"advanced/#lane-context","text":"This content was moved and now lives here .","title":"Lane Context"},{"location":"advanced/#private-lanes","text":"This content was moved and now lives here .","title":"Private Lanes"},{"location":"advanced/#load-own-actions-from-external-folder","text":"This content was moved and now lives here .","title":"Load own actions from external folder"},{"location":"advanced/#skip-update-check-when-launching-fastlane","text":"This content was moved and now lives here .","title":"Skip update check when launching fastlane"},{"location":"advanced/#hide-changelog-information-at-the-end-of-running-fastlane","text":"This content was moved and now lives here .","title":"Hide changelog information at the end of running fastlane"},{"location":"advanced/#adding-credentials","text":"This content was moved and now lives here .","title":"Adding Credentials"},{"location":"advanced/#control-configuration-by-lane-and-by-platform","text":"This content was moved and now lives here .","title":"Control configuration by lane and by platform"},{"location":"advanced/#manually-manage-the-fastlane-match-repo","text":"This content was moved and now lives here .","title":"Manually Manage the fastlane match Repo"},{"location":"advanced/#directory-behavior","text":"This content was moved and now lives here .","title":"Directory behavior"},{"location":"advanced/#appfile","text":"This content was moved and now lives here .","title":"Appfile"},{"location":"advanced/#building-actions","text":"This content was moved and now lives here .","title":"Building Actions"},{"location":"app-store-connect-api/","text":"App Store Connect API Introduction The App Store Connect API (which Apple announced at WWDC18 and is continuously working on) is an official public API used to manage app metadata, pricing and availability, provisioning, and more. This API follows the JSON API spec and introduces a new authorization option using API Keys to generate a JSON Web Token (JWT) . fastlane has historically used Apple IDs with username and password to authenticate using a cookie-based web session. fastlane will continue using this same cookie-based web session to authenticate with an unofficial version of the App Store Connect API. However, it is recommended to use the API Key authentication when you are able to. The benefits include: No 2FA needed Better performance Documented API Increased reliability Supported Actions/Tools The App Store Connect API has not been integrated into all tools and actions yet. Below are the statuses of each tool: Name Apple ID API Key pilot Yes Yes deliver Yes Yes sigh Yes Yes cert Yes Yes match Yes Yes produce Partial No pem Yes No precheck Yes (except for IAP) Yes (except for IAP) download_dsyms Yes Yes app_store_build_number Yes Yes Creating an App Store Connect API Key Create a new App Store Connect API Key in the Users page For more info, go to the App Store Connect API Docs Select the \"Keys\" tab Give your API Key an appropriate role for the task at hand. You can read more about roles in Permissions in App Store Connect Note the Issuer ID as you will need it for the configuration steps below Download the newly created API Key file ( .p8 ) This file cannot be downloaded again after the page has been refreshed Using an App Store Connect API Key The API Key (located in the .p8 ) file, the key id, and the issuer id are needed to create the JWT token for authorization. There are multiple ways that these pieces of information can be input into fastlane . Note: The App Store Connect API does not yet have the ability to determine if the team is App Store or Enterprise. The app_store_connect_api_key action and the fastlane API Key JSON file format allow for an optional in_house key as a temporary workaround. Using app_store_connect_api_key action There is a new app_store_connect_api_key action which takes the key id, the issuer id, and API Key file ( .p8 ) to generate a dictionary/hash used for JWT authorization. This action can be used in two ways: Use return value and pass in as an option lane :release do api_key = app_store_connect_api_key( key_id: \"D383SF739\", issuer_id: \"6053b7fe-68a8-4acb-89be-165aa6465141\", key_filepath: \"./AuthKey_D383SF739.p8\", duration: 1200, # optional (maximum 1200) in_house: false # optional but may be required if using match/sigh ) pilot(api_key: api_key) end Use the shared value in lane context The app_store_connect_api_key action sets Actions.lane_context[SharedValues::APP_STORE_CONNECT_API_KEY] and actions (like pilot ) will automatically load the API Key from Actions.lane_context lane :release do app_store_connect_api_key( key_id: \"D383SF739\", issuer_id: \"6053b7fe-68a8-4acb-89be-165aa6465141\", key_filepath: \"./AuthKey_D383SF739.p8\", duration: 1200, # optional (maximum 1200) in_house: false # optional but may be required if using match/sigh ) # Automatically loads Actions.lane_context[SharedValues::APP_STORE_CONNECT_API_KEY] pilot end Using fastlane API Key hash option Keys and values that can be used in hash in api_key parameter in actions (e.g. upload_to_testflight ) and tools (e.g. cert ) are described in fastlane API Key JSON file format below. The only difference when using hash is that you could use filepath instead of key . Below is an example of API key being used with CLI: $ bundle exec fastlane match appstore \\ --api_key \" { \\\"filepath\\\": \\\"/Users/bartek/Downloads/AuthKey_TJP2GMDZCI.p8\\\", \\\"key_id\\\": \\\"TJP2GMDZCI\\\", \\\"issuer_id\\\": \\\"57246542-96fe-1a63-e053-0824d011072a\\\" } \" Please note that key_content and key_filepath described in app_store_connect_api_key action are invalid both in hash and in JSON file. View Token code on Github Using fastlane API Key JSON file Below is an example of the fastlane API Key JSON file format that tools and actions will also be able to read. The JSON file requires: key_id issuer_id key (the content of the .p8 file) The JSON file allows optional: duration (session length in seconds, maximum 1200) in_house (boolean value if team is Enterprise or not) { \"key_id\": \"D383SF739\", \"issuer_id\": \"6053b7fe-68a8-4acb-89be-165aa6465141\", \"key\": \"-----BEGIN PRIVATE KEY-----\\nMIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHknlhdlYdLu\\n-----END PRIVATE KEY-----\", \"duration\": 1200, # optional (maximum 1200) \"in_house\": false # optional but may be required if using match/sigh } Below is an example of a JSON file being used by an action: lane :release do pilot( api_key_path: \"fastlane/D383SF739.json\" ) end Below is an example of a JSON file being used with CLI: $ fastlane pilot distribute --api_key_path fastlane/D383SF739.json","title":"Using App Store Connect API"},{"location":"app-store-connect-api/#app-store-connect-api","text":"","title":"App Store Connect API"},{"location":"app-store-connect-api/#introduction","text":"The App Store Connect API (which Apple announced at WWDC18 and is continuously working on) is an official public API used to manage app metadata, pricing and availability, provisioning, and more. This API follows the JSON API spec and introduces a new authorization option using API Keys to generate a JSON Web Token (JWT) . fastlane has historically used Apple IDs with username and password to authenticate using a cookie-based web session. fastlane will continue using this same cookie-based web session to authenticate with an unofficial version of the App Store Connect API. However, it is recommended to use the API Key authentication when you are able to. The benefits include: No 2FA needed Better performance Documented API Increased reliability","title":"Introduction"},{"location":"app-store-connect-api/#supported-actionstools","text":"The App Store Connect API has not been integrated into all tools and actions yet. Below are the statuses of each tool: Name Apple ID API Key pilot Yes Yes deliver Yes Yes sigh Yes Yes cert Yes Yes match Yes Yes produce Partial No pem Yes No precheck Yes (except for IAP) Yes (except for IAP) download_dsyms Yes Yes app_store_build_number Yes Yes","title":"Supported Actions/Tools"},{"location":"app-store-connect-api/#creating-an-app-store-connect-api-key","text":"Create a new App Store Connect API Key in the Users page For more info, go to the App Store Connect API Docs Select the \"Keys\" tab Give your API Key an appropriate role for the task at hand. You can read more about roles in Permissions in App Store Connect Note the Issuer ID as you will need it for the configuration steps below Download the newly created API Key file ( .p8 ) This file cannot be downloaded again after the page has been refreshed","title":"Creating an App Store Connect API Key"},{"location":"app-store-connect-api/#using-an-app-store-connect-api-key","text":"The API Key (located in the .p8 ) file, the key id, and the issuer id are needed to create the JWT token for authorization. There are multiple ways that these pieces of information can be input into fastlane . Note: The App Store Connect API does not yet have the ability to determine if the team is App Store or Enterprise. The app_store_connect_api_key action and the fastlane API Key JSON file format allow for an optional in_house key as a temporary workaround.","title":"Using an App Store Connect API Key"},{"location":"create-action/","text":"Local actions You can create your own actions to extend the functionality of fastlane for your project. The action you create will behave exactly like the built in actions. Just run fastlane new_action , enter the name of the action and edit the generated Ruby file in fastlane/actions/[action_name].rb . After you finished writing your action, add it to your version control, so it is available for your whole team. From then on, you can just use your action in your Fastfile , just like any other action. Submitting the action to the fastlane main repo Please be aware we may not accept all actions submitted to be bundled with fastlane . Before you submit a pull request adding the action to the fastlane code base, submit an issue proposing the new action and why it should be built-in. In general we tend to accept actions that Generally usable for a big majority of developers (e.g. basic interactions with git) Solve pain points for mobile app developers (iOS and Android) have an easy to read documentation and great test coverage In general, we might not accept actions that Solve specific use-cases for only a small subset of developers Access the API of a third party service, the third party service should own and maintain the action Complex actions, that will require a lot of work to maintain in the future Everything that isn't mobile developer related","title":"Create Your Own Action"},{"location":"create-action/#local-actions","text":"You can create your own actions to extend the functionality of fastlane for your project. The action you create will behave exactly like the built in actions. Just run fastlane new_action , enter the name of the action and edit the generated Ruby file in fastlane/actions/[action_name].rb . After you finished writing your action, add it to your version control, so it is available for your whole team. From then on, you can just use your action in your Fastfile , just like any other action.","title":"Local actions"},{"location":"create-action/#submitting-the-action-to-the-fastlane-main-repo","text":"Please be aware we may not accept all actions submitted to be bundled with fastlane . Before you submit a pull request adding the action to the fastlane code base, submit an issue proposing the new action and why it should be built-in. In general we tend to accept actions that Generally usable for a big majority of developers (e.g. basic interactions with git) Solve pain points for mobile app developers (iOS and Android) have an easy to read documentation and great test coverage In general, we might not accept actions that Solve specific use-cases for only a small subset of developers Access the API of a third party service, the third party service should own and maintain the action Complex actions, that will require a lot of work to maintain in the future Everything that isn't mobile developer related","title":"Submitting the action to the fastlane main repo"},{"location":"faqs/","text":"FAQs I'm getting an SSL error If your output contains something like SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed that usually means you are using an outdated version of OpenSSL. Make sure to install the latest one using homebrew . brew update && brew upgrade openssl If you use rvm , try the following rvm osx-ssl-certs update all fastlane is slow (to start) If you experience slow launch times of fastlane , try this to solve this problem: Uninstall unused gems [sudo] gem cleanup Error when running fastlane with Jenkins This is usually caused when running Jenkins as its own user. While this is possible, you'll have to take care of creating a temporary Keychain, filling it and then using it when building your application. For more information about the recommended setup with Jenkins open the Jenkins Guide . Code signing issues Check out the codesigning.guide website for more information on how to properly setup code-signing in your team using match . When should I use cert , sigh and match ? cert allows you to create a new code signing certificate + private key (note that the private key is only stored on your machine and won't be synced to any other mac) sigh allows you to create and download a provisioning profile (those are synced via the \uf8ff developer portal) match uses those 2 tools in combination with a git repo you provide, to sync all private key, certificates and provisioning profiles across all your team's Macs and CI servers We recommend using match as it removes the complexity out of code signing, while still being in full control. This way you can sync all the signing identities across your team and your CI server. For more information check out codesigning.guide . Multiple targets of the same underlying app If you have one code base, but multiple branded applications Create different .env files for each environment and reference those environment variables in the Deliverfile , Fastfile , etc. Example: Create a .env.app1 , .env.app2 , and .env.app3 . Define each of these like the following... DLV_FIRST_NAME=Josh DLV_LAST_NAME=Holtz DLV_PRIM_CATG=Business DLV_SCND_CATG=Games Now your Deliver file should look something like this: app_review_information( first_name: ENV['DLV_FIRST_NAME'], last_name: ENV['DLV_LAST_NAME'] ) primary_category ENV['DLV_PRIM_CATG'] secondary_category ENV['DLV_SCND_CATG'] Now to run this, all you need to do is specify the environment argument when running fastlane and it will pull from the .env file that matches the same name... Ex: fastlane build --env app1 will use .env.app1 Ex: fastlane build --env app2 will use .env.app2 You can also references these environment variables almost anywhere in fastlane . You can even define a lane to perform actions on multiple targets: desc \"Deploy both versions\" lane :deploy_all do sh \"fastlane deploy --env paid\" sh \"fastlane deploy --env free\" end And you can combine multiple envs in one go Ex: fastlane build --env app1,env1,env2 will use .env.app1 .env.env1 and .env.env2 More on the .env file can be found here . Disable colored output Set the FASTLANE_DISABLE_COLORS or the NO_COLOR environment variable to disable ANSI colors (e.g. for CI machines) export FASTLANE_DISABLE_COLORS=1 export NO_COLOR=1 Enable tab auto complete for fastlane lane names Supported shells: bash , zsh , fish . fastlane enable_auto_complete Follow the on screen prompt to add a line to your bash / zsh / fish profile. \"User interaction is not allowed\" when using fastlane via SSH This error can occur when you run fastlane via SSH. To fix it check out this reply on StackOverflow . Some fastlane commands like deliver , scan , gym , or pilot hang indefinitely or produce strange errors and symbols Make sure your LC_ALL and LANG variables are set up correctly. fastlane requires an UTF-8 environment, so setting those variables to en_US.UTF-8 should fix your issues. Refer to the fastlane setup instructions for details.","title":"FAQs"},{"location":"faqs/#faqs","text":"","title":"FAQs"},{"location":"uploading-app-privacy-details/","text":"Uploading App Privacy Details Introduction Apple announced that as of December 8, 2020, the App Store would start displaying detailed information about an app's privacy practices. App Store Connect will ask developers a series of questions on how privacy is respected over an array of categories. A category then allows for a selection of multiple purposes. After the purposes are selected, there are then questions on how the data is selected. An example would be: Contact Info - Name Purposes: Product Personalization App Functionality Data Protections Data linked to user Data used to track user Financial Info - Credit Card Purposes: App Functionality Data Protections Data not linked to user Uploading App Privacy Details with fastlane fastlane has the ability to upload your app's app privacy details with the upload_app_privacy_details_to_app_store action. This action has two steps. The first is answering an interactive questionnaire (similar to what App Store Connect dashboard offers) and saving the answers to a JSON config file. The second is the upload of the app privacy answers to App Store Connect. The action outputs a JSON config file to fastlane/app_privacy_details.json (by default) which will save your configuration. This JSON file is output so the answers can be saved in source control, reviewed by you or team members, and used for other apps. The JSON file can then be used again by this action (with the json_path option) to skip the interactive questions. These two steps can be done together or separate. Option 1: Answer and Upload Together By default, upload_app_privacy_details_to_app_store will prompt you with questions and then upload them directly to App Store Connect. The action will also output a JSON config file to fastlane/app_privacy_details.json . In CLI... fastlane run upload_app_privacy_details_to_app_store \\ username:\"your@email.com\" \\ team_name:\"Your Team\" \\ app_identifier:\"com.your.bundle\" or in Fastfile ... upload_app_privacy_details_to_app_store( username: \"your@email.com\", team_name: \"Your Team\", app_identifier: \"com.your.bundle\" ) or in Fastfile.swift ... uploadAppPrivacyDetailsToAppStore(username: \"your@email.com\", appIdentifier: \"com.your.bundle\", teamName: \"Your Team\") Option 2: Answer and Upload Separate If you do not want to upload the app privacy details to App Store Connect right away, skip_upload:true can be passed to the action. This will prompt you with the interactive questions and save the JSON configuration file but that is it. After reviewing the file, the same action can be used again with the json_path option to bypass the questions (since the answers are in the JSON file) and upload them right away to App Store Connect. Step 1: Answering Questions In CLI... fastlane run upload_app_privacy_details_to_app_store \\ username:\"your@email.com\" \\ team_name:\"Your Team\" \\ app_identifier:\"com.your.bundle\" \\ skip_upload:true or in Fastfile ... upload_app_privacy_details_to_app_store( username: \"your@email.com\", team_name: \"Your Team\", app_identifier: \"com.your.bundle\", skip_upload: true ) or in Fastfile.swift ... uploadAppPrivacyDetailsToAppStore(username: \"your@email.com\", appIdentifier: \"com.your.bundle\", teamName: \"Your Team\", skipUpload: true) Step 2: Uploading In CLI... fastlane run upload_app_privacy_details_to_app_store \\ username:\"your@email.com\" \\ team_name:\"Your Team\" \\ app_identifier:\"com.your.bundle\" \\ json_path:\"fastlane/app_privacy_details.json\" or in Fastfile ... upload_app_privacy_details_to_app_store( username: \"your@email.com\", team_name: \"Your Team\", app_identifier: \"com.your.bundle\", json_path: \"fastlane/app_privacy_details.json\" ) or in Fastfile.swift ... uploadAppPrivacyDetailsToAppStore(username: \"your@email.com\", appIdentifier: \"com.your.bundle\", teamName: \"Your Team\", jsonPath: \"fastlane/app_privacy_details.json\") Requirements This action requires an Apple ID with owner or admin permissions on the Apple Development team. The APIs this action uses are also not available on the official App Store Connect API so the App Store Connect API Key cannot be used at this time. Example JSON configuration file Below are two examples of the app_privacy_details.json file that upload_app_privacy_details_to_app_store action will create. Not collecting data This is what will be output if your app does not collect any data. [ { \"data_protections\": [ \"DATA_NOT_COLLECTED\" ] } ] Collecting data This is what will be output that matches the example at the top of this page. [ { \"category\": \"PAYMENT_INFORMATION\", \"purposes\": [ \"APP_FUNCTIONALITY\" ], \"data_protections\": [ \"DATA_NOT_LINKED_TO_YOU\" ] }, { \"category\": \"NAME\", \"purposes\": [ \"PRODUCT_PERSONALIZATION\", \"APP_FUNCTIONALITY\" ], \"data_protections\": [ \"DATA_LINKED_TO_YOU\", \"DATA_USED_TO_TRACK_YOU\" ] } ] Data Values These are the values you will see in your JSON configuration file. You won't need to ever manually enter these values in your JSON configuration file (as this is what the interactive questionnaire will output for you). Categories PAYMENT_INFORMATION CREDIT_AND_FRAUD OTHER_FINANCIAL_INFO PRECISE_LOCATION SENSITIVE_INFO PHYSICAL_ADDRESS EMAIL_ADDRESS NAME PHONE_NUMBER OTHER_CONTACT_INFO CONTACTS EMAILS_OR_TEXT_MESSAGES PHOTOS_OR_VIDEOS AUDIO GAMEPLAY_CONTENT CUSTOMER_SUPPORT OTHER_USER_CONTENT BROWSING_HISTORY SEARCH_HISTORY USER_ID DEVICE_ID PURCHASE_HISTORY PRODUCT_INTERACTION ADVERTISING_DATA OTHER_USAGE_DATA CRASH_DATA PERFORMANCE_DATA OTHER_DIAGNOSTIC_DATA OTHER_DATA HEALTH FITNESS COARSE_LOCATION Purposes THIRD_PARTY_ADVERTISING DEVELOPERS_ADVERTISING ANALYTICS PRODUCT_PERSONALIZATION APP_FUNCTIONALITY OTHER_PURPOSES Data Protections Uses DATA_LINKED_TO_YOU or DATA_NOT_LINKED_TO_YOU Optionally uses DATA_USED_TO_TRACK_YOU","title":"Uploading App Privacy Details"},{"location":"uploading-app-privacy-details/#uploading-app-privacy-details","text":"","title":"Uploading App Privacy Details"},{"location":"uploading-app-privacy-details/#introduction","text":"Apple announced that as of December 8, 2020, the App Store would start displaying detailed information about an app's privacy practices. App Store Connect will ask developers a series of questions on how privacy is respected over an array of categories. A category then allows for a selection of multiple purposes. After the purposes are selected, there are then questions on how the data is selected. An example would be: Contact Info - Name Purposes: Product Personalization App Functionality Data Protections Data linked to user Data used to track user Financial Info - Credit Card Purposes: App Functionality Data Protections Data not linked to user","title":"Introduction"},{"location":"uploading-app-privacy-details/#uploading-app-privacy-details-with-fastlane","text":"fastlane has the ability to upload your app's app privacy details with the upload_app_privacy_details_to_app_store action. This action has two steps. The first is answering an interactive questionnaire (similar to what App Store Connect dashboard offers) and saving the answers to a JSON config file. The second is the upload of the app privacy answers to App Store Connect. The action outputs a JSON config file to fastlane/app_privacy_details.json (by default) which will save your configuration. This JSON file is output so the answers can be saved in source control, reviewed by you or team members, and used for other apps. The JSON file can then be used again by this action (with the json_path option) to skip the interactive questions. These two steps can be done together or separate.","title":"Uploading App Privacy Details with fastlane"},{"location":"uploading-app-privacy-details/#example-json-configuration-file","text":"Below are two examples of the app_privacy_details.json file that upload_app_privacy_details_to_app_store action will create.","title":"Example JSON configuration file"},{"location":"uploading-app-privacy-details/#data-values","text":"These are the values you will see in your JSON configuration file. You won't need to ever manually enter these values in your JSON configuration file (as this is what the interactive questionnaire will output for you).","title":"Data Values"},{"location":"actions/adb/","text":"adb Run ADB Actions see adb --help for more details adb Supported platforms android Author @hjanuschka Returns The output of the adb command 1 Example adb( command: \"shell ls\" ) Parameters Key Description Default serial Android serial of the device to use for this command '' command All commands you want to pass to the adb command, e.g. kill-server adb_path The path to your adb binary (can be left blank if the ANDROID_SDK_ROOT, ANDROID_HOME or ANDROID_SDK environment variable is set) adb * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action adb CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run adb To pass parameters, make use of the : symbol, for example fastlane run adb parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"adb"},{"location":"actions/adb/#adb","text":"Run ADB Actions see adb --help for more details adb Supported platforms android Author @hjanuschka Returns The output of the adb command","title":"adb"},{"location":"actions/adb/#1-example","text":"adb( command: \"shell ls\" )","title":"1 Example"},{"location":"actions/adb/#parameters","text":"Key Description Default serial Android serial of the device to use for this command '' command All commands you want to pass to the adb command, e.g. kill-server adb_path The path to your adb binary (can be left blank if the ANDROID_SDK_ROOT, ANDROID_HOME or ANDROID_SDK environment variable is set) adb * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/adb/#documentation","text":"To show the documentation in your terminal, run fastlane action adb","title":"Documentation"},{"location":"actions/adb/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run adb To pass parameters, make use of the : symbol, for example fastlane run adb parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/adb/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/adb_devices/","text":"adb_devices Get an array of Connected android device serials Fetches device list via adb, e.g. run an adb command on all connected devices. adb_devices Supported platforms android Author @hjanuschka Returns Returns an array of all currently connected android devices 1 Example adb_devices.each do |device| model = adb(command: \"shell getprop ro.product.model\", serial: device.serial).strip puts \"Model #{model} is connected\" end Parameters Key Description Default adb_path The path to your adb binary (can be left blank if the ANDROID_SDK_ROOT environment variable is set) adb * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action adb_devices CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run adb_devices To pass parameters, make use of the : symbol, for example fastlane run adb_devices parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"adb_devices"},{"location":"actions/adb_devices/#adb_devices","text":"Get an array of Connected android device serials Fetches device list via adb, e.g. run an adb command on all connected devices. adb_devices Supported platforms android Author @hjanuschka Returns Returns an array of all currently connected android devices","title":"adb_devices"},{"location":"actions/adb_devices/#1-example","text":"adb_devices.each do |device| model = adb(command: \"shell getprop ro.product.model\", serial: device.serial).strip puts \"Model #{model} is connected\" end","title":"1 Example"},{"location":"actions/adb_devices/#parameters","text":"Key Description Default adb_path The path to your adb binary (can be left blank if the ANDROID_SDK_ROOT environment variable is set) adb * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/adb_devices/#documentation","text":"To show the documentation in your terminal, run fastlane action adb_devices","title":"Documentation"},{"location":"actions/adb_devices/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run adb_devices To pass parameters, make use of the : symbol, for example fastlane run adb_devices parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/adb_devices/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/add_extra_platforms/","text":"add_extra_platforms Modify the default list of supported platforms add_extra_platforms Supported platforms ios, android, mac Author @lacostej 1 Example add_extra_platforms( platforms: [:windows, :neogeo] ) Parameters Key Description Default platforms The optional extra platforms to support '' * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action add_extra_platforms CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run add_extra_platforms To pass parameters, make use of the : symbol, for example fastlane run add_extra_platforms parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"add_extra_platforms"},{"location":"actions/add_extra_platforms/#add_extra_platforms","text":"Modify the default list of supported platforms add_extra_platforms Supported platforms ios, android, mac Author @lacostej","title":"add_extra_platforms"},{"location":"actions/add_extra_platforms/#1-example","text":"add_extra_platforms( platforms: [:windows, :neogeo] )","title":"1 Example"},{"location":"actions/add_extra_platforms/#parameters","text":"Key Description Default platforms The optional extra platforms to support '' * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/add_extra_platforms/#documentation","text":"To show the documentation in your terminal, run fastlane action add_extra_platforms","title":"Documentation"},{"location":"actions/add_extra_platforms/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run add_extra_platforms To pass parameters, make use of the : symbol, for example fastlane run add_extra_platforms parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/add_extra_platforms/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/add_git_tag/","text":"add_git_tag This will add an annotated git tag to the current branch This will automatically tag your build with the following format: // , where: grouping is just to keep your tags organised under one 'folder', defaults to 'builds' lane is the name of the current fastlane lane, if chosen to be included via 'includes_lane' option, which defaults to 'true' prefix is anything you want to stick in front of the version number, e.g. 'v' postfix is anything you want to stick at the end of the version number, e.g. '-RC1' build_number is the build number, which defaults to the value emitted by the increment_build_number action For example, for build 1234 in the 'appstore' lane, it will tag the commit with builds/appstore/1234 . add_git_tag Supported platforms ios, android, mac Author @lmirosevic, @maschall 3 Examples add_git_tag # simple tag with default values add_git_tag( grouping: \"fastlane-builds\", includes_lane: true, prefix: \"v\", postfix: \"-RC1\", build_number: 123 ) # Alternatively, you can specify your own tag. Note that if you do specify a tag, all other arguments are ignored. add_git_tag( tag: \"my_custom_tag\" ) Parameters Key Description Default tag Define your own tag text. This will replace all other parameters grouping Is used to keep your tags organised under one 'folder' builds includes_lane Whether the current lane should be included in the tag and message composition, e.g. ' / / ' true prefix Anything you want to put in front of the version number (e.g. 'v') '' postfix Anything you want to put at the end of the version number (e.g. '-RC1') '' build_number The build number. Defaults to the result of increment_build_number if you're using it * message The tag message. Defaults to the tag's name * commit The commit or object where the tag will be set. Defaults to the current HEAD * force Force adding the tag false sign Make a GPG-signed tag, using the default e-mail address's key false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action add_git_tag CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run add_git_tag To pass parameters, make use of the : symbol, for example fastlane run add_git_tag parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"add_git_tag"},{"location":"actions/add_git_tag/#add_git_tag","text":"This will add an annotated git tag to the current branch This will automatically tag your build with the following format: // , where: grouping is just to keep your tags organised under one 'folder', defaults to 'builds' lane is the name of the current fastlane lane, if chosen to be included via 'includes_lane' option, which defaults to 'true' prefix is anything you want to stick in front of the version number, e.g. 'v' postfix is anything you want to stick at the end of the version number, e.g. '-RC1' build_number is the build number, which defaults to the value emitted by the increment_build_number action For example, for build 1234 in the 'appstore' lane, it will tag the commit with builds/appstore/1234 . add_git_tag Supported platforms ios, android, mac Author @lmirosevic, @maschall","title":"add_git_tag"},{"location":"actions/add_git_tag/#3-examples","text":"add_git_tag # simple tag with default values add_git_tag( grouping: \"fastlane-builds\", includes_lane: true, prefix: \"v\", postfix: \"-RC1\", build_number: 123 ) # Alternatively, you can specify your own tag. Note that if you do specify a tag, all other arguments are ignored. add_git_tag( tag: \"my_custom_tag\" )","title":"3 Examples"},{"location":"actions/add_git_tag/#parameters","text":"Key Description Default tag Define your own tag text. This will replace all other parameters grouping Is used to keep your tags organised under one 'folder' builds includes_lane Whether the current lane should be included in the tag and message composition, e.g. ' / / ' true prefix Anything you want to put in front of the version number (e.g. 'v') '' postfix Anything you want to put at the end of the version number (e.g. '-RC1') '' build_number The build number. Defaults to the result of increment_build_number if you're using it * message The tag message. Defaults to the tag's name * commit The commit or object where the tag will be set. Defaults to the current HEAD * force Force adding the tag false sign Make a GPG-signed tag, using the default e-mail address's key false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/add_git_tag/#documentation","text":"To show the documentation in your terminal, run fastlane action add_git_tag","title":"Documentation"},{"location":"actions/add_git_tag/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run add_git_tag To pass parameters, make use of the : symbol, for example fastlane run add_git_tag parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/add_git_tag/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/app_store_build_number/","text":"app_store_build_number Returns the current build_number of either live or edit version Returns the current build number of either the live or testflight version - it is useful for getting the build_number of the current or ready-for-sale app version, and it also works on non-live testflight version. If you need to handle more build-trains please see latest_testflight_build_number . app_store_build_number Supported platforms ios, mac Author @hjanuschka 4 Examples app_store_build_number app_store_build_number( app_identifier: \"app.identifier\", username: \"user@host.com\" ) app_store_build_number( live: false, app_identifier: \"app.identifier\", version: \"1.2.9\" ) api_key = app_store_connect_api_key( key_id: \"MyKeyID12345\", issuer_id: \"00000000-0000-0000-0000-000000000000\", key_filepath: \"./AuthKey.p8\" ) build_num = app_store_build_number( api_key: api_key ) Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * initial_build_number sets the build number to given value if no build is in current train app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your App Store Connect team if you're in multiple teams * live Query the live version (ready-for-sale) true version The version number whose latest build number we want platform The platform to use (optional) ios team_name The name of your App Store Connect team if you're in multiple teams * * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The app_store_build_number action generates the following Lane Variables: SharedValue Description SharedValues::LATEST_BUILD_NUMBER The latest build number of either live or testflight version SharedValues::LATEST_VERSION The version of the latest build number To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action app_store_build_number CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run app_store_build_number To pass parameters, make use of the : symbol, for example fastlane run app_store_build_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"app_store_build_number"},{"location":"actions/app_store_build_number/#app_store_build_number","text":"Returns the current build_number of either live or edit version Returns the current build number of either the live or testflight version - it is useful for getting the build_number of the current or ready-for-sale app version, and it also works on non-live testflight version. If you need to handle more build-trains please see latest_testflight_build_number . app_store_build_number Supported platforms ios, mac Author @hjanuschka","title":"app_store_build_number"},{"location":"actions/app_store_build_number/#4-examples","text":"app_store_build_number app_store_build_number( app_identifier: \"app.identifier\", username: \"user@host.com\" ) app_store_build_number( live: false, app_identifier: \"app.identifier\", version: \"1.2.9\" ) api_key = app_store_connect_api_key( key_id: \"MyKeyID12345\", issuer_id: \"00000000-0000-0000-0000-000000000000\", key_filepath: \"./AuthKey.p8\" ) build_num = app_store_build_number( api_key: api_key )","title":"4 Examples"},{"location":"actions/app_store_build_number/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * initial_build_number sets the build number to given value if no build is in current train app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your App Store Connect team if you're in multiple teams * live Query the live version (ready-for-sale) true version The version number whose latest build number we want platform The platform to use (optional) ios team_name The name of your App Store Connect team if you're in multiple teams * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/app_store_build_number/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The app_store_build_number action generates the following Lane Variables: SharedValue Description SharedValues::LATEST_BUILD_NUMBER The latest build number of either live or testflight version SharedValues::LATEST_VERSION The version of the latest build number To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/app_store_build_number/#documentation","text":"To show the documentation in your terminal, run fastlane action app_store_build_number","title":"Documentation"},{"location":"actions/app_store_build_number/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run app_store_build_number To pass parameters, make use of the : symbol, for example fastlane run app_store_build_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/app_store_build_number/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/app_store_connect_api_key/","text":"app_store_connect_api_key Load the App Store Connect API token to use in other fastlane tools and actions Load the App Store Connect API token to use in other fastlane tools and actions app_store_connect_api_key Supported platforms ios, mac Author @joshdholtz 3 Examples app_store_connect_api_key( key_id: \"D83848D23\", issuer_id: \"227b0bbf-ada8-458c-9d62-3d8022b7d07f\", key_filepath: \"D83848D23.p8\" ) app_store_connect_api_key( key_id: \"D83848D23\", issuer_id: \"227b0bbf-ada8-458c-9d62-3d8022b7d07f\", key_filepath: \"D83848D23.p8\", duration: 200, in_house: true ) app_store_connect_api_key( key_id: \"D83848D23\", issuer_id: \"227b0bbf-ada8-458c-9d62-3d8022b7d07f\", key_content: \"-----BEGIN EC PRIVATE KEY-----\\nfewfawefawfe\\n-----END EC PRIVATE KEY-----\" ) Parameters Key Description Default key_id The key ID issuer_id The issuer ID key_filepath The path to the key p8 file key_content The content of the key p8 file is_key_content_base64 Whether :key_content is Base64 encoded or not false duration The token session duration 500 in_house Is App Store or Enterprise (in house) team? App Store Connect API cannot determine this on its own (yet) false set_spaceship_token Authorizes all Spaceship::ConnectAPI requests by automatically setting Spaceship::ConnectAPI.token true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The app_store_connect_api_key action generates the following Lane Variables: SharedValue Description SharedValues::APP_STORE_CONNECT_API_KEY The App Store Connect API key information used for authorization requests. This hash can be passed directly into the :api_key options on other tools or into Spaceship::ConnectAPI::Token.create method To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action app_store_connect_api_key CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run app_store_connect_api_key To pass parameters, make use of the : symbol, for example fastlane run app_store_connect_api_key parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"app_store_connect_api_key"},{"location":"actions/app_store_connect_api_key/#app_store_connect_api_key","text":"Load the App Store Connect API token to use in other fastlane tools and actions Load the App Store Connect API token to use in other fastlane tools and actions app_store_connect_api_key Supported platforms ios, mac Author @joshdholtz","title":"app_store_connect_api_key"},{"location":"actions/app_store_connect_api_key/#3-examples","text":"app_store_connect_api_key( key_id: \"D83848D23\", issuer_id: \"227b0bbf-ada8-458c-9d62-3d8022b7d07f\", key_filepath: \"D83848D23.p8\" ) app_store_connect_api_key( key_id: \"D83848D23\", issuer_id: \"227b0bbf-ada8-458c-9d62-3d8022b7d07f\", key_filepath: \"D83848D23.p8\", duration: 200, in_house: true ) app_store_connect_api_key( key_id: \"D83848D23\", issuer_id: \"227b0bbf-ada8-458c-9d62-3d8022b7d07f\", key_content: \"-----BEGIN EC PRIVATE KEY-----\\nfewfawefawfe\\n-----END EC PRIVATE KEY-----\" )","title":"3 Examples"},{"location":"actions/app_store_connect_api_key/#parameters","text":"Key Description Default key_id The key ID issuer_id The issuer ID key_filepath The path to the key p8 file key_content The content of the key p8 file is_key_content_base64 Whether :key_content is Base64 encoded or not false duration The token session duration 500 in_house Is App Store or Enterprise (in house) team? App Store Connect API cannot determine this on its own (yet) false set_spaceship_token Authorizes all Spaceship::ConnectAPI requests by automatically setting Spaceship::ConnectAPI.token true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/app_store_connect_api_key/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The app_store_connect_api_key action generates the following Lane Variables: SharedValue Description SharedValues::APP_STORE_CONNECT_API_KEY The App Store Connect API key information used for authorization requests. This hash can be passed directly into the :api_key options on other tools or into Spaceship::ConnectAPI::Token.create method To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/app_store_connect_api_key/#documentation","text":"To show the documentation in your terminal, run fastlane action app_store_connect_api_key","title":"Documentation"},{"location":"actions/app_store_connect_api_key/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run app_store_connect_api_key To pass parameters, make use of the : symbol, for example fastlane run app_store_connect_api_key parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/app_store_connect_api_key/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/appaloosa/","text":"appaloosa Upload your app to Appaloosa Store Appaloosa is a private mobile application store. This action offers a quick deployment on the platform. You can create an account, push to your existing account, or manage your user groups. We accept iOS and Android applications. appaloosa Supported platforms ios, android, mac Author @Appaloosa 1 Example appaloosa( # Path tor your IPA or APK binary: '/path/to/binary.ipa', # You can find your store\u2019s id at the bottom of the \u201cSettings\u201d page of your store store_id: 'your_store_id', # You can find your api_token at the bottom of the \u201cSettings\u201d page of your store api_token: 'your_api_key', # User group_ids visibility, if it's not specified we'll publish the app for all users in your store' group_ids: '112, 232, 387', # You can use fastlane/snapshot or specify your own screenshots folder. # If you use snapshot please specify a local and a device to upload your screenshots from. # When multiple values are specified in the Snapfile, we default to 'en-US' locale: 'en-US', # By default, the screenshots from the last device will be used device: 'iPhone6', # Screenshots' filenames should start with device's name like 'iphone6-s1.png' if device specified screenshots: '/path/to_your/screenshots' ) Parameters Key Description Default binary Binary path. Optional for ipa if you use the ipa or xcodebuild action * api_token Your API token store_id Your Store id group_ids Your app is limited to special users? Give us the group ids '' screenshots Add some screenshots application to your store or hit [enter] * locale Select the folder locale for your screenshots en-US device Select the device format for your screenshots description Your app description changelog Your app changelog * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action appaloosa CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appaloosa To pass parameters, make use of the : symbol, for example fastlane run appaloosa parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"appaloosa"},{"location":"actions/appaloosa/#appaloosa","text":"Upload your app to Appaloosa Store Appaloosa is a private mobile application store. This action offers a quick deployment on the platform. You can create an account, push to your existing account, or manage your user groups. We accept iOS and Android applications. appaloosa Supported platforms ios, android, mac Author @Appaloosa","title":"appaloosa"},{"location":"actions/appaloosa/#1-example","text":"appaloosa( # Path tor your IPA or APK binary: '/path/to/binary.ipa', # You can find your store\u2019s id at the bottom of the \u201cSettings\u201d page of your store store_id: 'your_store_id', # You can find your api_token at the bottom of the \u201cSettings\u201d page of your store api_token: 'your_api_key', # User group_ids visibility, if it's not specified we'll publish the app for all users in your store' group_ids: '112, 232, 387', # You can use fastlane/snapshot or specify your own screenshots folder. # If you use snapshot please specify a local and a device to upload your screenshots from. # When multiple values are specified in the Snapfile, we default to 'en-US' locale: 'en-US', # By default, the screenshots from the last device will be used device: 'iPhone6', # Screenshots' filenames should start with device's name like 'iphone6-s1.png' if device specified screenshots: '/path/to_your/screenshots' )","title":"1 Example"},{"location":"actions/appaloosa/#parameters","text":"Key Description Default binary Binary path. Optional for ipa if you use the ipa or xcodebuild action * api_token Your API token store_id Your Store id group_ids Your app is limited to special users? Give us the group ids '' screenshots Add some screenshots application to your store or hit [enter] * locale Select the folder locale for your screenshots en-US device Select the device format for your screenshots description Your app description changelog Your app changelog * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/appaloosa/#documentation","text":"To show the documentation in your terminal, run fastlane action appaloosa","title":"Documentation"},{"location":"actions/appaloosa/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appaloosa To pass parameters, make use of the : symbol, for example fastlane run appaloosa parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/appaloosa/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/appetize/","text":"appetize Upload your app to Appetize.io to stream it in browser If you provide a public_key , this will overwrite an existing application. If you want to have this build as a new app version, you shouldn't provide this value. To integrate appetize into your GitHub workflow check out the device_grid guide . appetize Supported platforms ios, android Author @klundberg, @giginet, @steprescott 2 Examples appetize( path: \"./MyApp.zip\", api_token: \"yourapitoken\", # get it from https://appetize.io/docs#request-api-token public_key: \"your_public_key\" # get it from https://appetize.io/dashboard ) appetize( path: \"./MyApp.zip\", api_host: \"company.appetize.io\", # only needed for enterprise hosted solution api_token: \"yourapitoken\", # get it from https://appetize.io/docs#request-api-token public_key: \"your_public_key\" # get it from https://appetize.io/dashboard ) Parameters Key Description Default api_host Appetize API host api.appetize.io api_token Appetize.io API Token url URL from which the ipa file can be fetched. Alternative to :path platform Platform. Either ios or android ios path Path to zipped build on the local filesystem. Either this or url must be specified public_key If not provided, a new app will be created. If provided, the existing build will be overwritten note Notes you wish to add to the uploaded app timeout The number of seconds to wait until automatically ending the session due to user inactivity. Must be 30, 60, 90, 120, 180, 300, 600, 1800, 3600 or 7200. Default is 120 * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The appetize action generates the following Lane Variables: SharedValue Description SharedValues::APPETIZE_API_HOST Appetize API host. SharedValues::APPETIZE_PUBLIC_KEY a public identifier for your app. Use this to update your app after it has been initially created. SharedValues::APPETIZE_APP_URL a page to test and share your app. SharedValues::APPETIZE_MANAGE_URL a page to manage your app. To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action appetize CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appetize To pass parameters, make use of the : symbol, for example fastlane run appetize parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"appetize"},{"location":"actions/appetize/#appetize","text":"Upload your app to Appetize.io to stream it in browser If you provide a public_key , this will overwrite an existing application. If you want to have this build as a new app version, you shouldn't provide this value. To integrate appetize into your GitHub workflow check out the device_grid guide . appetize Supported platforms ios, android Author @klundberg, @giginet, @steprescott","title":"appetize"},{"location":"actions/appetize/#2-examples","text":"appetize( path: \"./MyApp.zip\", api_token: \"yourapitoken\", # get it from https://appetize.io/docs#request-api-token public_key: \"your_public_key\" # get it from https://appetize.io/dashboard ) appetize( path: \"./MyApp.zip\", api_host: \"company.appetize.io\", # only needed for enterprise hosted solution api_token: \"yourapitoken\", # get it from https://appetize.io/docs#request-api-token public_key: \"your_public_key\" # get it from https://appetize.io/dashboard )","title":"2 Examples"},{"location":"actions/appetize/#parameters","text":"Key Description Default api_host Appetize API host api.appetize.io api_token Appetize.io API Token url URL from which the ipa file can be fetched. Alternative to :path platform Platform. Either ios or android ios path Path to zipped build on the local filesystem. Either this or url must be specified public_key If not provided, a new app will be created. If provided, the existing build will be overwritten note Notes you wish to add to the uploaded app timeout The number of seconds to wait until automatically ending the session due to user inactivity. Must be 30, 60, 90, 120, 180, 300, 600, 1800, 3600 or 7200. Default is 120 * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/appetize/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The appetize action generates the following Lane Variables: SharedValue Description SharedValues::APPETIZE_API_HOST Appetize API host. SharedValues::APPETIZE_PUBLIC_KEY a public identifier for your app. Use this to update your app after it has been initially created. SharedValues::APPETIZE_APP_URL a page to test and share your app. SharedValues::APPETIZE_MANAGE_URL a page to manage your app. To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/appetize/#documentation","text":"To show the documentation in your terminal, run fastlane action appetize","title":"Documentation"},{"location":"actions/appetize/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appetize To pass parameters, make use of the : symbol, for example fastlane run appetize parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/appetize/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/appetize_viewing_url_generator/","text":"appetize_viewing_url_generator Generate an URL for appetize simulator Check out the device_grid guide for more information appetize_viewing_url_generator Supported platforms ios Author @KrauseFx Returns The URL to preview the iPhone app Parameters Key Description Default public_key Public key of the app you wish to update * base_url Base URL of Appetize service https://appetize.io/embed device Device type: iphone4s, iphone5s, iphone6, iphone6plus, ipadair, iphone6s, iphone6splus, ipadair2, nexus5, nexus7 or nexus9 iphone5s scale Scale of the simulator orientation Device orientation portrait language Device language in ISO 639-1 language code, e.g. 'de' color Color of the device black launch_url Specify a deep link to open when your app is launched os_version The operating system version on which to run your app, e.g. 10.3, 8.0 params Specify params value to be passed to Appetize proxy Specify a HTTP proxy to be passed to Appetize * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action appetize_viewing_url_generator CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appetize_viewing_url_generator To pass parameters, make use of the : symbol, for example fastlane run appetize_viewing_url_generator parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"appetize_viewing_url_generator"},{"location":"actions/appetize_viewing_url_generator/#appetize_viewing_url_generator","text":"Generate an URL for appetize simulator Check out the device_grid guide for more information appetize_viewing_url_generator Supported platforms ios Author @KrauseFx Returns The URL to preview the iPhone app","title":"appetize_viewing_url_generator"},{"location":"actions/appetize_viewing_url_generator/#parameters","text":"Key Description Default public_key Public key of the app you wish to update * base_url Base URL of Appetize service https://appetize.io/embed device Device type: iphone4s, iphone5s, iphone6, iphone6plus, ipadair, iphone6s, iphone6splus, ipadair2, nexus5, nexus7 or nexus9 iphone5s scale Scale of the simulator orientation Device orientation portrait language Device language in ISO 639-1 language code, e.g. 'de' color Color of the device black launch_url Specify a deep link to open when your app is launched os_version The operating system version on which to run your app, e.g. 10.3, 8.0 params Specify params value to be passed to Appetize proxy Specify a HTTP proxy to be passed to Appetize * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/appetize_viewing_url_generator/#documentation","text":"To show the documentation in your terminal, run fastlane action appetize_viewing_url_generator","title":"Documentation"},{"location":"actions/appetize_viewing_url_generator/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appetize_viewing_url_generator To pass parameters, make use of the : symbol, for example fastlane run appetize_viewing_url_generator parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/appetize_viewing_url_generator/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/appium/","text":"appium Run UI test by Appium with RSpec appium Supported platforms ios, android Author @yonekawa 1 Example appium( app_path: \"appium/apps/TargetApp.app\", spec_path: \"appium/spec\", platform: \"iOS\", caps: { versionNumber: \"9.1\", deviceName: \"iPhone 6\" }, appium_lib: { wait: 10 } ) Parameters Key Description Default platform Appium platform name spec_path Path to Appium spec directory app_path Path to Appium target app file invoke_appium_server Use local Appium server with invoke automatically true host Hostname of Appium server 0.0.0.0 port HTTP port of Appium server 4723 appium_path Path to Appium executable caps Hash of caps for Appium::Driver appium_lib Hash of appium_lib for Appium::Driver * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action appium CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appium To pass parameters, make use of the : symbol, for example fastlane run appium parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"appium"},{"location":"actions/appium/#appium","text":"Run UI test by Appium with RSpec appium Supported platforms ios, android Author @yonekawa","title":"appium"},{"location":"actions/appium/#1-example","text":"appium( app_path: \"appium/apps/TargetApp.app\", spec_path: \"appium/spec\", platform: \"iOS\", caps: { versionNumber: \"9.1\", deviceName: \"iPhone 6\" }, appium_lib: { wait: 10 } )","title":"1 Example"},{"location":"actions/appium/#parameters","text":"Key Description Default platform Appium platform name spec_path Path to Appium spec directory app_path Path to Appium target app file invoke_appium_server Use local Appium server with invoke automatically true host Hostname of Appium server 0.0.0.0 port HTTP port of Appium server 4723 appium_path Path to Appium executable caps Hash of caps for Appium::Driver appium_lib Hash of appium_lib for Appium::Driver * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/appium/#documentation","text":"To show the documentation in your terminal, run fastlane action appium","title":"Documentation"},{"location":"actions/appium/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appium To pass parameters, make use of the : symbol, for example fastlane run appium parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/appium/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/appledoc/","text":"appledoc Generate Apple-like source code documentation from the source code Runs appledoc [OPTIONS] for the project appledoc Supported platforms ios, mac Author @alexmx 1 Example appledoc( project_name: \"MyProjectName\", project_company: \"Company Name\", input: [ \"MyProjectSources\", \"MyProjectSourceFile.h\" ], ignore: [ \"ignore/path/1\", \"ingore/path/2\" ], options: \"--keep-intermediate-files --search-undocumented-doc\", warnings: \"--warn-missing-output-path --warn-missing-company-id\" ) Parameters Key Description Default input Path(s) to source file directories or individual source files. Accepts a single path or an array of paths output Output path templates Template files path docset_install_path DocSet installation path include Include static doc(s) at path ignore Ignore given path exclude_output Exclude given path from output index_desc File including main index description project_name Project name project_version Project version project_company Project company company_id Company UTI (i.e. reverse DNS name) create_html Create HTML false create_docset Create documentation set false install_docset Install documentation set to Xcode false publish_docset Prepare DocSet for publishing false no_create_docset Create HTML and skip creating a DocSet false html_anchors The html anchor format to use in DocSet HTML clean_output Remove contents of output path before starting false docset_bundle_id DocSet bundle identifier docset_bundle_name DocSet bundle name docset_desc DocSet description docset_copyright DocSet copyright message docset_feed_name DocSet feed name docset_feed_url DocSet feed URL docset_feed_formats DocSet feed formats. Separated by a comma [atom,xml] docset_package_url DocSet package (.xar) URL docset_fallback_url DocSet fallback URL docset_publisher_id DocSet publisher identifier docset_publisher_name DocSet publisher name docset_min_xcode_version DocSet min. Xcode version docset_platform_family DocSet platform family docset_cert_issuer DocSet certificate issuer docset_cert_signer DocSet certificate signer docset_bundle_filename DocSet bundle filename docset_atom_filename DocSet atom feed filename docset_xml_filename DocSet xml feed filename docset_package_filename DocSet package (.xar,.tgz) filename options Documentation generation options crossref_format Cross reference template regex exit_threshold Exit code threshold below which 0 is returned 2 docs_section_title Title of the documentation section (defaults to \"Programming Guides\" warnings Documentation generation warnings logformat Log format [0-3] verbose Log verbosity level [0-6,xcode] * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The appledoc action generates the following Lane Variables: SharedValue Description SharedValues::APPLEDOC_DOCUMENTATION_OUTPUT Documentation set output path To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action appledoc CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appledoc To pass parameters, make use of the : symbol, for example fastlane run appledoc parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"appledoc"},{"location":"actions/appledoc/#appledoc","text":"Generate Apple-like source code documentation from the source code Runs appledoc [OPTIONS] for the project appledoc Supported platforms ios, mac Author @alexmx","title":"appledoc"},{"location":"actions/appledoc/#1-example","text":"appledoc( project_name: \"MyProjectName\", project_company: \"Company Name\", input: [ \"MyProjectSources\", \"MyProjectSourceFile.h\" ], ignore: [ \"ignore/path/1\", \"ingore/path/2\" ], options: \"--keep-intermediate-files --search-undocumented-doc\", warnings: \"--warn-missing-output-path --warn-missing-company-id\" )","title":"1 Example"},{"location":"actions/appledoc/#parameters","text":"Key Description Default input Path(s) to source file directories or individual source files. Accepts a single path or an array of paths output Output path templates Template files path docset_install_path DocSet installation path include Include static doc(s) at path ignore Ignore given path exclude_output Exclude given path from output index_desc File including main index description project_name Project name project_version Project version project_company Project company company_id Company UTI (i.e. reverse DNS name) create_html Create HTML false create_docset Create documentation set false install_docset Install documentation set to Xcode false publish_docset Prepare DocSet for publishing false no_create_docset Create HTML and skip creating a DocSet false html_anchors The html anchor format to use in DocSet HTML clean_output Remove contents of output path before starting false docset_bundle_id DocSet bundle identifier docset_bundle_name DocSet bundle name docset_desc DocSet description docset_copyright DocSet copyright message docset_feed_name DocSet feed name docset_feed_url DocSet feed URL docset_feed_formats DocSet feed formats. Separated by a comma [atom,xml] docset_package_url DocSet package (.xar) URL docset_fallback_url DocSet fallback URL docset_publisher_id DocSet publisher identifier docset_publisher_name DocSet publisher name docset_min_xcode_version DocSet min. Xcode version docset_platform_family DocSet platform family docset_cert_issuer DocSet certificate issuer docset_cert_signer DocSet certificate signer docset_bundle_filename DocSet bundle filename docset_atom_filename DocSet atom feed filename docset_xml_filename DocSet xml feed filename docset_package_filename DocSet package (.xar,.tgz) filename options Documentation generation options crossref_format Cross reference template regex exit_threshold Exit code threshold below which 0 is returned 2 docs_section_title Title of the documentation section (defaults to \"Programming Guides\" warnings Documentation generation warnings logformat Log format [0-3] verbose Log verbosity level [0-6,xcode] * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/appledoc/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The appledoc action generates the following Lane Variables: SharedValue Description SharedValues::APPLEDOC_DOCUMENTATION_OUTPUT Documentation set output path To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/appledoc/#documentation","text":"To show the documentation in your terminal, run fastlane action appledoc","title":"Documentation"},{"location":"actions/appledoc/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appledoc To pass parameters, make use of the : symbol, for example fastlane run appledoc parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/appledoc/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/appstore/","text":"appstore Alias for the upload_to_app_store action deliver uploads screenshots, metadata and binaries to App Store Connect. Use deliver to submit your app for App Store review. Features \u2022 Quick Start \u2022 Usage \u2022 Tips deliver is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Features Upload hundreds of localized screenshots completely automatically Upload a new ipa/pkg file to App Store Connect without Xcode from any Mac Maintain your app metadata locally and push changes back to App Store Connect Easily implement a real Continuous Deployment process using fastlane Store the configuration in git to easily deploy from any Mac, including your Continuous Integration server Get a HTML preview of the fetched metadata before uploading the app metadata and screenshots to iTC Automatically uses precheck to ensure your app has the highest chances of passing app review the first time To upload builds to TestFlight check out pilot . Quick Start The guide will create all the necessary files for you, using the existing app metadata from App Store Connect. cd [your_project_folder] fastlane deliver init Enter your App Store Connect credentials Enter your app identifier Enjoy a good drink, while the computer does all the work for you From now on, you can run fastlane deliver to deploy a new update, or just upload new app metadata and screenshots. Usage Check out your local ./fastlane/metadata and ./fastlane/screenshots folders (if you don't use fastlane it's ./metadata instead) You'll see your metadata from App Store Connect. Feel free to store the metadata in git (not the screenshots). You can now modify it locally and push the changes back to App Store Connect. Run fastlane deliver to upload the app metadata from your local machine fastlane deliver Provide the path to an ipa file to upload and submit your app for review: fastlane deliver --ipa \"App.ipa\" --submit_for_review or you can specify path to pkg file for macOS apps: fastlane deliver --pkg \"MacApp.pkg\" If you use fastlane you don't have to manually specify the path to your ipa / pkg file. This is just a small sub-set of what you can do with deliver , check out the full documentation in #more-options Download existing screenshots from App Store Connect fastlane deliver download_screenshots Download existing metadata from App Store Connect fastlane deliver download_metadata To get a list of available options run fastlane action deliver Use in a Fastfile deliver deliver( submit_for_review: true, force: true, metadata_path: \"./metadata\" ) More options View all available options and their valid values Available options All the options below can easily be added to your Deliverfile . The great thing: if you use fastlane you can use all these options from your Fastfile too, for example: deliver( submit_for_review: true, metadata_path: \"../folder\" ) app_identifier The bundle identifier (e.g. \"com.krausefx.app\") username Your Apple ID email address ipa A path to a signed ipa file, which will be uploaded. If you don't provide this value, only app metadata will be uploaded. If you want to submit the app for review make sure to either use fastlane deliver --submit_for_review or add submit_for_review true to your Deliverfile ipa(\"App.ipa\") if you use fastlane the ipa file will automatically be detected. pkg A path to a signed pkg file, which will be uploaded. Submission logic of ipa applies to pkg files. pkg(\"MacApp.pkg\") app_version Optional, as it is usually automatically detected. Specify the version that should be created / edited on App Store Connect: app_version(\"2.0\") skip_app_version_update In the case if deliver uploads your application to App Store Connect it will automatically update \"Prepare for submission\" app version (which could be found on App Store Connect->My Apps->App Store page) The option allows uploading your app without updating \"Prepare for submission\" version. This could be useful in the case if you are generating a lot of uploads while not submitting the latest build for Apple review. The default value is false. skip_app_version_update(true) submit_for_review Add this to your Deliverfile to automatically submit the app for review after uploading metadata/binary. This will select the latest build. submit_for_review(true) screenshots_path A path to a folder containing subfolders for each language. This will automatically detect the device type based on the image resolution. Also includes \uf8ff Watch Support. metadata_path Path to the metadata you want to use. The folder has to be structured like this If you run deliver init this will automatically be created for you. force force(true) If set to true , no HTML report will be generated before the actual upload. You can also pass --force when calling deliver . price_tier Pass the price tier as number. This will be active from the current day. price_tier 0 trade_representative_contact_information Trade Representative Contact information for Korean App Store. Available options: first_name , last_name , address_line1 , address_line2 , address_line3 , city_name , state , country , postal_code , phone_number , email_address , is_displayed_on_app_store . trade_representative_contact_information( first_name: \"Felix\", last_name: \"Krause\", address_line1: \"1 Infinite Loop\", address_line2: \"\", address_line3: null, city_name: \"Cupertino\", state: \"California\", country: \"United States\", postal_code: \"95014\", phone_number: \"+43 123123123\", email_address: \"github@krausefx.com\", ) You can also provide these values by creating files in a metadata/trade_representative_contact_information/ directory. The file names must match the pattern .txt (e.g. first_name.txt , address_line1.txt etc.). The contents of each file will be used as the value for the matching key. Values provided in the Deliverfile or Fastfile will be take priority over values from these files. is_displayed_on_app_store is the option on App Store Connect described as: Display Trade Representative Contact Information on the Korean App Store app_review_information Contact information for the app review team. Available options: first_name , last_name , phone_number , email_address , demo_user , demo_password , notes . app_review_information( first_name: \"Felix\", last_name: \"Krause\", phone_number: \"+43 123123123\", email_address: \"github@krausefx.com\", demo_user: \"demoUser\", demo_password: \"demoPass\", notes: \"such notes, very text\" ) You can also provide these values by creating files in a metadata/review_information/ directory. The file names must match the pattern .txt (e.g. first_name.txt , notes.txt etc.). The contents of each file will be used as the value for the matching key. Values provided in the Deliverfile or Fastfile will be take priority over values from these files. app_review_attachment_file You can provide additional information to the app review team as a file attachment. As of this writing, Apple supports following file attachment formats: .pdf, .doc, .docx, .rtf, .pages, .xls, .xlsx, .numbers, .zip, .rar, .plist, .crash, .jpg, .png, .mp4, or .avi. Provide an empty string (i.e. \"\", not null) to remove the existing attachment file (if any) from the review information being edited. app_review_attachment_file: \"./readme.txt\" submission_information Must be a hash. This is used as the last step for the deployment process, where you define if you use third party content or use encryption. A list of available options . submission_information({ add_id_info_serves_ads: true, ... }) automatic_release Should the app be released to all users once Apple approves it? If set to false , you'll have to manually release the update once it got approved. automatic_release(true) # or automatic_release(false) phased_release Enable or disable the phased releases feature of App Store Connect. If set to true , the update will be released over a 7 day period. Default behavior is to leave whatever you defined on App Store Connect. phased_release(true) # or phased_release(false) reset_ratings Reset your app's summary rating for all territories. If set to true , it will reset rating when this version is released. Default behavior is to keep existing rating. reset_ratings(true) # or reset_ratings(false) app_rating_config_path You can set the app age ratings using deliver . You'll have to create and store a JSON configuration file. Copy the template to your project folder and pass the path to the JSON file using the app_rating_config_path option. The keys/values on the top allow one of 3 strings: \"NONE\", \"INFREQUENT_OR_MILD\" or \"FREQUENT_OR_INTENSE\", and the items on the bottom allow false or true. More information in #reference . Metadata All options below are useful if you want to specify certain app metadata in your Deliverfile or Fastfile Localized Localized values should be set like this description({ 'en-US' => \"English Description here\", 'de-DE' => \"Deutsche Beschreibung hier\" }) name The title/name of the app subtitle Localized subtitle of the app subtitle( \"en-US\" => \"Awesome English subtitle here\", \"de-DE\" => \"Jetzt mit deutschen Untertiteln!\" ) description The description of the app release_notes The release_notes (What's new / Changelog) of the latest version support_url, marketing_url, privacy_url These URLs are shown in the AppStore keywords Keywords separated using a comma. keywords( \"en-US\" => \"Keyword1, Keyword2\" ) promotional_text Localized promotional text promotional_text( \"en-US\" => \"Hey, you should totally buy our app, it's the best\", \"de-DE\" => \"App kaufen bitte\" ) app_icon A path to a new app icon, which must be exactly 1024x1024px app_icon('./AppIcon.png') apple_watch_app_icon A path to a new app icon for the \uf8ff Watch, which must be exactly 1024x1024px apple_watch_app_icon('./AppleWatchAppIcon.png') platform The platform of your application (a.e. ios, osx). This option is optional. The default value is \"ios\" and deliver should be able to figure out the platform from your binary. However, in the case if multiple binaries present, you can specify a platform which you want to deliver explicitly. The available options: 'ios' 'appletvos' 'osx' Non-Localized copyright The up to date copyright information. copyright(\"#{Time.now.year} Felix Krause\") primary_category The english name of the category you want to set (e.g. Business , Books ) See #reference for a list of available categories secondary_category The english name of the secondary category you want to set primary_first_sub_category The english name of the primary first sub category you want to set primary_second_sub_category The english name of the primary second sub category you want to set secondary_first_sub_category The english name of the secondary first sub category you want to set secondary_second_sub_category The english name of the secondary second sub category you want to set Submit Build deliver allows you to promote an existing build to production. Below are examples to select a previously uploaded build and submit it for review. fastlane deliver submit_build --build_number 830 Submit build in a Fastfile lane :submit_review do deliver( build_number: '830', submit_for_review: true, automatic_release: true, force: true, # Skip HTMl report verification skip_metadata: true, skip_screenshots: true, skip_binary_upload: true ) end Omit build_number to let fastlane automatically select the latest build number for the current version being edited for release from App Store Connect. Compliance and IDFA settings Use the submission_information parameter for additional submission specifiers, including compliance and IDFA settings. Look at the Spaceship's app_submission.rb file for options. See this example . fastlane deliver submit_build --build_number 830 --submission_information \"{\\\"export_compliance_uses_encryption\\\": false, \\\"add_id_info_uses_idfa\\\": false }\" App Privacy Details Starting on December 8, 2020, Apple announced that developers are required to provide app privacy details that will help users understand an app's privacy practies. deliver does not allow for updating of this information but this can be done with the upload_app_privacy_details_to_app_store action. More information on Uploading App Privacy Details Credentials A detailed description about how your credentials are handled is available in a credentials_manager . How does this thing even work? Is magic involved? \ud83c\udfa9 Your password will be stored in the macOS keychain, but can also be passed using environment variables. (More information available on CredentialsManager ) Before actually uploading anything to iTunes, deliver will generate a HTML summary of the collected data. deliver uses the following techniques under the hood: The iTMSTransporter tool is used to upload the binary to App Store Connect. iTMSTransporter is a command line tool provided by Apple. For all metadata related actions deliver uses spaceship Tips Available language codes ar-SA, ca, cs, da, de-DE, el, en-AU, en-CA, en-GB, en-US, es-ES, es-MX, fi, fr-CA, fr-FR, he, hi, hr, hu, id, it, ja, ko, ms, nl-NL, no, pl, pt-BR, pt-PT, ro, ru, sk, sv, th, tr, uk, vi, zh-Hans, zh-Hant Available Metadata Folder Options deliver allows for metadata to be set through .txt files in the metadata folder. This metadata folder location is defaulted to ./fastlane/metadata but can be overridden through the metadata_path parameter. Below are all allowed metadata options. Non-Localized Metadata Key Editable While Live Directory Filename copyright Yes copyright.txt primary_category No primary_category.txt secondary_category No secondary_category.txt primary_first_sub_category No primary_first_sub_category.txt primary_second_sub_category No primary_second_sub_category.txt secondary_first_sub_category No secondary_first_sub_category.txt secondary_second_sub_category No secondary_second_sub_category.txt Localized Metadata Key Editable While Live Directory Filename name No // name.txt subtitle No // subtitle.txt privacy_url Yes // privacy_url.txt apple_tv_privacy_policy No // apple_tv_privacy_policy.txt description Yes // description.txt keywords No // keywords.txt release_notes Yes // release_notes.txt support_url Yes // support_url.txt marketing_url Yes // marketing_url.txt promotional_text Yes // promotional_text.txt Review Information Metadata Key Editable While Live Directory Filename Deprecated Filename first_name Yes /review_information first_name.txt review_first_name.txt last_name Yes /review_information last_name.txt review_last_name.txt phone_number Yes /review_information phone_number.txt review_phone_number.txt email_address Yes /review_information email_address.txt review_email.txt demo_user Yes /review_information demo_user.txt review_demo_user.txt demo_password Yes /review_information demo_password.txt review_demo_password.txt notes Yes /review_information notes.txt review_notes.txt Reference View all available categories, etc. Available Categories FOOD_AND_DRINK BUSINESS EDUCATION SOCIAL_NETWORKING BOOKS SPORTS FINANCE REFERENCE GRAPHICS_AND_DESIGN DEVELOPER_TOOLS HEALTH_AND_FITNESS MUSIC WEATHER TRAVEL ENTERTAINMENT STICKERS GAMES LIFESTYLE MEDICAL MAGAZINES_AND_NEWSPAPERS UTILITIES SHOPPING PRODUCTIVITY NEWS PHOTO_AND_VIDEO NAVIGATION Available Game Subcategories MZGenre.Action MZGenre.Adventure MZGenre.Arcade MZGenre.Board MZGenre.Card MZGenre.Casino MZGenre.Dice MZGenre.Educational MZGenre.Family MZGenre.Music MZGenre.Puzzle MZGenre.Racing MZGenre.RolePlaying MZGenre.Simulation MZGenre.Sports MZGenre.Strategy MZGenre.Trivia MZGenre.Word GAMES_SPORTS GAMES_WORD GAMES_MUSIC GAMES_ADVENTURE GAMES_ACTION GAMES_ROLE_PLAYING GAMES_CASUAL GAMES_BOARD GAMES_TRIVIA GAMES_CARD GAMES_PUZZLE GAMES_CASINO GAMES_STRATEGY GAMES_SIMULATION GAMES_RACING GAMES_FAMILY Available Stickers Subcategories STICKERS_PLACES_AND_OBJECTS STICKERS_EMOJI_AND_EXPRESSIONS STICKERS_CELEBRATIONS STICKERS_CELEBRITIES STICKERS_MOVIES_AND_TV STICKERS_SPORTS_AND_ACTIVITIES STICKERS_EATING_AND_DRINKING STICKERS_CHARACTERS STICKERS_ANIMALS STICKERS_FASHION STICKERS_ART STICKERS_GAMING STICKERS_KIDS_AND_FAMILY STICKERS_PEOPLE STICKERS_MUSIC Available age rating groups Non Boolean Values 0: None (Legacy value, use NONE instead) 1: Infrequent/Mild (Legacy value, use INFREQUENT_OR_MILD instead) 2: Frequent/Intense (Legacy value, use FREQUENT_OR_INTENSE instead) NONE INFREQUENT_OR_MILD FREQUENT_OR_INTENSE Keys 'alcoholTobaccoOrDrugUseOrReferences' 'contests' 'gamblingSimulated' 'medicalOrTreatmentInformation' 'profanityOrCrudeHumor' 'sexualContentGraphicAndNudity' 'sexualContentOrNudity' 'horrorOrFearThemes' 'matureOrSuggestiveThemes' 'unrestrictedWebAccess' 'violenceCartoonOrFantasy' 'violenceRealisticProlongedGraphicOrSadistic' 'violenceRealistic' 'kidsAgeBand' Boolean Keys gambling 'seventeenPlus' unrestrictedWebAccess Kids Age Values FIVE_AND_UNDER SIX_TO_EIGHT NINE_TO_ELEVEN null Keys kidsAgeBand Default values Deliver has a special default language code which allows you to provide values that are not localized, and which will be used as defaults when you don\u2019t provide a specific localized value. In order to use default , you will need to tell deliver which languages your app uses. You can do this in either of two ways: Create the folders named with the language in the metadata folder (i.e. fastlane/metadata/en-US or fastlane/metadata/de-DE) Add the following to your Deliverfile languages(['en-US','de-DE']) You can use this either in json within your Deliverfile and/or as folders in your metadata folder. deliver will take the union of both language sets from the Deliverfile and from the metadata folder and create on single set of languages which will be enabled. Imagine that you have localized data for the following language codes: en-US, de-DE, el, it You can set the following in your Deliverfile release_notes({ 'default' => \"Shiny and new\", 'de-DE' => \"glaenzend und neu\" }) Deliver will use \"Shiny and new\" for en-US, el and it. It will use \"glaenzend und neu\" for de-DE. You can do the same with folders default keywords.txt marketing_url.txt name.txt privacy_url.txt support_url.txt release_notes.txt en-US description.txt de-DE description.txt el description.txt it description.txt In this case, default values for keywords, urls, name and release notes are used in all localizations, but each language has a fully localized description Uploading screenshots for \"iPad Pro (12.9-inch) (3rd generation)\" Starting March 20, 2019 Apple's App Store requires 12.9-inch iPad Pro (3rd generation) screenshots additionally to the iPad Pro 2nd generation screenshots . As fastlane historically uses the screenshot dimensions to determine the \"display family\" of a screenshot, this poses a problem as both use the same dimensions and are recognized as the same device family. To solve this a screenshot of a 12.9-inch iPad Pro (3rd generation) must contain either the string iPad Pro (12.9-inch) (3rd generation) , IPAD_PRO_3GEN_129 , or ipadPro129 (Apple's internal naming of the display family for the 3rd generation iPad Pro) in its filename to be assigned the correct display family and to be uploaded to the correct screenshot slot in your app's metadata. Automatically create screenshots If you want to integrate deliver with snapshot , check out fastlane ! Jenkins integration Detailed instructions about how to set up deliver and fastlane in Jenkins can be found in the fastlane README . Firewall Issues deliver uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" fastlane deliver HTTP Proxy iTunes Transporter is a Java application bundled with Xcode. In addition to utilizing the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" , you need to configure the transporter application to use the proxy independently from the system proxy or any environment proxy settings. You can find the configuration file within Xcode: for Xcode11 and later TOOLS_PATH=$( xcode-select -p ) REL_PATH='../SharedFrameworks/ContentDeliveryServices.framework/Versions/A/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" for Xcode10 or earlier TOOLS_PATH=$( xcode-select -p ) REL_PATH='../Applications/Application Loader.app/Contents/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" Add necessary proxy configuration values to the net.properties according to Java Proxy Configuration . As an alternative to editing the properties files, proxy configuration can be specified on the command line directly: DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV -Dhttp.proxyHost=myproxy.com -Dhttp.proxyPort=8080\" Limit App Store Connect has a limit of 150 binary uploads per day. Editing the Deliverfile Change syntax highlighting to Ruby . Provider Short Name If you are on multiple App Store Connect teams, deliver needs a provider short name to know where to upload your binary. deliver will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option. appstore Supported platforms ios, mac Author @KrauseFx 3 Examples upload_to_app_store( force: true, # Set to true to skip verification of HTML preview itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) deliver # alias for \"upload_to_app_store\" appstore # alias for \"upload_to_app_store\" Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of your app * app_version The version that should be edited or created ipa Path to your ipa file * pkg Path to your pkg file * build_number If set the given build number (already uploaded to iTC) will be used instead of the current built one platform The platform to use (optional) ios edit_live Modify live metadata, this option disables ipa upload and screenshot upload false use_live_version Force usage of live version rather than edit version false metadata_path Path to the folder containing the metadata files screenshots_path Path to the folder containing the screenshots skip_binary_upload Skip uploading an ipa or pkg to App Store Connect false skip_screenshots Don't upload the screenshots false skip_metadata Don't upload the metadata (e.g. title, description). This will still upload screenshots false skip_app_version_update Don\u2019t create or update the app version that is being prepared for submission false force Skip verification of HTML preview file false overwrite_screenshots Clear all previously uploaded screenshots before uploading the new ones false sync_screenshots Sync screenshots with local ones. This is currently beta option so set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well false submit_for_review Submit the new version for Review after uploading everything false verify_only Verifies archive with App Store Connect without uploading false reject_if_possible Rejects the previously submitted build if it's in a state where it's possible false automatic_release Should the app be automatically released once it's approved? (Can not be used together with auto_release_date ) auto_release_date Date in milliseconds for automatically releasing on pending approval (Can not be used together with automatic_release ) phased_release Enable the phased release feature of iTC false reset_ratings Reset the summary rating when you release a new version of the application false price_tier The price tier of this application app_rating_config_path Path to the app rating's config submission_information Extra information for the submission (e.g. compliance specifications, IDFA settings) team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your Developer Portal team, if you're in multiple teams. Different from your iTC team ID! * dev_portal_team_name The name of your Developer Portal team if you're in multiple teams * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column * run_precheck_before_submit Run precheck before submitting to app review true precheck_default_rule_level The default precheck rule level unless otherwise configured :warn individual_metadata_items DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - An array of localized metadata items to upload individually by language so that errors can be identified. E.g. ['name', 'keywords', 'description']. Note: slow app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the app icon apple_watch_app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the Apple Watch app icon copyright Metadata: The copyright notice primary_category Metadata: The english name of the primary category (e.g. Business , Books ) secondary_category Metadata: The english name of the secondary category (e.g. Business , Books ) primary_first_sub_category Metadata: The english name of the primary first sub category (e.g. Educational , Puzzle ) primary_second_sub_category Metadata: The english name of the primary second sub category (e.g. Educational , Puzzle ) secondary_first_sub_category Metadata: The english name of the secondary first sub category (e.g. Educational , Puzzle ) secondary_second_sub_category Metadata: The english name of the secondary second sub category (e.g. Educational , Puzzle ) trade_representative_contact_information DEPRECATED! This is no longer used by App Store Connect - Metadata: A hash containing the trade representative contact information app_review_information Metadata: A hash containing the review information app_review_attachment_file Metadata: Path to the app review attachment file description Metadata: The localised app description name Metadata: The localised app name subtitle Metadata: The localised app subtitle keywords Metadata: An array of localised keywords promotional_text Metadata: An array of localised promotional texts release_notes Metadata: Localised release notes for this version privacy_url Metadata: Localised privacy url apple_tv_privacy_policy Metadata: Localised Apple TV privacy policy text support_url Metadata: Localised support url marketing_url Metadata: Localised marketing url languages Metadata: List of languages to activate ignore_language_directory_validation Ignore errors when invalid languages are found in metadata and screenshot directories false precheck_include_in_app_purchases Should precheck check in-app purchases? true app The (spaceship) app ID of the app you want to use/modify * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action appstore CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appstore To pass parameters, make use of the : symbol, for example fastlane run appstore parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"appstore"},{"location":"actions/appstore/#appstore","text":"Alias for the upload_to_app_store action deliver uploads screenshots, metadata and binaries to App Store Connect. Use deliver to submit your app for App Store review. Features \u2022 Quick Start \u2022 Usage \u2022 Tips","title":"appstore"},{"location":"actions/appstore/#features","text":"Upload hundreds of localized screenshots completely automatically Upload a new ipa/pkg file to App Store Connect without Xcode from any Mac Maintain your app metadata locally and push changes back to App Store Connect Easily implement a real Continuous Deployment process using fastlane Store the configuration in git to easily deploy from any Mac, including your Continuous Integration server Get a HTML preview of the fetched metadata before uploading the app metadata and screenshots to iTC Automatically uses precheck to ensure your app has the highest chances of passing app review the first time To upload builds to TestFlight check out pilot .","title":"Features"},{"location":"actions/appstore/#quick-start","text":"The guide will create all the necessary files for you, using the existing app metadata from App Store Connect. cd [your_project_folder] fastlane deliver init Enter your App Store Connect credentials Enter your app identifier Enjoy a good drink, while the computer does all the work for you From now on, you can run fastlane deliver to deploy a new update, or just upload new app metadata and screenshots.","title":"Quick Start"},{"location":"actions/appstore/#usage","text":"Check out your local ./fastlane/metadata and ./fastlane/screenshots folders (if you don't use fastlane it's ./metadata instead) You'll see your metadata from App Store Connect. Feel free to store the metadata in git (not the screenshots). You can now modify it locally and push the changes back to App Store Connect. Run fastlane deliver to upload the app metadata from your local machine fastlane deliver Provide the path to an ipa file to upload and submit your app for review: fastlane deliver --ipa \"App.ipa\" --submit_for_review or you can specify path to pkg file for macOS apps: fastlane deliver --pkg \"MacApp.pkg\" If you use fastlane you don't have to manually specify the path to your ipa / pkg file. This is just a small sub-set of what you can do with deliver , check out the full documentation in #more-options Download existing screenshots from App Store Connect fastlane deliver download_screenshots Download existing metadata from App Store Connect fastlane deliver download_metadata To get a list of available options run fastlane action deliver","title":"Usage"},{"location":"actions/appstore/#more-options","text":"View all available options and their valid values","title":"More options"},{"location":"actions/appstore/#available-options","text":"All the options below can easily be added to your Deliverfile . The great thing: if you use fastlane you can use all these options from your Fastfile too, for example: deliver( submit_for_review: true, metadata_path: \"../folder\" )","title":"Available options"},{"location":"actions/appstore/#metadata","text":"All options below are useful if you want to specify certain app metadata in your Deliverfile or Fastfile","title":"Metadata"},{"location":"actions/appstore/#submit-build","text":"deliver allows you to promote an existing build to production. Below are examples to select a previously uploaded build and submit it for review. fastlane deliver submit_build --build_number 830","title":"Submit Build"},{"location":"actions/appstore/#credentials","text":"A detailed description about how your credentials are handled is available in a credentials_manager .","title":"Credentials"},{"location":"actions/appstore/#tips","text":"","title":"Tips"},{"location":"actions/appstore/#available-language-codes","text":"ar-SA, ca, cs, da, de-DE, el, en-AU, en-CA, en-GB, en-US, es-ES, es-MX, fi, fr-CA, fr-FR, he, hi, hr, hu, id, it, ja, ko, ms, nl-NL, no, pl, pt-BR, pt-PT, ro, ru, sk, sv, th, tr, uk, vi, zh-Hans, zh-Hant","title":"Available language codes"},{"location":"actions/appstore/#available-metadata-folder-options","text":"deliver allows for metadata to be set through .txt files in the metadata folder. This metadata folder location is defaulted to ./fastlane/metadata but can be overridden through the metadata_path parameter. Below are all allowed metadata options.","title":"Available Metadata Folder Options"},{"location":"actions/appstore/#reference","text":"View all available categories, etc.","title":"Reference"},{"location":"actions/appstore/#default-values","text":"Deliver has a special default language code which allows you to provide values that are not localized, and which will be used as defaults when you don\u2019t provide a specific localized value. In order to use default , you will need to tell deliver which languages your app uses. You can do this in either of two ways: Create the folders named with the language in the metadata folder (i.e. fastlane/metadata/en-US or fastlane/metadata/de-DE) Add the following to your Deliverfile languages(['en-US','de-DE']) You can use this either in json within your Deliverfile and/or as folders in your metadata folder. deliver will take the union of both language sets from the Deliverfile and from the metadata folder and create on single set of languages which will be enabled. Imagine that you have localized data for the following language codes: en-US, de-DE, el, it You can set the following in your Deliverfile release_notes({ 'default' => \"Shiny and new\", 'de-DE' => \"glaenzend und neu\" }) Deliver will use \"Shiny and new\" for en-US, el and it. It will use \"glaenzend und neu\" for de-DE. You can do the same with folders default keywords.txt marketing_url.txt name.txt privacy_url.txt support_url.txt release_notes.txt en-US description.txt de-DE description.txt el description.txt it description.txt In this case, default values for keywords, urls, name and release notes are used in all localizations, but each language has a fully localized description","title":"Default values"},{"location":"actions/appstore/#uploading-screenshots-for-ipad-pro-129-inch-3rd-generation","text":"Starting March 20, 2019 Apple's App Store requires 12.9-inch iPad Pro (3rd generation) screenshots additionally to the iPad Pro 2nd generation screenshots . As fastlane historically uses the screenshot dimensions to determine the \"display family\" of a screenshot, this poses a problem as both use the same dimensions and are recognized as the same device family. To solve this a screenshot of a 12.9-inch iPad Pro (3rd generation) must contain either the string iPad Pro (12.9-inch) (3rd generation) , IPAD_PRO_3GEN_129 , or ipadPro129 (Apple's internal naming of the display family for the 3rd generation iPad Pro) in its filename to be assigned the correct display family and to be uploaded to the correct screenshot slot in your app's metadata.","title":"Uploading screenshots for \"iPad Pro (12.9-inch) (3rd generation)\""},{"location":"actions/appstore/#automatically-create-screenshots","text":"If you want to integrate deliver with snapshot , check out fastlane !","title":"Automatically create screenshots"},{"location":"actions/appstore/#jenkins-integration","text":"Detailed instructions about how to set up deliver and fastlane in Jenkins can be found in the fastlane README .","title":"Jenkins integration"},{"location":"actions/appstore/#firewall-issues","text":"deliver uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" fastlane deliver","title":"Firewall Issues"},{"location":"actions/appstore/#http-proxy","text":"iTunes Transporter is a Java application bundled with Xcode. In addition to utilizing the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" , you need to configure the transporter application to use the proxy independently from the system proxy or any environment proxy settings. You can find the configuration file within Xcode: for Xcode11 and later TOOLS_PATH=$( xcode-select -p ) REL_PATH='../SharedFrameworks/ContentDeliveryServices.framework/Versions/A/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" for Xcode10 or earlier TOOLS_PATH=$( xcode-select -p ) REL_PATH='../Applications/Application Loader.app/Contents/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" Add necessary proxy configuration values to the net.properties according to Java Proxy Configuration . As an alternative to editing the properties files, proxy configuration can be specified on the command line directly: DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV -Dhttp.proxyHost=myproxy.com -Dhttp.proxyPort=8080\"","title":"HTTP Proxy"},{"location":"actions/appstore/#limit","text":"App Store Connect has a limit of 150 binary uploads per day.","title":"Limit"},{"location":"actions/appstore/#editing-the-deliverfile","text":"Change syntax highlighting to Ruby .","title":"Editing the Deliverfile"},{"location":"actions/appstore/#provider-short-name","text":"If you are on multiple App Store Connect teams, deliver needs a provider short name to know where to upload your binary. deliver will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option. appstore Supported platforms ios, mac Author @KrauseFx","title":"Provider Short Name"},{"location":"actions/appstore/#3-examples","text":"upload_to_app_store( force: true, # Set to true to skip verification of HTML preview itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) deliver # alias for \"upload_to_app_store\" appstore # alias for \"upload_to_app_store\"","title":"3 Examples"},{"location":"actions/appstore/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of your app * app_version The version that should be edited or created ipa Path to your ipa file * pkg Path to your pkg file * build_number If set the given build number (already uploaded to iTC) will be used instead of the current built one platform The platform to use (optional) ios edit_live Modify live metadata, this option disables ipa upload and screenshot upload false use_live_version Force usage of live version rather than edit version false metadata_path Path to the folder containing the metadata files screenshots_path Path to the folder containing the screenshots skip_binary_upload Skip uploading an ipa or pkg to App Store Connect false skip_screenshots Don't upload the screenshots false skip_metadata Don't upload the metadata (e.g. title, description). This will still upload screenshots false skip_app_version_update Don\u2019t create or update the app version that is being prepared for submission false force Skip verification of HTML preview file false overwrite_screenshots Clear all previously uploaded screenshots before uploading the new ones false sync_screenshots Sync screenshots with local ones. This is currently beta option so set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well false submit_for_review Submit the new version for Review after uploading everything false verify_only Verifies archive with App Store Connect without uploading false reject_if_possible Rejects the previously submitted build if it's in a state where it's possible false automatic_release Should the app be automatically released once it's approved? (Can not be used together with auto_release_date ) auto_release_date Date in milliseconds for automatically releasing on pending approval (Can not be used together with automatic_release ) phased_release Enable the phased release feature of iTC false reset_ratings Reset the summary rating when you release a new version of the application false price_tier The price tier of this application app_rating_config_path Path to the app rating's config submission_information Extra information for the submission (e.g. compliance specifications, IDFA settings) team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your Developer Portal team, if you're in multiple teams. Different from your iTC team ID! * dev_portal_team_name The name of your Developer Portal team if you're in multiple teams * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column * run_precheck_before_submit Run precheck before submitting to app review true precheck_default_rule_level The default precheck rule level unless otherwise configured :warn individual_metadata_items DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - An array of localized metadata items to upload individually by language so that errors can be identified. E.g. ['name', 'keywords', 'description']. Note: slow app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the app icon apple_watch_app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the Apple Watch app icon copyright Metadata: The copyright notice primary_category Metadata: The english name of the primary category (e.g. Business , Books ) secondary_category Metadata: The english name of the secondary category (e.g. Business , Books ) primary_first_sub_category Metadata: The english name of the primary first sub category (e.g. Educational , Puzzle ) primary_second_sub_category Metadata: The english name of the primary second sub category (e.g. Educational , Puzzle ) secondary_first_sub_category Metadata: The english name of the secondary first sub category (e.g. Educational , Puzzle ) secondary_second_sub_category Metadata: The english name of the secondary second sub category (e.g. Educational , Puzzle ) trade_representative_contact_information DEPRECATED! This is no longer used by App Store Connect - Metadata: A hash containing the trade representative contact information app_review_information Metadata: A hash containing the review information app_review_attachment_file Metadata: Path to the app review attachment file description Metadata: The localised app description name Metadata: The localised app name subtitle Metadata: The localised app subtitle keywords Metadata: An array of localised keywords promotional_text Metadata: An array of localised promotional texts release_notes Metadata: Localised release notes for this version privacy_url Metadata: Localised privacy url apple_tv_privacy_policy Metadata: Localised Apple TV privacy policy text support_url Metadata: Localised support url marketing_url Metadata: Localised marketing url languages Metadata: List of languages to activate ignore_language_directory_validation Ignore errors when invalid languages are found in metadata and screenshot directories false precheck_include_in_app_purchases Should precheck check in-app purchases? true app The (spaceship) app ID of the app you want to use/modify * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/appstore/#documentation","text":"To show the documentation in your terminal, run fastlane action appstore","title":"Documentation"},{"location":"actions/appstore/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appstore To pass parameters, make use of the : symbol, for example fastlane run appstore parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/appstore/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/apteligent/","text":"apteligent Upload dSYM file to Apteligent (Crittercism) apteligent Supported platforms ios Author @Mo7amedFouad 1 Example apteligent( app_id: \"...\", api_key: \"...\" ) Parameters Key Description Default dsym dSYM.zip file to upload to Apteligent app_id Apteligent App ID key e.g. 569f5c87cb99e10e00c7xxxx api_key Apteligent App API key e.g. IXPQIi8yCbHaLliqzRoo065tH0lxxxxx * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action apteligent CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run apteligent To pass parameters, make use of the : symbol, for example fastlane run apteligent parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"apteligent"},{"location":"actions/apteligent/#apteligent","text":"Upload dSYM file to Apteligent (Crittercism) apteligent Supported platforms ios Author @Mo7amedFouad","title":"apteligent"},{"location":"actions/apteligent/#1-example","text":"apteligent( app_id: \"...\", api_key: \"...\" )","title":"1 Example"},{"location":"actions/apteligent/#parameters","text":"Key Description Default dsym dSYM.zip file to upload to Apteligent app_id Apteligent App ID key e.g. 569f5c87cb99e10e00c7xxxx api_key Apteligent App API key e.g. IXPQIi8yCbHaLliqzRoo065tH0lxxxxx * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/apteligent/#documentation","text":"To show the documentation in your terminal, run fastlane action apteligent","title":"Documentation"},{"location":"actions/apteligent/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run apteligent To pass parameters, make use of the : symbol, for example fastlane run apteligent parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/apteligent/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/artifactory/","text":"artifactory This action uploads an artifact to artifactory Connect to the artifactory server using either a username/password or an api_key artifactory Supported platforms ios, android, mac Author @koglinjg, @tommeier 2 Examples artifactory( username: \"username\", password: \"password\", endpoint: \"https://artifactory.example.com/artifactory/\", file: \"example.ipa\", # File to upload repo: \"mobile_artifacts\", # Artifactory repo repo_path: \"/ios/appname/example-major.minor.ipa\" # Path to place the artifact including its filename ) artifactory( api_key: \"api_key\", endpoint: \"https://artifactory.example.com/artifactory/\", file: \"example.ipa\", # File to upload repo: \"mobile_artifacts\", # Artifactory repo repo_path: \"/ios/appname/example-major.minor.ipa\" # Path to place the artifact including its filename ) Parameters Key Description Default file File to be uploaded to artifactory repo Artifactory repo to put the file in repo_path Path to deploy within the repo, including filename endpoint Artifactory endpoint username Artifactory username password Artifactory password api_key Artifactory API key properties Artifact properties hash {} ssl_pem_file Location of pem file to use for ssl verification ssl_verify Verify SSL true proxy_username Proxy username proxy_password Proxy password proxy_address Proxy address proxy_port Proxy port read_timeout Read timeout * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The artifactory action generates the following Lane Variables: SharedValue Description SharedValues::ARTIFACTORY_DOWNLOAD_URL The download url for file uploaded SharedValues::ARTIFACTORY_DOWNLOAD_SIZE The reported file size for file uploaded To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action artifactory CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run artifactory To pass parameters, make use of the : symbol, for example fastlane run artifactory parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"artifactory"},{"location":"actions/artifactory/#artifactory","text":"This action uploads an artifact to artifactory Connect to the artifactory server using either a username/password or an api_key artifactory Supported platforms ios, android, mac Author @koglinjg, @tommeier","title":"artifactory"},{"location":"actions/artifactory/#2-examples","text":"artifactory( username: \"username\", password: \"password\", endpoint: \"https://artifactory.example.com/artifactory/\", file: \"example.ipa\", # File to upload repo: \"mobile_artifacts\", # Artifactory repo repo_path: \"/ios/appname/example-major.minor.ipa\" # Path to place the artifact including its filename ) artifactory( api_key: \"api_key\", endpoint: \"https://artifactory.example.com/artifactory/\", file: \"example.ipa\", # File to upload repo: \"mobile_artifacts\", # Artifactory repo repo_path: \"/ios/appname/example-major.minor.ipa\" # Path to place the artifact including its filename )","title":"2 Examples"},{"location":"actions/artifactory/#parameters","text":"Key Description Default file File to be uploaded to artifactory repo Artifactory repo to put the file in repo_path Path to deploy within the repo, including filename endpoint Artifactory endpoint username Artifactory username password Artifactory password api_key Artifactory API key properties Artifact properties hash {} ssl_pem_file Location of pem file to use for ssl verification ssl_verify Verify SSL true proxy_username Proxy username proxy_password Proxy password proxy_address Proxy address proxy_port Proxy port read_timeout Read timeout * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/artifactory/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The artifactory action generates the following Lane Variables: SharedValue Description SharedValues::ARTIFACTORY_DOWNLOAD_URL The download url for file uploaded SharedValues::ARTIFACTORY_DOWNLOAD_SIZE The reported file size for file uploaded To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/artifactory/#documentation","text":"To show the documentation in your terminal, run fastlane action artifactory","title":"Documentation"},{"location":"actions/artifactory/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run artifactory To pass parameters, make use of the : symbol, for example fastlane run artifactory parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/artifactory/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/automatic_code_signing/","text":"automatic_code_signing Configures Xcode's Codesigning options Please use update_code_signing_settings action instead. Configures Xcode's Codesigning options of all targets in the project automatic_code_signing Supported platforms ios, mac Author @mathiasAichinger, @hjanuschka, @p4checo, @portellaa, @aeons Returns The current status (boolean) of codesigning after modification 8 Examples # enable automatic code signing enable_automatic_code_signing enable_automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\" ) # disable automatic code signing disable_automatic_code_signing disable_automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\" ) # also set team id disable_automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\", team_id: \"XXXX\" ) # Only specific targets disable_automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\", use_automatic_signing: false, targets: [\"demo\"] ) # via generic action automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\", use_automatic_signing: false ) automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\", use_automatic_signing: true ) Parameters Key Description Default path Path to your Xcode project * use_automatic_signing Defines if project should use automatic signing false team_id Team ID, is used when upgrading project targets Specify targets you want to toggle the signing mech. (default to all targets) code_sign_identity Code signing identity type (iPhone Developer, iPhone Distribution) profile_name Provisioning profile name to use for code signing profile_uuid Provisioning profile UUID to use for code signing bundle_identifier Application Product Bundle Identifier * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action automatic_code_signing CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run automatic_code_signing To pass parameters, make use of the : symbol, for example fastlane run automatic_code_signing parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"automatic_code_signing"},{"location":"actions/automatic_code_signing/#automatic_code_signing","text":"Configures Xcode's Codesigning options Please use update_code_signing_settings action instead. Configures Xcode's Codesigning options of all targets in the project automatic_code_signing Supported platforms ios, mac Author @mathiasAichinger, @hjanuschka, @p4checo, @portellaa, @aeons Returns The current status (boolean) of codesigning after modification","title":"automatic_code_signing"},{"location":"actions/automatic_code_signing/#8-examples","text":"# enable automatic code signing enable_automatic_code_signing enable_automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\" ) # disable automatic code signing disable_automatic_code_signing disable_automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\" ) # also set team id disable_automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\", team_id: \"XXXX\" ) # Only specific targets disable_automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\", use_automatic_signing: false, targets: [\"demo\"] ) # via generic action automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\", use_automatic_signing: false ) automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\", use_automatic_signing: true )","title":"8 Examples"},{"location":"actions/automatic_code_signing/#parameters","text":"Key Description Default path Path to your Xcode project * use_automatic_signing Defines if project should use automatic signing false team_id Team ID, is used when upgrading project targets Specify targets you want to toggle the signing mech. (default to all targets) code_sign_identity Code signing identity type (iPhone Developer, iPhone Distribution) profile_name Provisioning profile name to use for code signing profile_uuid Provisioning profile UUID to use for code signing bundle_identifier Application Product Bundle Identifier * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/automatic_code_signing/#documentation","text":"To show the documentation in your terminal, run fastlane action automatic_code_signing","title":"Documentation"},{"location":"actions/automatic_code_signing/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run automatic_code_signing To pass parameters, make use of the : symbol, for example fastlane run automatic_code_signing parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/automatic_code_signing/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/backup_file/","text":"backup_file This action backs up your file to \"[path].back\" backup_file Supported platforms ios, android, mac Author @gin0606 1 Example backup_file(path: \"/path/to/file\") Parameters Key Description Default path Path to the file you want to backup * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action backup_file CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run backup_file To pass parameters, make use of the : symbol, for example fastlane run backup_file parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"backup_file"},{"location":"actions/backup_file/#backup_file","text":"This action backs up your file to \"[path].back\" backup_file Supported platforms ios, android, mac Author @gin0606","title":"backup_file"},{"location":"actions/backup_file/#1-example","text":"backup_file(path: \"/path/to/file\")","title":"1 Example"},{"location":"actions/backup_file/#parameters","text":"Key Description Default path Path to the file you want to backup * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/backup_file/#documentation","text":"To show the documentation in your terminal, run fastlane action backup_file","title":"Documentation"},{"location":"actions/backup_file/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run backup_file To pass parameters, make use of the : symbol, for example fastlane run backup_file parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/backup_file/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/backup_xcarchive/","text":"backup_xcarchive Save your [zipped] xcarchive elsewhere from default path backup_xcarchive Supported platforms ios, mac Author @dral3x 1 Example backup_xcarchive( xcarchive: \"/path/to/file.xcarchive\", # Optional if you use the `xcodebuild` action destination: \"/somewhere/else/\", # Where the backup should be created zip_filename: \"file.xcarchive\", # The name of the backup file zip: false, # Enable compression of the archive. Defaults to `true`. versioned: true # Create a versioned (date and app version) subfolder where to put the archive ) Parameters Key Description Default xcarchive Path to your xcarchive file. Optional if you use the xcodebuild action * destination Where your archive will be placed zip Enable compression of the archive true zip_filename Filename of the compressed archive. Will be appended by .xcarchive.zip . Default value is the output xcarchive filename * versioned Create a versioned (date and app version) subfolder where to put the archive true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The backup_xcarchive action generates the following Lane Variables: SharedValue Description SharedValues::BACKUP_XCARCHIVE_FILE Path to your saved xcarchive (compressed) file To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action backup_xcarchive CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run backup_xcarchive To pass parameters, make use of the : symbol, for example fastlane run backup_xcarchive parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"backup_xcarchive"},{"location":"actions/backup_xcarchive/#backup_xcarchive","text":"Save your [zipped] xcarchive elsewhere from default path backup_xcarchive Supported platforms ios, mac Author @dral3x","title":"backup_xcarchive"},{"location":"actions/backup_xcarchive/#1-example","text":"backup_xcarchive( xcarchive: \"/path/to/file.xcarchive\", # Optional if you use the `xcodebuild` action destination: \"/somewhere/else/\", # Where the backup should be created zip_filename: \"file.xcarchive\", # The name of the backup file zip: false, # Enable compression of the archive. Defaults to `true`. versioned: true # Create a versioned (date and app version) subfolder where to put the archive )","title":"1 Example"},{"location":"actions/backup_xcarchive/#parameters","text":"Key Description Default xcarchive Path to your xcarchive file. Optional if you use the xcodebuild action * destination Where your archive will be placed zip Enable compression of the archive true zip_filename Filename of the compressed archive. Will be appended by .xcarchive.zip . Default value is the output xcarchive filename * versioned Create a versioned (date and app version) subfolder where to put the archive true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/backup_xcarchive/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The backup_xcarchive action generates the following Lane Variables: SharedValue Description SharedValues::BACKUP_XCARCHIVE_FILE Path to your saved xcarchive (compressed) file To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/backup_xcarchive/#documentation","text":"To show the documentation in your terminal, run fastlane action backup_xcarchive","title":"Documentation"},{"location":"actions/backup_xcarchive/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run backup_xcarchive To pass parameters, make use of the : symbol, for example fastlane run backup_xcarchive parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/backup_xcarchive/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/badge/","text":"badge Automatically add a badge to your app icon Please use the badge plugin instead. This action will add a light/dark badge onto your app icon. You can also provide your custom badge/overlay or add a shield for more customization. More info: https://github.com/HazAT/badge Note : If you want to reset the badge back to default, you can use sh 'git checkout -- /Assets.xcassets/' . badge Supported platforms ios, android, mac Author @DanielGri 4 Examples badge(dark: true) badge(alpha: true) badge(custom: \"/Users/xxx/Desktop/badge.png\") badge(shield: \"Version-0.0.3-blue\", no_badge: true) Parameters Key Description Default dark Adds a dark flavored badge on top of your icon custom Add your custom overlay/badge image no_badge Hides the beta badge shield Add a shield to your app icon from shields.io alpha Adds and alpha badge instead of the default beta one path Sets the root path to look for AppIcons . shield_io_timeout Set custom duration for the timeout of the shields.io request in seconds glob Glob pattern for finding image files alpha_channel Keeps/adds an alpha channel to the icon (useful for android icons) shield_gravity Position of shield on icon. Default: North - Choices include: NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast shield_no_resize Shield image will no longer be resized to aspect fill the full icon. Instead it will only be shrunk to not exceed the icon graphic * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action badge CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run badge To pass parameters, make use of the : symbol, for example fastlane run badge parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"badge"},{"location":"actions/badge/#badge","text":"Automatically add a badge to your app icon Please use the badge plugin instead. This action will add a light/dark badge onto your app icon. You can also provide your custom badge/overlay or add a shield for more customization. More info: https://github.com/HazAT/badge Note : If you want to reset the badge back to default, you can use sh 'git checkout -- /Assets.xcassets/' . badge Supported platforms ios, android, mac Author @DanielGri","title":"badge"},{"location":"actions/badge/#4-examples","text":"badge(dark: true) badge(alpha: true) badge(custom: \"/Users/xxx/Desktop/badge.png\") badge(shield: \"Version-0.0.3-blue\", no_badge: true)","title":"4 Examples"},{"location":"actions/badge/#parameters","text":"Key Description Default dark Adds a dark flavored badge on top of your icon custom Add your custom overlay/badge image no_badge Hides the beta badge shield Add a shield to your app icon from shields.io alpha Adds and alpha badge instead of the default beta one path Sets the root path to look for AppIcons . shield_io_timeout Set custom duration for the timeout of the shields.io request in seconds glob Glob pattern for finding image files alpha_channel Keeps/adds an alpha channel to the icon (useful for android icons) shield_gravity Position of shield on icon. Default: North - Choices include: NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast shield_no_resize Shield image will no longer be resized to aspect fill the full icon. Instead it will only be shrunk to not exceed the icon graphic * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/badge/#documentation","text":"To show the documentation in your terminal, run fastlane action badge","title":"Documentation"},{"location":"actions/badge/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run badge To pass parameters, make use of the : symbol, for example fastlane run badge parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/badge/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/build_and_upload_to_appetize/","text":"build_and_upload_to_appetize Generate and upload an ipa file to appetize.io This should be called from danger. More information in the device_grid guide . build_and_upload_to_appetize Supported platforms ios Author @KrauseFx Parameters Key Description Default xcodebuild Parameters that are passed to the xcodebuild action {} scheme The scheme to build. Can also be passed using the xcodebuild parameter api_token Appetize.io API Token public_key If not provided, a new app will be created. If provided, the existing build will be overwritten note Notes you wish to add to the uploaded app timeout The number of seconds to wait until automatically ending the session due to user inactivity. Must be 30, 60, 90, 120, 180, 300, 600, 1800, 3600 or 7200. Default is 120 * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action build_and_upload_to_appetize CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_and_upload_to_appetize To pass parameters, make use of the : symbol, for example fastlane run build_and_upload_to_appetize parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"build_and_upload_to_appetize"},{"location":"actions/build_and_upload_to_appetize/#build_and_upload_to_appetize","text":"Generate and upload an ipa file to appetize.io This should be called from danger. More information in the device_grid guide . build_and_upload_to_appetize Supported platforms ios Author @KrauseFx","title":"build_and_upload_to_appetize"},{"location":"actions/build_and_upload_to_appetize/#parameters","text":"Key Description Default xcodebuild Parameters that are passed to the xcodebuild action {} scheme The scheme to build. Can also be passed using the xcodebuild parameter api_token Appetize.io API Token public_key If not provided, a new app will be created. If provided, the existing build will be overwritten note Notes you wish to add to the uploaded app timeout The number of seconds to wait until automatically ending the session due to user inactivity. Must be 30, 60, 90, 120, 180, 300, 600, 1800, 3600 or 7200. Default is 120 * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/build_and_upload_to_appetize/#documentation","text":"To show the documentation in your terminal, run fastlane action build_and_upload_to_appetize","title":"Documentation"},{"location":"actions/build_and_upload_to_appetize/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_and_upload_to_appetize To pass parameters, make use of the : symbol, for example fastlane run build_and_upload_to_appetize parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/build_and_upload_to_appetize/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/build_android_app/","text":"build_android_app Alias for the gradle action Run ./gradlew tasks to get a list of all available gradle tasks for your project build_android_app Supported platforms ios, android Author @KrauseFx, @lmirosevic Returns The output of running the gradle task 1 Example gradle( task: \"assemble\", flavor: \"WorldDomination\", build_type: \"Release\" ) To build an AAB use: gradle( task: \"bundle\", flavor: \"WorldDomination\", build_type: \"Release\" ) You can pass multiple gradle tasks: gradle( tasks: [\"assembleDebug\", \"bundleDebug\"] ) You can pass properties to gradle: gradle( # ... properties: { \"exampleNumber\" => 100, \"exampleString\" => \"1.0.0\", # ... } ) You can use this to change the version code and name of your app: gradle( # ... properties: { \"android.injected.version.code\" => 100, \"android.injected.version.name\" => \"1.0.0\", # ... } ) You can use this to automatically sign and zipalign your app: gradle( task: \"assemble\", build_type: \"Release\", print_command: false, properties: { \"android.injected.signing.store.file\" => \"keystore.jks\", \"android.injected.signing.store.password\" => \"store_password\", \"android.injected.signing.key.alias\" => \"key_alias\", \"android.injected.signing.key.password\" => \"key_password\", } ) If you need to pass sensitive information through the gradle action, and don't want the generated command to be printed before it is run, you can suppress that: gradle( # ... print_command: false ) You can also suppress printing the output generated by running the generated Gradle command: gradle( # ... print_command_output: false ) To pass any other CLI flags to gradle use: gradle( # ... flags: \"--exitcode --xml file.xml\" ) Delete the build directory, generated APKs and AABs gradle( task: \"clean\" ) Parameters Key Description Default task The gradle task you want to execute, e.g. assemble , bundle or test . For tasks such as assembleMyFlavorRelease you should use gradle(task: 'assemble', flavor: 'Myflavor', build_type: 'Release') flavor The flavor that you want the task for, e.g. MyFlavor . If you are running the assemble task in a multi-flavor project, and you rely on Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH] then you must specify a flavor here or else this value will be undefined build_type The build type that you want the task for, e.g. Release . Useful for some tasks such as assemble tasks The multiple gradle tasks that you want to execute, e.g. [assembleDebug, bundleDebug] flags All parameter flags you want to pass to the gradle command, e.g. --exitcode --xml file.xml project_dir The root directory of the gradle project . gradle_path The path to your gradlew . If you specify a relative path, it is assumed to be relative to the project_dir properties Gradle properties to be exposed to the gradle script system_properties Gradle system properties to be exposed to the gradle script serial Android serial, which device should be used for this command '' print_command Control whether the generated Gradle command is printed as output before running it (true/false) true print_command_output Control whether the output produced by given Gradle command is printed while running (true/false) true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The build_android_app action generates the following Lane Variables: SharedValue Description SharedValues::GRADLE_APK_OUTPUT_PATH The path to the newly generated apk file. Undefined in a multi-variant assemble scenario SharedValues::GRADLE_ALL_APK_OUTPUT_PATHS When running a multi-variant assemble , the array of signed apk's that were generated SharedValues::GRADLE_FLAVOR The flavor, e.g. MyFlavor SharedValues::GRADLE_BUILD_TYPE The build type, e.g. Release SharedValues::GRADLE_AAB_OUTPUT_PATH The path to the most recent Android app bundle SharedValues::GRADLE_ALL_AAB_OUTPUT_PATHS The paths to the most recent Android app bundles SharedValues::GRADLE_OUTPUT_JSON_OUTPUT_PATH The path to the most recent output.json file SharedValues::GRADLE_ALL_OUTPUT_JSON_OUTPUT_PATHS The path to the newly generated output.json files SharedValues::GRADLE_MAPPING_TXT_OUTPUT_PATH The path to the most recent mapping.txt file SharedValues::GRADLE_ALL_MAPPING_TXT_OUTPUT_PATHS The path to the newly generated mapping.txt files To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action build_android_app CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_android_app To pass parameters, make use of the : symbol, for example fastlane run build_android_app parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"build_android_app"},{"location":"actions/build_android_app/#build_android_app","text":"Alias for the gradle action Run ./gradlew tasks to get a list of all available gradle tasks for your project build_android_app Supported platforms ios, android Author @KrauseFx, @lmirosevic Returns The output of running the gradle task","title":"build_android_app"},{"location":"actions/build_android_app/#1-example","text":"gradle( task: \"assemble\", flavor: \"WorldDomination\", build_type: \"Release\" ) To build an AAB use: gradle( task: \"bundle\", flavor: \"WorldDomination\", build_type: \"Release\" ) You can pass multiple gradle tasks: gradle( tasks: [\"assembleDebug\", \"bundleDebug\"] ) You can pass properties to gradle: gradle( # ... properties: { \"exampleNumber\" => 100, \"exampleString\" => \"1.0.0\", # ... } ) You can use this to change the version code and name of your app: gradle( # ... properties: { \"android.injected.version.code\" => 100, \"android.injected.version.name\" => \"1.0.0\", # ... } ) You can use this to automatically sign and zipalign your app: gradle( task: \"assemble\", build_type: \"Release\", print_command: false, properties: { \"android.injected.signing.store.file\" => \"keystore.jks\", \"android.injected.signing.store.password\" => \"store_password\", \"android.injected.signing.key.alias\" => \"key_alias\", \"android.injected.signing.key.password\" => \"key_password\", } ) If you need to pass sensitive information through the gradle action, and don't want the generated command to be printed before it is run, you can suppress that: gradle( # ... print_command: false ) You can also suppress printing the output generated by running the generated Gradle command: gradle( # ... print_command_output: false ) To pass any other CLI flags to gradle use: gradle( # ... flags: \"--exitcode --xml file.xml\" ) Delete the build directory, generated APKs and AABs gradle( task: \"clean\" )","title":"1 Example"},{"location":"actions/build_android_app/#parameters","text":"Key Description Default task The gradle task you want to execute, e.g. assemble , bundle or test . For tasks such as assembleMyFlavorRelease you should use gradle(task: 'assemble', flavor: 'Myflavor', build_type: 'Release') flavor The flavor that you want the task for, e.g. MyFlavor . If you are running the assemble task in a multi-flavor project, and you rely on Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH] then you must specify a flavor here or else this value will be undefined build_type The build type that you want the task for, e.g. Release . Useful for some tasks such as assemble tasks The multiple gradle tasks that you want to execute, e.g. [assembleDebug, bundleDebug] flags All parameter flags you want to pass to the gradle command, e.g. --exitcode --xml file.xml project_dir The root directory of the gradle project . gradle_path The path to your gradlew . If you specify a relative path, it is assumed to be relative to the project_dir properties Gradle properties to be exposed to the gradle script system_properties Gradle system properties to be exposed to the gradle script serial Android serial, which device should be used for this command '' print_command Control whether the generated Gradle command is printed as output before running it (true/false) true print_command_output Control whether the output produced by given Gradle command is printed while running (true/false) true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/build_android_app/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The build_android_app action generates the following Lane Variables: SharedValue Description SharedValues::GRADLE_APK_OUTPUT_PATH The path to the newly generated apk file. Undefined in a multi-variant assemble scenario SharedValues::GRADLE_ALL_APK_OUTPUT_PATHS When running a multi-variant assemble , the array of signed apk's that were generated SharedValues::GRADLE_FLAVOR The flavor, e.g. MyFlavor SharedValues::GRADLE_BUILD_TYPE The build type, e.g. Release SharedValues::GRADLE_AAB_OUTPUT_PATH The path to the most recent Android app bundle SharedValues::GRADLE_ALL_AAB_OUTPUT_PATHS The paths to the most recent Android app bundles SharedValues::GRADLE_OUTPUT_JSON_OUTPUT_PATH The path to the most recent output.json file SharedValues::GRADLE_ALL_OUTPUT_JSON_OUTPUT_PATHS The path to the newly generated output.json files SharedValues::GRADLE_MAPPING_TXT_OUTPUT_PATH The path to the most recent mapping.txt file SharedValues::GRADLE_ALL_MAPPING_TXT_OUTPUT_PATHS The path to the newly generated mapping.txt files To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/build_android_app/#documentation","text":"To show the documentation in your terminal, run fastlane action build_android_app","title":"Documentation"},{"location":"actions/build_android_app/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_android_app To pass parameters, make use of the : symbol, for example fastlane run build_android_app parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/build_android_app/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/build_app/","text":"build_app Easily build and sign your app (via gym ) Features \u2022 Usage \u2022 Tips gym is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. What's gym? gym builds and packages iOS apps for you. It takes care of all the heavy lifting and makes it super easy to generate a signed ipa or app file \ud83d\udcaa gym is a replacement for shenzhen . Before gym xcodebuild clean archive -archivePath build/MyApp \\ -scheme MyApp xcodebuild -exportArchive \\ -exportFormat ipa \\ -archivePath \"build/MyApp.xcarchive\" \\ -exportPath \"build/MyApp.ipa\" \\ -exportProvisioningProfile \"ProvisioningProfileName\" With gym fastlane gym Why gym ? gym uses the latest APIs to build and sign your application which results in much faster build times. gym Features \ud83d\ude80 gym builds 30% faster than other build tools like shenzhen \ud83c\udfc1 Beautiful inline build output \ud83d\udcd6 Helps you resolve common build errors like code signing issues \ud83d\udea0 Sensible defaults: Automatically detect the project, its schemes and more \ud83d\udd17 Works perfectly with fastlane and other tools \ud83d\udce6 Automatically generates an ipa and a compressed dSYM file \ud83d\ude85 Don't remember any complicated build commands, just gym \ud83d\udd27 Easy and dynamic configuration using parameters and environment variables \ud83d\udcbe Store common build settings in a Gymfile \ud83d\udce4 All archives are stored and accessible in the Xcode Organizer \ud83d\udcbb Supports both iOS and Mac applications Usage fastlane gym That's all you need to build your application. If you want more control, here are some available parameters: fastlane gym --workspace \"Example.xcworkspace\" --scheme \"AppName\" --clean If you need to use a different Xcode installation, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" fastlane gym For a list of all available parameters use fastlane action gym If you run into any issues, use the verbose mode to get more information fastlane gym --verbose Set the right export method if you're not uploading to App Store or TestFlight: fastlane gym --export_method ad-hoc To pass boolean parameters make sure to use gym like this: fastlane gym --include_bitcode true --include_symbols false To access the raw xcodebuild output open ~/Library/Logs/gym Gymfile Since you might want to manually trigger a new build but don't want to specify all the parameters every time, you can store your defaults in a so called Gymfile . Run fastlane gym init to create a new configuration file. Example: scheme(\"Example\") sdk(\"iphoneos9.0\") clean(true) output_directory(\"./build\") # store the ipa in this folder output_name(\"MyApp\") # the name of the ipa file Export options Since Xcode 7, gym is using new Xcode API which allows us to specify export options using plist file. By default gym creates this file for you and you are able to modify some parameters by using export_method , export_team_id , include_symbols or include_bitcode . If you want to have more options, like creating manifest file for app thinning, you can provide your own plist file: export_options(\"./ExportOptions.plist\") or you can provide hash of values directly in the Gymfile : export_options({ method: \"ad-hoc\", manifest: { appURL: \"https://example.com/My App.ipa\", }, thinning: \"\" }) Optional: If gym can't automatically detect the provisioning profiles to use, you can pass a mapping of bundle identifiers to provisioning profiles: build_app( scheme: \"Release\", export_method: \"app-store\", export_options: { provisioningProfiles: { \"com.example.bundleid\" => \"Provisioning Profile Name\", \"com.example.bundleid2\" => \"Provisioning Profile Name 2\" } } ) Note : If you use fastlane with match you don't need to provide those values manually, unless you pass a plist file into export_options For the list of available options run xcodebuild -help . Setup code signing More information on how to get started with codesigning Docs on how to set up your Xcode project Automating the whole process gym works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :beta do scan gym(scheme: \"MyApp\") crashlytics end # error block is executed when a error occurs error do |lane, exception| slack( # message with short human friendly message message: exception.to_s, success: false, # Output containing extended log output payload: { \"Output\" => exception.error_info.to_s } ) end When gym raises an error the error_info property will contain the process output in case you want to display the error in 3rd party tools such as Slack. You can then easily switch between the beta provider (e.g. testflight , hockey , s3 and more). How does it work? gym uses the latest APIs to build and sign your application. The 2 main components are xcodebuild xcpretty When you run gym without the --silent mode it will print out every command it executes. To build the archive gym uses the following command: set -o pipefail && \\ xcodebuild -scheme 'Example' \\ -project './Example.xcodeproj' \\ -configuration 'Release' \\ -destination 'generic/platform=iOS' \\ -archivePath '/Users/felixkrause/Library/Developer/Xcode/Archives/2015-08-11/ExampleProductName 2015-08-11 18.15.30.xcarchive' \\ archive | xcpretty After building the archive it is being checked by gym . If it's valid, it gets packaged up and signed into an ipa file. gym automatically chooses a different packaging method depending on the version of Xcode you're using. Xcode 7 and above /usr/bin/xcrun path/to/xcbuild-safe.sh -exportArchive \\ -exportOptionsPlist '/tmp/gym_config_1442852529.plist' \\ -archivePath '/Users/fkrause/Library/Developer/Xcode/Archives/2015-09-21/App 2015-09-21 09.21.56.xcarchive' \\ -exportPath '/tmp/1442852529' gym makes use of the new Xcode 7 API which allows us to specify the export options using a plist file. You can find more information about the available options by running xcodebuild --help . Using this method there are no workarounds for WatchKit or Swift required, as it uses the same technique Xcode uses when exporting your binary. Note: the xcbuild-safe.sh script wraps around xcodebuild to workaround some incompatibilities. Use 'ProvisionQL' for advanced Quick Look in Finder Install ProvisionQL . It will show you ipa files like this: build_app Supported platforms ios, mac Author @KrauseFx Returns The absolute path to the generated ipa file 5 Examples build_app(scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\") build_app( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", silent: true, clean: true, output_directory: \"path/to/dir\", # Destination directory. Defaults to current directory. output_name: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) sdk: \"iOS 11.1\" # use SDK as the name or path of the base SDK when building the project. ) gym # alias for \"build_app\" build_ios_app # alias for \"build_app (only iOS options)\" build_mac_app # alias for \"build_app (only macOS options)\" Parameters Key Description Default workspace Path to the workspace file project Path to the project file scheme The project's scheme. Make sure it's marked as Shared clean Should the project be cleaned before building it? false output_directory The directory in which the ipa file should be stored in . output_name The name of the resulting ipa file configuration The configuration to use when building the app. Defaults to 'Release' * silent Hide all information that's not necessary while building false codesigning_identity The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH' skip_package_ipa Should we skip packaging the ipa? false skip_package_pkg Should we skip packaging the pkg? false include_symbols Should the ipa file include symbols? include_bitcode Should the ipa file include bitcode? export_method Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application export_options Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options export_xcargs Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" skip_build_archive Export ipa from previously built xcarchive. Uses archive_path as source skip_archive After building, don't archive, effectively not including -archivePath param skip_codesigning Build without codesigning catalyst_platform Platform to build when using a Catalyst enabled app. Valid values are: ios, macos installer_cert_name Full name of 3rd Party Mac Developer Installer or Developer ID Installer certificate. Example: 3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ) build_path The directory in which the archive should be stored in archive_path The path to the created archive derived_data_path The directory where built products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false result_bundle_path Path to the result bundle directory to create. Ignored if result_bundle if false buildlog_path The directory where to store the build log * sdk The SDK that should be used for building the application toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a) destination Use a custom destination for building the app export_team_id Optional: Sometimes you need to specify a team id when exporting the ipa file xcargs Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * build_timing_summary Create a build timing summary false disable_xcpretty DEPRECATED! Use xcodebuild_formatter: '' instead - Disable xcpretty formatting of build output xcpretty_test_format Use the test (RSpec style) format for build output xcpretty_formatter A custom xcpretty formatter to use xcpretty_report_junit Have xcpretty create a JUnit-style XML report at the provided path xcpretty_report_html Have xcpretty create a simple HTML report at the provided path xcpretty_report_json Have xcpretty create a JSON compilation database at the provided path xcpretty_utf Have xcpretty use unicode encoding when reporting builds analyze_build_time Analyze the project build time and store the output in 'culprits.txt' file skip_profile_detection Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used false xcodebuild_command Allows for override of the default xcodebuild command xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The build_app action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::PKG_OUTPUT_PATH The path to the newly generated pkg file SharedValues::DSYM_OUTPUT_PATH The path to the dSYM files SharedValues::XCODEBUILD_ARCHIVE The path to the xcodebuild archive To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action build_app CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_app To pass parameters, make use of the : symbol, for example fastlane run build_app parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"build_app"},{"location":"actions/build_app/#build_app","text":"Easily build and sign your app (via gym ) Features \u2022 Usage \u2022 Tips","title":"build_app"},{"location":"actions/build_app/#whats-gym","text":"gym builds and packages iOS apps for you. It takes care of all the heavy lifting and makes it super easy to generate a signed ipa or app file \ud83d\udcaa gym is a replacement for shenzhen .","title":"What's gym?"},{"location":"actions/build_app/#usage","text":"fastlane gym That's all you need to build your application. If you want more control, here are some available parameters: fastlane gym --workspace \"Example.xcworkspace\" --scheme \"AppName\" --clean If you need to use a different Xcode installation, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" fastlane gym For a list of all available parameters use fastlane action gym If you run into any issues, use the verbose mode to get more information fastlane gym --verbose Set the right export method if you're not uploading to App Store or TestFlight: fastlane gym --export_method ad-hoc To pass boolean parameters make sure to use gym like this: fastlane gym --include_bitcode true --include_symbols false To access the raw xcodebuild output open ~/Library/Logs/gym","title":"Usage"},{"location":"actions/build_app/#gymfile","text":"Since you might want to manually trigger a new build but don't want to specify all the parameters every time, you can store your defaults in a so called Gymfile . Run fastlane gym init to create a new configuration file. Example: scheme(\"Example\") sdk(\"iphoneos9.0\") clean(true) output_directory(\"./build\") # store the ipa in this folder output_name(\"MyApp\") # the name of the ipa file","title":"Gymfile"},{"location":"actions/build_app/#export-options","text":"Since Xcode 7, gym is using new Xcode API which allows us to specify export options using plist file. By default gym creates this file for you and you are able to modify some parameters by using export_method , export_team_id , include_symbols or include_bitcode . If you want to have more options, like creating manifest file for app thinning, you can provide your own plist file: export_options(\"./ExportOptions.plist\") or you can provide hash of values directly in the Gymfile : export_options({ method: \"ad-hoc\", manifest: { appURL: \"https://example.com/My App.ipa\", }, thinning: \"\" }) Optional: If gym can't automatically detect the provisioning profiles to use, you can pass a mapping of bundle identifiers to provisioning profiles: build_app( scheme: \"Release\", export_method: \"app-store\", export_options: { provisioningProfiles: { \"com.example.bundleid\" => \"Provisioning Profile Name\", \"com.example.bundleid2\" => \"Provisioning Profile Name 2\" } } ) Note : If you use fastlane with match you don't need to provide those values manually, unless you pass a plist file into export_options For the list of available options run xcodebuild -help .","title":"Export options"},{"location":"actions/build_app/#setup-code-signing","text":"More information on how to get started with codesigning Docs on how to set up your Xcode project","title":"Setup code signing"},{"location":"actions/build_app/#automating-the-whole-process","text":"gym works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :beta do scan gym(scheme: \"MyApp\") crashlytics end # error block is executed when a error occurs error do |lane, exception| slack( # message with short human friendly message message: exception.to_s, success: false, # Output containing extended log output payload: { \"Output\" => exception.error_info.to_s } ) end When gym raises an error the error_info property will contain the process output in case you want to display the error in 3rd party tools such as Slack. You can then easily switch between the beta provider (e.g. testflight , hockey , s3 and more).","title":"Automating the whole process"},{"location":"actions/build_app/#how-does-it-work","text":"gym uses the latest APIs to build and sign your application. The 2 main components are xcodebuild xcpretty When you run gym without the --silent mode it will print out every command it executes. To build the archive gym uses the following command: set -o pipefail && \\ xcodebuild -scheme 'Example' \\ -project './Example.xcodeproj' \\ -configuration 'Release' \\ -destination 'generic/platform=iOS' \\ -archivePath '/Users/felixkrause/Library/Developer/Xcode/Archives/2015-08-11/ExampleProductName 2015-08-11 18.15.30.xcarchive' \\ archive | xcpretty After building the archive it is being checked by gym . If it's valid, it gets packaged up and signed into an ipa file. gym automatically chooses a different packaging method depending on the version of Xcode you're using.","title":"How does it work?"},{"location":"actions/build_app/#use-provisionql-for-advanced-quick-look-in-finder","text":"Install ProvisionQL . It will show you ipa files like this: build_app Supported platforms ios, mac Author @KrauseFx Returns The absolute path to the generated ipa file","title":"Use 'ProvisionQL' for advanced Quick Look in Finder"},{"location":"actions/build_app/#5-examples","text":"build_app(scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\") build_app( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", silent: true, clean: true, output_directory: \"path/to/dir\", # Destination directory. Defaults to current directory. output_name: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) sdk: \"iOS 11.1\" # use SDK as the name or path of the base SDK when building the project. ) gym # alias for \"build_app\" build_ios_app # alias for \"build_app (only iOS options)\" build_mac_app # alias for \"build_app (only macOS options)\"","title":"5 Examples"},{"location":"actions/build_app/#parameters","text":"Key Description Default workspace Path to the workspace file project Path to the project file scheme The project's scheme. Make sure it's marked as Shared clean Should the project be cleaned before building it? false output_directory The directory in which the ipa file should be stored in . output_name The name of the resulting ipa file configuration The configuration to use when building the app. Defaults to 'Release' * silent Hide all information that's not necessary while building false codesigning_identity The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH' skip_package_ipa Should we skip packaging the ipa? false skip_package_pkg Should we skip packaging the pkg? false include_symbols Should the ipa file include symbols? include_bitcode Should the ipa file include bitcode? export_method Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application export_options Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options export_xcargs Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" skip_build_archive Export ipa from previously built xcarchive. Uses archive_path as source skip_archive After building, don't archive, effectively not including -archivePath param skip_codesigning Build without codesigning catalyst_platform Platform to build when using a Catalyst enabled app. Valid values are: ios, macos installer_cert_name Full name of 3rd Party Mac Developer Installer or Developer ID Installer certificate. Example: 3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ) build_path The directory in which the archive should be stored in archive_path The path to the created archive derived_data_path The directory where built products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false result_bundle_path Path to the result bundle directory to create. Ignored if result_bundle if false buildlog_path The directory where to store the build log * sdk The SDK that should be used for building the application toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a) destination Use a custom destination for building the app export_team_id Optional: Sometimes you need to specify a team id when exporting the ipa file xcargs Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * build_timing_summary Create a build timing summary false disable_xcpretty DEPRECATED! Use xcodebuild_formatter: '' instead - Disable xcpretty formatting of build output xcpretty_test_format Use the test (RSpec style) format for build output xcpretty_formatter A custom xcpretty formatter to use xcpretty_report_junit Have xcpretty create a JUnit-style XML report at the provided path xcpretty_report_html Have xcpretty create a simple HTML report at the provided path xcpretty_report_json Have xcpretty create a JSON compilation database at the provided path xcpretty_utf Have xcpretty use unicode encoding when reporting builds analyze_build_time Analyze the project build time and store the output in 'culprits.txt' file skip_profile_detection Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used false xcodebuild_command Allows for override of the default xcodebuild command xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/build_app/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The build_app action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::PKG_OUTPUT_PATH The path to the newly generated pkg file SharedValues::DSYM_OUTPUT_PATH The path to the dSYM files SharedValues::XCODEBUILD_ARCHIVE The path to the xcodebuild archive To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/build_app/#documentation","text":"To show the documentation in your terminal, run fastlane action build_app","title":"Documentation"},{"location":"actions/build_app/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_app To pass parameters, make use of the : symbol, for example fastlane run build_app parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/build_app/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/build_ios_app/","text":"build_ios_app Alias for the build_app action but only for iOS Features \u2022 Usage \u2022 Tips gym is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. What's gym? gym builds and packages iOS apps for you. It takes care of all the heavy lifting and makes it super easy to generate a signed ipa or app file \ud83d\udcaa gym is a replacement for shenzhen . Before gym xcodebuild clean archive -archivePath build/MyApp \\ -scheme MyApp xcodebuild -exportArchive \\ -exportFormat ipa \\ -archivePath \"build/MyApp.xcarchive\" \\ -exportPath \"build/MyApp.ipa\" \\ -exportProvisioningProfile \"ProvisioningProfileName\" With gym fastlane gym Why gym ? gym uses the latest APIs to build and sign your application which results in much faster build times. gym Features \ud83d\ude80 gym builds 30% faster than other build tools like shenzhen \ud83c\udfc1 Beautiful inline build output \ud83d\udcd6 Helps you resolve common build errors like code signing issues \ud83d\udea0 Sensible defaults: Automatically detect the project, its schemes and more \ud83d\udd17 Works perfectly with fastlane and other tools \ud83d\udce6 Automatically generates an ipa and a compressed dSYM file \ud83d\ude85 Don't remember any complicated build commands, just gym \ud83d\udd27 Easy and dynamic configuration using parameters and environment variables \ud83d\udcbe Store common build settings in a Gymfile \ud83d\udce4 All archives are stored and accessible in the Xcode Organizer \ud83d\udcbb Supports both iOS and Mac applications Usage fastlane gym That's all you need to build your application. If you want more control, here are some available parameters: fastlane gym --workspace \"Example.xcworkspace\" --scheme \"AppName\" --clean If you need to use a different Xcode installation, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" fastlane gym For a list of all available parameters use fastlane action gym If you run into any issues, use the verbose mode to get more information fastlane gym --verbose Set the right export method if you're not uploading to App Store or TestFlight: fastlane gym --export_method ad-hoc To pass boolean parameters make sure to use gym like this: fastlane gym --include_bitcode true --include_symbols false To access the raw xcodebuild output open ~/Library/Logs/gym Gymfile Since you might want to manually trigger a new build but don't want to specify all the parameters every time, you can store your defaults in a so called Gymfile . Run fastlane gym init to create a new configuration file. Example: scheme(\"Example\") sdk(\"iphoneos9.0\") clean(true) output_directory(\"./build\") # store the ipa in this folder output_name(\"MyApp\") # the name of the ipa file Export options Since Xcode 7, gym is using new Xcode API which allows us to specify export options using plist file. By default gym creates this file for you and you are able to modify some parameters by using export_method , export_team_id , include_symbols or include_bitcode . If you want to have more options, like creating manifest file for app thinning, you can provide your own plist file: export_options(\"./ExportOptions.plist\") or you can provide hash of values directly in the Gymfile : export_options({ method: \"ad-hoc\", manifest: { appURL: \"https://example.com/My App.ipa\", }, thinning: \"\" }) Optional: If gym can't automatically detect the provisioning profiles to use, you can pass a mapping of bundle identifiers to provisioning profiles: build_app( scheme: \"Release\", export_method: \"app-store\", export_options: { provisioningProfiles: { \"com.example.bundleid\" => \"Provisioning Profile Name\", \"com.example.bundleid2\" => \"Provisioning Profile Name 2\" } } ) Note : If you use fastlane with match you don't need to provide those values manually, unless you pass a plist file into export_options For the list of available options run xcodebuild -help . Setup code signing More information on how to get started with codesigning Docs on how to set up your Xcode project Automating the whole process gym works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :beta do scan gym(scheme: \"MyApp\") crashlytics end # error block is executed when a error occurs error do |lane, exception| slack( # message with short human friendly message message: exception.to_s, success: false, # Output containing extended log output payload: { \"Output\" => exception.error_info.to_s } ) end When gym raises an error the error_info property will contain the process output in case you want to display the error in 3rd party tools such as Slack. You can then easily switch between the beta provider (e.g. testflight , hockey , s3 and more). How does it work? gym uses the latest APIs to build and sign your application. The 2 main components are xcodebuild xcpretty When you run gym without the --silent mode it will print out every command it executes. To build the archive gym uses the following command: set -o pipefail && \\ xcodebuild -scheme 'Example' \\ -project './Example.xcodeproj' \\ -configuration 'Release' \\ -destination 'generic/platform=iOS' \\ -archivePath '/Users/felixkrause/Library/Developer/Xcode/Archives/2015-08-11/ExampleProductName 2015-08-11 18.15.30.xcarchive' \\ archive | xcpretty After building the archive it is being checked by gym . If it's valid, it gets packaged up and signed into an ipa file. gym automatically chooses a different packaging method depending on the version of Xcode you're using. Xcode 7 and above /usr/bin/xcrun path/to/xcbuild-safe.sh -exportArchive \\ -exportOptionsPlist '/tmp/gym_config_1442852529.plist' \\ -archivePath '/Users/fkrause/Library/Developer/Xcode/Archives/2015-09-21/App 2015-09-21 09.21.56.xcarchive' \\ -exportPath '/tmp/1442852529' gym makes use of the new Xcode 7 API which allows us to specify the export options using a plist file. You can find more information about the available options by running xcodebuild --help . Using this method there are no workarounds for WatchKit or Swift required, as it uses the same technique Xcode uses when exporting your binary. Note: the xcbuild-safe.sh script wraps around xcodebuild to workaround some incompatibilities. Use 'ProvisionQL' for advanced Quick Look in Finder Install ProvisionQL . It will show you ipa files like this: build_ios_app Supported platforms ios Author @KrauseFx Returns The absolute path to the generated ipa file 5 Examples build_app(scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\") build_app( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", silent: true, clean: true, output_directory: \"path/to/dir\", # Destination directory. Defaults to current directory. output_name: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) sdk: \"iOS 11.1\" # use SDK as the name or path of the base SDK when building the project. ) gym # alias for \"build_app\" build_ios_app # alias for \"build_app (only iOS options)\" build_mac_app # alias for \"build_app (only macOS options)\" Parameters Key Description Default workspace Path to the workspace file project Path to the project file scheme The project's scheme. Make sure it's marked as Shared clean Should the project be cleaned before building it? false output_directory The directory in which the ipa file should be stored in . output_name The name of the resulting ipa file configuration The configuration to use when building the app. Defaults to 'Release' * silent Hide all information that's not necessary while building false codesigning_identity The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH' skip_package_ipa Should we skip packaging the ipa? false include_symbols Should the ipa file include symbols? include_bitcode Should the ipa file include bitcode? export_method Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application export_options Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options export_xcargs Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" skip_build_archive Export ipa from previously built xcarchive. Uses archive_path as source skip_archive After building, don't archive, effectively not including -archivePath param skip_codesigning Build without codesigning build_path The directory in which the archive should be stored in archive_path The path to the created archive derived_data_path The directory where built products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false result_bundle_path Path to the result bundle directory to create. Ignored if result_bundle if false buildlog_path The directory where to store the build log * sdk The SDK that should be used for building the application toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a) destination Use a custom destination for building the app export_team_id Optional: Sometimes you need to specify a team id when exporting the ipa file xcargs Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * build_timing_summary Create a build timing summary false disable_xcpretty DEPRECATED! Use xcodebuild_formatter: '' instead - Disable xcpretty formatting of build output xcpretty_test_format Use the test (RSpec style) format for build output xcpretty_formatter A custom xcpretty formatter to use xcpretty_report_junit Have xcpretty create a JUnit-style XML report at the provided path xcpretty_report_html Have xcpretty create a simple HTML report at the provided path xcpretty_report_json Have xcpretty create a JSON compilation database at the provided path xcpretty_utf Have xcpretty use unicode encoding when reporting builds analyze_build_time Analyze the project build time and store the output in 'culprits.txt' file skip_profile_detection Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used false xcodebuild_command Allows for override of the default xcodebuild command xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The build_ios_app action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::PKG_OUTPUT_PATH The path to the newly generated pkg file SharedValues::DSYM_OUTPUT_PATH The path to the dSYM files SharedValues::XCODEBUILD_ARCHIVE The path to the xcodebuild archive To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action build_ios_app CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_ios_app To pass parameters, make use of the : symbol, for example fastlane run build_ios_app parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"build_ios_app"},{"location":"actions/build_ios_app/#build_ios_app","text":"Alias for the build_app action but only for iOS Features \u2022 Usage \u2022 Tips","title":"build_ios_app"},{"location":"actions/build_ios_app/#whats-gym","text":"gym builds and packages iOS apps for you. It takes care of all the heavy lifting and makes it super easy to generate a signed ipa or app file \ud83d\udcaa gym is a replacement for shenzhen .","title":"What's gym?"},{"location":"actions/build_ios_app/#usage","text":"fastlane gym That's all you need to build your application. If you want more control, here are some available parameters: fastlane gym --workspace \"Example.xcworkspace\" --scheme \"AppName\" --clean If you need to use a different Xcode installation, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" fastlane gym For a list of all available parameters use fastlane action gym If you run into any issues, use the verbose mode to get more information fastlane gym --verbose Set the right export method if you're not uploading to App Store or TestFlight: fastlane gym --export_method ad-hoc To pass boolean parameters make sure to use gym like this: fastlane gym --include_bitcode true --include_symbols false To access the raw xcodebuild output open ~/Library/Logs/gym","title":"Usage"},{"location":"actions/build_ios_app/#gymfile","text":"Since you might want to manually trigger a new build but don't want to specify all the parameters every time, you can store your defaults in a so called Gymfile . Run fastlane gym init to create a new configuration file. Example: scheme(\"Example\") sdk(\"iphoneos9.0\") clean(true) output_directory(\"./build\") # store the ipa in this folder output_name(\"MyApp\") # the name of the ipa file","title":"Gymfile"},{"location":"actions/build_ios_app/#export-options","text":"Since Xcode 7, gym is using new Xcode API which allows us to specify export options using plist file. By default gym creates this file for you and you are able to modify some parameters by using export_method , export_team_id , include_symbols or include_bitcode . If you want to have more options, like creating manifest file for app thinning, you can provide your own plist file: export_options(\"./ExportOptions.plist\") or you can provide hash of values directly in the Gymfile : export_options({ method: \"ad-hoc\", manifest: { appURL: \"https://example.com/My App.ipa\", }, thinning: \"\" }) Optional: If gym can't automatically detect the provisioning profiles to use, you can pass a mapping of bundle identifiers to provisioning profiles: build_app( scheme: \"Release\", export_method: \"app-store\", export_options: { provisioningProfiles: { \"com.example.bundleid\" => \"Provisioning Profile Name\", \"com.example.bundleid2\" => \"Provisioning Profile Name 2\" } } ) Note : If you use fastlane with match you don't need to provide those values manually, unless you pass a plist file into export_options For the list of available options run xcodebuild -help .","title":"Export options"},{"location":"actions/build_ios_app/#setup-code-signing","text":"More information on how to get started with codesigning Docs on how to set up your Xcode project","title":"Setup code signing"},{"location":"actions/build_ios_app/#automating-the-whole-process","text":"gym works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :beta do scan gym(scheme: \"MyApp\") crashlytics end # error block is executed when a error occurs error do |lane, exception| slack( # message with short human friendly message message: exception.to_s, success: false, # Output containing extended log output payload: { \"Output\" => exception.error_info.to_s } ) end When gym raises an error the error_info property will contain the process output in case you want to display the error in 3rd party tools such as Slack. You can then easily switch between the beta provider (e.g. testflight , hockey , s3 and more).","title":"Automating the whole process"},{"location":"actions/build_ios_app/#how-does-it-work","text":"gym uses the latest APIs to build and sign your application. The 2 main components are xcodebuild xcpretty When you run gym without the --silent mode it will print out every command it executes. To build the archive gym uses the following command: set -o pipefail && \\ xcodebuild -scheme 'Example' \\ -project './Example.xcodeproj' \\ -configuration 'Release' \\ -destination 'generic/platform=iOS' \\ -archivePath '/Users/felixkrause/Library/Developer/Xcode/Archives/2015-08-11/ExampleProductName 2015-08-11 18.15.30.xcarchive' \\ archive | xcpretty After building the archive it is being checked by gym . If it's valid, it gets packaged up and signed into an ipa file. gym automatically chooses a different packaging method depending on the version of Xcode you're using.","title":"How does it work?"},{"location":"actions/build_ios_app/#use-provisionql-for-advanced-quick-look-in-finder","text":"Install ProvisionQL . It will show you ipa files like this: build_ios_app Supported platforms ios Author @KrauseFx Returns The absolute path to the generated ipa file","title":"Use 'ProvisionQL' for advanced Quick Look in Finder"},{"location":"actions/build_ios_app/#5-examples","text":"build_app(scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\") build_app( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", silent: true, clean: true, output_directory: \"path/to/dir\", # Destination directory. Defaults to current directory. output_name: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) sdk: \"iOS 11.1\" # use SDK as the name or path of the base SDK when building the project. ) gym # alias for \"build_app\" build_ios_app # alias for \"build_app (only iOS options)\" build_mac_app # alias for \"build_app (only macOS options)\"","title":"5 Examples"},{"location":"actions/build_ios_app/#parameters","text":"Key Description Default workspace Path to the workspace file project Path to the project file scheme The project's scheme. Make sure it's marked as Shared clean Should the project be cleaned before building it? false output_directory The directory in which the ipa file should be stored in . output_name The name of the resulting ipa file configuration The configuration to use when building the app. Defaults to 'Release' * silent Hide all information that's not necessary while building false codesigning_identity The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH' skip_package_ipa Should we skip packaging the ipa? false include_symbols Should the ipa file include symbols? include_bitcode Should the ipa file include bitcode? export_method Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application export_options Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options export_xcargs Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" skip_build_archive Export ipa from previously built xcarchive. Uses archive_path as source skip_archive After building, don't archive, effectively not including -archivePath param skip_codesigning Build without codesigning build_path The directory in which the archive should be stored in archive_path The path to the created archive derived_data_path The directory where built products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false result_bundle_path Path to the result bundle directory to create. Ignored if result_bundle if false buildlog_path The directory where to store the build log * sdk The SDK that should be used for building the application toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a) destination Use a custom destination for building the app export_team_id Optional: Sometimes you need to specify a team id when exporting the ipa file xcargs Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * build_timing_summary Create a build timing summary false disable_xcpretty DEPRECATED! Use xcodebuild_formatter: '' instead - Disable xcpretty formatting of build output xcpretty_test_format Use the test (RSpec style) format for build output xcpretty_formatter A custom xcpretty formatter to use xcpretty_report_junit Have xcpretty create a JUnit-style XML report at the provided path xcpretty_report_html Have xcpretty create a simple HTML report at the provided path xcpretty_report_json Have xcpretty create a JSON compilation database at the provided path xcpretty_utf Have xcpretty use unicode encoding when reporting builds analyze_build_time Analyze the project build time and store the output in 'culprits.txt' file skip_profile_detection Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used false xcodebuild_command Allows for override of the default xcodebuild command xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/build_ios_app/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The build_ios_app action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::PKG_OUTPUT_PATH The path to the newly generated pkg file SharedValues::DSYM_OUTPUT_PATH The path to the dSYM files SharedValues::XCODEBUILD_ARCHIVE The path to the xcodebuild archive To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/build_ios_app/#documentation","text":"To show the documentation in your terminal, run fastlane action build_ios_app","title":"Documentation"},{"location":"actions/build_ios_app/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_ios_app To pass parameters, make use of the : symbol, for example fastlane run build_ios_app parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/build_ios_app/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/build_mac_app/","text":"build_mac_app Alias for the build_app action but only for macOS Features \u2022 Usage \u2022 Tips gym is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. What's gym? gym builds and packages iOS apps for you. It takes care of all the heavy lifting and makes it super easy to generate a signed ipa or app file \ud83d\udcaa gym is a replacement for shenzhen . Before gym xcodebuild clean archive -archivePath build/MyApp \\ -scheme MyApp xcodebuild -exportArchive \\ -exportFormat ipa \\ -archivePath \"build/MyApp.xcarchive\" \\ -exportPath \"build/MyApp.ipa\" \\ -exportProvisioningProfile \"ProvisioningProfileName\" With gym fastlane gym Why gym ? gym uses the latest APIs to build and sign your application which results in much faster build times. gym Features \ud83d\ude80 gym builds 30% faster than other build tools like shenzhen \ud83c\udfc1 Beautiful inline build output \ud83d\udcd6 Helps you resolve common build errors like code signing issues \ud83d\udea0 Sensible defaults: Automatically detect the project, its schemes and more \ud83d\udd17 Works perfectly with fastlane and other tools \ud83d\udce6 Automatically generates an ipa and a compressed dSYM file \ud83d\ude85 Don't remember any complicated build commands, just gym \ud83d\udd27 Easy and dynamic configuration using parameters and environment variables \ud83d\udcbe Store common build settings in a Gymfile \ud83d\udce4 All archives are stored and accessible in the Xcode Organizer \ud83d\udcbb Supports both iOS and Mac applications Usage fastlane gym That's all you need to build your application. If you want more control, here are some available parameters: fastlane gym --workspace \"Example.xcworkspace\" --scheme \"AppName\" --clean If you need to use a different Xcode installation, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" fastlane gym For a list of all available parameters use fastlane action gym If you run into any issues, use the verbose mode to get more information fastlane gym --verbose Set the right export method if you're not uploading to App Store or TestFlight: fastlane gym --export_method ad-hoc To pass boolean parameters make sure to use gym like this: fastlane gym --include_bitcode true --include_symbols false To access the raw xcodebuild output open ~/Library/Logs/gym Gymfile Since you might want to manually trigger a new build but don't want to specify all the parameters every time, you can store your defaults in a so called Gymfile . Run fastlane gym init to create a new configuration file. Example: scheme(\"Example\") sdk(\"iphoneos9.0\") clean(true) output_directory(\"./build\") # store the ipa in this folder output_name(\"MyApp\") # the name of the ipa file Export options Since Xcode 7, gym is using new Xcode API which allows us to specify export options using plist file. By default gym creates this file for you and you are able to modify some parameters by using export_method , export_team_id , include_symbols or include_bitcode . If you want to have more options, like creating manifest file for app thinning, you can provide your own plist file: export_options(\"./ExportOptions.plist\") or you can provide hash of values directly in the Gymfile : export_options({ method: \"ad-hoc\", manifest: { appURL: \"https://example.com/My App.ipa\", }, thinning: \"\" }) Optional: If gym can't automatically detect the provisioning profiles to use, you can pass a mapping of bundle identifiers to provisioning profiles: build_app( scheme: \"Release\", export_method: \"app-store\", export_options: { provisioningProfiles: { \"com.example.bundleid\" => \"Provisioning Profile Name\", \"com.example.bundleid2\" => \"Provisioning Profile Name 2\" } } ) Note : If you use fastlane with match you don't need to provide those values manually, unless you pass a plist file into export_options For the list of available options run xcodebuild -help . Setup code signing More information on how to get started with codesigning Docs on how to set up your Xcode project Automating the whole process gym works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :beta do scan gym(scheme: \"MyApp\") crashlytics end # error block is executed when a error occurs error do |lane, exception| slack( # message with short human friendly message message: exception.to_s, success: false, # Output containing extended log output payload: { \"Output\" => exception.error_info.to_s } ) end When gym raises an error the error_info property will contain the process output in case you want to display the error in 3rd party tools such as Slack. You can then easily switch between the beta provider (e.g. testflight , hockey , s3 and more). How does it work? gym uses the latest APIs to build and sign your application. The 2 main components are xcodebuild xcpretty When you run gym without the --silent mode it will print out every command it executes. To build the archive gym uses the following command: set -o pipefail && \\ xcodebuild -scheme 'Example' \\ -project './Example.xcodeproj' \\ -configuration 'Release' \\ -destination 'generic/platform=iOS' \\ -archivePath '/Users/felixkrause/Library/Developer/Xcode/Archives/2015-08-11/ExampleProductName 2015-08-11 18.15.30.xcarchive' \\ archive | xcpretty After building the archive it is being checked by gym . If it's valid, it gets packaged up and signed into an ipa file. gym automatically chooses a different packaging method depending on the version of Xcode you're using. Xcode 7 and above /usr/bin/xcrun path/to/xcbuild-safe.sh -exportArchive \\ -exportOptionsPlist '/tmp/gym_config_1442852529.plist' \\ -archivePath '/Users/fkrause/Library/Developer/Xcode/Archives/2015-09-21/App 2015-09-21 09.21.56.xcarchive' \\ -exportPath '/tmp/1442852529' gym makes use of the new Xcode 7 API which allows us to specify the export options using a plist file. You can find more information about the available options by running xcodebuild --help . Using this method there are no workarounds for WatchKit or Swift required, as it uses the same technique Xcode uses when exporting your binary. Note: the xcbuild-safe.sh script wraps around xcodebuild to workaround some incompatibilities. Use 'ProvisionQL' for advanced Quick Look in Finder Install ProvisionQL . It will show you ipa files like this: build_mac_app Supported platforms mac Author @KrauseFx Returns The absolute path to the generated ipa file 5 Examples build_app(scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\") build_app( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", silent: true, clean: true, output_directory: \"path/to/dir\", # Destination directory. Defaults to current directory. output_name: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) sdk: \"iOS 11.1\" # use SDK as the name or path of the base SDK when building the project. ) gym # alias for \"build_app\" build_ios_app # alias for \"build_app (only iOS options)\" build_mac_app # alias for \"build_app (only macOS options)\" Parameters Key Description Default workspace Path to the workspace file project Path to the project file scheme The project's scheme. Make sure it's marked as Shared clean Should the project be cleaned before building it? false output_directory The directory in which the ipa file should be stored in . output_name The name of the resulting ipa file configuration The configuration to use when building the app. Defaults to 'Release' * silent Hide all information that's not necessary while building false codesigning_identity The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH' skip_package_pkg Should we skip packaging the pkg? false include_symbols Should the ipa file include symbols? include_bitcode Should the ipa file include bitcode? export_method Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application export_options Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options export_xcargs Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" skip_build_archive Export ipa from previously built xcarchive. Uses archive_path as source skip_archive After building, don't archive, effectively not including -archivePath param skip_codesigning Build without codesigning installer_cert_name Full name of 3rd Party Mac Developer Installer or Developer ID Installer certificate. Example: 3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ) build_path The directory in which the archive should be stored in archive_path The path to the created archive derived_data_path The directory where built products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false result_bundle_path Path to the result bundle directory to create. Ignored if result_bundle if false buildlog_path The directory where to store the build log * sdk The SDK that should be used for building the application toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a) destination Use a custom destination for building the app export_team_id Optional: Sometimes you need to specify a team id when exporting the ipa file xcargs Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * build_timing_summary Create a build timing summary false disable_xcpretty DEPRECATED! Use xcodebuild_formatter: '' instead - Disable xcpretty formatting of build output xcpretty_test_format Use the test (RSpec style) format for build output xcpretty_formatter A custom xcpretty formatter to use xcpretty_report_junit Have xcpretty create a JUnit-style XML report at the provided path xcpretty_report_html Have xcpretty create a simple HTML report at the provided path xcpretty_report_json Have xcpretty create a JSON compilation database at the provided path xcpretty_utf Have xcpretty use unicode encoding when reporting builds analyze_build_time Analyze the project build time and store the output in 'culprits.txt' file skip_profile_detection Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used false xcodebuild_command Allows for override of the default xcodebuild command xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The build_mac_app action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::PKG_OUTPUT_PATH The path to the newly generated pkg file SharedValues::DSYM_OUTPUT_PATH The path to the dSYM files SharedValues::XCODEBUILD_ARCHIVE The path to the xcodebuild archive To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action build_mac_app CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_mac_app To pass parameters, make use of the : symbol, for example fastlane run build_mac_app parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"build_mac_app"},{"location":"actions/build_mac_app/#build_mac_app","text":"Alias for the build_app action but only for macOS Features \u2022 Usage \u2022 Tips","title":"build_mac_app"},{"location":"actions/build_mac_app/#whats-gym","text":"gym builds and packages iOS apps for you. It takes care of all the heavy lifting and makes it super easy to generate a signed ipa or app file \ud83d\udcaa gym is a replacement for shenzhen .","title":"What's gym?"},{"location":"actions/build_mac_app/#usage","text":"fastlane gym That's all you need to build your application. If you want more control, here are some available parameters: fastlane gym --workspace \"Example.xcworkspace\" --scheme \"AppName\" --clean If you need to use a different Xcode installation, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" fastlane gym For a list of all available parameters use fastlane action gym If you run into any issues, use the verbose mode to get more information fastlane gym --verbose Set the right export method if you're not uploading to App Store or TestFlight: fastlane gym --export_method ad-hoc To pass boolean parameters make sure to use gym like this: fastlane gym --include_bitcode true --include_symbols false To access the raw xcodebuild output open ~/Library/Logs/gym","title":"Usage"},{"location":"actions/build_mac_app/#gymfile","text":"Since you might want to manually trigger a new build but don't want to specify all the parameters every time, you can store your defaults in a so called Gymfile . Run fastlane gym init to create a new configuration file. Example: scheme(\"Example\") sdk(\"iphoneos9.0\") clean(true) output_directory(\"./build\") # store the ipa in this folder output_name(\"MyApp\") # the name of the ipa file","title":"Gymfile"},{"location":"actions/build_mac_app/#export-options","text":"Since Xcode 7, gym is using new Xcode API which allows us to specify export options using plist file. By default gym creates this file for you and you are able to modify some parameters by using export_method , export_team_id , include_symbols or include_bitcode . If you want to have more options, like creating manifest file for app thinning, you can provide your own plist file: export_options(\"./ExportOptions.plist\") or you can provide hash of values directly in the Gymfile : export_options({ method: \"ad-hoc\", manifest: { appURL: \"https://example.com/My App.ipa\", }, thinning: \"\" }) Optional: If gym can't automatically detect the provisioning profiles to use, you can pass a mapping of bundle identifiers to provisioning profiles: build_app( scheme: \"Release\", export_method: \"app-store\", export_options: { provisioningProfiles: { \"com.example.bundleid\" => \"Provisioning Profile Name\", \"com.example.bundleid2\" => \"Provisioning Profile Name 2\" } } ) Note : If you use fastlane with match you don't need to provide those values manually, unless you pass a plist file into export_options For the list of available options run xcodebuild -help .","title":"Export options"},{"location":"actions/build_mac_app/#setup-code-signing","text":"More information on how to get started with codesigning Docs on how to set up your Xcode project","title":"Setup code signing"},{"location":"actions/build_mac_app/#automating-the-whole-process","text":"gym works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :beta do scan gym(scheme: \"MyApp\") crashlytics end # error block is executed when a error occurs error do |lane, exception| slack( # message with short human friendly message message: exception.to_s, success: false, # Output containing extended log output payload: { \"Output\" => exception.error_info.to_s } ) end When gym raises an error the error_info property will contain the process output in case you want to display the error in 3rd party tools such as Slack. You can then easily switch between the beta provider (e.g. testflight , hockey , s3 and more).","title":"Automating the whole process"},{"location":"actions/build_mac_app/#how-does-it-work","text":"gym uses the latest APIs to build and sign your application. The 2 main components are xcodebuild xcpretty When you run gym without the --silent mode it will print out every command it executes. To build the archive gym uses the following command: set -o pipefail && \\ xcodebuild -scheme 'Example' \\ -project './Example.xcodeproj' \\ -configuration 'Release' \\ -destination 'generic/platform=iOS' \\ -archivePath '/Users/felixkrause/Library/Developer/Xcode/Archives/2015-08-11/ExampleProductName 2015-08-11 18.15.30.xcarchive' \\ archive | xcpretty After building the archive it is being checked by gym . If it's valid, it gets packaged up and signed into an ipa file. gym automatically chooses a different packaging method depending on the version of Xcode you're using.","title":"How does it work?"},{"location":"actions/build_mac_app/#use-provisionql-for-advanced-quick-look-in-finder","text":"Install ProvisionQL . It will show you ipa files like this: build_mac_app Supported platforms mac Author @KrauseFx Returns The absolute path to the generated ipa file","title":"Use 'ProvisionQL' for advanced Quick Look in Finder"},{"location":"actions/build_mac_app/#5-examples","text":"build_app(scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\") build_app( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", silent: true, clean: true, output_directory: \"path/to/dir\", # Destination directory. Defaults to current directory. output_name: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) sdk: \"iOS 11.1\" # use SDK as the name or path of the base SDK when building the project. ) gym # alias for \"build_app\" build_ios_app # alias for \"build_app (only iOS options)\" build_mac_app # alias for \"build_app (only macOS options)\"","title":"5 Examples"},{"location":"actions/build_mac_app/#parameters","text":"Key Description Default workspace Path to the workspace file project Path to the project file scheme The project's scheme. Make sure it's marked as Shared clean Should the project be cleaned before building it? false output_directory The directory in which the ipa file should be stored in . output_name The name of the resulting ipa file configuration The configuration to use when building the app. Defaults to 'Release' * silent Hide all information that's not necessary while building false codesigning_identity The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH' skip_package_pkg Should we skip packaging the pkg? false include_symbols Should the ipa file include symbols? include_bitcode Should the ipa file include bitcode? export_method Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application export_options Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options export_xcargs Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" skip_build_archive Export ipa from previously built xcarchive. Uses archive_path as source skip_archive After building, don't archive, effectively not including -archivePath param skip_codesigning Build without codesigning installer_cert_name Full name of 3rd Party Mac Developer Installer or Developer ID Installer certificate. Example: 3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ) build_path The directory in which the archive should be stored in archive_path The path to the created archive derived_data_path The directory where built products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false result_bundle_path Path to the result bundle directory to create. Ignored if result_bundle if false buildlog_path The directory where to store the build log * sdk The SDK that should be used for building the application toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a) destination Use a custom destination for building the app export_team_id Optional: Sometimes you need to specify a team id when exporting the ipa file xcargs Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * build_timing_summary Create a build timing summary false disable_xcpretty DEPRECATED! Use xcodebuild_formatter: '' instead - Disable xcpretty formatting of build output xcpretty_test_format Use the test (RSpec style) format for build output xcpretty_formatter A custom xcpretty formatter to use xcpretty_report_junit Have xcpretty create a JUnit-style XML report at the provided path xcpretty_report_html Have xcpretty create a simple HTML report at the provided path xcpretty_report_json Have xcpretty create a JSON compilation database at the provided path xcpretty_utf Have xcpretty use unicode encoding when reporting builds analyze_build_time Analyze the project build time and store the output in 'culprits.txt' file skip_profile_detection Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used false xcodebuild_command Allows for override of the default xcodebuild command xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/build_mac_app/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The build_mac_app action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::PKG_OUTPUT_PATH The path to the newly generated pkg file SharedValues::DSYM_OUTPUT_PATH The path to the dSYM files SharedValues::XCODEBUILD_ARCHIVE The path to the xcodebuild archive To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/build_mac_app/#documentation","text":"To show the documentation in your terminal, run fastlane action build_mac_app","title":"Documentation"},{"location":"actions/build_mac_app/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_mac_app To pass parameters, make use of the : symbol, for example fastlane run build_mac_app parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/build_mac_app/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/bundle_install/","text":"bundle_install This action runs bundle install (if available) bundle_install Supported platforms ios, android, mac Author @birmacher, @koglinjg Parameters Key Description Default binstubs Generate bin stubs for bundled gems to ./bin clean Run bundle clean automatically after install false full_index Use the rubygems modern index instead of the API endpoint false gemfile Use the specified gemfile instead of Gemfile jobs Install gems using parallel workers local Do not attempt to fetch gems remotely and use the gem cache instead false deployment Install using defaults tuned for deployment and CI environments false no_cache Don't update the existing gem cache false no_prune Don't remove stale gems from the cache false path Specify a different path than the system default ($BUNDLE_PATH or $GEM_HOME). Bundler will remember this value for future installs on this machine system Install to the system location ($BUNDLE_PATH or $GEM_HOME) even if the bundle was previously installed somewhere else for this application false quiet Only output warnings and errors false retry Retry network and git requests that have failed shebang Specify a different shebang executable name than the default (usually 'ruby') standalone Make a bundle that can work without the Bundler runtime trust_policy Sets level of security when dealing with signed gems. Accepts LowSecurity , MediumSecurity and HighSecurity as values without Exclude gems that are part of the specified named group with Include gems that are part of the specified named group frozen Don't allow the Gemfile.lock to be updated after install false redownload Force download every gem, even if the required versions are already available locally false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action bundle_install CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run bundle_install To pass parameters, make use of the : symbol, for example fastlane run bundle_install parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"bundle_install"},{"location":"actions/bundle_install/#bundle_install","text":"This action runs bundle install (if available) bundle_install Supported platforms ios, android, mac Author @birmacher, @koglinjg","title":"bundle_install"},{"location":"actions/bundle_install/#parameters","text":"Key Description Default binstubs Generate bin stubs for bundled gems to ./bin clean Run bundle clean automatically after install false full_index Use the rubygems modern index instead of the API endpoint false gemfile Use the specified gemfile instead of Gemfile jobs Install gems using parallel workers local Do not attempt to fetch gems remotely and use the gem cache instead false deployment Install using defaults tuned for deployment and CI environments false no_cache Don't update the existing gem cache false no_prune Don't remove stale gems from the cache false path Specify a different path than the system default ($BUNDLE_PATH or $GEM_HOME). Bundler will remember this value for future installs on this machine system Install to the system location ($BUNDLE_PATH or $GEM_HOME) even if the bundle was previously installed somewhere else for this application false quiet Only output warnings and errors false retry Retry network and git requests that have failed shebang Specify a different shebang executable name than the default (usually 'ruby') standalone Make a bundle that can work without the Bundler runtime trust_policy Sets level of security when dealing with signed gems. Accepts LowSecurity , MediumSecurity and HighSecurity as values without Exclude gems that are part of the specified named group with Include gems that are part of the specified named group frozen Don't allow the Gemfile.lock to be updated after install false redownload Force download every gem, even if the required versions are already available locally false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/bundle_install/#documentation","text":"To show the documentation in your terminal, run fastlane action bundle_install","title":"Documentation"},{"location":"actions/bundle_install/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run bundle_install To pass parameters, make use of the : symbol, for example fastlane run bundle_install parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/bundle_install/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/capture_android_screenshots/","text":"capture_android_screenshots Automated localized screenshots of your Android app (via screengrab ) Automated localized screenshots of your Android app on every device screengrab generates localized screenshots of your Android app for different device types and languages for Google Play and can be uploaded using supply . Why should I automate this process? Create hundreds of screenshots in multiple languages on emulators or real devices, saving you hours Easily verify that localizations fit into labels on all screen dimensions to find UI mistakes before you ship You only need to configure it once for anyone on your team to run it Keep your screenshots perfectly up-to-date with every app update. Your customers deserve it! Fully integrates with fastlane and supply Installation Install the gem gem install fastlane Gradle dependency androidTestImplementation 'tools.fastlane:screengrab:x.x.x' The latest version is As of screengrab version 2.0.0, all Android test dependencies are AndroidX dependencies. This means a device with API 18+, Android 4.3 or greater is required. If you wish to capture screenshots with an older Android OS, then you must use a 1.x.x version. Configuring your Manifest Permissions Ensure that the following permissions exist in your src/debug/AndroidManifest.xml Configuring your UI Tests for Screenshots Add LocaleTestRule to your tests class to handle automatic switching of locales. If you're using Java use: java @ClassRule public static final LocaleTestRule localeTestRule = new LocaleTestRule(); If you're using Kotlin use: kotlin @Rule @JvmField val localeTestRule = LocaleTestRule() The @JvmField annotation is important. It won't work like this: kotlin companion object { @get:ClassRule val localeTestRule = LocaleTestRule() } To capture screenshots, add the following to your tests Screengrab.screenshot(\"name_of_screenshot_here\"); on the appropriate screens Generating Screenshots with screengrab Then, before running fastlane screengrab you'll need a debug and test apk You can create your APKs manually with ./gradlew assembleDebug assembleAndroidTest You can also create a lane and use build_android_app : ruby desc \"Build debug and test APK for screenshots\" lane :build_and_screengrab do build_android_app( task: 'assemble', build_type: 'Debug' ) build_android_app( task: 'assemble', build_type: 'AndroidTest' ) screengrab() end - Once complete run fastlane screengrab in your app project directory to generate screenshots - You will be prompted to provide any required parameters which are not in your Screengrabfile or provided as command line arguments - Your screenshots will be saved to fastlane/metadata/android in the directory where you ran screengrab Improved screenshot capture with UI Automator As of screengrab 0.5.0, you can specify different strategies to control the way screengrab captures screenshots. The newer strategy delegates to UI Automator which fixes a number of problems compared to the original strategy: Shadows/elevation are correctly captured for Material UI Multi-window situations are correctly captured (dialogs, etc.) Works on Android N UI Automator is the default strategy. However, UI Automator requires a device with API level >= 18 . If you need to grab screenshots on an older Android version, use the latest 1.x.x version of this library and set the DecorView ScreenshotStrategy. Screengrab.setDefaultScreenshotStrategy(new DecorViewScreenshotStrategy()); Improved screenshot capture with Falcon As of screengrab 1.2.0, you can specify a new strategy to delegate to Falcon . Falcon may work better than UI Automator in some situations and also provides similar benefits as UI Automator: Multi-window situations are correctly captured (dialogs, etc.) Works on Android N Falcon requires a device with API level >= 10 . To enable it for all screenshots by default, make the following call before your tests run: Screengrab.setDefaultScreenshotStrategy(new FalconScreenshotStrategy(activityRule.getActivity())); Advanced Screengrabfile Configuration Running fastlane screengrab init generated a Screengrabfile which can store all of your configuration options. Since most values will not change often for your project, it is recommended to store them there. The Screengrabfile is written in Ruby, so you may find it helpful to use an editor that highlights Ruby syntax to modify this file. # remove the leading '#' to uncomment lines # app_package_name('your.app.package') # use_tests_in_packages(['your.screenshot.tests.package']) # app_apk_path('path/to/your/app.apk') # tests_apk_path('path/to/your/tests.apk') locales(['en-US', 'fr-FR', 'it-IT']) # clear all previously generated screenshots in your local output directory before creating new ones clear_previous_screenshots(true) For more information about all available options run fastlane action screengrab Tips UI Tests Check out Testing UI for a Single App for an introduction to using Espresso for UI testing. Example UI Test Class (Using JUnit4) Java: @RunWith(JUnit4.class) public class JUnit4StyleTests { @ClassRule public static final LocaleTestRule localeTestRule = new LocaleTestRule(); @Rule public ActivityScenarioRule activityRule = new ActivityScenarioRule<>(MainActivity.class); @Test public void testTakeScreenshot() { Screengrab.screenshot(\"before_button_click\"); onView(withId(R.id.fab)).perform(click()); Screengrab.screenshot(\"after_button_click\"); } } Kotlin: @RunWith(JUnit4.class) class JUnit4StyleTests { @get:Rule var activityRule = ActivityScenarioRule(MainActivity::class.java) @Rule @JvmField val localeTestRule = LocaleTestRule() @Test fun testTakeScreenshot() { Screengrab.screenshot(\"before_button_click\") onView(withId(R.id.fab)).perform(click()) Screengrab.screenshot(\"after_button_click\") } } There is an example project showing how to use JUnit 3 or 4 and Espresso with the screengrab Java library to capture screenshots during a UI test run. Using JUnit 4 is preferable because of its ability to perform actions before and after the entire test class is run. This means you will change the device's locale far fewer times when compared with JUnit 3 running those commands before and after each test method. When using JUnit 3 you'll need to add a bit more code: Use LocaleUtil.changeDeviceLocaleTo(LocaleUtil.getTestLocale()); in setUp() Use LocaleUtil.changeDeviceLocaleTo(LocaleUtil.getEndingLocale()); in tearDown() Use Screengrab.screenshot(\"name_of_screenshot_here\"); to capture screenshots at the appropriate points in your tests Clean Status Bar screengrab can clean your status bar to make your screenshots even more beautiful. It is simply a wrapper that allows configuring SystemUI DemoMode in your code. Note: the clean status bar feature is only supported on devices with API level >= 23 . You can enable and disable the clean status bar at any moment during your tests. In most cases you probably want to do this in the @BeforeClass and @AfterClass methods. @BeforeClass public static void beforeAll() { CleanStatusBar.enableWithDefaults(); } @AfterClass public static void afterAll() { CleanStatusBar.disable(); } Have a look at the methods of the CleanStatusBar class to customize the status bar even more. You could for example show the Bluetooth icon and the LTE text. new CleanStatusBar() .setBluetoothState(BluetoothState.DISCONNECTED) .setMobileNetworkDataType(MobileDataType.LTE) .enable(); Advanced screengrab Launch Arguments You can provide additional arguments to your test cases on launch. These strings will be available in your tests through InstrumentationRegistry.getArguments() . screengrab( launch_arguments: [ \"username hjanuschka\", \"build_number 201\" ] ) Bundle extras = InstrumentationRegistry.getArguments(); String peerID = null; if (extras != null) { if (extras.containsKey(\"username\")) { username = extras.getString(\"username\"); System.out.println(\"Username: \" + username); } else { System.out.println(\"No username in extras\"); } } else { System.out.println(\"No extras\"); } Detecting screengrab at runtime For some apps, it is helpful to know when screengrab is running so that you can display specific data for your screenshots. For iOS fastlane users, this is much like \"FASTLANE_SNAPSHOT\". In order to do this, you'll need to have at least two product flavors of your app. Add two product flavors to the app-level build.gradle file: android { ... flavorDimensions \"mode\" productFlavors { screengrab { dimension \"mode\" } regular { dimension \"mode\" } } ... } Check for the existence of that flavor (i.e screengrab) in your app code as follows in order to use mock data or customize data for screenshots: if (BuildConfig.FLAVOR == \"screengrab\") { System.out.println(\"screengrab is running!\"); } When running screengrab , do the following to build the flavor you want as well as the test apk. Note that you use \"assembleFlavor_name\" where Flavor_name is the flavor name, capitalized (i.e. Screengrab). ./gradlew assembleScreengrab assembleAndroidTest Run screengrab : fastlane screengrab screengrab will ask you to select the debug and test apps (which you can then add to your Screengrabfile to skip this step later). The debug apk should be somewhere like this: app/build/outputs/apk/screengrab/debug/app-screengrab-debug.apk The test apk should be somewhere like this: app/build/outputs/apk/androidTest/screengrab/debug/app-screengrab-debug-androidTest.apk Sit back and enjoy your new screenshots! Note: while this could also be done by creating a new build variant (i.e. debug, release and creating a new one called screengrab), Android only allows one build type to be tested which defaults to debug. That's why we use product flavors. capture_android_screenshots Supported platforms android Author @asfalcone, @i2amsam, @mfurtak 3 Examples capture_android_screenshots screengrab # alias for \"capture_android_screenshots\" capture_android_screenshots( locales: [\"en-US\", \"fr-FR\", \"ja-JP\"], clear_previous_screenshots: true, app_apk_path: \"build/outputs/apk/example-debug.apk\", tests_apk_path: \"build/outputs/apk/example-debug-androidTest-unaligned.apk\" ) Parameters Key Description Default android_home Path to the root of your Android SDK installation, e.g. ~/tools/android-sdk-macosx * build_tools_version DEPRECATED! The Android build tools version to use, e.g. '23.0.2' locales A list of locales which should be used [\"en-US\"] clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running screengrab false output_directory The directory where to store the screenshots fastlane/metadata/android skip_open_summary Don't open the summary after running screengrab * app_package_name The package name of the app under test (e.g. com.yourcompany.yourapp) * tests_package_name The package name of the tests bundle (e.g. com.yourcompany.yourapp.test) use_tests_in_packages Only run tests in these Java packages use_tests_in_classes Only run tests in these Java classes launch_arguments Additional launch arguments test_instrumentation_runner The fully qualified class name of your test instrumentation runner androidx.test.runner.AndroidJUnitRunner ending_locale DEPRECATED! Return the device to this locale after running tests en-US use_adb_root DEPRECATED! Restarts the adb daemon using adb root to allow access to screenshots directories on device. Use if getting 'Permission denied' errors false app_apk_path The path to the APK for the app under test * tests_apk_path The path to the APK for the tests bundle * specific_device Use the device or emulator with the given serial number or qualifier device_type Type of device used for screenshots. Matches Google Play Types (phone, sevenInch, tenInch, tv, wear) phone exit_on_test_failure Whether or not to exit Screengrab on test failure. Exiting on failure will not copy screenshots to local machine nor open screenshots summary true reinstall_app Enabling this option will automatically uninstall the application before running it false use_timestamp_suffix Add timestamp suffix to screenshot filename true adb_host Configure the host used by adb to connect, allows running on remote devices farm * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The capture_android_screenshots action generates the following Lane Variables: SharedValue Description SharedValues::SCREENGRAB_OUTPUT_DIRECTORY The path to the output directory To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action capture_android_screenshots CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run capture_android_screenshots To pass parameters, make use of the : symbol, for example fastlane run capture_android_screenshots parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"capture_android_screenshots"},{"location":"actions/capture_android_screenshots/#capture_android_screenshots","text":"Automated localized screenshots of your Android app (via screengrab )","title":"capture_android_screenshots"},{"location":"actions/capture_android_screenshots/#installation","text":"Install the gem gem install fastlane","title":"Installation"},{"location":"actions/capture_android_screenshots/#generating-screenshots-with-screengrab","text":"Then, before running fastlane screengrab you'll need a debug and test apk You can create your APKs manually with ./gradlew assembleDebug assembleAndroidTest You can also create a lane and use build_android_app : ruby desc \"Build debug and test APK for screenshots\" lane :build_and_screengrab do build_android_app( task: 'assemble', build_type: 'Debug' ) build_android_app( task: 'assemble', build_type: 'AndroidTest' ) screengrab() end - Once complete run fastlane screengrab in your app project directory to generate screenshots - You will be prompted to provide any required parameters which are not in your Screengrabfile or provided as command line arguments - Your screenshots will be saved to fastlane/metadata/android in the directory where you ran screengrab","title":"Generating Screenshots with screengrab"},{"location":"actions/capture_android_screenshots/#improved-screenshot-capture-with-ui-automator","text":"As of screengrab 0.5.0, you can specify different strategies to control the way screengrab captures screenshots. The newer strategy delegates to UI Automator which fixes a number of problems compared to the original strategy: Shadows/elevation are correctly captured for Material UI Multi-window situations are correctly captured (dialogs, etc.) Works on Android N UI Automator is the default strategy. However, UI Automator requires a device with API level >= 18 . If you need to grab screenshots on an older Android version, use the latest 1.x.x version of this library and set the DecorView ScreenshotStrategy. Screengrab.setDefaultScreenshotStrategy(new DecorViewScreenshotStrategy());","title":"Improved screenshot capture with UI Automator"},{"location":"actions/capture_android_screenshots/#improved-screenshot-capture-with-falcon","text":"As of screengrab 1.2.0, you can specify a new strategy to delegate to Falcon . Falcon may work better than UI Automator in some situations and also provides similar benefits as UI Automator: Multi-window situations are correctly captured (dialogs, etc.) Works on Android N Falcon requires a device with API level >= 10 . To enable it for all screenshots by default, make the following call before your tests run: Screengrab.setDefaultScreenshotStrategy(new FalconScreenshotStrategy(activityRule.getActivity()));","title":"Improved screenshot capture with Falcon"},{"location":"actions/capture_android_screenshots/#advanced-screengrabfile-configuration","text":"Running fastlane screengrab init generated a Screengrabfile which can store all of your configuration options. Since most values will not change often for your project, it is recommended to store them there. The Screengrabfile is written in Ruby, so you may find it helpful to use an editor that highlights Ruby syntax to modify this file. # remove the leading '#' to uncomment lines # app_package_name('your.app.package') # use_tests_in_packages(['your.screenshot.tests.package']) # app_apk_path('path/to/your/app.apk') # tests_apk_path('path/to/your/tests.apk') locales(['en-US', 'fr-FR', 'it-IT']) # clear all previously generated screenshots in your local output directory before creating new ones clear_previous_screenshots(true) For more information about all available options run fastlane action screengrab","title":"Advanced Screengrabfile Configuration"},{"location":"actions/capture_android_screenshots/#tips","text":"","title":"Tips"},{"location":"actions/capture_android_screenshots/#ui-tests","text":"Check out Testing UI for a Single App for an introduction to using Espresso for UI testing.","title":"UI Tests"},{"location":"actions/capture_android_screenshots/#clean-status-bar","text":"screengrab can clean your status bar to make your screenshots even more beautiful. It is simply a wrapper that allows configuring SystemUI DemoMode in your code. Note: the clean status bar feature is only supported on devices with API level >= 23 . You can enable and disable the clean status bar at any moment during your tests. In most cases you probably want to do this in the @BeforeClass and @AfterClass methods. @BeforeClass public static void beforeAll() { CleanStatusBar.enableWithDefaults(); } @AfterClass public static void afterAll() { CleanStatusBar.disable(); } Have a look at the methods of the CleanStatusBar class to customize the status bar even more. You could for example show the Bluetooth icon and the LTE text. new CleanStatusBar() .setBluetoothState(BluetoothState.DISCONNECTED) .setMobileNetworkDataType(MobileDataType.LTE) .enable();","title":"Clean Status Bar"},{"location":"actions/capture_android_screenshots/#advanced-screengrab","text":"Launch Arguments You can provide additional arguments to your test cases on launch. These strings will be available in your tests through InstrumentationRegistry.getArguments() . screengrab( launch_arguments: [ \"username hjanuschka\", \"build_number 201\" ] ) Bundle extras = InstrumentationRegistry.getArguments(); String peerID = null; if (extras != null) { if (extras.containsKey(\"username\")) { username = extras.getString(\"username\"); System.out.println(\"Username: \" + username); } else { System.out.println(\"No username in extras\"); } } else { System.out.println(\"No extras\"); } Detecting screengrab at runtime For some apps, it is helpful to know when screengrab is running so that you can display specific data for your screenshots. For iOS fastlane users, this is much like \"FASTLANE_SNAPSHOT\". In order to do this, you'll need to have at least two product flavors of your app. Add two product flavors to the app-level build.gradle file: android { ... flavorDimensions \"mode\" productFlavors { screengrab { dimension \"mode\" } regular { dimension \"mode\" } } ... } Check for the existence of that flavor (i.e screengrab) in your app code as follows in order to use mock data or customize data for screenshots: if (BuildConfig.FLAVOR == \"screengrab\") { System.out.println(\"screengrab is running!\"); } When running screengrab , do the following to build the flavor you want as well as the test apk. Note that you use \"assembleFlavor_name\" where Flavor_name is the flavor name, capitalized (i.e. Screengrab). ./gradlew assembleScreengrab assembleAndroidTest Run screengrab : fastlane screengrab screengrab will ask you to select the debug and test apps (which you can then add to your Screengrabfile to skip this step later). The debug apk should be somewhere like this: app/build/outputs/apk/screengrab/debug/app-screengrab-debug.apk The test apk should be somewhere like this: app/build/outputs/apk/androidTest/screengrab/debug/app-screengrab-debug-androidTest.apk Sit back and enjoy your new screenshots! Note: while this could also be done by creating a new build variant (i.e. debug, release and creating a new one called screengrab), Android only allows one build type to be tested which defaults to debug. That's why we use product flavors. capture_android_screenshots Supported platforms android Author @asfalcone, @i2amsam, @mfurtak","title":"Advanced screengrab"},{"location":"actions/capture_android_screenshots/#3-examples","text":"capture_android_screenshots screengrab # alias for \"capture_android_screenshots\" capture_android_screenshots( locales: [\"en-US\", \"fr-FR\", \"ja-JP\"], clear_previous_screenshots: true, app_apk_path: \"build/outputs/apk/example-debug.apk\", tests_apk_path: \"build/outputs/apk/example-debug-androidTest-unaligned.apk\" )","title":"3 Examples"},{"location":"actions/capture_android_screenshots/#parameters","text":"Key Description Default android_home Path to the root of your Android SDK installation, e.g. ~/tools/android-sdk-macosx * build_tools_version DEPRECATED! The Android build tools version to use, e.g. '23.0.2' locales A list of locales which should be used [\"en-US\"] clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running screengrab false output_directory The directory where to store the screenshots fastlane/metadata/android skip_open_summary Don't open the summary after running screengrab * app_package_name The package name of the app under test (e.g. com.yourcompany.yourapp) * tests_package_name The package name of the tests bundle (e.g. com.yourcompany.yourapp.test) use_tests_in_packages Only run tests in these Java packages use_tests_in_classes Only run tests in these Java classes launch_arguments Additional launch arguments test_instrumentation_runner The fully qualified class name of your test instrumentation runner androidx.test.runner.AndroidJUnitRunner ending_locale DEPRECATED! Return the device to this locale after running tests en-US use_adb_root DEPRECATED! Restarts the adb daemon using adb root to allow access to screenshots directories on device. Use if getting 'Permission denied' errors false app_apk_path The path to the APK for the app under test * tests_apk_path The path to the APK for the tests bundle * specific_device Use the device or emulator with the given serial number or qualifier device_type Type of device used for screenshots. Matches Google Play Types (phone, sevenInch, tenInch, tv, wear) phone exit_on_test_failure Whether or not to exit Screengrab on test failure. Exiting on failure will not copy screenshots to local machine nor open screenshots summary true reinstall_app Enabling this option will automatically uninstall the application before running it false use_timestamp_suffix Add timestamp suffix to screenshot filename true adb_host Configure the host used by adb to connect, allows running on remote devices farm * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/capture_android_screenshots/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The capture_android_screenshots action generates the following Lane Variables: SharedValue Description SharedValues::SCREENGRAB_OUTPUT_DIRECTORY The path to the output directory To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/capture_android_screenshots/#documentation","text":"To show the documentation in your terminal, run fastlane action capture_android_screenshots","title":"Documentation"},{"location":"actions/capture_android_screenshots/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run capture_android_screenshots To pass parameters, make use of the : symbol, for example fastlane run capture_android_screenshots parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/capture_android_screenshots/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/capture_ios_screenshots/","text":"capture_ios_screenshots Generate new localized screenshots on multiple devices (via snapshot ) Automate taking localized screenshots of your iOS, tvOS, and watchOS apps on every device Check out the new fastlane documentation on how to generate screenshots snapshot generates localized iOS, tvOS, and watchOS screenshots for different device types and languages for the App Store and can be uploaded using ( deliver ). You have to manually create 20 (languages) x 6 (devices) x 5 (screenshots) = 600 screenshots . It's hard to get everything right! New screenshots with every (design) update No loading indicators Same content / screens Clean Status Bar Uploading screenshots ( deliver is your friend) More information about creating perfect screenshots . snapshot runs completely in the background - you can do something else, while your computer takes the screenshots for you. Features \u2022 UI Tests \u2022 Quick Start \u2022 Usage \u2022 Tips \u2022 How? Features Create hundreds of screenshots in multiple languages on all simulators Take screenshots in multiple device simulators concurrently to cut down execution time (Xcode 9 only) Configure it once, store the configuration in git Do something else, while the computer takes the screenshots for you Integrates with fastlane and deliver Generates a beautiful web page, which shows all screenshots on all devices. This is perfect to send to QA or the marketing team snapshot automatically waits for network requests to be finished before taking a screenshot (we don't want loading images in the App Store screenshots) After snapshot successfully created new screenshots, it will generate a beautiful HTML file to get a quick overview of all screens: Why? This tool automatically switches the language and device type and runs UI Tests for every combination. Why should I automate this process? It takes hours to take screenshots You get a great overview of all your screens, running on all available simulators without the need to manually start it hundreds of times Easy verification for translators (without an iDevice) that translations do make sense in real App context Easy verification that localizations fit into labels on all screen dimensions It is an integration test: You can test for UI elements and other things inside your scripts Be so nice, and provide new screenshots with every App Store update. Your customers deserve it You realize, there is a spelling mistake in one of the screens? Well, just correct it and re-run the script UI Tests Getting started This project uses Apple's newly announced UI Tests. We will not go into detail on how to write scripts. Here a few links to get started: WWDC 2015 Introduction to UI Tests A first look into UI Tests UI Testing in Xcode 7 HSTestingBackchannel : \u2018Cheat\u2019 by communicating directly with your app Automating App Store screenshots using fastlane snapshot and frameit Quick Start Create a new UI Test target in your Xcode project ( top part of this article ) Run fastlane snapshot init in your project folder Add the ./SnapshotHelper.swift to your UI Test target (You can move the file anywhere you want) (Xcode 8 only) add the ./SnapshotHelperXcode8.swift to your UI Test target (Objective C only) add the bridging header to your test class: #import \"MYUITests-Swift.h\" (The bridging header is named after your test target with -Swift.h appended.) In your UI Test class, click the Record button on the bottom left and record your interaction To take a snapshot, call the following between interactions Swift: snapshot(\"01LoginScreen\") Objective C: [Snapshot snapshot:@\"01LoginScreen\" timeWaitingForIdle:10]; Add the following code to your setUp() method: Swift: let app = XCUIApplication() setupSnapshot(app) app.launch() Objective C: XCUIApplication *app = [[XCUIApplication alloc] init]; [Snapshot setupSnapshot:app waitForAnimations:NO]; [app launch]; Make sure you only have one launch call in your test class, as Xcode adds one automatically on new test files. You can try the snapshot example project by cloning this repo. To quick start your UI tests, you can use the UI Test recorder. You only have to interact with the simulator, and Xcode will generate the UI Test code for you. You can find the red record button on the bottom of the screen (more information in this blog post ) Usage fastlane snapshot Your screenshots will be stored in the ./screenshots/ folder by default (or ./fastlane/screenshots if you're using fastlane ) New with Xcode 9, snapshot can run multiple simulators concurrently. This is the default behavior in order to take your screenshots as quickly as possible. This can be disabled to run each device, one at a time, by setting the :concurrent_simulators option to false . Note: While running snapshot with Xcode 9, the simulators will not be visibly spawned. So, while you won't see the simulators running your tests, they will, in fact, be taking your screenshots. If any error occurs while running the snapshot script on a device, that device will not have any screenshots, and snapshot will continue with the next device or language. To stop the flow after the first error, run fastlane snapshot --stop_after_first_error Also by default, snapshot will open the HTML after all is done. This can be skipped with the following command fastlane snapshot --stop_after_first_error --skip_open_summary There are a lot of options available that define how to build your app, for example fastlane snapshot --scheme \"UITests\" --configuration \"Release\" --sdk \"iphonesimulator\" Reinstall the app before running snapshot fastlane snapshot --reinstall_app --app_identifier \"tools.fastlane.app\" By default snapshot automatically retries running UI Tests if they fail. This is due to randomly failing UI Tests (e.g. #2517 ). You can adapt this number using fastlane snapshot --number_of_retries 3 Add photos and/or videos to the simulator before running snapshot fastlane snapshot --add_photos MyTestApp/Assets/demo.jpg --add_videos MyTestApp/Assets/demo.mp4 For a list for all available options run fastlane action snapshot After running snapshot you will get a nice summary: Snapfile All of the available options can also be stored in a configuration file called the Snapfile . Since most values will not change often for your project, it is recommended to store them there: First make sure to have a Snapfile (you get it for free when running fastlane snapshot init ) The Snapfile can contain all the options that are also available on fastlane action snapshot scheme(\"UITests\") devices([ \"iPad (7th generation)\", \"iPad Air (3rd generation)\", \"iPad Pro (11-inch)\", \"iPad Pro (12.9-inch) (3rd generation)\", \"iPad Pro (9.7-inch)\", \"iPhone 11\", \"iPhone 11 Pro\", \"iPhone 11 Pro Max\", \"iPhone 8\", \"iPhone 8 Plus\" ]) languages([ \"en-US\", \"de-DE\", \"es-ES\", [\"pt\", \"pt_BR\"] # Portuguese with Brazilian locale ]) launch_arguments([\"-username Felix\"]) # The directory in which the screenshots should be stored output_directory('./screenshots') clear_previous_screenshots(true) override_status_bar(true) add_photos([\"MyTestApp/Assets/demo.jpg\"]) Completely reset all simulators You can run this command in the terminal to delete and re-create all iOS and tvOS simulators: fastlane snapshot reset_simulators Warning : This will delete all your simulators and replace by new ones! This is useful, if you run into weird problems when running snapshot . You can use the environment variable SNAPSHOT_FORCE_DELETE to stop asking for confirmation before deleting. SNAPSHOT_FORCE_DELETE=1 fastlane snapshot reset_simulators Update snapshot helpers Some updates require the helper files to be updated. snapshot will automatically warn you and tell you how to update. Basically you can run fastlane snapshot update to update your SnapshotHelper.swift files. In case you modified your SnapshotHelper.swift and want to manually update the file, check out SnapshotHelper.swift . Launch Arguments You can provide additional arguments to your app on launch. These strings will be available in your app (e.g. not in the testing target) through ProcessInfo.processInfo.arguments . Alternatively, use user-default syntax ( -key value ) and they will be available as key-value pairs in UserDefaults.standard . launch_arguments([ \"-firstName Felix -lastName Krause\" ]) name.text = UserDefaults.standard.string(forKey: \"firstName\") // name.text = \"Felix\" snapshot includes -FASTLANE_SNAPSHOT YES , which will set a temporary user default for the key FASTLANE_SNAPSHOT , you may use this to detect when the app is run by snapshot . if UserDefaults.standard.bool(forKey: \"FASTLANE_SNAPSHOT\") { // runtime check that we are in snapshot mode } Specify multiple argument strings and snapshot will generate screenshots for each combination of arguments, devices, and languages. This is useful for comparing the same screenshots with different feature flags, dynamic text sizes, and different data sets. # Snapfile for A/B Test Comparison launch_arguments([ \"-secretFeatureEnabled YES\", \"-secretFeatureEnabled NO\" ]) Xcode Environment Variables snapshot includes FASTLANE_SNAPSHOT=YES and FASTLANE_LANGUAGE= as arguments when executing xcodebuild . This means you may use these environment variables in a custom build phase run script to do any additional configuration. How does it work? The easiest solution would be to just render the UIWindow into a file. That's not possible because UI Tests don't run on a main thread. So snapshot uses a different approach: When you run unit tests in Xcode, the reporter generates a plist file, documenting all events that occurred during the tests ( More Information ). Additionally, Xcode generates screenshots before, during and after each of these events. There is no way to manually trigger a screenshot event. The screenshots and the plist files are stored in the DerivedData directory, which snapshot stores in a temporary folder. When the user calls snapshot(...) in the UI Tests (Swift or Objective C) the script actually does a rotation to .Unknown which doesn't have any effect on the actual app, but is enough to trigger a screenshot. It has no effect to the application and is not something you would do in your tests. The goal was to find some event that a user would never trigger, so that we know it's from snapshot . On tvOS, there is no orientation so we ask for a count of app views with type \"Browser\" (which should never exist on tvOS). snapshot then iterates through all test events and check where we either did this weird rotation (on iOS) or searched for browsers (on tvOS). Once snapshot has all events triggered by snapshot it collects a ordered list of all the file names of the actual screenshots of the application. In the test output, the Swift snapshot function will print out something like this snapshot: [some random text here] snapshot finds all these entries using a regex. The number of snapshot outputs in the terminal and the number of snapshot events in the plist file should be the same. Knowing that, snapshot automatically matches these 2 lists to identify the name of each of these screenshots. They are then copied over to the output directory and separated by language and device. 2 thing have to be passed on from snapshot to the xcodebuild command line tool: The device type is passed via the destination parameter of the xcodebuild parameter The language is passed via a temporary file which is written by snapshot before running the tests and read by the UI Tests when launching the application If you find a better way to do any of this, please submit an issue on GitHub or even a pull request :+1: Radar 23062925 has been resolved with Xcode 8.3, so it's now possible to actually take screenshots from the simulator. We'll keep using the old approach for now, since many of you still want to use older versions of Xcode. Tips Check out the new fastlane documentation on how to generate screenshots Frame the screenshots If you want to add frames around the screenshots and even put a title on top, check out frameit . Available language codes ALL_LANGUAGES = [\"da\", \"de-DE\", \"el\", \"en-AU\", \"en-CA\", \"en-GB\", \"en-US\", \"es-ES\", \"es-MX\", \"fi\", \"fr-CA\", \"fr-FR\", \"id\", \"it\", \"ja\", \"ko\", \"ms\", \"nl-NL\", \"no\", \"pt-BR\", \"pt-PT\", \"ru\", \"sv\", \"th\", \"tr\", \"vi\", \"zh-Hans\", \"zh-Hant\"] To get more information about language and locale codes please read Internationalization and Localization Guide . Use a clean status bar You can set override_status_bar to true to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available. Editing the Snapfile Change syntax highlighting to Ruby . Simulator doesn't launch the application When the app dies directly after the application is launched there might be 2 problems The simulator is somehow in a broken state and you need to re-create it. You can use snapshot reset_simulators to reset all simulators (this will remove all installed apps) A restart helps very often Determine language To detect the currently used localization in your tests, access the deviceLanguage variable from SnapshotHelper.swift . Speed up snapshots A lot of time in UI tests is spent waiting for animations. You can disable UIView animations in your app to make the tests faster: if ProcessInfo().arguments.contains(\"SKIP_ANIMATIONS\") { UIView.setAnimationsEnabled(false) } This requires you to pass the launch argument like so: snapshot(launch_arguments: [\"SKIP_ANIMATIONS\"]) By default, snapshot will wait for a short time for the animations to finish. If you're skipping the animations, this wait time is unnecessary and can be skipped: setupSnapshot(app, waitForAnimations: false) capture_ios_screenshots Supported platforms ios, mac Author @KrauseFx 3 Examples capture_ios_screenshots snapshot # alias for \"capture_ios_screenshots\" capture_ios_screenshots( skip_open_summary: true, clean: true ) Parameters Key Description Default workspace Path the workspace file project Path the project file xcargs Pass additional arguments to xcodebuild for the test phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app devices A list of devices you want to take the screenshots from languages A list of languages which should be used [\"en-US\"] launch_arguments A list of launch arguments which should be used [\"\"] output_directory The directory where to store the screenshots * output_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false ios_version By default, the latest version should be used automatically. If you want to change it, do it here skip_open_summary Don't open the HTML summary after running snapshot false skip_helper_version_check Do not check for most recent SnapshotHelper code false clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running snapshot false reinstall_app Enabling this option will automatically uninstall the application before running it false erase_simulator Enabling this option will automatically erase the simulator before running the application false headless Enabling this option will prevent displaying the simulator window true override_status_bar Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception (Adjust 'SNAPSHOT_SIMULATOR_WAIT_FOR_BOOT_TIMEOUT' environment variable if override status bar is not working. Might be because simulator is not fully booted. Defaults to 10 seconds) false override_status_bar_arguments Fully customize the status bar by setting each option here. Requires override_status_bar to be set to true . See xcrun simctl status_bar --help localize_simulator Enabling this option will configure the Simulator's system language false dark_mode Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark) app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * add_photos A list of photos that should be added to the simulator before running the application add_videos A list of videos that should be added to the simulator before running the application html_template A path to screenshots.html template buildlog_path The directory where to store the build log * clean Should the project be cleaned before building it? false test_without_building Test without building, requires a derived data path configuration The configuration to use when building the app. Defaults to 'Release' * sdk The SDK that should be used for building the application scheme The scheme you want to use, this must be the scheme for the UI Tests number_of_retries The number of times a test can fail before snapshot should stop retrying 1 stop_after_first_error Should snapshot stop immediately after the tests completely failed on one device? false derived_data_path The directory where build products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false test_target_name The name of the target you want to test (if you desire to override the Target Application from Xcode) namespace_log_files Separate the log files per device and per language concurrent_simulators Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9 true disable_slide_to_type Disable the simulator from showing the 'Slide to type' prompt false cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false testplan The testplan associated with the scheme that should be used for testing only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * xcpretty_args DEPRECATED! Use xcodebuild_formatter: '' instead - Additional xcpretty arguments disable_xcpretty Disable xcpretty formatting of build suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The capture_ios_screenshots action generates the following Lane Variables: SharedValue Description SharedValues::SNAPSHOT_SCREENSHOTS_PATH The path to the screenshots To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action capture_ios_screenshots CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run capture_ios_screenshots To pass parameters, make use of the : symbol, for example fastlane run capture_ios_screenshots parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"capture_ios_screenshots"},{"location":"actions/capture_ios_screenshots/#capture_ios_screenshots","text":"Generate new localized screenshots on multiple devices (via snapshot )","title":"capture_ios_screenshots"},{"location":"actions/capture_ios_screenshots/#features","text":"Create hundreds of screenshots in multiple languages on all simulators Take screenshots in multiple device simulators concurrently to cut down execution time (Xcode 9 only) Configure it once, store the configuration in git Do something else, while the computer takes the screenshots for you Integrates with fastlane and deliver Generates a beautiful web page, which shows all screenshots on all devices. This is perfect to send to QA or the marketing team snapshot automatically waits for network requests to be finished before taking a screenshot (we don't want loading images in the App Store screenshots) After snapshot successfully created new screenshots, it will generate a beautiful HTML file to get a quick overview of all screens:","title":"Features"},{"location":"actions/capture_ios_screenshots/#why","text":"This tool automatically switches the language and device type and runs UI Tests for every combination.","title":"Why?"},{"location":"actions/capture_ios_screenshots/#ui-tests","text":"","title":"UI Tests"},{"location":"actions/capture_ios_screenshots/#getting-started","text":"This project uses Apple's newly announced UI Tests. We will not go into detail on how to write scripts. Here a few links to get started: WWDC 2015 Introduction to UI Tests A first look into UI Tests UI Testing in Xcode 7 HSTestingBackchannel : \u2018Cheat\u2019 by communicating directly with your app Automating App Store screenshots using fastlane snapshot and frameit","title":"Getting started"},{"location":"actions/capture_ios_screenshots/#quick-start","text":"Create a new UI Test target in your Xcode project ( top part of this article ) Run fastlane snapshot init in your project folder Add the ./SnapshotHelper.swift to your UI Test target (You can move the file anywhere you want) (Xcode 8 only) add the ./SnapshotHelperXcode8.swift to your UI Test target (Objective C only) add the bridging header to your test class: #import \"MYUITests-Swift.h\" (The bridging header is named after your test target with -Swift.h appended.) In your UI Test class, click the Record button on the bottom left and record your interaction To take a snapshot, call the following between interactions Swift: snapshot(\"01LoginScreen\") Objective C: [Snapshot snapshot:@\"01LoginScreen\" timeWaitingForIdle:10]; Add the following code to your setUp() method: Swift: let app = XCUIApplication() setupSnapshot(app) app.launch() Objective C: XCUIApplication *app = [[XCUIApplication alloc] init]; [Snapshot setupSnapshot:app waitForAnimations:NO]; [app launch]; Make sure you only have one launch call in your test class, as Xcode adds one automatically on new test files. You can try the snapshot example project by cloning this repo. To quick start your UI tests, you can use the UI Test recorder. You only have to interact with the simulator, and Xcode will generate the UI Test code for you. You can find the red record button on the bottom of the screen (more information in this blog post )","title":"Quick Start"},{"location":"actions/capture_ios_screenshots/#usage","text":"fastlane snapshot Your screenshots will be stored in the ./screenshots/ folder by default (or ./fastlane/screenshots if you're using fastlane ) New with Xcode 9, snapshot can run multiple simulators concurrently. This is the default behavior in order to take your screenshots as quickly as possible. This can be disabled to run each device, one at a time, by setting the :concurrent_simulators option to false . Note: While running snapshot with Xcode 9, the simulators will not be visibly spawned. So, while you won't see the simulators running your tests, they will, in fact, be taking your screenshots. If any error occurs while running the snapshot script on a device, that device will not have any screenshots, and snapshot will continue with the next device or language. To stop the flow after the first error, run fastlane snapshot --stop_after_first_error Also by default, snapshot will open the HTML after all is done. This can be skipped with the following command fastlane snapshot --stop_after_first_error --skip_open_summary There are a lot of options available that define how to build your app, for example fastlane snapshot --scheme \"UITests\" --configuration \"Release\" --sdk \"iphonesimulator\" Reinstall the app before running snapshot fastlane snapshot --reinstall_app --app_identifier \"tools.fastlane.app\" By default snapshot automatically retries running UI Tests if they fail. This is due to randomly failing UI Tests (e.g. #2517 ). You can adapt this number using fastlane snapshot --number_of_retries 3 Add photos and/or videos to the simulator before running snapshot fastlane snapshot --add_photos MyTestApp/Assets/demo.jpg --add_videos MyTestApp/Assets/demo.mp4 For a list for all available options run fastlane action snapshot After running snapshot you will get a nice summary:","title":"Usage"},{"location":"actions/capture_ios_screenshots/#snapfile","text":"All of the available options can also be stored in a configuration file called the Snapfile . Since most values will not change often for your project, it is recommended to store them there: First make sure to have a Snapfile (you get it for free when running fastlane snapshot init ) The Snapfile can contain all the options that are also available on fastlane action snapshot scheme(\"UITests\") devices([ \"iPad (7th generation)\", \"iPad Air (3rd generation)\", \"iPad Pro (11-inch)\", \"iPad Pro (12.9-inch) (3rd generation)\", \"iPad Pro (9.7-inch)\", \"iPhone 11\", \"iPhone 11 Pro\", \"iPhone 11 Pro Max\", \"iPhone 8\", \"iPhone 8 Plus\" ]) languages([ \"en-US\", \"de-DE\", \"es-ES\", [\"pt\", \"pt_BR\"] # Portuguese with Brazilian locale ]) launch_arguments([\"-username Felix\"]) # The directory in which the screenshots should be stored output_directory('./screenshots') clear_previous_screenshots(true) override_status_bar(true) add_photos([\"MyTestApp/Assets/demo.jpg\"])","title":"Snapfile"},{"location":"actions/capture_ios_screenshots/#update-snapshot-helpers","text":"Some updates require the helper files to be updated. snapshot will automatically warn you and tell you how to update. Basically you can run fastlane snapshot update to update your SnapshotHelper.swift files. In case you modified your SnapshotHelper.swift and want to manually update the file, check out SnapshotHelper.swift .","title":"Update snapshot helpers"},{"location":"actions/capture_ios_screenshots/#launch-arguments","text":"You can provide additional arguments to your app on launch. These strings will be available in your app (e.g. not in the testing target) through ProcessInfo.processInfo.arguments . Alternatively, use user-default syntax ( -key value ) and they will be available as key-value pairs in UserDefaults.standard . launch_arguments([ \"-firstName Felix -lastName Krause\" ]) name.text = UserDefaults.standard.string(forKey: \"firstName\") // name.text = \"Felix\" snapshot includes -FASTLANE_SNAPSHOT YES , which will set a temporary user default for the key FASTLANE_SNAPSHOT , you may use this to detect when the app is run by snapshot . if UserDefaults.standard.bool(forKey: \"FASTLANE_SNAPSHOT\") { // runtime check that we are in snapshot mode } Specify multiple argument strings and snapshot will generate screenshots for each combination of arguments, devices, and languages. This is useful for comparing the same screenshots with different feature flags, dynamic text sizes, and different data sets. # Snapfile for A/B Test Comparison launch_arguments([ \"-secretFeatureEnabled YES\", \"-secretFeatureEnabled NO\" ])","title":"Launch Arguments"},{"location":"actions/capture_ios_screenshots/#xcode-environment-variables","text":"snapshot includes FASTLANE_SNAPSHOT=YES and FASTLANE_LANGUAGE= as arguments when executing xcodebuild . This means you may use these environment variables in a custom build phase run script to do any additional configuration.","title":"Xcode Environment Variables"},{"location":"actions/capture_ios_screenshots/#how-does-it-work","text":"The easiest solution would be to just render the UIWindow into a file. That's not possible because UI Tests don't run on a main thread. So snapshot uses a different approach: When you run unit tests in Xcode, the reporter generates a plist file, documenting all events that occurred during the tests ( More Information ). Additionally, Xcode generates screenshots before, during and after each of these events. There is no way to manually trigger a screenshot event. The screenshots and the plist files are stored in the DerivedData directory, which snapshot stores in a temporary folder. When the user calls snapshot(...) in the UI Tests (Swift or Objective C) the script actually does a rotation to .Unknown which doesn't have any effect on the actual app, but is enough to trigger a screenshot. It has no effect to the application and is not something you would do in your tests. The goal was to find some event that a user would never trigger, so that we know it's from snapshot . On tvOS, there is no orientation so we ask for a count of app views with type \"Browser\" (which should never exist on tvOS). snapshot then iterates through all test events and check where we either did this weird rotation (on iOS) or searched for browsers (on tvOS). Once snapshot has all events triggered by snapshot it collects a ordered list of all the file names of the actual screenshots of the application. In the test output, the Swift snapshot function will print out something like this snapshot: [some random text here] snapshot finds all these entries using a regex. The number of snapshot outputs in the terminal and the number of snapshot events in the plist file should be the same. Knowing that, snapshot automatically matches these 2 lists to identify the name of each of these screenshots. They are then copied over to the output directory and separated by language and device. 2 thing have to be passed on from snapshot to the xcodebuild command line tool: The device type is passed via the destination parameter of the xcodebuild parameter The language is passed via a temporary file which is written by snapshot before running the tests and read by the UI Tests when launching the application If you find a better way to do any of this, please submit an issue on GitHub or even a pull request :+1: Radar 23062925 has been resolved with Xcode 8.3, so it's now possible to actually take screenshots from the simulator. We'll keep using the old approach for now, since many of you still want to use older versions of Xcode.","title":"How does it work?"},{"location":"actions/capture_ios_screenshots/#tips","text":"","title":"Tips"},{"location":"actions/capture_ios_screenshots/#frame-the-screenshots","text":"If you want to add frames around the screenshots and even put a title on top, check out frameit .","title":"Frame the screenshots"},{"location":"actions/capture_ios_screenshots/#available-language-codes","text":"ALL_LANGUAGES = [\"da\", \"de-DE\", \"el\", \"en-AU\", \"en-CA\", \"en-GB\", \"en-US\", \"es-ES\", \"es-MX\", \"fi\", \"fr-CA\", \"fr-FR\", \"id\", \"it\", \"ja\", \"ko\", \"ms\", \"nl-NL\", \"no\", \"pt-BR\", \"pt-PT\", \"ru\", \"sv\", \"th\", \"tr\", \"vi\", \"zh-Hans\", \"zh-Hant\"] To get more information about language and locale codes please read Internationalization and Localization Guide .","title":"Available language codes"},{"location":"actions/capture_ios_screenshots/#use-a-clean-status-bar","text":"You can set override_status_bar to true to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available.","title":"Use a clean status bar"},{"location":"actions/capture_ios_screenshots/#editing-the-snapfile","text":"Change syntax highlighting to Ruby .","title":"Editing the Snapfile"},{"location":"actions/capture_ios_screenshots/#determine-language","text":"To detect the currently used localization in your tests, access the deviceLanguage variable from SnapshotHelper.swift .","title":"Determine language"},{"location":"actions/capture_ios_screenshots/#speed-up-snapshots","text":"A lot of time in UI tests is spent waiting for animations. You can disable UIView animations in your app to make the tests faster: if ProcessInfo().arguments.contains(\"SKIP_ANIMATIONS\") { UIView.setAnimationsEnabled(false) } This requires you to pass the launch argument like so: snapshot(launch_arguments: [\"SKIP_ANIMATIONS\"]) By default, snapshot will wait for a short time for the animations to finish. If you're skipping the animations, this wait time is unnecessary and can be skipped: setupSnapshot(app, waitForAnimations: false) capture_ios_screenshots Supported platforms ios, mac Author @KrauseFx","title":"Speed up snapshots"},{"location":"actions/capture_ios_screenshots/#3-examples","text":"capture_ios_screenshots snapshot # alias for \"capture_ios_screenshots\" capture_ios_screenshots( skip_open_summary: true, clean: true )","title":"3 Examples"},{"location":"actions/capture_ios_screenshots/#parameters","text":"Key Description Default workspace Path the workspace file project Path the project file xcargs Pass additional arguments to xcodebuild for the test phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app devices A list of devices you want to take the screenshots from languages A list of languages which should be used [\"en-US\"] launch_arguments A list of launch arguments which should be used [\"\"] output_directory The directory where to store the screenshots * output_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false ios_version By default, the latest version should be used automatically. If you want to change it, do it here skip_open_summary Don't open the HTML summary after running snapshot false skip_helper_version_check Do not check for most recent SnapshotHelper code false clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running snapshot false reinstall_app Enabling this option will automatically uninstall the application before running it false erase_simulator Enabling this option will automatically erase the simulator before running the application false headless Enabling this option will prevent displaying the simulator window true override_status_bar Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception (Adjust 'SNAPSHOT_SIMULATOR_WAIT_FOR_BOOT_TIMEOUT' environment variable if override status bar is not working. Might be because simulator is not fully booted. Defaults to 10 seconds) false override_status_bar_arguments Fully customize the status bar by setting each option here. Requires override_status_bar to be set to true . See xcrun simctl status_bar --help localize_simulator Enabling this option will configure the Simulator's system language false dark_mode Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark) app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * add_photos A list of photos that should be added to the simulator before running the application add_videos A list of videos that should be added to the simulator before running the application html_template A path to screenshots.html template buildlog_path The directory where to store the build log * clean Should the project be cleaned before building it? false test_without_building Test without building, requires a derived data path configuration The configuration to use when building the app. Defaults to 'Release' * sdk The SDK that should be used for building the application scheme The scheme you want to use, this must be the scheme for the UI Tests number_of_retries The number of times a test can fail before snapshot should stop retrying 1 stop_after_first_error Should snapshot stop immediately after the tests completely failed on one device? false derived_data_path The directory where build products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false test_target_name The name of the target you want to test (if you desire to override the Target Application from Xcode) namespace_log_files Separate the log files per device and per language concurrent_simulators Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9 true disable_slide_to_type Disable the simulator from showing the 'Slide to type' prompt false cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false testplan The testplan associated with the scheme that should be used for testing only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * xcpretty_args DEPRECATED! Use xcodebuild_formatter: '' instead - Additional xcpretty arguments disable_xcpretty Disable xcpretty formatting of build suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/capture_ios_screenshots/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The capture_ios_screenshots action generates the following Lane Variables: SharedValue Description SharedValues::SNAPSHOT_SCREENSHOTS_PATH The path to the screenshots To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/capture_ios_screenshots/#documentation","text":"To show the documentation in your terminal, run fastlane action capture_ios_screenshots","title":"Documentation"},{"location":"actions/capture_ios_screenshots/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run capture_ios_screenshots To pass parameters, make use of the : symbol, for example fastlane run capture_ios_screenshots parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/capture_ios_screenshots/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/capture_screenshots/","text":"capture_screenshots Alias for the capture_ios_screenshots action Automate taking localized screenshots of your iOS, tvOS, and watchOS apps on every device Check out the new fastlane documentation on how to generate screenshots snapshot generates localized iOS, tvOS, and watchOS screenshots for different device types and languages for the App Store and can be uploaded using ( deliver ). You have to manually create 20 (languages) x 6 (devices) x 5 (screenshots) = 600 screenshots . It's hard to get everything right! New screenshots with every (design) update No loading indicators Same content / screens Clean Status Bar Uploading screenshots ( deliver is your friend) More information about creating perfect screenshots . snapshot runs completely in the background - you can do something else, while your computer takes the screenshots for you. Features \u2022 UI Tests \u2022 Quick Start \u2022 Usage \u2022 Tips \u2022 How? Features Create hundreds of screenshots in multiple languages on all simulators Take screenshots in multiple device simulators concurrently to cut down execution time (Xcode 9 only) Configure it once, store the configuration in git Do something else, while the computer takes the screenshots for you Integrates with fastlane and deliver Generates a beautiful web page, which shows all screenshots on all devices. This is perfect to send to QA or the marketing team snapshot automatically waits for network requests to be finished before taking a screenshot (we don't want loading images in the App Store screenshots) After snapshot successfully created new screenshots, it will generate a beautiful HTML file to get a quick overview of all screens: Why? This tool automatically switches the language and device type and runs UI Tests for every combination. Why should I automate this process? It takes hours to take screenshots You get a great overview of all your screens, running on all available simulators without the need to manually start it hundreds of times Easy verification for translators (without an iDevice) that translations do make sense in real App context Easy verification that localizations fit into labels on all screen dimensions It is an integration test: You can test for UI elements and other things inside your scripts Be so nice, and provide new screenshots with every App Store update. Your customers deserve it You realize, there is a spelling mistake in one of the screens? Well, just correct it and re-run the script UI Tests Getting started This project uses Apple's newly announced UI Tests. We will not go into detail on how to write scripts. Here a few links to get started: WWDC 2015 Introduction to UI Tests A first look into UI Tests UI Testing in Xcode 7 HSTestingBackchannel : \u2018Cheat\u2019 by communicating directly with your app Automating App Store screenshots using fastlane snapshot and frameit Quick Start Create a new UI Test target in your Xcode project ( top part of this article ) Run fastlane snapshot init in your project folder Add the ./SnapshotHelper.swift to your UI Test target (You can move the file anywhere you want) (Xcode 8 only) add the ./SnapshotHelperXcode8.swift to your UI Test target (Objective C only) add the bridging header to your test class: #import \"MYUITests-Swift.h\" (The bridging header is named after your test target with -Swift.h appended.) In your UI Test class, click the Record button on the bottom left and record your interaction To take a snapshot, call the following between interactions Swift: snapshot(\"01LoginScreen\") Objective C: [Snapshot snapshot:@\"01LoginScreen\" timeWaitingForIdle:10]; Add the following code to your setUp() method: Swift: let app = XCUIApplication() setupSnapshot(app) app.launch() Objective C: XCUIApplication *app = [[XCUIApplication alloc] init]; [Snapshot setupSnapshot:app waitForAnimations:NO]; [app launch]; Make sure you only have one launch call in your test class, as Xcode adds one automatically on new test files. You can try the snapshot example project by cloning this repo. To quick start your UI tests, you can use the UI Test recorder. You only have to interact with the simulator, and Xcode will generate the UI Test code for you. You can find the red record button on the bottom of the screen (more information in this blog post ) Usage fastlane snapshot Your screenshots will be stored in the ./screenshots/ folder by default (or ./fastlane/screenshots if you're using fastlane ) New with Xcode 9, snapshot can run multiple simulators concurrently. This is the default behavior in order to take your screenshots as quickly as possible. This can be disabled to run each device, one at a time, by setting the :concurrent_simulators option to false . Note: While running snapshot with Xcode 9, the simulators will not be visibly spawned. So, while you won't see the simulators running your tests, they will, in fact, be taking your screenshots. If any error occurs while running the snapshot script on a device, that device will not have any screenshots, and snapshot will continue with the next device or language. To stop the flow after the first error, run fastlane snapshot --stop_after_first_error Also by default, snapshot will open the HTML after all is done. This can be skipped with the following command fastlane snapshot --stop_after_first_error --skip_open_summary There are a lot of options available that define how to build your app, for example fastlane snapshot --scheme \"UITests\" --configuration \"Release\" --sdk \"iphonesimulator\" Reinstall the app before running snapshot fastlane snapshot --reinstall_app --app_identifier \"tools.fastlane.app\" By default snapshot automatically retries running UI Tests if they fail. This is due to randomly failing UI Tests (e.g. #2517 ). You can adapt this number using fastlane snapshot --number_of_retries 3 Add photos and/or videos to the simulator before running snapshot fastlane snapshot --add_photos MyTestApp/Assets/demo.jpg --add_videos MyTestApp/Assets/demo.mp4 For a list for all available options run fastlane action snapshot After running snapshot you will get a nice summary: Snapfile All of the available options can also be stored in a configuration file called the Snapfile . Since most values will not change often for your project, it is recommended to store them there: First make sure to have a Snapfile (you get it for free when running fastlane snapshot init ) The Snapfile can contain all the options that are also available on fastlane action snapshot scheme(\"UITests\") devices([ \"iPad (7th generation)\", \"iPad Air (3rd generation)\", \"iPad Pro (11-inch)\", \"iPad Pro (12.9-inch) (3rd generation)\", \"iPad Pro (9.7-inch)\", \"iPhone 11\", \"iPhone 11 Pro\", \"iPhone 11 Pro Max\", \"iPhone 8\", \"iPhone 8 Plus\" ]) languages([ \"en-US\", \"de-DE\", \"es-ES\", [\"pt\", \"pt_BR\"] # Portuguese with Brazilian locale ]) launch_arguments([\"-username Felix\"]) # The directory in which the screenshots should be stored output_directory('./screenshots') clear_previous_screenshots(true) override_status_bar(true) add_photos([\"MyTestApp/Assets/demo.jpg\"]) Completely reset all simulators You can run this command in the terminal to delete and re-create all iOS and tvOS simulators: fastlane snapshot reset_simulators Warning : This will delete all your simulators and replace by new ones! This is useful, if you run into weird problems when running snapshot . You can use the environment variable SNAPSHOT_FORCE_DELETE to stop asking for confirmation before deleting. SNAPSHOT_FORCE_DELETE=1 fastlane snapshot reset_simulators Update snapshot helpers Some updates require the helper files to be updated. snapshot will automatically warn you and tell you how to update. Basically you can run fastlane snapshot update to update your SnapshotHelper.swift files. In case you modified your SnapshotHelper.swift and want to manually update the file, check out SnapshotHelper.swift . Launch Arguments You can provide additional arguments to your app on launch. These strings will be available in your app (e.g. not in the testing target) through ProcessInfo.processInfo.arguments . Alternatively, use user-default syntax ( -key value ) and they will be available as key-value pairs in UserDefaults.standard . launch_arguments([ \"-firstName Felix -lastName Krause\" ]) name.text = UserDefaults.standard.string(forKey: \"firstName\") // name.text = \"Felix\" snapshot includes -FASTLANE_SNAPSHOT YES , which will set a temporary user default for the key FASTLANE_SNAPSHOT , you may use this to detect when the app is run by snapshot . if UserDefaults.standard.bool(forKey: \"FASTLANE_SNAPSHOT\") { // runtime check that we are in snapshot mode } Specify multiple argument strings and snapshot will generate screenshots for each combination of arguments, devices, and languages. This is useful for comparing the same screenshots with different feature flags, dynamic text sizes, and different data sets. # Snapfile for A/B Test Comparison launch_arguments([ \"-secretFeatureEnabled YES\", \"-secretFeatureEnabled NO\" ]) Xcode Environment Variables snapshot includes FASTLANE_SNAPSHOT=YES and FASTLANE_LANGUAGE= as arguments when executing xcodebuild . This means you may use these environment variables in a custom build phase run script to do any additional configuration. How does it work? The easiest solution would be to just render the UIWindow into a file. That's not possible because UI Tests don't run on a main thread. So snapshot uses a different approach: When you run unit tests in Xcode, the reporter generates a plist file, documenting all events that occurred during the tests ( More Information ). Additionally, Xcode generates screenshots before, during and after each of these events. There is no way to manually trigger a screenshot event. The screenshots and the plist files are stored in the DerivedData directory, which snapshot stores in a temporary folder. When the user calls snapshot(...) in the UI Tests (Swift or Objective C) the script actually does a rotation to .Unknown which doesn't have any effect on the actual app, but is enough to trigger a screenshot. It has no effect to the application and is not something you would do in your tests. The goal was to find some event that a user would never trigger, so that we know it's from snapshot . On tvOS, there is no orientation so we ask for a count of app views with type \"Browser\" (which should never exist on tvOS). snapshot then iterates through all test events and check where we either did this weird rotation (on iOS) or searched for browsers (on tvOS). Once snapshot has all events triggered by snapshot it collects a ordered list of all the file names of the actual screenshots of the application. In the test output, the Swift snapshot function will print out something like this snapshot: [some random text here] snapshot finds all these entries using a regex. The number of snapshot outputs in the terminal and the number of snapshot events in the plist file should be the same. Knowing that, snapshot automatically matches these 2 lists to identify the name of each of these screenshots. They are then copied over to the output directory and separated by language and device. 2 thing have to be passed on from snapshot to the xcodebuild command line tool: The device type is passed via the destination parameter of the xcodebuild parameter The language is passed via a temporary file which is written by snapshot before running the tests and read by the UI Tests when launching the application If you find a better way to do any of this, please submit an issue on GitHub or even a pull request :+1: Radar 23062925 has been resolved with Xcode 8.3, so it's now possible to actually take screenshots from the simulator. We'll keep using the old approach for now, since many of you still want to use older versions of Xcode. Tips Check out the new fastlane documentation on how to generate screenshots Frame the screenshots If you want to add frames around the screenshots and even put a title on top, check out frameit . Available language codes ALL_LANGUAGES = [\"da\", \"de-DE\", \"el\", \"en-AU\", \"en-CA\", \"en-GB\", \"en-US\", \"es-ES\", \"es-MX\", \"fi\", \"fr-CA\", \"fr-FR\", \"id\", \"it\", \"ja\", \"ko\", \"ms\", \"nl-NL\", \"no\", \"pt-BR\", \"pt-PT\", \"ru\", \"sv\", \"th\", \"tr\", \"vi\", \"zh-Hans\", \"zh-Hant\"] To get more information about language and locale codes please read Internationalization and Localization Guide . Use a clean status bar You can set override_status_bar to true to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available. Editing the Snapfile Change syntax highlighting to Ruby . Simulator doesn't launch the application When the app dies directly after the application is launched there might be 2 problems The simulator is somehow in a broken state and you need to re-create it. You can use snapshot reset_simulators to reset all simulators (this will remove all installed apps) A restart helps very often Determine language To detect the currently used localization in your tests, access the deviceLanguage variable from SnapshotHelper.swift . Speed up snapshots A lot of time in UI tests is spent waiting for animations. You can disable UIView animations in your app to make the tests faster: if ProcessInfo().arguments.contains(\"SKIP_ANIMATIONS\") { UIView.setAnimationsEnabled(false) } This requires you to pass the launch argument like so: snapshot(launch_arguments: [\"SKIP_ANIMATIONS\"]) By default, snapshot will wait for a short time for the animations to finish. If you're skipping the animations, this wait time is unnecessary and can be skipped: setupSnapshot(app, waitForAnimations: false) capture_screenshots Supported platforms ios, mac Author @KrauseFx 3 Examples capture_ios_screenshots snapshot # alias for \"capture_ios_screenshots\" capture_ios_screenshots( skip_open_summary: true, clean: true ) Parameters Key Description Default workspace Path the workspace file project Path the project file xcargs Pass additional arguments to xcodebuild for the test phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app devices A list of devices you want to take the screenshots from languages A list of languages which should be used [\"en-US\"] launch_arguments A list of launch arguments which should be used [\"\"] output_directory The directory where to store the screenshots * output_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false ios_version By default, the latest version should be used automatically. If you want to change it, do it here skip_open_summary Don't open the HTML summary after running snapshot false skip_helper_version_check Do not check for most recent SnapshotHelper code false clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running snapshot false reinstall_app Enabling this option will automatically uninstall the application before running it false erase_simulator Enabling this option will automatically erase the simulator before running the application false headless Enabling this option will prevent displaying the simulator window true override_status_bar Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception (Adjust 'SNAPSHOT_SIMULATOR_WAIT_FOR_BOOT_TIMEOUT' environment variable if override status bar is not working. Might be because simulator is not fully booted. Defaults to 10 seconds) false override_status_bar_arguments Fully customize the status bar by setting each option here. Requires override_status_bar to be set to true . See xcrun simctl status_bar --help localize_simulator Enabling this option will configure the Simulator's system language false dark_mode Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark) app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * add_photos A list of photos that should be added to the simulator before running the application add_videos A list of videos that should be added to the simulator before running the application html_template A path to screenshots.html template buildlog_path The directory where to store the build log * clean Should the project be cleaned before building it? false test_without_building Test without building, requires a derived data path configuration The configuration to use when building the app. Defaults to 'Release' * sdk The SDK that should be used for building the application scheme The scheme you want to use, this must be the scheme for the UI Tests number_of_retries The number of times a test can fail before snapshot should stop retrying 1 stop_after_first_error Should snapshot stop immediately after the tests completely failed on one device? false derived_data_path The directory where build products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false test_target_name The name of the target you want to test (if you desire to override the Target Application from Xcode) namespace_log_files Separate the log files per device and per language concurrent_simulators Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9 true disable_slide_to_type Disable the simulator from showing the 'Slide to type' prompt false cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false testplan The testplan associated with the scheme that should be used for testing only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * xcpretty_args DEPRECATED! Use xcodebuild_formatter: '' instead - Additional xcpretty arguments disable_xcpretty Disable xcpretty formatting of build suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The capture_screenshots action generates the following Lane Variables: SharedValue Description SharedValues::SNAPSHOT_SCREENSHOTS_PATH The path to the screenshots To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action capture_screenshots CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run capture_screenshots To pass parameters, make use of the : symbol, for example fastlane run capture_screenshots parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"capture_screenshots"},{"location":"actions/capture_screenshots/#capture_screenshots","text":"Alias for the capture_ios_screenshots action","title":"capture_screenshots"},{"location":"actions/capture_screenshots/#features","text":"Create hundreds of screenshots in multiple languages on all simulators Take screenshots in multiple device simulators concurrently to cut down execution time (Xcode 9 only) Configure it once, store the configuration in git Do something else, while the computer takes the screenshots for you Integrates with fastlane and deliver Generates a beautiful web page, which shows all screenshots on all devices. This is perfect to send to QA or the marketing team snapshot automatically waits for network requests to be finished before taking a screenshot (we don't want loading images in the App Store screenshots) After snapshot successfully created new screenshots, it will generate a beautiful HTML file to get a quick overview of all screens:","title":"Features"},{"location":"actions/capture_screenshots/#why","text":"This tool automatically switches the language and device type and runs UI Tests for every combination.","title":"Why?"},{"location":"actions/capture_screenshots/#ui-tests","text":"","title":"UI Tests"},{"location":"actions/capture_screenshots/#getting-started","text":"This project uses Apple's newly announced UI Tests. We will not go into detail on how to write scripts. Here a few links to get started: WWDC 2015 Introduction to UI Tests A first look into UI Tests UI Testing in Xcode 7 HSTestingBackchannel : \u2018Cheat\u2019 by communicating directly with your app Automating App Store screenshots using fastlane snapshot and frameit","title":"Getting started"},{"location":"actions/capture_screenshots/#quick-start","text":"Create a new UI Test target in your Xcode project ( top part of this article ) Run fastlane snapshot init in your project folder Add the ./SnapshotHelper.swift to your UI Test target (You can move the file anywhere you want) (Xcode 8 only) add the ./SnapshotHelperXcode8.swift to your UI Test target (Objective C only) add the bridging header to your test class: #import \"MYUITests-Swift.h\" (The bridging header is named after your test target with -Swift.h appended.) In your UI Test class, click the Record button on the bottom left and record your interaction To take a snapshot, call the following between interactions Swift: snapshot(\"01LoginScreen\") Objective C: [Snapshot snapshot:@\"01LoginScreen\" timeWaitingForIdle:10]; Add the following code to your setUp() method: Swift: let app = XCUIApplication() setupSnapshot(app) app.launch() Objective C: XCUIApplication *app = [[XCUIApplication alloc] init]; [Snapshot setupSnapshot:app waitForAnimations:NO]; [app launch]; Make sure you only have one launch call in your test class, as Xcode adds one automatically on new test files. You can try the snapshot example project by cloning this repo. To quick start your UI tests, you can use the UI Test recorder. You only have to interact with the simulator, and Xcode will generate the UI Test code for you. You can find the red record button on the bottom of the screen (more information in this blog post )","title":"Quick Start"},{"location":"actions/capture_screenshots/#usage","text":"fastlane snapshot Your screenshots will be stored in the ./screenshots/ folder by default (or ./fastlane/screenshots if you're using fastlane ) New with Xcode 9, snapshot can run multiple simulators concurrently. This is the default behavior in order to take your screenshots as quickly as possible. This can be disabled to run each device, one at a time, by setting the :concurrent_simulators option to false . Note: While running snapshot with Xcode 9, the simulators will not be visibly spawned. So, while you won't see the simulators running your tests, they will, in fact, be taking your screenshots. If any error occurs while running the snapshot script on a device, that device will not have any screenshots, and snapshot will continue with the next device or language. To stop the flow after the first error, run fastlane snapshot --stop_after_first_error Also by default, snapshot will open the HTML after all is done. This can be skipped with the following command fastlane snapshot --stop_after_first_error --skip_open_summary There are a lot of options available that define how to build your app, for example fastlane snapshot --scheme \"UITests\" --configuration \"Release\" --sdk \"iphonesimulator\" Reinstall the app before running snapshot fastlane snapshot --reinstall_app --app_identifier \"tools.fastlane.app\" By default snapshot automatically retries running UI Tests if they fail. This is due to randomly failing UI Tests (e.g. #2517 ). You can adapt this number using fastlane snapshot --number_of_retries 3 Add photos and/or videos to the simulator before running snapshot fastlane snapshot --add_photos MyTestApp/Assets/demo.jpg --add_videos MyTestApp/Assets/demo.mp4 For a list for all available options run fastlane action snapshot After running snapshot you will get a nice summary:","title":"Usage"},{"location":"actions/capture_screenshots/#snapfile","text":"All of the available options can also be stored in a configuration file called the Snapfile . Since most values will not change often for your project, it is recommended to store them there: First make sure to have a Snapfile (you get it for free when running fastlane snapshot init ) The Snapfile can contain all the options that are also available on fastlane action snapshot scheme(\"UITests\") devices([ \"iPad (7th generation)\", \"iPad Air (3rd generation)\", \"iPad Pro (11-inch)\", \"iPad Pro (12.9-inch) (3rd generation)\", \"iPad Pro (9.7-inch)\", \"iPhone 11\", \"iPhone 11 Pro\", \"iPhone 11 Pro Max\", \"iPhone 8\", \"iPhone 8 Plus\" ]) languages([ \"en-US\", \"de-DE\", \"es-ES\", [\"pt\", \"pt_BR\"] # Portuguese with Brazilian locale ]) launch_arguments([\"-username Felix\"]) # The directory in which the screenshots should be stored output_directory('./screenshots') clear_previous_screenshots(true) override_status_bar(true) add_photos([\"MyTestApp/Assets/demo.jpg\"])","title":"Snapfile"},{"location":"actions/capture_screenshots/#update-snapshot-helpers","text":"Some updates require the helper files to be updated. snapshot will automatically warn you and tell you how to update. Basically you can run fastlane snapshot update to update your SnapshotHelper.swift files. In case you modified your SnapshotHelper.swift and want to manually update the file, check out SnapshotHelper.swift .","title":"Update snapshot helpers"},{"location":"actions/capture_screenshots/#launch-arguments","text":"You can provide additional arguments to your app on launch. These strings will be available in your app (e.g. not in the testing target) through ProcessInfo.processInfo.arguments . Alternatively, use user-default syntax ( -key value ) and they will be available as key-value pairs in UserDefaults.standard . launch_arguments([ \"-firstName Felix -lastName Krause\" ]) name.text = UserDefaults.standard.string(forKey: \"firstName\") // name.text = \"Felix\" snapshot includes -FASTLANE_SNAPSHOT YES , which will set a temporary user default for the key FASTLANE_SNAPSHOT , you may use this to detect when the app is run by snapshot . if UserDefaults.standard.bool(forKey: \"FASTLANE_SNAPSHOT\") { // runtime check that we are in snapshot mode } Specify multiple argument strings and snapshot will generate screenshots for each combination of arguments, devices, and languages. This is useful for comparing the same screenshots with different feature flags, dynamic text sizes, and different data sets. # Snapfile for A/B Test Comparison launch_arguments([ \"-secretFeatureEnabled YES\", \"-secretFeatureEnabled NO\" ])","title":"Launch Arguments"},{"location":"actions/capture_screenshots/#xcode-environment-variables","text":"snapshot includes FASTLANE_SNAPSHOT=YES and FASTLANE_LANGUAGE= as arguments when executing xcodebuild . This means you may use these environment variables in a custom build phase run script to do any additional configuration.","title":"Xcode Environment Variables"},{"location":"actions/capture_screenshots/#how-does-it-work","text":"The easiest solution would be to just render the UIWindow into a file. That's not possible because UI Tests don't run on a main thread. So snapshot uses a different approach: When you run unit tests in Xcode, the reporter generates a plist file, documenting all events that occurred during the tests ( More Information ). Additionally, Xcode generates screenshots before, during and after each of these events. There is no way to manually trigger a screenshot event. The screenshots and the plist files are stored in the DerivedData directory, which snapshot stores in a temporary folder. When the user calls snapshot(...) in the UI Tests (Swift or Objective C) the script actually does a rotation to .Unknown which doesn't have any effect on the actual app, but is enough to trigger a screenshot. It has no effect to the application and is not something you would do in your tests. The goal was to find some event that a user would never trigger, so that we know it's from snapshot . On tvOS, there is no orientation so we ask for a count of app views with type \"Browser\" (which should never exist on tvOS). snapshot then iterates through all test events and check where we either did this weird rotation (on iOS) or searched for browsers (on tvOS). Once snapshot has all events triggered by snapshot it collects a ordered list of all the file names of the actual screenshots of the application. In the test output, the Swift snapshot function will print out something like this snapshot: [some random text here] snapshot finds all these entries using a regex. The number of snapshot outputs in the terminal and the number of snapshot events in the plist file should be the same. Knowing that, snapshot automatically matches these 2 lists to identify the name of each of these screenshots. They are then copied over to the output directory and separated by language and device. 2 thing have to be passed on from snapshot to the xcodebuild command line tool: The device type is passed via the destination parameter of the xcodebuild parameter The language is passed via a temporary file which is written by snapshot before running the tests and read by the UI Tests when launching the application If you find a better way to do any of this, please submit an issue on GitHub or even a pull request :+1: Radar 23062925 has been resolved with Xcode 8.3, so it's now possible to actually take screenshots from the simulator. We'll keep using the old approach for now, since many of you still want to use older versions of Xcode.","title":"How does it work?"},{"location":"actions/capture_screenshots/#tips","text":"","title":"Tips"},{"location":"actions/capture_screenshots/#frame-the-screenshots","text":"If you want to add frames around the screenshots and even put a title on top, check out frameit .","title":"Frame the screenshots"},{"location":"actions/capture_screenshots/#available-language-codes","text":"ALL_LANGUAGES = [\"da\", \"de-DE\", \"el\", \"en-AU\", \"en-CA\", \"en-GB\", \"en-US\", \"es-ES\", \"es-MX\", \"fi\", \"fr-CA\", \"fr-FR\", \"id\", \"it\", \"ja\", \"ko\", \"ms\", \"nl-NL\", \"no\", \"pt-BR\", \"pt-PT\", \"ru\", \"sv\", \"th\", \"tr\", \"vi\", \"zh-Hans\", \"zh-Hant\"] To get more information about language and locale codes please read Internationalization and Localization Guide .","title":"Available language codes"},{"location":"actions/capture_screenshots/#use-a-clean-status-bar","text":"You can set override_status_bar to true to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available.","title":"Use a clean status bar"},{"location":"actions/capture_screenshots/#editing-the-snapfile","text":"Change syntax highlighting to Ruby .","title":"Editing the Snapfile"},{"location":"actions/capture_screenshots/#determine-language","text":"To detect the currently used localization in your tests, access the deviceLanguage variable from SnapshotHelper.swift .","title":"Determine language"},{"location":"actions/capture_screenshots/#speed-up-snapshots","text":"A lot of time in UI tests is spent waiting for animations. You can disable UIView animations in your app to make the tests faster: if ProcessInfo().arguments.contains(\"SKIP_ANIMATIONS\") { UIView.setAnimationsEnabled(false) } This requires you to pass the launch argument like so: snapshot(launch_arguments: [\"SKIP_ANIMATIONS\"]) By default, snapshot will wait for a short time for the animations to finish. If you're skipping the animations, this wait time is unnecessary and can be skipped: setupSnapshot(app, waitForAnimations: false) capture_screenshots Supported platforms ios, mac Author @KrauseFx","title":"Speed up snapshots"},{"location":"actions/capture_screenshots/#3-examples","text":"capture_ios_screenshots snapshot # alias for \"capture_ios_screenshots\" capture_ios_screenshots( skip_open_summary: true, clean: true )","title":"3 Examples"},{"location":"actions/capture_screenshots/#parameters","text":"Key Description Default workspace Path the workspace file project Path the project file xcargs Pass additional arguments to xcodebuild for the test phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app devices A list of devices you want to take the screenshots from languages A list of languages which should be used [\"en-US\"] launch_arguments A list of launch arguments which should be used [\"\"] output_directory The directory where to store the screenshots * output_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false ios_version By default, the latest version should be used automatically. If you want to change it, do it here skip_open_summary Don't open the HTML summary after running snapshot false skip_helper_version_check Do not check for most recent SnapshotHelper code false clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running snapshot false reinstall_app Enabling this option will automatically uninstall the application before running it false erase_simulator Enabling this option will automatically erase the simulator before running the application false headless Enabling this option will prevent displaying the simulator window true override_status_bar Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception (Adjust 'SNAPSHOT_SIMULATOR_WAIT_FOR_BOOT_TIMEOUT' environment variable if override status bar is not working. Might be because simulator is not fully booted. Defaults to 10 seconds) false override_status_bar_arguments Fully customize the status bar by setting each option here. Requires override_status_bar to be set to true . See xcrun simctl status_bar --help localize_simulator Enabling this option will configure the Simulator's system language false dark_mode Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark) app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * add_photos A list of photos that should be added to the simulator before running the application add_videos A list of videos that should be added to the simulator before running the application html_template A path to screenshots.html template buildlog_path The directory where to store the build log * clean Should the project be cleaned before building it? false test_without_building Test without building, requires a derived data path configuration The configuration to use when building the app. Defaults to 'Release' * sdk The SDK that should be used for building the application scheme The scheme you want to use, this must be the scheme for the UI Tests number_of_retries The number of times a test can fail before snapshot should stop retrying 1 stop_after_first_error Should snapshot stop immediately after the tests completely failed on one device? false derived_data_path The directory where build products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false test_target_name The name of the target you want to test (if you desire to override the Target Application from Xcode) namespace_log_files Separate the log files per device and per language concurrent_simulators Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9 true disable_slide_to_type Disable the simulator from showing the 'Slide to type' prompt false cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false testplan The testplan associated with the scheme that should be used for testing only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * xcpretty_args DEPRECATED! Use xcodebuild_formatter: '' instead - Additional xcpretty arguments disable_xcpretty Disable xcpretty formatting of build suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/capture_screenshots/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The capture_screenshots action generates the following Lane Variables: SharedValue Description SharedValues::SNAPSHOT_SCREENSHOTS_PATH The path to the screenshots To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/capture_screenshots/#documentation","text":"To show the documentation in your terminal, run fastlane action capture_screenshots","title":"Documentation"},{"location":"actions/capture_screenshots/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run capture_screenshots To pass parameters, make use of the : symbol, for example fastlane run capture_screenshots parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/capture_screenshots/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/carthage/","text":"carthage Runs carthage for your project carthage Supported platforms ios, mac Author @bassrock, @petester42, @jschmid, @JaviSoto, @uny, @phatblat, @bfcrampton, @antondomashnev, @gbrhaz 2 Examples carthage carthage( frameworks: [\"MyFramework1\", \"MyFramework2\"], # Specify which frameworks to archive (only for the archive command) output: \"MyFrameworkBundle.framework.zip\", # Specify the output archive name (only for the archive command) command: \"bootstrap\", # One of: build, bootstrap, update, archive. (default: bootstrap) dependencies: [\"Alamofire\", \"Notice\"],# Specify which dependencies to update or build (only for update, build and bootstrap commands) use_ssh: false, # Use SSH for downloading GitHub repositories. use_submodules: false, # Add dependencies as Git submodules. use_binaries: true, # Check out dependency repositories even when prebuilt frameworks exist no_build: false, # When bootstrapping Carthage do not build no_skip_current: false, # Don't skip building the current project (only for frameworks) verbose: false, # Print xcodebuild output inline platform: \"all\", # Define which platform to build for (one of \u2018all\u2019, \u2018Mac\u2019, \u2018iOS\u2019, \u2018watchOS\u2019, \u2018tvOS\u2018, or comma-separated values of the formers except for \u2018all\u2019) configuration: \"Release\", # Build configuration to use when building cache_builds: true, # By default Carthage will rebuild a dependency regardless of whether its the same resolved version as before. toolchain: \"com.apple.dt.toolchain.Swift_2_3\", # Specify the xcodebuild toolchain new_resolver: false, # Use the new resolver to resolve dependency graph log_path: \"carthage.log\" # Path to the xcode build output ) Parameters Key Description Default command Carthage command (one of: build, bootstrap, update, archive) bootstrap dependencies Carthage dependencies to update, build or bootstrap [] use_ssh Use SSH for downloading GitHub repositories use_submodules Add dependencies as Git submodules use_netrc Use .netrc for downloading frameworks use_binaries Check out dependency repositories even when prebuilt frameworks exist no_checkout When bootstrapping Carthage do not checkout no_build When bootstrapping Carthage do not build no_skip_current Don't skip building the Carthage project (in addition to its dependencies) derived_data Use derived data folder at path verbose Print xcodebuild output inline platform Define which platform to build for cache_builds By default Carthage will rebuild a dependency regardless of whether it's the same resolved version as before. Passing the --cache-builds will cause carthage to avoid rebuilding a dependency if it can false frameworks Framework name or names to archive, could be applied only along with the archive command [] output Output name for the archive, could be applied only along with the archive command. Use following format *.framework.zip configuration Define which build configuration to use when building toolchain Define which xcodebuild toolchain to use when building project_directory Define the directory containing the Carthage project new_resolver Use new resolver when resolving dependency graph log_path Path to the xcode build output use_xcframeworks Create xcframework bundles instead of one framework per platform (requires Xcode 12+) false archive Archive built frameworks from the current project false executable Path to the carthage executable on your machine carthage * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action carthage CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run carthage To pass parameters, make use of the : symbol, for example fastlane run carthage parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"carthage"},{"location":"actions/carthage/#carthage","text":"Runs carthage for your project carthage Supported platforms ios, mac Author @bassrock, @petester42, @jschmid, @JaviSoto, @uny, @phatblat, @bfcrampton, @antondomashnev, @gbrhaz","title":"carthage"},{"location":"actions/carthage/#2-examples","text":"carthage carthage( frameworks: [\"MyFramework1\", \"MyFramework2\"], # Specify which frameworks to archive (only for the archive command) output: \"MyFrameworkBundle.framework.zip\", # Specify the output archive name (only for the archive command) command: \"bootstrap\", # One of: build, bootstrap, update, archive. (default: bootstrap) dependencies: [\"Alamofire\", \"Notice\"],# Specify which dependencies to update or build (only for update, build and bootstrap commands) use_ssh: false, # Use SSH for downloading GitHub repositories. use_submodules: false, # Add dependencies as Git submodules. use_binaries: true, # Check out dependency repositories even when prebuilt frameworks exist no_build: false, # When bootstrapping Carthage do not build no_skip_current: false, # Don't skip building the current project (only for frameworks) verbose: false, # Print xcodebuild output inline platform: \"all\", # Define which platform to build for (one of \u2018all\u2019, \u2018Mac\u2019, \u2018iOS\u2019, \u2018watchOS\u2019, \u2018tvOS\u2018, or comma-separated values of the formers except for \u2018all\u2019) configuration: \"Release\", # Build configuration to use when building cache_builds: true, # By default Carthage will rebuild a dependency regardless of whether its the same resolved version as before. toolchain: \"com.apple.dt.toolchain.Swift_2_3\", # Specify the xcodebuild toolchain new_resolver: false, # Use the new resolver to resolve dependency graph log_path: \"carthage.log\" # Path to the xcode build output )","title":"2 Examples"},{"location":"actions/carthage/#parameters","text":"Key Description Default command Carthage command (one of: build, bootstrap, update, archive) bootstrap dependencies Carthage dependencies to update, build or bootstrap [] use_ssh Use SSH for downloading GitHub repositories use_submodules Add dependencies as Git submodules use_netrc Use .netrc for downloading frameworks use_binaries Check out dependency repositories even when prebuilt frameworks exist no_checkout When bootstrapping Carthage do not checkout no_build When bootstrapping Carthage do not build no_skip_current Don't skip building the Carthage project (in addition to its dependencies) derived_data Use derived data folder at path verbose Print xcodebuild output inline platform Define which platform to build for cache_builds By default Carthage will rebuild a dependency regardless of whether it's the same resolved version as before. Passing the --cache-builds will cause carthage to avoid rebuilding a dependency if it can false frameworks Framework name or names to archive, could be applied only along with the archive command [] output Output name for the archive, could be applied only along with the archive command. Use following format *.framework.zip configuration Define which build configuration to use when building toolchain Define which xcodebuild toolchain to use when building project_directory Define the directory containing the Carthage project new_resolver Use new resolver when resolving dependency graph log_path Path to the xcode build output use_xcframeworks Create xcframework bundles instead of one framework per platform (requires Xcode 12+) false archive Archive built frameworks from the current project false executable Path to the carthage executable on your machine carthage * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/carthage/#documentation","text":"To show the documentation in your terminal, run fastlane action carthage","title":"Documentation"},{"location":"actions/carthage/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run carthage To pass parameters, make use of the : symbol, for example fastlane run carthage parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/carthage/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/cert/","text":"cert Alias for the get_certificates action Why? \u2022 Usage \u2022 How does it work? \u2022 Tips cert is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. In the gif we used cert && sigh , which will first create an iOS code signing certificate and then a provisioning profile for your app if cert succeeded. Usage Note : It is recommended to use match according to the codesigning.guide for generating and maintaining your certificates. Use cert directly only if you want full control over what's going on and know more about codesigning. fastlane cert This will check if any of the available signing certificates is installed on your local machine. Only if a new certificate needs to be created, cert will Create a new private key Create a new signing request Generate, downloads and installs the certificate Import all the generated files into your Keychain cert will never revoke your existing certificates. If you can't create any more certificates, cert will raise an exception, which means, you have to revoke one of the existing certificates to make room for a new one. You can pass your Apple ID: fastlane cert -u cert@krausefx.com For a list of available commands run fastlane action cert Keep in mind, there is no way for cert to download existing certificates + private keys from the Apple Developer Portal, as the private key never leaves your computer. Environment Variables Run fastlane action cert to get a list of all available environment variables. Use with sigh cert becomes really interesting when used in fastlane in combination with sigh . Update your Fastfile to contain the following code: lane :beta do cert sigh(force: true) end force: true will make sure to re-generate the provisioning profile on each run. This will result in sigh always using the correct signing certificate, which is installed on the local machine. How is my password stored? cert uses the password manager from fastlane . Take a look the CredentialsManager README for more information. Tips Use 'ProvisionQL' for advanced Quick Look in Finder Install ProvisionQL . It will show you mobileprovision files like this: cert Supported platforms ios Author @KrauseFx 3 Examples get_certificates cert # alias for \"get_certificates\" get_certificates( development: true, username: \"user@email.com\" ) Parameters Key Description Default development Create a development certificate instead of a distribution one false type Create specific certificate type (takes precedence over :development) force Create a certificate even if an existing certificate exists false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * filename The filename of certificate to store output_path The path to a directory in which all certificates and private keys should be stored . keychain_path Path to a custom keychain * keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false platform Set the provisioning profile's platform (ios, macos, tvos) ios * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The cert action generates the following Lane Variables: SharedValue Description SharedValues::CERT_FILE_PATH The path to the certificate SharedValues::CERT_CERTIFICATE_ID The id of the certificate To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action cert CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run cert To pass parameters, make use of the : symbol, for example fastlane run cert parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"cert"},{"location":"actions/cert/#cert","text":"Alias for the get_certificates action Why? \u2022 Usage \u2022 How does it work? \u2022 Tips","title":"cert"},{"location":"actions/cert/#usage","text":"Note : It is recommended to use match according to the codesigning.guide for generating and maintaining your certificates. Use cert directly only if you want full control over what's going on and know more about codesigning. fastlane cert This will check if any of the available signing certificates is installed on your local machine. Only if a new certificate needs to be created, cert will Create a new private key Create a new signing request Generate, downloads and installs the certificate Import all the generated files into your Keychain cert will never revoke your existing certificates. If you can't create any more certificates, cert will raise an exception, which means, you have to revoke one of the existing certificates to make room for a new one. You can pass your Apple ID: fastlane cert -u cert@krausefx.com For a list of available commands run fastlane action cert Keep in mind, there is no way for cert to download existing certificates + private keys from the Apple Developer Portal, as the private key never leaves your computer.","title":"Usage"},{"location":"actions/cert/#environment-variables","text":"Run fastlane action cert to get a list of all available environment variables.","title":"Environment Variables"},{"location":"actions/cert/#use-with-sigh","text":"cert becomes really interesting when used in fastlane in combination with sigh . Update your Fastfile to contain the following code: lane :beta do cert sigh(force: true) end force: true will make sure to re-generate the provisioning profile on each run. This will result in sigh always using the correct signing certificate, which is installed on the local machine.","title":"Use with sigh"},{"location":"actions/cert/#how-is-my-password-stored","text":"cert uses the password manager from fastlane . Take a look the CredentialsManager README for more information.","title":"How is my password stored?"},{"location":"actions/cert/#tips","text":"","title":"Tips"},{"location":"actions/cert/#use-provisionql-for-advanced-quick-look-in-finder","text":"Install ProvisionQL . It will show you mobileprovision files like this: cert Supported platforms ios Author @KrauseFx","title":"Use 'ProvisionQL' for advanced Quick Look in Finder"},{"location":"actions/cert/#3-examples","text":"get_certificates cert # alias for \"get_certificates\" get_certificates( development: true, username: \"user@email.com\" )","title":"3 Examples"},{"location":"actions/cert/#parameters","text":"Key Description Default development Create a development certificate instead of a distribution one false type Create specific certificate type (takes precedence over :development) force Create a certificate even if an existing certificate exists false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * filename The filename of certificate to store output_path The path to a directory in which all certificates and private keys should be stored . keychain_path Path to a custom keychain * keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false platform Set the provisioning profile's platform (ios, macos, tvos) ios * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/cert/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The cert action generates the following Lane Variables: SharedValue Description SharedValues::CERT_FILE_PATH The path to the certificate SharedValues::CERT_CERTIFICATE_ID The id of the certificate To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/cert/#documentation","text":"To show the documentation in your terminal, run fastlane action cert","title":"Documentation"},{"location":"actions/cert/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run cert To pass parameters, make use of the : symbol, for example fastlane run cert parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/cert/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/changelog_from_git_commits/","text":"changelog_from_git_commits Collect git commit messages into a changelog By default, messages will be collected back to the last tag, but the range can be controlled changelog_from_git_commits Supported platforms ios, android, mac Author @mfurtak, @asfalcone, @SiarheiFedartsou, @allewun Returns Returns a String containing your formatted git commits 2 Examples changelog_from_git_commits changelog_from_git_commits( between: [\"7b092b3\", \"HEAD\"], # Optional, lets you specify a revision/tag range between which to collect commit info pretty: \"- (%ae) %s\",# Optional, lets you provide a custom format to apply to each commit when generating the changelog text date_format: \"short\",# Optional, lets you provide an additional date format to dates within the pretty-formatted string match_lightweight_tag: false, # Optional, lets you ignore lightweight (non-annotated) tags when searching for the last tag merge_commit_filtering: \"exclude_merges\" # Optional, lets you filter out merge commits ) Parameters Key Description Default between Array containing two Git revision values between which to collect messages, you mustn't use it with :commits_count key at the same time commits_count Number of commits to include in changelog, you mustn't use it with :between key at the same time path Path of the git repository ./ pretty The format applied to each commit while generating the collected value %B date_format The date format applied to each commit while generating the collected value ancestry_path Whether or not to use ancestry-path param false tag_match_pattern A glob(7) pattern to match against when finding the last git tag match_lightweight_tag Whether or not to match a lightweight tag when searching for the last one true quiet Whether or not to disable changelog output false include_merges DEPRECATED! Use :merge_commit_filtering instead - Whether or not to include any commits that are merges merge_commit_filtering Controls inclusion of merge commits when collecting the changelog. Valid values: 'include_merges', 'exclude_merges', 'only_include_merges' include_merges * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The changelog_from_git_commits action generates the following Lane Variables: SharedValue Description SharedValues::FL_CHANGELOG The changelog string generated from the collected git commit messages To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action changelog_from_git_commits CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run changelog_from_git_commits To pass parameters, make use of the : symbol, for example fastlane run changelog_from_git_commits parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"changelog_from_git_commits"},{"location":"actions/changelog_from_git_commits/#changelog_from_git_commits","text":"Collect git commit messages into a changelog By default, messages will be collected back to the last tag, but the range can be controlled changelog_from_git_commits Supported platforms ios, android, mac Author @mfurtak, @asfalcone, @SiarheiFedartsou, @allewun Returns Returns a String containing your formatted git commits","title":"changelog_from_git_commits"},{"location":"actions/changelog_from_git_commits/#2-examples","text":"changelog_from_git_commits changelog_from_git_commits( between: [\"7b092b3\", \"HEAD\"], # Optional, lets you specify a revision/tag range between which to collect commit info pretty: \"- (%ae) %s\",# Optional, lets you provide a custom format to apply to each commit when generating the changelog text date_format: \"short\",# Optional, lets you provide an additional date format to dates within the pretty-formatted string match_lightweight_tag: false, # Optional, lets you ignore lightweight (non-annotated) tags when searching for the last tag merge_commit_filtering: \"exclude_merges\" # Optional, lets you filter out merge commits )","title":"2 Examples"},{"location":"actions/changelog_from_git_commits/#parameters","text":"Key Description Default between Array containing two Git revision values between which to collect messages, you mustn't use it with :commits_count key at the same time commits_count Number of commits to include in changelog, you mustn't use it with :between key at the same time path Path of the git repository ./ pretty The format applied to each commit while generating the collected value %B date_format The date format applied to each commit while generating the collected value ancestry_path Whether or not to use ancestry-path param false tag_match_pattern A glob(7) pattern to match against when finding the last git tag match_lightweight_tag Whether or not to match a lightweight tag when searching for the last one true quiet Whether or not to disable changelog output false include_merges DEPRECATED! Use :merge_commit_filtering instead - Whether or not to include any commits that are merges merge_commit_filtering Controls inclusion of merge commits when collecting the changelog. Valid values: 'include_merges', 'exclude_merges', 'only_include_merges' include_merges * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/changelog_from_git_commits/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The changelog_from_git_commits action generates the following Lane Variables: SharedValue Description SharedValues::FL_CHANGELOG The changelog string generated from the collected git commit messages To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/changelog_from_git_commits/#documentation","text":"To show the documentation in your terminal, run fastlane action changelog_from_git_commits","title":"Documentation"},{"location":"actions/changelog_from_git_commits/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run changelog_from_git_commits To pass parameters, make use of the : symbol, for example fastlane run changelog_from_git_commits parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/changelog_from_git_commits/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/chatwork/","text":"chatwork Send a success/error message to ChatWork Information on how to obtain an API token: http://developer.chatwork.com/ja/authenticate.html chatwork Supported platforms ios, android, mac Author @astronaughts 1 Example chatwork( message: \"App successfully released!\", roomid: 12345, success: true, api_token: \"Your Token\" ) Parameters Key Description Default api_token ChatWork API Token message The message to post on ChatWork roomid The room ID success Was this build successful? (true/false) true * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action chatwork CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run chatwork To pass parameters, make use of the : symbol, for example fastlane run chatwork parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"chatwork"},{"location":"actions/chatwork/#chatwork","text":"Send a success/error message to ChatWork Information on how to obtain an API token: http://developer.chatwork.com/ja/authenticate.html chatwork Supported platforms ios, android, mac Author @astronaughts","title":"chatwork"},{"location":"actions/chatwork/#1-example","text":"chatwork( message: \"App successfully released!\", roomid: 12345, success: true, api_token: \"Your Token\" )","title":"1 Example"},{"location":"actions/chatwork/#parameters","text":"Key Description Default api_token ChatWork API Token message The message to post on ChatWork roomid The room ID success Was this build successful? (true/false) true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/chatwork/#documentation","text":"To show the documentation in your terminal, run fastlane action chatwork","title":"Documentation"},{"location":"actions/chatwork/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run chatwork To pass parameters, make use of the : symbol, for example fastlane run chatwork parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/chatwork/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/check_app_store_metadata/","text":"check_app_store_metadata Check your app's metadata before you submit your app to review (via precheck ) precheck Check your app using a community driven set of App Store review rules to avoid being rejected Apple rejects builds for many avoidable metadata issues like including swear words \ud83d\ude2e, other companies\u2019 trademarks, or even mentioning an iOS bug \ud83d\udc1b. fastlane precheck takes a lot of the guess work out by scanning your app\u2019s details in App Store Connect for avoidable problems. fastlane precheck helps you get your app through app review without rejections so you can ship faster \ud83d\ude80 Features \u2022 Usage \u2022 Example \u2022 How does it work? Features precheck Features \ud83d\udc1b \uf8ff product bug mentions \ud83d\ude45 Swear word checker \ud83e\udd16 Mentioning other platforms \ud83d\ude35 URL reachability checker \ud83d\udcdd Placeholder/test words/mentioning future features \ud83d\udcc5 Copyright date checking \ud83d\ude48 Customizable word list checking \ud83d\udce2 You can decide if you want to warn about potential problems and continue or have fastlane show an error and stop after all scans are done Usage Run fastlane precheck to check the app metadata from App Store Connect fastlane precheck To get a list of available options run fastlane action precheck Example Since you might want to manually trigger precheck but don't want to specify all the parameters every time, you can store your defaults in a so called Precheckfile . Run fastlane precheck init to create a new configuration file. Example: # indicates that your metadata will not be checked by this rule negative_apple_sentiment(level: :skip) # when triggered, this rule will warn you of a potential problem curse_words(level: :warn) # show error and prevent any further commands from running after fastlane precheck finishes unreachable_urls(level: :error) # pass in whatever words you want to check for custom_text(data: [\"chrome\", \"webos\"], level: :warn) Use with fastlane precheck is fully integrated with deliver another fastlane tool. Update your Fastfile to contain the following code: lane :production do # ... # by default deliver will call precheck and warn you of any problems # if you want precheck to halt submitting to app review, you can pass # precheck_default_rule_level: :error deliver(precheck_default_rule_level: :error) # ... end # or if you prefer, you can run precheck alone lane :check_metadata do precheck end How does it work? precheck will access App Store Connect to download your app's metadata. It uses spaceship to communicate with Apple's web services. Want to improve precheck's rules? Please submit an issue on GitHub and provide information about your App Store rejection! Make sure you scrub out any personally identifiable information since this will be public. check_app_store_metadata Supported platforms ios Author @taquitos Returns true if precheck passes, else, false 2 Examples check_app_store_metadata( negative_apple_sentiment: [level: :skip], # Set to skip to not run the `negative_apple_sentiment` rule curse_words: [level: :warn] # Set to warn to only warn on curse word check failures ) precheck # alias for \"check_app_store_metadata\" Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * platform The platform to use (optional) ios default_rule_level The default rule level unless otherwise configured :error include_in_app_purchases Should check in-app purchases? true use_live Should force check live app? false negative_apple_sentiment mentioning \uf8ff in a way that could be considered negative placeholder_text using placeholder text (e.g.:\"lorem ipsum\", \"text here\", etc...) other_platforms mentioning other platforms, like Android or Blackberry future_functionality mentioning features or content that is not currently available in your app test_words using text indicating this release is a test curse_words including words that might be considered objectionable free_stuff_in_iap using text indicating that your IAP is free custom_text mentioning any of the user-specified words passed to custom_text(data: [words]) copyright_date using a copyright date that is any different from this current year, or missing a date unreachable_urls unreachable URLs in app metadata * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action check_app_store_metadata CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run check_app_store_metadata To pass parameters, make use of the : symbol, for example fastlane run check_app_store_metadata parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"check_app_store_metadata"},{"location":"actions/check_app_store_metadata/#check_app_store_metadata","text":"Check your app's metadata before you submit your app to review (via precheck )","title":"check_app_store_metadata"},{"location":"actions/check_app_store_metadata/#precheck","text":"","title":"precheck"},{"location":"actions/check_app_store_metadata/#features","text":"precheck Features \ud83d\udc1b \uf8ff product bug mentions \ud83d\ude45 Swear word checker \ud83e\udd16 Mentioning other platforms \ud83d\ude35 URL reachability checker \ud83d\udcdd Placeholder/test words/mentioning future features \ud83d\udcc5 Copyright date checking \ud83d\ude48 Customizable word list checking \ud83d\udce2 You can decide if you want to warn about potential problems and continue or have fastlane show an error and stop after all scans are done","title":"Features"},{"location":"actions/check_app_store_metadata/#usage","text":"Run fastlane precheck to check the app metadata from App Store Connect fastlane precheck To get a list of available options run fastlane action precheck","title":"Usage"},{"location":"actions/check_app_store_metadata/#example","text":"Since you might want to manually trigger precheck but don't want to specify all the parameters every time, you can store your defaults in a so called Precheckfile . Run fastlane precheck init to create a new configuration file. Example: # indicates that your metadata will not be checked by this rule negative_apple_sentiment(level: :skip) # when triggered, this rule will warn you of a potential problem curse_words(level: :warn) # show error and prevent any further commands from running after fastlane precheck finishes unreachable_urls(level: :error) # pass in whatever words you want to check for custom_text(data: [\"chrome\", \"webos\"], level: :warn)","title":"Example"},{"location":"actions/check_app_store_metadata/#how-does-it-work","text":"precheck will access App Store Connect to download your app's metadata. It uses spaceship to communicate with Apple's web services.","title":"How does it work?"},{"location":"actions/check_app_store_metadata/#want-to-improve-prechecks-rules","text":"Please submit an issue on GitHub and provide information about your App Store rejection! Make sure you scrub out any personally identifiable information since this will be public. check_app_store_metadata Supported platforms ios Author @taquitos Returns true if precheck passes, else, false","title":"Want to improve precheck's rules?"},{"location":"actions/check_app_store_metadata/#2-examples","text":"check_app_store_metadata( negative_apple_sentiment: [level: :skip], # Set to skip to not run the `negative_apple_sentiment` rule curse_words: [level: :warn] # Set to warn to only warn on curse word check failures ) precheck # alias for \"check_app_store_metadata\"","title":"2 Examples"},{"location":"actions/check_app_store_metadata/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * platform The platform to use (optional) ios default_rule_level The default rule level unless otherwise configured :error include_in_app_purchases Should check in-app purchases? true use_live Should force check live app? false negative_apple_sentiment mentioning \uf8ff in a way that could be considered negative placeholder_text using placeholder text (e.g.:\"lorem ipsum\", \"text here\", etc...) other_platforms mentioning other platforms, like Android or Blackberry future_functionality mentioning features or content that is not currently available in your app test_words using text indicating this release is a test curse_words including words that might be considered objectionable free_stuff_in_iap using text indicating that your IAP is free custom_text mentioning any of the user-specified words passed to custom_text(data: [words]) copyright_date using a copyright date that is any different from this current year, or missing a date unreachable_urls unreachable URLs in app metadata * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/check_app_store_metadata/#documentation","text":"To show the documentation in your terminal, run fastlane action check_app_store_metadata","title":"Documentation"},{"location":"actions/check_app_store_metadata/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run check_app_store_metadata To pass parameters, make use of the : symbol, for example fastlane run check_app_store_metadata parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/check_app_store_metadata/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/clean_build_artifacts/","text":"clean_build_artifacts Deletes files created as result of running gym, cert, sigh or download_dsyms This action deletes the files that get created in your repo as a result of running the gym and sigh commands. It doesn't delete the fastlane/report.xml though, this is probably more suited for the .gitignore. Useful if you quickly want to send out a test build by dropping down to the command line and typing something like fastlane beta , without leaving your repo in a messy state afterwards. clean_build_artifacts Supported platforms ios, mac Author @lmirosevic 1 Example clean_build_artifacts Parameters Key Description Default exclude_pattern Exclude all files from clearing that match the given Regex pattern: e.g. '.*.mobileprovision' * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action clean_build_artifacts CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run clean_build_artifacts To pass parameters, make use of the : symbol, for example fastlane run clean_build_artifacts parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"clean_build_artifacts"},{"location":"actions/clean_build_artifacts/#clean_build_artifacts","text":"Deletes files created as result of running gym, cert, sigh or download_dsyms This action deletes the files that get created in your repo as a result of running the gym and sigh commands. It doesn't delete the fastlane/report.xml though, this is probably more suited for the .gitignore. Useful if you quickly want to send out a test build by dropping down to the command line and typing something like fastlane beta , without leaving your repo in a messy state afterwards. clean_build_artifacts Supported platforms ios, mac Author @lmirosevic","title":"clean_build_artifacts"},{"location":"actions/clean_build_artifacts/#1-example","text":"clean_build_artifacts","title":"1 Example"},{"location":"actions/clean_build_artifacts/#parameters","text":"Key Description Default exclude_pattern Exclude all files from clearing that match the given Regex pattern: e.g. '.*.mobileprovision' * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/clean_build_artifacts/#documentation","text":"To show the documentation in your terminal, run fastlane action clean_build_artifacts","title":"Documentation"},{"location":"actions/clean_build_artifacts/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run clean_build_artifacts To pass parameters, make use of the : symbol, for example fastlane run clean_build_artifacts parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/clean_build_artifacts/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/clean_cocoapods_cache/","text":"clean_cocoapods_cache Remove the cache for pods clean_cocoapods_cache Supported platforms ios, mac Author @alexmx 2 Examples clean_cocoapods_cache clean_cocoapods_cache(name: \"CACHED_POD\") Parameters Key Description Default name Pod name to be removed from cache no_ansi Show output without ANSI codes false verbose Show more debugging information false silent Show nothing false allow_root Allows CocoaPods to run as root false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action clean_cocoapods_cache CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run clean_cocoapods_cache To pass parameters, make use of the : symbol, for example fastlane run clean_cocoapods_cache parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"clean_cocoapods_cache"},{"location":"actions/clean_cocoapods_cache/#clean_cocoapods_cache","text":"Remove the cache for pods clean_cocoapods_cache Supported platforms ios, mac Author @alexmx","title":"clean_cocoapods_cache"},{"location":"actions/clean_cocoapods_cache/#2-examples","text":"clean_cocoapods_cache clean_cocoapods_cache(name: \"CACHED_POD\")","title":"2 Examples"},{"location":"actions/clean_cocoapods_cache/#parameters","text":"Key Description Default name Pod name to be removed from cache no_ansi Show output without ANSI codes false verbose Show more debugging information false silent Show nothing false allow_root Allows CocoaPods to run as root false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/clean_cocoapods_cache/#documentation","text":"To show the documentation in your terminal, run fastlane action clean_cocoapods_cache","title":"Documentation"},{"location":"actions/clean_cocoapods_cache/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run clean_cocoapods_cache To pass parameters, make use of the : symbol, for example fastlane run clean_cocoapods_cache parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/clean_cocoapods_cache/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/clear_derived_data/","text":"clear_derived_data Deletes the Xcode Derived Data Deletes the Derived Data from path set on Xcode or a supplied path clear_derived_data Supported platforms ios, mac Author @KrauseFx 2 Examples clear_derived_data clear_derived_data(derived_data_path: \"/custom/\") Parameters Key Description Default derived_data_path Custom path for derivedData * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action clear_derived_data CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run clear_derived_data To pass parameters, make use of the : symbol, for example fastlane run clear_derived_data parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"clear_derived_data"},{"location":"actions/clear_derived_data/#clear_derived_data","text":"Deletes the Xcode Derived Data Deletes the Derived Data from path set on Xcode or a supplied path clear_derived_data Supported platforms ios, mac Author @KrauseFx","title":"clear_derived_data"},{"location":"actions/clear_derived_data/#2-examples","text":"clear_derived_data clear_derived_data(derived_data_path: \"/custom/\")","title":"2 Examples"},{"location":"actions/clear_derived_data/#parameters","text":"Key Description Default derived_data_path Custom path for derivedData * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/clear_derived_data/#documentation","text":"To show the documentation in your terminal, run fastlane action clear_derived_data","title":"Documentation"},{"location":"actions/clear_derived_data/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run clear_derived_data To pass parameters, make use of the : symbol, for example fastlane run clear_derived_data parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/clear_derived_data/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/clipboard/","text":"clipboard Copies a given string into the clipboard. Works only on macOS clipboard Supported platforms ios, android, mac Author @KrauseFx, @joshdholtz, @rogerluan 2 Examples clipboard(value: \"https://docs.fastlane.tools/\") clipboard(value: lane_context[SharedValues::HOCKEY_DOWNLOAD_LINK] || \"\") Parameters Key Description Default value The string that should be copied into the clipboard * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action clipboard CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run clipboard To pass parameters, make use of the : symbol, for example fastlane run clipboard parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"clipboard"},{"location":"actions/clipboard/#clipboard","text":"Copies a given string into the clipboard. Works only on macOS clipboard Supported platforms ios, android, mac Author @KrauseFx, @joshdholtz, @rogerluan","title":"clipboard"},{"location":"actions/clipboard/#2-examples","text":"clipboard(value: \"https://docs.fastlane.tools/\") clipboard(value: lane_context[SharedValues::HOCKEY_DOWNLOAD_LINK] || \"\")","title":"2 Examples"},{"location":"actions/clipboard/#parameters","text":"Key Description Default value The string that should be copied into the clipboard * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/clipboard/#documentation","text":"To show the documentation in your terminal, run fastlane action clipboard","title":"Documentation"},{"location":"actions/clipboard/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run clipboard To pass parameters, make use of the : symbol, for example fastlane run clipboard parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/clipboard/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/cloc/","text":"cloc Generates a Code Count that can be read by Jenkins (xml format) This action will run cloc to generate a SLOC report that the Jenkins SLOCCount plugin can read. See https://wiki.jenkins-ci.org/display/JENKINS/SLOCCount+Plugin and https://github.com/AlDanial/cloc for more information. cloc Supported platforms ios, mac Author @intere 1 Example cloc( exclude_dir: \"ThirdParty,Resources\", output_directory: \"reports\", source_directory: \"MyCoolApp\" ) Parameters Key Description Default binary_path Where the cloc binary lives on your system (full path including 'cloc') /usr/local/bin/cloc exclude_dir Comma separated list of directories to exclude output_directory Where to put the generated report file build source_directory Where to look for the source code (relative to the project root folder) '' xml Should we generate an XML File (if false, it will generate a plain text file)? true * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action cloc CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run cloc To pass parameters, make use of the : symbol, for example fastlane run cloc parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"cloc"},{"location":"actions/cloc/#cloc","text":"Generates a Code Count that can be read by Jenkins (xml format) This action will run cloc to generate a SLOC report that the Jenkins SLOCCount plugin can read. See https://wiki.jenkins-ci.org/display/JENKINS/SLOCCount+Plugin and https://github.com/AlDanial/cloc for more information. cloc Supported platforms ios, mac Author @intere","title":"cloc"},{"location":"actions/cloc/#1-example","text":"cloc( exclude_dir: \"ThirdParty,Resources\", output_directory: \"reports\", source_directory: \"MyCoolApp\" )","title":"1 Example"},{"location":"actions/cloc/#parameters","text":"Key Description Default binary_path Where the cloc binary lives on your system (full path including 'cloc') /usr/local/bin/cloc exclude_dir Comma separated list of directories to exclude output_directory Where to put the generated report file build source_directory Where to look for the source code (relative to the project root folder) '' xml Should we generate an XML File (if false, it will generate a plain text file)? true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/cloc/#documentation","text":"To show the documentation in your terminal, run fastlane action cloc","title":"Documentation"},{"location":"actions/cloc/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run cloc To pass parameters, make use of the : symbol, for example fastlane run cloc parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/cloc/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/clubmate/","text":"clubmate Print a Club Mate in your build output clubmate | -----|---- Supported platforms | ios, android, mac Author | @KrauseFx To show the documentation in your terminal, run fastlane action clubmate View source code Back to actions","title":"Clubmate"},{"location":"actions/clubmate/#clubmate","text":"Print a Club Mate in your build output clubmate | -----|---- Supported platforms | ios, android, mac Author | @KrauseFx To show the documentation in your terminal, run fastlane action clubmate View source code Back to actions","title":"clubmate"},{"location":"actions/cocoapods/","text":"cocoapods Runs pod install for the project If you use CocoaPods you can use the cocoapods integration to run pod install before building your app. cocoapods Supported platforms ios, mac Author @KrauseFx, @tadpol, @birmacher, @Liquidsoul 2 Examples cocoapods cocoapods( clean_install: true, podfile: \"./CustomPodfile\" ) Parameters Key Description Default repo_update Add --repo-update flag to pod install command false clean_install Execute a full pod installation ignoring the content of the project cache false silent Execute command without logging output false verbose Show more debugging information false ansi Show output with ANSI codes true use_bundle_exec Use bundle exec when there is a Gemfile presented true podfile Explicitly specify the path to the Cocoapods' Podfile. You can either set it to the Podfile's path or to the folder containing the Podfile file error_callback A callback invoked with the command output if there is a non-zero exit status try_repo_update_on_error Retry with --repo-update if action was finished with error false deployment Disallow any changes to the Podfile or the Podfile.lock during installation false allow_root Allows CocoaPods to run as root false clean DEPRECATED! (Option renamed as clean_install) Remove SCM directories true integrate DEPRECATED! (Option removed from cocoapods) Integrate the Pods libraries into the Xcode project(s) true * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action cocoapods CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run cocoapods To pass parameters, make use of the : symbol, for example fastlane run cocoapods parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"cocoapods"},{"location":"actions/cocoapods/#cocoapods","text":"Runs pod install for the project If you use CocoaPods you can use the cocoapods integration to run pod install before building your app. cocoapods Supported platforms ios, mac Author @KrauseFx, @tadpol, @birmacher, @Liquidsoul","title":"cocoapods"},{"location":"actions/cocoapods/#2-examples","text":"cocoapods cocoapods( clean_install: true, podfile: \"./CustomPodfile\" )","title":"2 Examples"},{"location":"actions/cocoapods/#parameters","text":"Key Description Default repo_update Add --repo-update flag to pod install command false clean_install Execute a full pod installation ignoring the content of the project cache false silent Execute command without logging output false verbose Show more debugging information false ansi Show output with ANSI codes true use_bundle_exec Use bundle exec when there is a Gemfile presented true podfile Explicitly specify the path to the Cocoapods' Podfile. You can either set it to the Podfile's path or to the folder containing the Podfile file error_callback A callback invoked with the command output if there is a non-zero exit status try_repo_update_on_error Retry with --repo-update if action was finished with error false deployment Disallow any changes to the Podfile or the Podfile.lock during installation false allow_root Allows CocoaPods to run as root false clean DEPRECATED! (Option renamed as clean_install) Remove SCM directories true integrate DEPRECATED! (Option removed from cocoapods) Integrate the Pods libraries into the Xcode project(s) true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/cocoapods/#documentation","text":"To show the documentation in your terminal, run fastlane action cocoapods","title":"Documentation"},{"location":"actions/cocoapods/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run cocoapods To pass parameters, make use of the : symbol, for example fastlane run cocoapods parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/cocoapods/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/commit_github_file/","text":"commit_github_file This will commit a file directly on GitHub via the API Commits a file directly to GitHub. You must provide your GitHub Personal token (get one from https://github.com/settings/tokens/new ), the repository name and the relative file path from the root git project. Out parameters provide the commit sha created, which can be used for later usage for examples such as releases, the direct download link and the full response JSON. Documentation: https://developer.github.com/v3/repos/contents/#create-a-file . commit_github_file Supported platforms ios, android, mac Author @tommeier Returns A hash containing all relevant information for this commit Access things like 'html_url', 'sha', 'message' 1 Example response = commit_github_file( repository_name: \"fastlane/fastlane\", server_url: \"https://api.github.com\", api_token: ENV[\"GITHUB_TOKEN\"], message: \"Add my new file\", branch: \"master\", path: \"assets/my_new_file.xcarchive\" ) Parameters Key Description Default repository_name The path to your repo, e.g. 'fastlane/fastlane' server_url The server url. e.g. 'https://your.internal.github.host/api/v3' (Default: 'https://api.github.com') https://api.github.com api_token Personal API Token for GitHub - generate one at https://github.com/settings/tokens * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable branch The branch that the file should be committed on (default: master) master path The relative path to your file from project root e.g. assets/my_app.xcarchive message The commit message. Defaults to the file name * secure Optionally disable secure requests (ssl_verify_peer) true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The commit_github_file action generates the following Lane Variables: SharedValue Description SharedValues::COMMIT_GITHUB_FILE_HTML_LINK Link to your committed file SharedValues::COMMIT_GITHUB_FILE_SHA Commit SHA generated SharedValues::COMMIT_GITHUB_FILE_JSON The whole commit JSON object response To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action commit_github_file CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run commit_github_file To pass parameters, make use of the : symbol, for example fastlane run commit_github_file parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"commit_github_file"},{"location":"actions/commit_github_file/#commit_github_file","text":"This will commit a file directly on GitHub via the API Commits a file directly to GitHub. You must provide your GitHub Personal token (get one from https://github.com/settings/tokens/new ), the repository name and the relative file path from the root git project. Out parameters provide the commit sha created, which can be used for later usage for examples such as releases, the direct download link and the full response JSON. Documentation: https://developer.github.com/v3/repos/contents/#create-a-file . commit_github_file Supported platforms ios, android, mac Author @tommeier Returns A hash containing all relevant information for this commit Access things like 'html_url', 'sha', 'message'","title":"commit_github_file"},{"location":"actions/commit_github_file/#1-example","text":"response = commit_github_file( repository_name: \"fastlane/fastlane\", server_url: \"https://api.github.com\", api_token: ENV[\"GITHUB_TOKEN\"], message: \"Add my new file\", branch: \"master\", path: \"assets/my_new_file.xcarchive\" )","title":"1 Example"},{"location":"actions/commit_github_file/#parameters","text":"Key Description Default repository_name The path to your repo, e.g. 'fastlane/fastlane' server_url The server url. e.g. 'https://your.internal.github.host/api/v3' (Default: 'https://api.github.com') https://api.github.com api_token Personal API Token for GitHub - generate one at https://github.com/settings/tokens * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable branch The branch that the file should be committed on (default: master) master path The relative path to your file from project root e.g. assets/my_app.xcarchive message The commit message. Defaults to the file name * secure Optionally disable secure requests (ssl_verify_peer) true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/commit_github_file/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The commit_github_file action generates the following Lane Variables: SharedValue Description SharedValues::COMMIT_GITHUB_FILE_HTML_LINK Link to your committed file SharedValues::COMMIT_GITHUB_FILE_SHA Commit SHA generated SharedValues::COMMIT_GITHUB_FILE_JSON The whole commit JSON object response To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/commit_github_file/#documentation","text":"To show the documentation in your terminal, run fastlane action commit_github_file","title":"Documentation"},{"location":"actions/commit_github_file/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run commit_github_file To pass parameters, make use of the : symbol, for example fastlane run commit_github_file parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/commit_github_file/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/commit_version_bump/","text":"commit_version_bump Creates a 'Version Bump' commit. Run after increment_build_number This action will create a 'Version Bump' commit in your repo. Useful in conjunction with increment_build_number . It checks the repo to make sure that only the relevant files have changed. These are the files that increment_build_number ( agvtool ) touches: All .plist files The .xcodeproj/project.pbxproj file Then commits those files to the repo. Customize the message with the :message option. It defaults to 'Version Bump'. If you have other uncommitted changes in your repo, this action will fail. If you started off in a clean repo, and used the ipa and or sigh actions, then you can use the clean_build_artifacts action to clean those temporary files up before running this action. commit_version_bump Supported platforms ios, mac Author @lmirosevic 8 Examples commit_version_bump commit_version_bump( message: \"Version Bump\",# create a commit with a custom message xcodeproj: \"./path/to/MyProject.xcodeproj\" # optional, if you have multiple Xcode project files, you must specify your main project here ) commit_version_bump( settings: true # Include Settings.bundle/Root.plist ) commit_version_bump( settings: \"About.plist\" # Include Settings.bundle/About.plist ) commit_version_bump( settings: %w[About.plist Root.plist] # Include more than one plist from Settings.bundle ) commit_version_bump( include: %w[package.json custom.cfg] # include other updated files as part of the version bump ) commit_version_bump( ignore: /OtherProject/ # ignore files matching a regular expression ) commit_version_bump( no_verify: true # optional, default: false ) Parameters Key Description Default message The commit message when committing the version bump xcodeproj The path to your project file (Not the workspace). If you have only one, this is optional force Forces the commit, even if other files than the ones containing the version number have been modified false settings Include Settings.bundle/Root.plist with version bump false ignore A regular expression used to filter matched plist files to be modified include A list of extra files to be included in the version bump (string array or comma-separated string) [] no_verify Whether or not to use --no-verify false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The commit_version_bump action generates the following Lane Variables: SharedValue Description SharedValues::MODIFIED_FILES The list of paths of modified files To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action commit_version_bump CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run commit_version_bump To pass parameters, make use of the : symbol, for example fastlane run commit_version_bump parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"commit_version_bump"},{"location":"actions/commit_version_bump/#commit_version_bump","text":"Creates a 'Version Bump' commit. Run after increment_build_number This action will create a 'Version Bump' commit in your repo. Useful in conjunction with increment_build_number . It checks the repo to make sure that only the relevant files have changed. These are the files that increment_build_number ( agvtool ) touches: All .plist files The .xcodeproj/project.pbxproj file Then commits those files to the repo. Customize the message with the :message option. It defaults to 'Version Bump'. If you have other uncommitted changes in your repo, this action will fail. If you started off in a clean repo, and used the ipa and or sigh actions, then you can use the clean_build_artifacts action to clean those temporary files up before running this action. commit_version_bump Supported platforms ios, mac Author @lmirosevic","title":"commit_version_bump"},{"location":"actions/commit_version_bump/#8-examples","text":"commit_version_bump commit_version_bump( message: \"Version Bump\",# create a commit with a custom message xcodeproj: \"./path/to/MyProject.xcodeproj\" # optional, if you have multiple Xcode project files, you must specify your main project here ) commit_version_bump( settings: true # Include Settings.bundle/Root.plist ) commit_version_bump( settings: \"About.plist\" # Include Settings.bundle/About.plist ) commit_version_bump( settings: %w[About.plist Root.plist] # Include more than one plist from Settings.bundle ) commit_version_bump( include: %w[package.json custom.cfg] # include other updated files as part of the version bump ) commit_version_bump( ignore: /OtherProject/ # ignore files matching a regular expression ) commit_version_bump( no_verify: true # optional, default: false )","title":"8 Examples"},{"location":"actions/commit_version_bump/#parameters","text":"Key Description Default message The commit message when committing the version bump xcodeproj The path to your project file (Not the workspace). If you have only one, this is optional force Forces the commit, even if other files than the ones containing the version number have been modified false settings Include Settings.bundle/Root.plist with version bump false ignore A regular expression used to filter matched plist files to be modified include A list of extra files to be included in the version bump (string array or comma-separated string) [] no_verify Whether or not to use --no-verify false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/commit_version_bump/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The commit_version_bump action generates the following Lane Variables: SharedValue Description SharedValues::MODIFIED_FILES The list of paths of modified files To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/commit_version_bump/#documentation","text":"To show the documentation in your terminal, run fastlane action commit_version_bump","title":"Documentation"},{"location":"actions/commit_version_bump/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run commit_version_bump To pass parameters, make use of the : symbol, for example fastlane run commit_version_bump parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/commit_version_bump/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/copy_artifacts/","text":"copy_artifacts Copy and save your build artifacts (useful when you use reset_git_repo) This action copies artifacts to a target directory. It's useful if you have a CI that will pick up these artifacts and attach them to the build. Useful e.g. for storing your .ipa s, .dSYM.zip s, .mobileprovision s, .cert s. Make sure your :target_path is ignored from git, and if you use reset_git_repo , make sure the artifacts are added to the exclude list. copy_artifacts Supported platforms ios, android, mac Author @lmirosevic 2 Examples copy_artifacts( target_path: \"artifacts\", artifacts: [\"*.cer\", \"*.mobileprovision\", \"*.ipa\", \"*.dSYM.zip\", \"path/to/file.txt\", \"another/path/*.extension\"] ) # Reset the git repo to a clean state, but leave our artifacts in place reset_git_repo( exclude: \"artifacts\" ) # Copy the .ipa created by _gym_ if it was successfully created artifacts = [] artifacts << lane_context[SharedValues::IPA_OUTPUT_PATH] if lane_context[SharedValues::IPA_OUTPUT_PATH] copy_artifacts( artifacts: artifacts ) Parameters Key Description Default keep_original Set this to false if you want move, rather than copy, the found artifacts true target_path The directory in which you want your artifacts placed artifacts artifacts An array of file patterns of the files/folders you want to preserve [] fail_on_missing Fail when a source file isn't found false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action copy_artifacts CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run copy_artifacts To pass parameters, make use of the : symbol, for example fastlane run copy_artifacts parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"copy_artifacts"},{"location":"actions/copy_artifacts/#copy_artifacts","text":"Copy and save your build artifacts (useful when you use reset_git_repo) This action copies artifacts to a target directory. It's useful if you have a CI that will pick up these artifacts and attach them to the build. Useful e.g. for storing your .ipa s, .dSYM.zip s, .mobileprovision s, .cert s. Make sure your :target_path is ignored from git, and if you use reset_git_repo , make sure the artifacts are added to the exclude list. copy_artifacts Supported platforms ios, android, mac Author @lmirosevic","title":"copy_artifacts"},{"location":"actions/copy_artifacts/#2-examples","text":"copy_artifacts( target_path: \"artifacts\", artifacts: [\"*.cer\", \"*.mobileprovision\", \"*.ipa\", \"*.dSYM.zip\", \"path/to/file.txt\", \"another/path/*.extension\"] ) # Reset the git repo to a clean state, but leave our artifacts in place reset_git_repo( exclude: \"artifacts\" ) # Copy the .ipa created by _gym_ if it was successfully created artifacts = [] artifacts << lane_context[SharedValues::IPA_OUTPUT_PATH] if lane_context[SharedValues::IPA_OUTPUT_PATH] copy_artifacts( artifacts: artifacts )","title":"2 Examples"},{"location":"actions/copy_artifacts/#parameters","text":"Key Description Default keep_original Set this to false if you want move, rather than copy, the found artifacts true target_path The directory in which you want your artifacts placed artifacts artifacts An array of file patterns of the files/folders you want to preserve [] fail_on_missing Fail when a source file isn't found false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/copy_artifacts/#documentation","text":"To show the documentation in your terminal, run fastlane action copy_artifacts","title":"Documentation"},{"location":"actions/copy_artifacts/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run copy_artifacts To pass parameters, make use of the : symbol, for example fastlane run copy_artifacts parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/copy_artifacts/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/create_app_on_managed_play_store/","text":"create_app_on_managed_play_store Create Managed Google Play Apps Create new apps on Managed Google Play. create_app_on_managed_play_store Supported platforms android Author @janpio 1 Example create_app_on_managed_play_store( json_key: 'path/to/you/json/key/file', developer_account_id: 'developer_account_id', # obtained using the `get_managed_play_store_publishing_rights` action (or looking at the Play Console url) app_title: 'Your app title', language: 'en_US', # primary app language in BCP 47 format apk: '/files/app-release.apk' ) Parameters Key Description Default json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * developer_account_id The ID of your Google Play Console account. Can be obtained from the URL when you log in ( https://play.google.com/apps/publish/?account=... or when you 'Obtain private app publishing rights' (https://developers.google.com/android/work/play/custom-app-api/get-started#retrieve_the_developer_account_id) * apk Path to the APK file to upload * app_title App Title language Default app language (e.g. 'en_US') en_US root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action create_app_on_managed_play_store CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_app_on_managed_play_store To pass parameters, make use of the : symbol, for example fastlane run create_app_on_managed_play_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"create_app_on_managed_play_store"},{"location":"actions/create_app_on_managed_play_store/#create_app_on_managed_play_store","text":"Create Managed Google Play Apps Create new apps on Managed Google Play. create_app_on_managed_play_store Supported platforms android Author @janpio","title":"create_app_on_managed_play_store"},{"location":"actions/create_app_on_managed_play_store/#1-example","text":"create_app_on_managed_play_store( json_key: 'path/to/you/json/key/file', developer_account_id: 'developer_account_id', # obtained using the `get_managed_play_store_publishing_rights` action (or looking at the Play Console url) app_title: 'Your app title', language: 'en_US', # primary app language in BCP 47 format apk: '/files/app-release.apk' )","title":"1 Example"},{"location":"actions/create_app_on_managed_play_store/#parameters","text":"Key Description Default json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * developer_account_id The ID of your Google Play Console account. Can be obtained from the URL when you log in ( https://play.google.com/apps/publish/?account=... or when you 'Obtain private app publishing rights' (https://developers.google.com/android/work/play/custom-app-api/get-started#retrieve_the_developer_account_id) * apk Path to the APK file to upload * app_title App Title language Default app language (e.g. 'en_US') en_US root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/create_app_on_managed_play_store/#documentation","text":"To show the documentation in your terminal, run fastlane action create_app_on_managed_play_store","title":"Documentation"},{"location":"actions/create_app_on_managed_play_store/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_app_on_managed_play_store To pass parameters, make use of the : symbol, for example fastlane run create_app_on_managed_play_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/create_app_on_managed_play_store/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/create_app_online/","text":"create_app_online Creates the given application on iTC and the Dev Portal (via produce ) Create new iOS apps on App Store Connect and Apple Developer Portal using your command line produce creates new iOS apps on both the Apple Developer Portal and App Store Connect with the minimum required information. Features \u2022 Usage \u2022 How does it work? Features Create new apps on both App Store Connect and the Apple Developer Portal Modify Application Services on the Apple Developer Portal Create App Groups on the Apple Developer Portal Associate apps with App Groups on the Apple Developer Portal Create iCloud Containers on the Apple Developer Portal Associate apps with iCloud Containers on the Apple Developer Portal Create Merchant Identifiers on the Apple Developer Portal Associate apps with Merchant Identifiers on the Apple Developer Portal Support for multiple Apple accounts , storing your credentials securely in the Keychain Usage Creating a new application fastlane produce To get a list of all available parameters: fastlane produce --help Commands: (* default) associate_group Associate with a group, which is created if needed or simply located otherwise associate_merchant Associate with a merchant for use with Apple Pay. Apple Pay will be enabled for this app create * Creates a new app on App Store Connect and the Apple Developer Portal disable_services Disable specific Application Services for a specific app on the Apple Developer Portal enable_services Enable specific Application Services for a specific app on the Apple Developer Portal group Ensure that a specific App Group exists cloud_container Ensure that a specific iCloud Container exists help Display global or [command] help documentation merchant Ensure that a specific Merchant exists Global Options: --verbose -h, --help Display help documentation -v, --version Display version information Options for create: -u, --username STRING Your Apple ID Username (PRODUCE_USERNAME) -a, --app_identifier STRING App Identifier (Bundle ID, e.g. com.krausefx.app) (PRODUCE_APP_IDENTIFIER) -e, --bundle_identifier_suffix STRING App Identifier Suffix (Ignored if App Identifier does not ends with .*) (PRODUCE_APP_IDENTIFIER_SUFFIX) -q, --app_name STRING App Name (PRODUCE_APP_NAME) -z, --app_version STRING Initial version number (e.g. '1.0') (PRODUCE_VERSION) -y, --sku STRING SKU Number (e.g. '1234') (PRODUCE_SKU) -j, --platform STRING The platform to use (optional) (PRODUCE_PLATFORM) -m, --language STRING Primary Language (e.g. 'English', 'German') (PRODUCE_LANGUAGE) -c, --company_name STRING The name of your company. It's used to set company name on App Store Connect team's app pages. Only required if it's the first app you create (PRODUCE_COMPANY_NAME) -i, --skip_itc [VALUE] Skip the creation of the app on App Store Connect (PRODUCE_SKIP_ITC) -d, --skip_devcenter [VALUE] Skip the creation of the app on the Apple Developer Portal (PRODUCE_SKIP_DEVCENTER) -s, --itc_users ARRAY Array of App Store Connect users. If provided, you can limit access to this newly created app for users with the App Manager, Developer, Marketer or Sales roles (ITC_USERS) -b, --team_id STRING The ID of your Developer Portal team if you're in multiple teams (PRODUCE_TEAM_ID) -l, --team_name STRING The name of your Developer Portal team if you're in multiple teams (PRODUCE_TEAM_NAME) -k, --itc_team_id [VALUE] The ID of your App Store Connect team if you're in multiple teams (PRODUCE_ITC_TEAM_ID) -p, --itc_team_name STRING The name of your App Store Connect team if you're in multiple teams (PRODUCE_ITC_TEAM_NAME) Enabling / Disabling Application Services If you want to enable Application Services for an App ID (HomeKit and HealthKit in this example): fastlane produce enable_services --homekit --healthkit If you want to disable Application Services for an App ID (iCloud in this case): fastlane produce disable_services --icloud If you want to create a new App Group: fastlane produce group -g group.krausefx -n \"Example App Group\" If you want to associate an app with an App Group: fastlane produce associate_group -a com.krausefx.app group.krausefx If you want to create a new iCloud Container: fastlane produce cloud_container -g iCloud.com.krausefx.app -n \"Example iCloud Container\" If you want to associate an app with an iCloud Container: fastlane produce associate_cloud_container -a com.krausefx.app iCloud.com.krausefx.app If you want to associate an app with multiple iCloud Containers: fastlane produce associate_cloud_container -a com.krausefx.app iCloud.com.krausefx.app1 iCloud.com.krausefx.app2 Parameters Get a list of all available options using fastlane produce enable_services --help --access-wifi Enable Access Wifi --app-attest Enable App Attest --app-group Enable App Group --apple-pay Enable Apple Pay --associated-domains Enable Associated Domains --auto-fill-credential Enable Auto Fill Credential --class-kit Enable Class Kit --icloud STRING Enable iCloud, suitable values are \"xcode5_compatible\" and \"xcode6_compatible\" --custom-network-protocol Enable Custom Network Protocol --data-protection STRING Enable Data Protection, suitable values are \"complete\", \"unlessopen\" and \"untilfirstauth\" --extended-virtual-address-space Enable Extended Virtual Address Space --game-center STRING Enable Game Center, suitable values are \"ios\" and \"macos --health-kit Enable Health Kit --hls-interstitial-preview Enable Hls Interstitial Preview --home-kit Enable Home Kit --hotspot Enable Hotspot --in-app-purchase Enable In App Purchase --inter-app-audio Enable Inter App Audio --low-latency-hls Enable Low Latency Hls --managed-associated-domains Enable Managed Associated Domains --maps Enable Maps --multipath Enable Multipath --network-extension Enable Network Extension --nfc-tag-reading Enable NFC Tag Reading --personal-vpn Enable Personal VPN --passbook Enable Passbook (deprecated) --push-notification Enable Push Notification --sign-in-with-apple Enable Sign In With Apple --siri-kit Enable Siri Kit --system-extension Enable System Extension --user-management Enable User Management --vpn-configuration Enable Vpn Configuration (deprecated) --wallet Enable Wallet --wireless-accessory Enable Wireless Accessory --car-play-audio-app Enable Car Play Audio App --car-play-messaging-app Enable Car Play Messaging App --car-play-navigation-app Enable Car Play Navigation App --car-play-voip-calling-app Enable Car Play Voip Calling App --critical-alerts Enable Critical Alerts --hotspot-helper Enable Hotspot Helper --driver-kit Enable DriverKit --driver-kit-endpoint-security Enable DriverKit Endpoint Security --driver-kit-family-hid-device Enable DriverKit Family HID Device --driver-kit-family-networking Enable DriverKit Family Networking --driver-kit-family-serial Enable DriverKit Family Serial --driver-kit-hid-event-service Enable DriverKit HID EventService --driver-kit-transport-hid Enable DriverKit Transport HID --multitasking-camera-access Enable Multitasking Camera Access --sf-universal-link-api Enable SFUniversalLink API --vp9-decoder Enable VP9 Decoder --music-kit Enable MusicKit --shazam-kit Enable ShazamKit --communication-notifications Enable Communication Notifications --group-activities Enable Group Activities --health-kit-estimate-recalibration Enable HealthKit Estimate Recalibration --time-sensitive-notifications Enable Time Sensitive Notifications fastlane produce disable_services --help --access-wifi Disable Access Wifi --app-attest Disable App Attest --app-group Disable App Group --apple-pay Disable Apple Pay --associated-domains Disable Associated Domains --auto-fill-credential Disable Auto Fill Credential --class-kit Disable Class Kit --icloud STRING Disable iCloud --custom-network-protocol Disable Custom Network Protocol --data-protection STRING Disable Data Protection --extended-virtual-address-space Disable Extended Virtual Address Space --game-center STRING Disable Game Center --health-kit Disable Health Kit --hls-interstitial-preview Disable Hls Interstitial Preview --home-kit Disable Home Kit --hotspot Disable Hotspot --in-app-purchase Disable In App Purchase --inter-app-audio Disable Inter App Audio --low-latency-hls Disable Low Latency Hls --managed-associated-domains Disable Managed Associated Domains --maps Disable Maps --multipath Disable Multipath --network-extension Disable Network Extension --nfc-tag-reading Disable NFC Tag Reading --personal-vpn Disable Personal VPN --passbook Disable Passbook (deprecated) --push-notification Disable Push Notification --sign-in-with-apple Disable Sign In With Apple --siri-kit Disable Siri Kit --system-extension Disable System Extension --user-management Disable User Management --vpn-configuration Disable Vpn Configuration (deprecated) --wallet Disable Wallet --wireless-accessory Disable Wireless Accessory --car-play-audio-app Disable Car Play Audio App --car-play-messaging-app Disable Car Play Messaging App --car-play-navigation-app Disable Car Play Navigation App --car-play-voip-calling-app Disable Car Play Voip Calling App --critical-alerts Disable Critical Alerts --hotspot-helper Disable Hotspot Helper --driver-kit Disable DriverKit --driver-kit-endpoint-security Disable DriverKit Endpoint Security --driver-kit-family-hid-device Disable DriverKit Family HID Device --driver-kit-family-networking Disable DriverKit Family Networking --driver-kit-family-serial Disable DriverKit Family Serial --driver-kit-hid-event-service Disable DriverKit HID EventService --driver-kit-transport-hid Disable DriverKit Transport HID --multitasking-camera-access Disable Multitasking Camera Access --sf-universal-link-api Disable SFUniversalLink API --vp9-decoder Disable VP9 Decoder --music-kit Disable MusicKit --shazam-kit Disable ShazamKit --communication-notifications Disable Communication Notifications --group-activities Disable Group Activities --health-kit-estimate-recalibration Disable HealthKit Estimate Recalibration --time-sensitive-notifications Disable Time Sensitive Notifications Creating Apple Pay merchants and associating them with an App ID If you want to create a new Apple Pay Merchant Identifier: fastlane produce merchant -o merchant.com.example.production -r \"Example Merchant Production\" Use --help for more information about all available parameters fastlane produce merchant --help If you want to associate an app with a Merchant Identifier: fastlane produce associate_merchant -a com.krausefx.app merchant.com.example.production If you want to associate an app with multiple Merchant Identifiers: fastlane produce associate_merchant -a com.krausefx.app merchant.com.example.production merchant.com.example.sandbox Use --help for more information about all available parameters fastlane produce associate_merchant --help Environment Variables All available values can also be passed using environment variables, run fastlane produce --help to get a list of all available parameters. fastlane Integration Your Fastfile should look like this lane :release do produce( username: 'felix@krausefx.com', app_identifier: 'com.krausefx.app', app_name: 'MyApp', language: 'English', app_version: '1.0', sku: '123', team_name: 'SunApps GmbH', # only necessary when in multiple teams # Optional # App services can be enabled during app creation enable_services: { access_wifi: \"on\", # Valid values: \"on\", \"off\" app_attest: \"on\", # Valid values: \"on\", \"off\" app_group: \"on\", # Valid values: \"on\", \"off\" apple_pay: \"on\", # Valid values: \"on\", \"off\" associated_domains: \"on\", # Valid values: \"on\", \"off\" auto_fill_credential: \"on\", # Valid values: \"on\", \"off\" car_play_audio_app: \"on\", # Valid values: \"on\", \"off\" car_play_messaging_app: \"on\", # Valid values: \"on\", \"off\" car_play_navigation_app: \"on\", # Valid values: \"on\", \"off\" car_play_voip_calling_app: \"on\", # Valid values: \"on\", \"off\" class_kit: \"on\", # Valid values: \"on\", \"off\" icloud: \"xcode5_compatible\", # Valid values: \"xcode5_compatible\", \"xcode6_compatible\", \"off\" critical_alerts: \"on\", # Valid values: \"on\", \"off\" custom_network_protocol: \"on\", # Valid values: \"on\", \"off\" data_protection: \"complete\", # Valid values: \"complete\", \"unlessopen\", \"untilfirstauth\", \"off\" extended_virtual_address_space: \"on\", # Valid values: \"on\", \"off\" file_provider_testing_mode: \"on\", # Valid values: \"on\", \"off\" fonts: \"on\", # Valid values: \"on\", \"off\" game_center: \"ios\", # Valid values: \"ios\", \"macos\", off\" health_kit: \"on\", # Valid values: \"on\", \"off\" hls_interstitial_preview: \"on\", # Valid values: \"on\", \"off\" home_kit: \"on\", # Valid values: \"on\", \"off\" hotspot: \"on\", # Valid values: \"on\", \"off\" hotspot_helper: \"on\", # Valid values: \"on\", \"off\" in_app_purchase: \"on\", # Valid values: \"on\", \"off\" inter_app_audio: \"on\", # Valid values: \"on\", \"off\" low_latency_hls: \"on\", # Valid values: \"on\", \"off\" managed_associated_domains: \"on\", # Valid values: \"on\", \"off\" maps: \"on\", # Valid values: \"on\", \"off\" multipath: \"on\", # Valid values: \"on\", \"off\" network_extension: \"on\", # Valid values: \"on\", \"off\" nfc_tag_reading: \"on\", # Valid values: \"on\", \"off\" passbook: \"on\", # Valid values: \"on\", \"off\" (deprecated) personal_vpn: \"on\", # Valid values: \"on\", \"off\" push_notification: \"on\", # Valid values: \"on\", \"off\" sign_in_with_apple: \"on\", # Valid values: \"on\", \"off\" siri_kit: \"on\", # Valid values: \"on\", \"off\" system_extension: \"on\", # Valid values: \"on\", \"off\" user_management: \"on\", # Valid values: \"on\", \"off\" vpn_configuration: \"on\", # Valid values: \"on\", \"off\" (deprecated) wallet: \"on\", # Valid values: \"on\", \"off\" wireless_accessory: \"on\", # Valid values: \"on\", \"off\" driver_kit: \"on\", # Valid values: \"on\", \"off\" driver_kit_endpoint_security: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_hid_device: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_networking: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_serial: \"on\", # Valid values: \"on\", \"off\" driver_kit_hid_event_service: \"on\", # Valid values: \"on\", \"off\" driver_kit_transport_hid: \"on\", # Valid values: \"on\", \"off\" multitasking_camera_access: \"on\", # Valid values: \"on\", \"off\" sf_universal_link_api: \"on\", # Valid values: \"on\", \"off\" vp9_decoder: \"on\", # Valid values: \"on\", \"off\" music_kit: \"on\", # Valid values: \"on\", \"off\" shazam_kit: \"on\", # Valid values: \"on\", \"off\" communication_notifications: \"on\", # Valid values: \"on\", \"off\" group_activities: \"on\", # Valid values: \"on\", \"off\" health_kit_estimate_recalibration: \"on\", # Valid values: \"on\", \"off\" time_sensitive_notifications: \"on\", # Valid values: \"on\", \"off\" } ) deliver end To use the newly generated app in deliver , you need to add this line to your Deliverfile : apple_id(ENV['PRODUCE_APPLE_ID']) This will tell deliver , which App ID to use, since the app is not yet available in the App Store. You'll still have to fill out the remaining information (like screenshots, app description and pricing). You can use deliver to upload your app metadata using a CLI How is my password stored? produce uses the password manager from fastlane . Take a look the CredentialsManager README for more information. create_app_online Supported platforms ios Author @KrauseFx 2 Examples create_app_online( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", app_name: \"MyApp\", language: \"English\", app_version: \"1.0\", sku: \"123\", team_name: \"SunApps GmbH\" # Only necessary when in multiple teams. ) produce # alias for \"create_app_online\" Parameters Key Description Default username Your Apple ID Username * app_identifier App Identifier (Bundle ID, e.g. com.krausefx.app) * bundle_identifier_suffix App Identifier Suffix (Ignored if App Identifier does not end with .*) app_name App Name app_version Initial version number (e.g. '1.0') sku SKU Number (e.g. '1234') * platform The platform to use (optional) ios platforms The platforms to use (optional) language Primary Language (e.g. 'en-US', 'fr-FR') English company_name The name of your company. It's used to set company name on App Store Connect team's app pages. Only required if it's the first app you create skip_itc Skip the creation of the app on App Store Connect false itc_users Array of App Store Connect users. If provided, you can limit access to this newly created app for users with the App Manager, Developer, Marketer or Sales roles enabled_features DEPRECATED! Please use enable_services instead - Array with Spaceship App Services {} enable_services Array with Spaceship App Services (e.g. access_wifi: (on|off), app_attest: (on|off), app_group: (on|off), apple_pay: (on|off), associated_domains: (on|off), auto_fill_credential: (on|off), class_kit: (on|off), icloud: (legacy|cloudkit), custom_network_protocol: (on|off), data_protection: (complete|unlessopen|untilfirstauth), extended_virtual_address_space: (on|off), family_controls: (on|off), file_provider_testing_mode: (on|off), fonts: (on|off), game_center: (ios|mac), health_kit: (on|off), hls_interstitial_preview: (on|off), home_kit: (on|off), hotspot: (on|off), in_app_purchase: (on|off), inter_app_audio: (on|off), low_latency_hls: (on|off), managed_associated_domains: (on|off), maps: (on|off), multipath: (on|off), network_extension: (on|off), nfc_tag_reading: (on|off), personal_vpn: (on|off), passbook: (on|off), push_notification: (on|off), sign_in_with_apple: (on), siri_kit: (on|off), system_extension: (on|off), user_management: (on|off), vpn_configuration: (on|off), wallet: (on|off), wireless_accessory: (on|off), car_play_audio_app: (on|off), car_play_messaging_app: (on|off), car_play_navigation_app: (on|off), car_play_voip_calling_app: (on|off), critical_alerts: (on|off), hotspot_helper: (on|off), driver_kit: (on|off), driver_kit_endpoint_security: (on|off), driver_kit_family_hid_device: (on|off), driver_kit_family_networking: (on|off), driver_kit_family_serial: (on|off), driver_kit_hid_event_service: (on|off), driver_kit_transport_hid: (on|off), multitasking_camera_access: (on|off), sf_universal_link_api: (on|off), vp9_decoder: (on|off), music_kit: (on|off), shazam_kit: (on|off), communication_notifications: (on|off), group_activities: (on|off), health_kit_estimate_recalibration: (on|off), time_sensitive_notifications: (on|off)) {} skip_devcenter Skip the creation of the app on the Apple Developer Portal false team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * itc_team_id The ID of your App Store Connect team if you're in multiple teams * itc_team_name The name of your App Store Connect team if you're in multiple teams * * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The create_app_online action generates the following Lane Variables: SharedValue Description SharedValues::PRODUCE_APPLE_ID The Apple ID of the newly created app. You probably need it for deliver To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action create_app_online CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_app_online To pass parameters, make use of the : symbol, for example fastlane run create_app_online parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"create_app_online"},{"location":"actions/create_app_online/#create_app_online","text":"Creates the given application on iTC and the Dev Portal (via produce )","title":"create_app_online"},{"location":"actions/create_app_online/#features","text":"Create new apps on both App Store Connect and the Apple Developer Portal Modify Application Services on the Apple Developer Portal Create App Groups on the Apple Developer Portal Associate apps with App Groups on the Apple Developer Portal Create iCloud Containers on the Apple Developer Portal Associate apps with iCloud Containers on the Apple Developer Portal Create Merchant Identifiers on the Apple Developer Portal Associate apps with Merchant Identifiers on the Apple Developer Portal Support for multiple Apple accounts , storing your credentials securely in the Keychain","title":"Features"},{"location":"actions/create_app_online/#usage","text":"","title":"Usage"},{"location":"actions/create_app_online/#creating-a-new-application","text":"fastlane produce To get a list of all available parameters: fastlane produce --help Commands: (* default) associate_group Associate with a group, which is created if needed or simply located otherwise associate_merchant Associate with a merchant for use with Apple Pay. Apple Pay will be enabled for this app create * Creates a new app on App Store Connect and the Apple Developer Portal disable_services Disable specific Application Services for a specific app on the Apple Developer Portal enable_services Enable specific Application Services for a specific app on the Apple Developer Portal group Ensure that a specific App Group exists cloud_container Ensure that a specific iCloud Container exists help Display global or [command] help documentation merchant Ensure that a specific Merchant exists Global Options: --verbose -h, --help Display help documentation -v, --version Display version information Options for create: -u, --username STRING Your Apple ID Username (PRODUCE_USERNAME) -a, --app_identifier STRING App Identifier (Bundle ID, e.g. com.krausefx.app) (PRODUCE_APP_IDENTIFIER) -e, --bundle_identifier_suffix STRING App Identifier Suffix (Ignored if App Identifier does not ends with .*) (PRODUCE_APP_IDENTIFIER_SUFFIX) -q, --app_name STRING App Name (PRODUCE_APP_NAME) -z, --app_version STRING Initial version number (e.g. '1.0') (PRODUCE_VERSION) -y, --sku STRING SKU Number (e.g. '1234') (PRODUCE_SKU) -j, --platform STRING The platform to use (optional) (PRODUCE_PLATFORM) -m, --language STRING Primary Language (e.g. 'English', 'German') (PRODUCE_LANGUAGE) -c, --company_name STRING The name of your company. It's used to set company name on App Store Connect team's app pages. Only required if it's the first app you create (PRODUCE_COMPANY_NAME) -i, --skip_itc [VALUE] Skip the creation of the app on App Store Connect (PRODUCE_SKIP_ITC) -d, --skip_devcenter [VALUE] Skip the creation of the app on the Apple Developer Portal (PRODUCE_SKIP_DEVCENTER) -s, --itc_users ARRAY Array of App Store Connect users. If provided, you can limit access to this newly created app for users with the App Manager, Developer, Marketer or Sales roles (ITC_USERS) -b, --team_id STRING The ID of your Developer Portal team if you're in multiple teams (PRODUCE_TEAM_ID) -l, --team_name STRING The name of your Developer Portal team if you're in multiple teams (PRODUCE_TEAM_NAME) -k, --itc_team_id [VALUE] The ID of your App Store Connect team if you're in multiple teams (PRODUCE_ITC_TEAM_ID) -p, --itc_team_name STRING The name of your App Store Connect team if you're in multiple teams (PRODUCE_ITC_TEAM_NAME)","title":"Creating a new application"},{"location":"actions/create_app_online/#enabling-disabling-application-services","text":"If you want to enable Application Services for an App ID (HomeKit and HealthKit in this example): fastlane produce enable_services --homekit --healthkit If you want to disable Application Services for an App ID (iCloud in this case): fastlane produce disable_services --icloud If you want to create a new App Group: fastlane produce group -g group.krausefx -n \"Example App Group\" If you want to associate an app with an App Group: fastlane produce associate_group -a com.krausefx.app group.krausefx If you want to create a new iCloud Container: fastlane produce cloud_container -g iCloud.com.krausefx.app -n \"Example iCloud Container\" If you want to associate an app with an iCloud Container: fastlane produce associate_cloud_container -a com.krausefx.app iCloud.com.krausefx.app If you want to associate an app with multiple iCloud Containers: fastlane produce associate_cloud_container -a com.krausefx.app iCloud.com.krausefx.app1 iCloud.com.krausefx.app2","title":"Enabling / Disabling Application Services"},{"location":"actions/create_app_online/#parameters","text":"Get a list of all available options using fastlane produce enable_services --help --access-wifi Enable Access Wifi --app-attest Enable App Attest --app-group Enable App Group --apple-pay Enable Apple Pay --associated-domains Enable Associated Domains --auto-fill-credential Enable Auto Fill Credential --class-kit Enable Class Kit --icloud STRING Enable iCloud, suitable values are \"xcode5_compatible\" and \"xcode6_compatible\" --custom-network-protocol Enable Custom Network Protocol --data-protection STRING Enable Data Protection, suitable values are \"complete\", \"unlessopen\" and \"untilfirstauth\" --extended-virtual-address-space Enable Extended Virtual Address Space --game-center STRING Enable Game Center, suitable values are \"ios\" and \"macos --health-kit Enable Health Kit --hls-interstitial-preview Enable Hls Interstitial Preview --home-kit Enable Home Kit --hotspot Enable Hotspot --in-app-purchase Enable In App Purchase --inter-app-audio Enable Inter App Audio --low-latency-hls Enable Low Latency Hls --managed-associated-domains Enable Managed Associated Domains --maps Enable Maps --multipath Enable Multipath --network-extension Enable Network Extension --nfc-tag-reading Enable NFC Tag Reading --personal-vpn Enable Personal VPN --passbook Enable Passbook (deprecated) --push-notification Enable Push Notification --sign-in-with-apple Enable Sign In With Apple --siri-kit Enable Siri Kit --system-extension Enable System Extension --user-management Enable User Management --vpn-configuration Enable Vpn Configuration (deprecated) --wallet Enable Wallet --wireless-accessory Enable Wireless Accessory --car-play-audio-app Enable Car Play Audio App --car-play-messaging-app Enable Car Play Messaging App --car-play-navigation-app Enable Car Play Navigation App --car-play-voip-calling-app Enable Car Play Voip Calling App --critical-alerts Enable Critical Alerts --hotspot-helper Enable Hotspot Helper --driver-kit Enable DriverKit --driver-kit-endpoint-security Enable DriverKit Endpoint Security --driver-kit-family-hid-device Enable DriverKit Family HID Device --driver-kit-family-networking Enable DriverKit Family Networking --driver-kit-family-serial Enable DriverKit Family Serial --driver-kit-hid-event-service Enable DriverKit HID EventService --driver-kit-transport-hid Enable DriverKit Transport HID --multitasking-camera-access Enable Multitasking Camera Access --sf-universal-link-api Enable SFUniversalLink API --vp9-decoder Enable VP9 Decoder --music-kit Enable MusicKit --shazam-kit Enable ShazamKit --communication-notifications Enable Communication Notifications --group-activities Enable Group Activities --health-kit-estimate-recalibration Enable HealthKit Estimate Recalibration --time-sensitive-notifications Enable Time Sensitive Notifications fastlane produce disable_services --help --access-wifi Disable Access Wifi --app-attest Disable App Attest --app-group Disable App Group --apple-pay Disable Apple Pay --associated-domains Disable Associated Domains --auto-fill-credential Disable Auto Fill Credential --class-kit Disable Class Kit --icloud STRING Disable iCloud --custom-network-protocol Disable Custom Network Protocol --data-protection STRING Disable Data Protection --extended-virtual-address-space Disable Extended Virtual Address Space --game-center STRING Disable Game Center --health-kit Disable Health Kit --hls-interstitial-preview Disable Hls Interstitial Preview --home-kit Disable Home Kit --hotspot Disable Hotspot --in-app-purchase Disable In App Purchase --inter-app-audio Disable Inter App Audio --low-latency-hls Disable Low Latency Hls --managed-associated-domains Disable Managed Associated Domains --maps Disable Maps --multipath Disable Multipath --network-extension Disable Network Extension --nfc-tag-reading Disable NFC Tag Reading --personal-vpn Disable Personal VPN --passbook Disable Passbook (deprecated) --push-notification Disable Push Notification --sign-in-with-apple Disable Sign In With Apple --siri-kit Disable Siri Kit --system-extension Disable System Extension --user-management Disable User Management --vpn-configuration Disable Vpn Configuration (deprecated) --wallet Disable Wallet --wireless-accessory Disable Wireless Accessory --car-play-audio-app Disable Car Play Audio App --car-play-messaging-app Disable Car Play Messaging App --car-play-navigation-app Disable Car Play Navigation App --car-play-voip-calling-app Disable Car Play Voip Calling App --critical-alerts Disable Critical Alerts --hotspot-helper Disable Hotspot Helper --driver-kit Disable DriverKit --driver-kit-endpoint-security Disable DriverKit Endpoint Security --driver-kit-family-hid-device Disable DriverKit Family HID Device --driver-kit-family-networking Disable DriverKit Family Networking --driver-kit-family-serial Disable DriverKit Family Serial --driver-kit-hid-event-service Disable DriverKit HID EventService --driver-kit-transport-hid Disable DriverKit Transport HID --multitasking-camera-access Disable Multitasking Camera Access --sf-universal-link-api Disable SFUniversalLink API --vp9-decoder Disable VP9 Decoder --music-kit Disable MusicKit --shazam-kit Disable ShazamKit --communication-notifications Disable Communication Notifications --group-activities Disable Group Activities --health-kit-estimate-recalibration Disable HealthKit Estimate Recalibration --time-sensitive-notifications Disable Time Sensitive Notifications","title":"Parameters"},{"location":"actions/create_app_online/#creating-apple-pay-merchants-and-associating-them-with-an-app-id","text":"If you want to create a new Apple Pay Merchant Identifier: fastlane produce merchant -o merchant.com.example.production -r \"Example Merchant Production\" Use --help for more information about all available parameters fastlane produce merchant --help If you want to associate an app with a Merchant Identifier: fastlane produce associate_merchant -a com.krausefx.app merchant.com.example.production If you want to associate an app with multiple Merchant Identifiers: fastlane produce associate_merchant -a com.krausefx.app merchant.com.example.production merchant.com.example.sandbox Use --help for more information about all available parameters fastlane produce associate_merchant --help","title":"Creating Apple Pay merchants and associating them with an App ID"},{"location":"actions/create_app_online/#environment-variables","text":"All available values can also be passed using environment variables, run fastlane produce --help to get a list of all available parameters.","title":"Environment Variables"},{"location":"actions/create_app_online/#fastlane-integration","text":"Your Fastfile should look like this lane :release do produce( username: 'felix@krausefx.com', app_identifier: 'com.krausefx.app', app_name: 'MyApp', language: 'English', app_version: '1.0', sku: '123', team_name: 'SunApps GmbH', # only necessary when in multiple teams # Optional # App services can be enabled during app creation enable_services: { access_wifi: \"on\", # Valid values: \"on\", \"off\" app_attest: \"on\", # Valid values: \"on\", \"off\" app_group: \"on\", # Valid values: \"on\", \"off\" apple_pay: \"on\", # Valid values: \"on\", \"off\" associated_domains: \"on\", # Valid values: \"on\", \"off\" auto_fill_credential: \"on\", # Valid values: \"on\", \"off\" car_play_audio_app: \"on\", # Valid values: \"on\", \"off\" car_play_messaging_app: \"on\", # Valid values: \"on\", \"off\" car_play_navigation_app: \"on\", # Valid values: \"on\", \"off\" car_play_voip_calling_app: \"on\", # Valid values: \"on\", \"off\" class_kit: \"on\", # Valid values: \"on\", \"off\" icloud: \"xcode5_compatible\", # Valid values: \"xcode5_compatible\", \"xcode6_compatible\", \"off\" critical_alerts: \"on\", # Valid values: \"on\", \"off\" custom_network_protocol: \"on\", # Valid values: \"on\", \"off\" data_protection: \"complete\", # Valid values: \"complete\", \"unlessopen\", \"untilfirstauth\", \"off\" extended_virtual_address_space: \"on\", # Valid values: \"on\", \"off\" file_provider_testing_mode: \"on\", # Valid values: \"on\", \"off\" fonts: \"on\", # Valid values: \"on\", \"off\" game_center: \"ios\", # Valid values: \"ios\", \"macos\", off\" health_kit: \"on\", # Valid values: \"on\", \"off\" hls_interstitial_preview: \"on\", # Valid values: \"on\", \"off\" home_kit: \"on\", # Valid values: \"on\", \"off\" hotspot: \"on\", # Valid values: \"on\", \"off\" hotspot_helper: \"on\", # Valid values: \"on\", \"off\" in_app_purchase: \"on\", # Valid values: \"on\", \"off\" inter_app_audio: \"on\", # Valid values: \"on\", \"off\" low_latency_hls: \"on\", # Valid values: \"on\", \"off\" managed_associated_domains: \"on\", # Valid values: \"on\", \"off\" maps: \"on\", # Valid values: \"on\", \"off\" multipath: \"on\", # Valid values: \"on\", \"off\" network_extension: \"on\", # Valid values: \"on\", \"off\" nfc_tag_reading: \"on\", # Valid values: \"on\", \"off\" passbook: \"on\", # Valid values: \"on\", \"off\" (deprecated) personal_vpn: \"on\", # Valid values: \"on\", \"off\" push_notification: \"on\", # Valid values: \"on\", \"off\" sign_in_with_apple: \"on\", # Valid values: \"on\", \"off\" siri_kit: \"on\", # Valid values: \"on\", \"off\" system_extension: \"on\", # Valid values: \"on\", \"off\" user_management: \"on\", # Valid values: \"on\", \"off\" vpn_configuration: \"on\", # Valid values: \"on\", \"off\" (deprecated) wallet: \"on\", # Valid values: \"on\", \"off\" wireless_accessory: \"on\", # Valid values: \"on\", \"off\" driver_kit: \"on\", # Valid values: \"on\", \"off\" driver_kit_endpoint_security: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_hid_device: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_networking: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_serial: \"on\", # Valid values: \"on\", \"off\" driver_kit_hid_event_service: \"on\", # Valid values: \"on\", \"off\" driver_kit_transport_hid: \"on\", # Valid values: \"on\", \"off\" multitasking_camera_access: \"on\", # Valid values: \"on\", \"off\" sf_universal_link_api: \"on\", # Valid values: \"on\", \"off\" vp9_decoder: \"on\", # Valid values: \"on\", \"off\" music_kit: \"on\", # Valid values: \"on\", \"off\" shazam_kit: \"on\", # Valid values: \"on\", \"off\" communication_notifications: \"on\", # Valid values: \"on\", \"off\" group_activities: \"on\", # Valid values: \"on\", \"off\" health_kit_estimate_recalibration: \"on\", # Valid values: \"on\", \"off\" time_sensitive_notifications: \"on\", # Valid values: \"on\", \"off\" } ) deliver end To use the newly generated app in deliver , you need to add this line to your Deliverfile : apple_id(ENV['PRODUCE_APPLE_ID']) This will tell deliver , which App ID to use, since the app is not yet available in the App Store. You'll still have to fill out the remaining information (like screenshots, app description and pricing). You can use deliver to upload your app metadata using a CLI","title":"fastlane Integration"},{"location":"actions/create_app_online/#how-is-my-password-stored","text":"produce uses the password manager from fastlane . Take a look the CredentialsManager README for more information. create_app_online Supported platforms ios Author @KrauseFx","title":"How is my password stored?"},{"location":"actions/create_app_online/#2-examples","text":"create_app_online( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", app_name: \"MyApp\", language: \"English\", app_version: \"1.0\", sku: \"123\", team_name: \"SunApps GmbH\" # Only necessary when in multiple teams. ) produce # alias for \"create_app_online\"","title":"2 Examples"},{"location":"actions/create_app_online/#parameters_1","text":"Key Description Default username Your Apple ID Username * app_identifier App Identifier (Bundle ID, e.g. com.krausefx.app) * bundle_identifier_suffix App Identifier Suffix (Ignored if App Identifier does not end with .*) app_name App Name app_version Initial version number (e.g. '1.0') sku SKU Number (e.g. '1234') * platform The platform to use (optional) ios platforms The platforms to use (optional) language Primary Language (e.g. 'en-US', 'fr-FR') English company_name The name of your company. It's used to set company name on App Store Connect team's app pages. Only required if it's the first app you create skip_itc Skip the creation of the app on App Store Connect false itc_users Array of App Store Connect users. If provided, you can limit access to this newly created app for users with the App Manager, Developer, Marketer or Sales roles enabled_features DEPRECATED! Please use enable_services instead - Array with Spaceship App Services {} enable_services Array with Spaceship App Services (e.g. access_wifi: (on|off), app_attest: (on|off), app_group: (on|off), apple_pay: (on|off), associated_domains: (on|off), auto_fill_credential: (on|off), class_kit: (on|off), icloud: (legacy|cloudkit), custom_network_protocol: (on|off), data_protection: (complete|unlessopen|untilfirstauth), extended_virtual_address_space: (on|off), family_controls: (on|off), file_provider_testing_mode: (on|off), fonts: (on|off), game_center: (ios|mac), health_kit: (on|off), hls_interstitial_preview: (on|off), home_kit: (on|off), hotspot: (on|off), in_app_purchase: (on|off), inter_app_audio: (on|off), low_latency_hls: (on|off), managed_associated_domains: (on|off), maps: (on|off), multipath: (on|off), network_extension: (on|off), nfc_tag_reading: (on|off), personal_vpn: (on|off), passbook: (on|off), push_notification: (on|off), sign_in_with_apple: (on), siri_kit: (on|off), system_extension: (on|off), user_management: (on|off), vpn_configuration: (on|off), wallet: (on|off), wireless_accessory: (on|off), car_play_audio_app: (on|off), car_play_messaging_app: (on|off), car_play_navigation_app: (on|off), car_play_voip_calling_app: (on|off), critical_alerts: (on|off), hotspot_helper: (on|off), driver_kit: (on|off), driver_kit_endpoint_security: (on|off), driver_kit_family_hid_device: (on|off), driver_kit_family_networking: (on|off), driver_kit_family_serial: (on|off), driver_kit_hid_event_service: (on|off), driver_kit_transport_hid: (on|off), multitasking_camera_access: (on|off), sf_universal_link_api: (on|off), vp9_decoder: (on|off), music_kit: (on|off), shazam_kit: (on|off), communication_notifications: (on|off), group_activities: (on|off), health_kit_estimate_recalibration: (on|off), time_sensitive_notifications: (on|off)) {} skip_devcenter Skip the creation of the app on the Apple Developer Portal false team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * itc_team_id The ID of your App Store Connect team if you're in multiple teams * itc_team_name The name of your App Store Connect team if you're in multiple teams * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/create_app_online/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The create_app_online action generates the following Lane Variables: SharedValue Description SharedValues::PRODUCE_APPLE_ID The Apple ID of the newly created app. You probably need it for deliver To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/create_app_online/#documentation","text":"To show the documentation in your terminal, run fastlane action create_app_online","title":"Documentation"},{"location":"actions/create_app_online/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_app_online To pass parameters, make use of the : symbol, for example fastlane run create_app_online parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/create_app_online/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/create_keychain/","text":"create_keychain Create a new Keychain create_keychain Supported platforms ios, android, mac Author @gin0606 1 Example create_keychain( name: \"KeychainName\", default_keychain: true, unlock: true, timeout: 3600, lock_when_sleeps: true ) Parameters Key Description Default name Keychain name path Path to keychain password Password for the keychain default_keychain Should the newly created Keychain be the new system default keychain false unlock Unlock keychain after create false timeout timeout interval in seconds. Set 0 if you want to specify \"no time-out\" 300 lock_when_sleeps Lock keychain when the system sleeps false lock_after_timeout Lock keychain after timeout interval false add_to_search_list Add keychain to search list true require_create Fail the action if the Keychain already exists false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The create_keychain action generates the following Lane Variables: SharedValue Description SharedValues::ORIGINAL_DEFAULT_KEYCHAIN The path to the default keychain SharedValues::KEYCHAIN_PATH The path of the keychain To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action create_keychain CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_keychain To pass parameters, make use of the : symbol, for example fastlane run create_keychain parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"create_keychain"},{"location":"actions/create_keychain/#create_keychain","text":"Create a new Keychain create_keychain Supported platforms ios, android, mac Author @gin0606","title":"create_keychain"},{"location":"actions/create_keychain/#1-example","text":"create_keychain( name: \"KeychainName\", default_keychain: true, unlock: true, timeout: 3600, lock_when_sleeps: true )","title":"1 Example"},{"location":"actions/create_keychain/#parameters","text":"Key Description Default name Keychain name path Path to keychain password Password for the keychain default_keychain Should the newly created Keychain be the new system default keychain false unlock Unlock keychain after create false timeout timeout interval in seconds. Set 0 if you want to specify \"no time-out\" 300 lock_when_sleeps Lock keychain when the system sleeps false lock_after_timeout Lock keychain after timeout interval false add_to_search_list Add keychain to search list true require_create Fail the action if the Keychain already exists false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/create_keychain/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The create_keychain action generates the following Lane Variables: SharedValue Description SharedValues::ORIGINAL_DEFAULT_KEYCHAIN The path to the default keychain SharedValues::KEYCHAIN_PATH The path of the keychain To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/create_keychain/#documentation","text":"To show the documentation in your terminal, run fastlane action create_keychain","title":"Documentation"},{"location":"actions/create_keychain/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_keychain To pass parameters, make use of the : symbol, for example fastlane run create_keychain parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/create_keychain/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/create_pull_request/","text":"create_pull_request This will create a new pull request on GitHub create_pull_request Supported platforms ios, android, mac Author @seei, @tommeier, @marumemomo, @elneruda, @kagemiku Returns The pull request URL when successful 1 Example create_pull_request( api_token: \"secret\", # optional, defaults to ENV[\"GITHUB_API_TOKEN\"] repo: \"fastlane/fastlane\", title: \"Amazing new feature\", head: \"my-feature\", # optional, defaults to current branch name base: \"master\", # optional, defaults to \"master\" body: \"Please pull this in!\", # optional api_url: \"http://yourdomain/api/v3\" # optional, for GitHub Enterprise, defaults to \"https://api.github.com\" ) Parameters Key Description Default api_token Personal API Token for GitHub - generate one at https://github.com/settings/tokens * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable repo The name of the repository you want to submit the pull request to title The title of the pull request body The contents of the pull request draft Indicates whether the pull request is a draft labels The labels for the pull request milestone The milestone ID (Integer) for the pull request head The name of the branch where your changes are implemented (defaults to the current branch name) * base The name of the branch you want your changes pulled into (defaults to master ) master api_url The URL of GitHub API - used when the Enterprise (default to https://api.github.com ) https://api.github.com assignees The assignees for the pull request reviewers The reviewers (slug) for the pull request team_reviewers The team reviewers (slug) for the pull request * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The create_pull_request action generates the following Lane Variables: SharedValue Description SharedValues::CREATE_PULL_REQUEST_HTML_URL The HTML URL to the created pull request SharedValues::CREATE_PULL_REQUEST_NUMBER The identifier number of the created pull request To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action create_pull_request CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_pull_request To pass parameters, make use of the : symbol, for example fastlane run create_pull_request parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"create_pull_request"},{"location":"actions/create_pull_request/#create_pull_request","text":"This will create a new pull request on GitHub create_pull_request Supported platforms ios, android, mac Author @seei, @tommeier, @marumemomo, @elneruda, @kagemiku Returns The pull request URL when successful","title":"create_pull_request"},{"location":"actions/create_pull_request/#1-example","text":"create_pull_request( api_token: \"secret\", # optional, defaults to ENV[\"GITHUB_API_TOKEN\"] repo: \"fastlane/fastlane\", title: \"Amazing new feature\", head: \"my-feature\", # optional, defaults to current branch name base: \"master\", # optional, defaults to \"master\" body: \"Please pull this in!\", # optional api_url: \"http://yourdomain/api/v3\" # optional, for GitHub Enterprise, defaults to \"https://api.github.com\" )","title":"1 Example"},{"location":"actions/create_pull_request/#parameters","text":"Key Description Default api_token Personal API Token for GitHub - generate one at https://github.com/settings/tokens * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable repo The name of the repository you want to submit the pull request to title The title of the pull request body The contents of the pull request draft Indicates whether the pull request is a draft labels The labels for the pull request milestone The milestone ID (Integer) for the pull request head The name of the branch where your changes are implemented (defaults to the current branch name) * base The name of the branch you want your changes pulled into (defaults to master ) master api_url The URL of GitHub API - used when the Enterprise (default to https://api.github.com ) https://api.github.com assignees The assignees for the pull request reviewers The reviewers (slug) for the pull request team_reviewers The team reviewers (slug) for the pull request * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/create_pull_request/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The create_pull_request action generates the following Lane Variables: SharedValue Description SharedValues::CREATE_PULL_REQUEST_HTML_URL The HTML URL to the created pull request SharedValues::CREATE_PULL_REQUEST_NUMBER The identifier number of the created pull request To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/create_pull_request/#documentation","text":"To show the documentation in your terminal, run fastlane action create_pull_request","title":"Documentation"},{"location":"actions/create_pull_request/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_pull_request To pass parameters, make use of the : symbol, for example fastlane run create_pull_request parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/create_pull_request/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/create_xcframework/","text":"create_xcframework Package multiple build configs of a library/framework into a single xcframework Utility for packaging multiple build configurations of a given library or framework into a single xcframework. If you want to package several frameworks just provide one of: * An array containing the list of frameworks using the :frameworks parameter (if they have no associated dSYMs): ['FrameworkA.framework', 'FrameworkB.framework'] * A hash containing the list of frameworks with their dSYMs using the :frameworks_with_dsyms parameter: { 'FrameworkA.framework' => {}, 'FrameworkB.framework' => { dsyms: 'FrameworkB.framework.dSYM' } } If you want to package several libraries just provide one of: * An array containing the list of libraries using the :libraries parameter (if they have no associated headers or dSYMs): ['LibraryA.so', 'LibraryB.so'] * A hash containing the list of libraries with their headers and dSYMs using the :libraries_with_headers_or_dsyms parameter: { 'LibraryA.so' => { dsyms: 'libraryA.so.dSYM' }, 'LibraryB.so' => { headers: 'headers' } } Finally specify the location of the xcframework to be generated using the :output parameter. create_xcframework Supported platforms ios, mac Author @jgongo 4 Examples create_xcframework(frameworks: ['FrameworkA.framework', 'FrameworkB.framework'], output: 'UniversalFramework.xcframework') create_xcframework(frameworks_with_dsyms: {'FrameworkA.framework' => {}, 'FrameworkB.framework' => { dsyms: 'FrameworkB.framework.dSYM' } }, output: 'UniversalFramework.xcframework') create_xcframework(libraries: ['LibraryA.so', 'LibraryB.so'], output: 'UniversalFramework.xcframework') create_xcframework(libraries_with_headers_or_dsyms: { 'LibraryA.so' => { dsyms: 'libraryA.so.dSYM' }, 'LibraryB.so' => { headers: 'LibraryBHeaders' } }, output: 'UniversalFramework.xcframework') Parameters Key Description Default frameworks Frameworks (without dSYMs) to add to the target xcframework frameworks_with_dsyms Frameworks (with dSYMs) to add to the target xcframework libraries Libraries (without headers or dSYMs) to add to the target xcframework libraries_with_headers_or_dsyms Libraries (with headers or dSYMs) to add to the target xcframework output The path to write the xcframework to allow_internal_distribution Specifies that the created xcframework contains information not suitable for public distribution false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The create_xcframework action generates the following Lane Variables: SharedValue Description SharedValues::XCFRAMEWORK_PATH Location of the generated xcframework To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action create_xcframework CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_xcframework To pass parameters, make use of the : symbol, for example fastlane run create_xcframework parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"create_xcframework"},{"location":"actions/create_xcframework/#create_xcframework","text":"Package multiple build configs of a library/framework into a single xcframework Utility for packaging multiple build configurations of a given library or framework into a single xcframework. If you want to package several frameworks just provide one of: * An array containing the list of frameworks using the :frameworks parameter (if they have no associated dSYMs): ['FrameworkA.framework', 'FrameworkB.framework'] * A hash containing the list of frameworks with their dSYMs using the :frameworks_with_dsyms parameter: { 'FrameworkA.framework' => {}, 'FrameworkB.framework' => { dsyms: 'FrameworkB.framework.dSYM' } } If you want to package several libraries just provide one of: * An array containing the list of libraries using the :libraries parameter (if they have no associated headers or dSYMs): ['LibraryA.so', 'LibraryB.so'] * A hash containing the list of libraries with their headers and dSYMs using the :libraries_with_headers_or_dsyms parameter: { 'LibraryA.so' => { dsyms: 'libraryA.so.dSYM' }, 'LibraryB.so' => { headers: 'headers' } } Finally specify the location of the xcframework to be generated using the :output parameter. create_xcframework Supported platforms ios, mac Author @jgongo","title":"create_xcframework"},{"location":"actions/create_xcframework/#4-examples","text":"create_xcframework(frameworks: ['FrameworkA.framework', 'FrameworkB.framework'], output: 'UniversalFramework.xcframework') create_xcframework(frameworks_with_dsyms: {'FrameworkA.framework' => {}, 'FrameworkB.framework' => { dsyms: 'FrameworkB.framework.dSYM' } }, output: 'UniversalFramework.xcframework') create_xcframework(libraries: ['LibraryA.so', 'LibraryB.so'], output: 'UniversalFramework.xcframework') create_xcframework(libraries_with_headers_or_dsyms: { 'LibraryA.so' => { dsyms: 'libraryA.so.dSYM' }, 'LibraryB.so' => { headers: 'LibraryBHeaders' } }, output: 'UniversalFramework.xcframework')","title":"4 Examples"},{"location":"actions/create_xcframework/#parameters","text":"Key Description Default frameworks Frameworks (without dSYMs) to add to the target xcframework frameworks_with_dsyms Frameworks (with dSYMs) to add to the target xcframework libraries Libraries (without headers or dSYMs) to add to the target xcframework libraries_with_headers_or_dsyms Libraries (with headers or dSYMs) to add to the target xcframework output The path to write the xcframework to allow_internal_distribution Specifies that the created xcframework contains information not suitable for public distribution false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/create_xcframework/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The create_xcframework action generates the following Lane Variables: SharedValue Description SharedValues::XCFRAMEWORK_PATH Location of the generated xcframework To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/create_xcframework/#documentation","text":"To show the documentation in your terminal, run fastlane action create_xcframework","title":"Documentation"},{"location":"actions/create_xcframework/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_xcframework To pass parameters, make use of the : symbol, for example fastlane run create_xcframework parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/create_xcframework/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/danger/","text":"danger Runs danger for the project Formalize your Pull Request etiquette. More information: https://github.com/danger/danger . danger Supported platforms ios, android, mac Author @KrauseFx 2 Examples danger danger( danger_id: \"unit-tests\", dangerfile: \"tests/MyOtherDangerFile\", github_api_token: ENV[\"GITHUB_API_TOKEN\"], verbose: true ) Parameters Key Description Default use_bundle_exec Use bundle exec when there is a Gemfile presented true verbose Show more debugging information false danger_id The identifier of this Danger instance dangerfile The location of your Dangerfile github_api_token GitHub API token for danger github_enterprise_host GitHub host URL for GitHub Enterprise github_enterprise_api_base_url GitHub API base URL for GitHub Enterprise fail_on_errors Should always fail the build process, defaults to false false new_comment Makes Danger post a new comment instead of editing its previous one false remove_previous_comments Makes Danger remove all previous comment and create a new one in the end of the list false base A branch/tag/commit to use as the base of the diff. [master|dev|stable] head A branch/tag/commit to use as the head. [master|dev|stable] pr Run danger on a specific pull request. e.g. \"https://github.com/danger/danger/pull/518\" fail_if_no_pr Fail Danger execution if no PR is found false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action danger CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run danger To pass parameters, make use of the : symbol, for example fastlane run danger parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"danger"},{"location":"actions/danger/#danger","text":"Runs danger for the project Formalize your Pull Request etiquette. More information: https://github.com/danger/danger . danger Supported platforms ios, android, mac Author @KrauseFx","title":"danger"},{"location":"actions/danger/#2-examples","text":"danger danger( danger_id: \"unit-tests\", dangerfile: \"tests/MyOtherDangerFile\", github_api_token: ENV[\"GITHUB_API_TOKEN\"], verbose: true )","title":"2 Examples"},{"location":"actions/danger/#parameters","text":"Key Description Default use_bundle_exec Use bundle exec when there is a Gemfile presented true verbose Show more debugging information false danger_id The identifier of this Danger instance dangerfile The location of your Dangerfile github_api_token GitHub API token for danger github_enterprise_host GitHub host URL for GitHub Enterprise github_enterprise_api_base_url GitHub API base URL for GitHub Enterprise fail_on_errors Should always fail the build process, defaults to false false new_comment Makes Danger post a new comment instead of editing its previous one false remove_previous_comments Makes Danger remove all previous comment and create a new one in the end of the list false base A branch/tag/commit to use as the base of the diff. [master|dev|stable] head A branch/tag/commit to use as the head. [master|dev|stable] pr Run danger on a specific pull request. e.g. \"https://github.com/danger/danger/pull/518\" fail_if_no_pr Fail Danger execution if no PR is found false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/danger/#documentation","text":"To show the documentation in your terminal, run fastlane action danger","title":"Documentation"},{"location":"actions/danger/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run danger To pass parameters, make use of the : symbol, for example fastlane run danger parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/danger/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/debug/","text":"debug Print out an overview of the lane context values debug Supported platforms ios, android, mac Author @KrauseFx 1 Example debug Documentation To show the documentation in your terminal, run fastlane action debug CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run debug To pass parameters, make use of the : symbol, for example fastlane run debug parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"debug"},{"location":"actions/debug/#debug","text":"Print out an overview of the lane context values debug Supported platforms ios, android, mac Author @KrauseFx","title":"debug"},{"location":"actions/debug/#1-example","text":"debug","title":"1 Example"},{"location":"actions/debug/#documentation","text":"To show the documentation in your terminal, run fastlane action debug","title":"Documentation"},{"location":"actions/debug/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run debug To pass parameters, make use of the : symbol, for example fastlane run debug parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/debug/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/default_platform/","text":"default_platform Defines a default platform to not have to specify the platform default_platform Supported platforms ios, android, mac Author @KrauseFx 1 Example default_platform(:android) Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The default_platform action generates the following Lane Variables: SharedValue Description SharedValues::DEFAULT_PLATFORM The default platform To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action default_platform CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run default_platform To pass parameters, make use of the : symbol, for example fastlane run default_platform parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"default_platform"},{"location":"actions/default_platform/#default_platform","text":"Defines a default platform to not have to specify the platform default_platform Supported platforms ios, android, mac Author @KrauseFx","title":"default_platform"},{"location":"actions/default_platform/#1-example","text":"default_platform(:android)","title":"1 Example"},{"location":"actions/default_platform/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The default_platform action generates the following Lane Variables: SharedValue Description SharedValues::DEFAULT_PLATFORM The default platform To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/default_platform/#documentation","text":"To show the documentation in your terminal, run fastlane action default_platform","title":"Documentation"},{"location":"actions/default_platform/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run default_platform To pass parameters, make use of the : symbol, for example fastlane run default_platform parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/default_platform/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/delete_keychain/","text":"delete_keychain Delete keychains and remove them from the search list Keychains can be deleted after being created with create_keychain delete_keychain Supported platforms ios, android, mac Author @gin0606, @koenpunt 2 Examples delete_keychain(name: \"KeychainName\") delete_keychain(keychain_path: \"/keychains/project.keychain\") Parameters Key Description Default name Keychain name keychain_path Keychain path * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action delete_keychain CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run delete_keychain To pass parameters, make use of the : symbol, for example fastlane run delete_keychain parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"delete_keychain"},{"location":"actions/delete_keychain/#delete_keychain","text":"Delete keychains and remove them from the search list Keychains can be deleted after being created with create_keychain delete_keychain Supported platforms ios, android, mac Author @gin0606, @koenpunt","title":"delete_keychain"},{"location":"actions/delete_keychain/#2-examples","text":"delete_keychain(name: \"KeychainName\") delete_keychain(keychain_path: \"/keychains/project.keychain\")","title":"2 Examples"},{"location":"actions/delete_keychain/#parameters","text":"Key Description Default name Keychain name keychain_path Keychain path * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/delete_keychain/#documentation","text":"To show the documentation in your terminal, run fastlane action delete_keychain","title":"Documentation"},{"location":"actions/delete_keychain/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run delete_keychain To pass parameters, make use of the : symbol, for example fastlane run delete_keychain parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/delete_keychain/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/deliver/","text":"deliver Alias for the upload_to_app_store action deliver uploads screenshots, metadata and binaries to App Store Connect. Use deliver to submit your app for App Store review. Features \u2022 Quick Start \u2022 Usage \u2022 Tips deliver is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Features Upload hundreds of localized screenshots completely automatically Upload a new ipa/pkg file to App Store Connect without Xcode from any Mac Maintain your app metadata locally and push changes back to App Store Connect Easily implement a real Continuous Deployment process using fastlane Store the configuration in git to easily deploy from any Mac, including your Continuous Integration server Get a HTML preview of the fetched metadata before uploading the app metadata and screenshots to iTC Automatically uses precheck to ensure your app has the highest chances of passing app review the first time To upload builds to TestFlight check out pilot . Quick Start The guide will create all the necessary files for you, using the existing app metadata from App Store Connect. cd [your_project_folder] fastlane deliver init Enter your App Store Connect credentials Enter your app identifier Enjoy a good drink, while the computer does all the work for you From now on, you can run fastlane deliver to deploy a new update, or just upload new app metadata and screenshots. Usage Check out your local ./fastlane/metadata and ./fastlane/screenshots folders (if you don't use fastlane it's ./metadata instead) You'll see your metadata from App Store Connect. Feel free to store the metadata in git (not the screenshots). You can now modify it locally and push the changes back to App Store Connect. Run fastlane deliver to upload the app metadata from your local machine fastlane deliver Provide the path to an ipa file to upload and submit your app for review: fastlane deliver --ipa \"App.ipa\" --submit_for_review or you can specify path to pkg file for macOS apps: fastlane deliver --pkg \"MacApp.pkg\" If you use fastlane you don't have to manually specify the path to your ipa / pkg file. This is just a small sub-set of what you can do with deliver , check out the full documentation in #more-options Download existing screenshots from App Store Connect fastlane deliver download_screenshots Download existing metadata from App Store Connect fastlane deliver download_metadata To get a list of available options run fastlane action deliver Use in a Fastfile deliver deliver( submit_for_review: true, force: true, metadata_path: \"./metadata\" ) More options View all available options and their valid values Available options All the options below can easily be added to your Deliverfile . The great thing: if you use fastlane you can use all these options from your Fastfile too, for example: deliver( submit_for_review: true, metadata_path: \"../folder\" ) app_identifier The bundle identifier (e.g. \"com.krausefx.app\") username Your Apple ID email address ipa A path to a signed ipa file, which will be uploaded. If you don't provide this value, only app metadata will be uploaded. If you want to submit the app for review make sure to either use fastlane deliver --submit_for_review or add submit_for_review true to your Deliverfile ipa(\"App.ipa\") if you use fastlane the ipa file will automatically be detected. pkg A path to a signed pkg file, which will be uploaded. Submission logic of ipa applies to pkg files. pkg(\"MacApp.pkg\") app_version Optional, as it is usually automatically detected. Specify the version that should be created / edited on App Store Connect: app_version(\"2.0\") skip_app_version_update In the case if deliver uploads your application to App Store Connect it will automatically update \"Prepare for submission\" app version (which could be found on App Store Connect->My Apps->App Store page) The option allows uploading your app without updating \"Prepare for submission\" version. This could be useful in the case if you are generating a lot of uploads while not submitting the latest build for Apple review. The default value is false. skip_app_version_update(true) submit_for_review Add this to your Deliverfile to automatically submit the app for review after uploading metadata/binary. This will select the latest build. submit_for_review(true) screenshots_path A path to a folder containing subfolders for each language. This will automatically detect the device type based on the image resolution. Also includes \uf8ff Watch Support. metadata_path Path to the metadata you want to use. The folder has to be structured like this If you run deliver init this will automatically be created for you. force force(true) If set to true , no HTML report will be generated before the actual upload. You can also pass --force when calling deliver . price_tier Pass the price tier as number. This will be active from the current day. price_tier 0 trade_representative_contact_information Trade Representative Contact information for Korean App Store. Available options: first_name , last_name , address_line1 , address_line2 , address_line3 , city_name , state , country , postal_code , phone_number , email_address , is_displayed_on_app_store . trade_representative_contact_information( first_name: \"Felix\", last_name: \"Krause\", address_line1: \"1 Infinite Loop\", address_line2: \"\", address_line3: null, city_name: \"Cupertino\", state: \"California\", country: \"United States\", postal_code: \"95014\", phone_number: \"+43 123123123\", email_address: \"github@krausefx.com\", ) You can also provide these values by creating files in a metadata/trade_representative_contact_information/ directory. The file names must match the pattern .txt (e.g. first_name.txt , address_line1.txt etc.). The contents of each file will be used as the value for the matching key. Values provided in the Deliverfile or Fastfile will be take priority over values from these files. is_displayed_on_app_store is the option on App Store Connect described as: Display Trade Representative Contact Information on the Korean App Store app_review_information Contact information for the app review team. Available options: first_name , last_name , phone_number , email_address , demo_user , demo_password , notes . app_review_information( first_name: \"Felix\", last_name: \"Krause\", phone_number: \"+43 123123123\", email_address: \"github@krausefx.com\", demo_user: \"demoUser\", demo_password: \"demoPass\", notes: \"such notes, very text\" ) You can also provide these values by creating files in a metadata/review_information/ directory. The file names must match the pattern .txt (e.g. first_name.txt , notes.txt etc.). The contents of each file will be used as the value for the matching key. Values provided in the Deliverfile or Fastfile will be take priority over values from these files. app_review_attachment_file You can provide additional information to the app review team as a file attachment. As of this writing, Apple supports following file attachment formats: .pdf, .doc, .docx, .rtf, .pages, .xls, .xlsx, .numbers, .zip, .rar, .plist, .crash, .jpg, .png, .mp4, or .avi. Provide an empty string (i.e. \"\", not null) to remove the existing attachment file (if any) from the review information being edited. app_review_attachment_file: \"./readme.txt\" submission_information Must be a hash. This is used as the last step for the deployment process, where you define if you use third party content or use encryption. A list of available options . submission_information({ add_id_info_serves_ads: true, ... }) automatic_release Should the app be released to all users once Apple approves it? If set to false , you'll have to manually release the update once it got approved. automatic_release(true) # or automatic_release(false) phased_release Enable or disable the phased releases feature of App Store Connect. If set to true , the update will be released over a 7 day period. Default behavior is to leave whatever you defined on App Store Connect. phased_release(true) # or phased_release(false) reset_ratings Reset your app's summary rating for all territories. If set to true , it will reset rating when this version is released. Default behavior is to keep existing rating. reset_ratings(true) # or reset_ratings(false) app_rating_config_path You can set the app age ratings using deliver . You'll have to create and store a JSON configuration file. Copy the template to your project folder and pass the path to the JSON file using the app_rating_config_path option. The keys/values on the top allow one of 3 strings: \"NONE\", \"INFREQUENT_OR_MILD\" or \"FREQUENT_OR_INTENSE\", and the items on the bottom allow false or true. More information in #reference . Metadata All options below are useful if you want to specify certain app metadata in your Deliverfile or Fastfile Localized Localized values should be set like this description({ 'en-US' => \"English Description here\", 'de-DE' => \"Deutsche Beschreibung hier\" }) name The title/name of the app subtitle Localized subtitle of the app subtitle( \"en-US\" => \"Awesome English subtitle here\", \"de-DE\" => \"Jetzt mit deutschen Untertiteln!\" ) description The description of the app release_notes The release_notes (What's new / Changelog) of the latest version support_url, marketing_url, privacy_url These URLs are shown in the AppStore keywords Keywords separated using a comma. keywords( \"en-US\" => \"Keyword1, Keyword2\" ) promotional_text Localized promotional text promotional_text( \"en-US\" => \"Hey, you should totally buy our app, it's the best\", \"de-DE\" => \"App kaufen bitte\" ) app_icon A path to a new app icon, which must be exactly 1024x1024px app_icon('./AppIcon.png') apple_watch_app_icon A path to a new app icon for the \uf8ff Watch, which must be exactly 1024x1024px apple_watch_app_icon('./AppleWatchAppIcon.png') platform The platform of your application (a.e. ios, osx). This option is optional. The default value is \"ios\" and deliver should be able to figure out the platform from your binary. However, in the case if multiple binaries present, you can specify a platform which you want to deliver explicitly. The available options: 'ios' 'appletvos' 'osx' Non-Localized copyright The up to date copyright information. copyright(\"#{Time.now.year} Felix Krause\") primary_category The english name of the category you want to set (e.g. Business , Books ) See #reference for a list of available categories secondary_category The english name of the secondary category you want to set primary_first_sub_category The english name of the primary first sub category you want to set primary_second_sub_category The english name of the primary second sub category you want to set secondary_first_sub_category The english name of the secondary first sub category you want to set secondary_second_sub_category The english name of the secondary second sub category you want to set Submit Build deliver allows you to promote an existing build to production. Below are examples to select a previously uploaded build and submit it for review. fastlane deliver submit_build --build_number 830 Submit build in a Fastfile lane :submit_review do deliver( build_number: '830', submit_for_review: true, automatic_release: true, force: true, # Skip HTMl report verification skip_metadata: true, skip_screenshots: true, skip_binary_upload: true ) end Omit build_number to let fastlane automatically select the latest build number for the current version being edited for release from App Store Connect. Compliance and IDFA settings Use the submission_information parameter for additional submission specifiers, including compliance and IDFA settings. Look at the Spaceship's app_submission.rb file for options. See this example . fastlane deliver submit_build --build_number 830 --submission_information \"{\\\"export_compliance_uses_encryption\\\": false, \\\"add_id_info_uses_idfa\\\": false }\" App Privacy Details Starting on December 8, 2020, Apple announced that developers are required to provide app privacy details that will help users understand an app's privacy practies. deliver does not allow for updating of this information but this can be done with the upload_app_privacy_details_to_app_store action. More information on Uploading App Privacy Details Credentials A detailed description about how your credentials are handled is available in a credentials_manager . How does this thing even work? Is magic involved? \ud83c\udfa9 Your password will be stored in the macOS keychain, but can also be passed using environment variables. (More information available on CredentialsManager ) Before actually uploading anything to iTunes, deliver will generate a HTML summary of the collected data. deliver uses the following techniques under the hood: The iTMSTransporter tool is used to upload the binary to App Store Connect. iTMSTransporter is a command line tool provided by Apple. For all metadata related actions deliver uses spaceship Tips Available language codes ar-SA, ca, cs, da, de-DE, el, en-AU, en-CA, en-GB, en-US, es-ES, es-MX, fi, fr-CA, fr-FR, he, hi, hr, hu, id, it, ja, ko, ms, nl-NL, no, pl, pt-BR, pt-PT, ro, ru, sk, sv, th, tr, uk, vi, zh-Hans, zh-Hant Available Metadata Folder Options deliver allows for metadata to be set through .txt files in the metadata folder. This metadata folder location is defaulted to ./fastlane/metadata but can be overridden through the metadata_path parameter. Below are all allowed metadata options. Non-Localized Metadata Key Editable While Live Directory Filename copyright Yes copyright.txt primary_category No primary_category.txt secondary_category No secondary_category.txt primary_first_sub_category No primary_first_sub_category.txt primary_second_sub_category No primary_second_sub_category.txt secondary_first_sub_category No secondary_first_sub_category.txt secondary_second_sub_category No secondary_second_sub_category.txt Localized Metadata Key Editable While Live Directory Filename name No // name.txt subtitle No // subtitle.txt privacy_url Yes // privacy_url.txt apple_tv_privacy_policy No // apple_tv_privacy_policy.txt description Yes // description.txt keywords No // keywords.txt release_notes Yes // release_notes.txt support_url Yes // support_url.txt marketing_url Yes // marketing_url.txt promotional_text Yes // promotional_text.txt Review Information Metadata Key Editable While Live Directory Filename Deprecated Filename first_name Yes /review_information first_name.txt review_first_name.txt last_name Yes /review_information last_name.txt review_last_name.txt phone_number Yes /review_information phone_number.txt review_phone_number.txt email_address Yes /review_information email_address.txt review_email.txt demo_user Yes /review_information demo_user.txt review_demo_user.txt demo_password Yes /review_information demo_password.txt review_demo_password.txt notes Yes /review_information notes.txt review_notes.txt Reference View all available categories, etc. Available Categories FOOD_AND_DRINK BUSINESS EDUCATION SOCIAL_NETWORKING BOOKS SPORTS FINANCE REFERENCE GRAPHICS_AND_DESIGN DEVELOPER_TOOLS HEALTH_AND_FITNESS MUSIC WEATHER TRAVEL ENTERTAINMENT STICKERS GAMES LIFESTYLE MEDICAL MAGAZINES_AND_NEWSPAPERS UTILITIES SHOPPING PRODUCTIVITY NEWS PHOTO_AND_VIDEO NAVIGATION Available Game Subcategories MZGenre.Action MZGenre.Adventure MZGenre.Arcade MZGenre.Board MZGenre.Card MZGenre.Casino MZGenre.Dice MZGenre.Educational MZGenre.Family MZGenre.Music MZGenre.Puzzle MZGenre.Racing MZGenre.RolePlaying MZGenre.Simulation MZGenre.Sports MZGenre.Strategy MZGenre.Trivia MZGenre.Word GAMES_SPORTS GAMES_WORD GAMES_MUSIC GAMES_ADVENTURE GAMES_ACTION GAMES_ROLE_PLAYING GAMES_CASUAL GAMES_BOARD GAMES_TRIVIA GAMES_CARD GAMES_PUZZLE GAMES_CASINO GAMES_STRATEGY GAMES_SIMULATION GAMES_RACING GAMES_FAMILY Available Stickers Subcategories STICKERS_PLACES_AND_OBJECTS STICKERS_EMOJI_AND_EXPRESSIONS STICKERS_CELEBRATIONS STICKERS_CELEBRITIES STICKERS_MOVIES_AND_TV STICKERS_SPORTS_AND_ACTIVITIES STICKERS_EATING_AND_DRINKING STICKERS_CHARACTERS STICKERS_ANIMALS STICKERS_FASHION STICKERS_ART STICKERS_GAMING STICKERS_KIDS_AND_FAMILY STICKERS_PEOPLE STICKERS_MUSIC Available age rating groups Non Boolean Values 0: None (Legacy value, use NONE instead) 1: Infrequent/Mild (Legacy value, use INFREQUENT_OR_MILD instead) 2: Frequent/Intense (Legacy value, use FREQUENT_OR_INTENSE instead) NONE INFREQUENT_OR_MILD FREQUENT_OR_INTENSE Keys 'alcoholTobaccoOrDrugUseOrReferences' 'contests' 'gamblingSimulated' 'medicalOrTreatmentInformation' 'profanityOrCrudeHumor' 'sexualContentGraphicAndNudity' 'sexualContentOrNudity' 'horrorOrFearThemes' 'matureOrSuggestiveThemes' 'unrestrictedWebAccess' 'violenceCartoonOrFantasy' 'violenceRealisticProlongedGraphicOrSadistic' 'violenceRealistic' 'kidsAgeBand' Boolean Keys gambling 'seventeenPlus' unrestrictedWebAccess Kids Age Values FIVE_AND_UNDER SIX_TO_EIGHT NINE_TO_ELEVEN null Keys kidsAgeBand Default values Deliver has a special default language code which allows you to provide values that are not localized, and which will be used as defaults when you don\u2019t provide a specific localized value. In order to use default , you will need to tell deliver which languages your app uses. You can do this in either of two ways: Create the folders named with the language in the metadata folder (i.e. fastlane/metadata/en-US or fastlane/metadata/de-DE) Add the following to your Deliverfile languages(['en-US','de-DE']) You can use this either in json within your Deliverfile and/or as folders in your metadata folder. deliver will take the union of both language sets from the Deliverfile and from the metadata folder and create on single set of languages which will be enabled. Imagine that you have localized data for the following language codes: en-US, de-DE, el, it You can set the following in your Deliverfile release_notes({ 'default' => \"Shiny and new\", 'de-DE' => \"glaenzend und neu\" }) Deliver will use \"Shiny and new\" for en-US, el and it. It will use \"glaenzend und neu\" for de-DE. You can do the same with folders default keywords.txt marketing_url.txt name.txt privacy_url.txt support_url.txt release_notes.txt en-US description.txt de-DE description.txt el description.txt it description.txt In this case, default values for keywords, urls, name and release notes are used in all localizations, but each language has a fully localized description Uploading screenshots for \"iPad Pro (12.9-inch) (3rd generation)\" Starting March 20, 2019 Apple's App Store requires 12.9-inch iPad Pro (3rd generation) screenshots additionally to the iPad Pro 2nd generation screenshots . As fastlane historically uses the screenshot dimensions to determine the \"display family\" of a screenshot, this poses a problem as both use the same dimensions and are recognized as the same device family. To solve this a screenshot of a 12.9-inch iPad Pro (3rd generation) must contain either the string iPad Pro (12.9-inch) (3rd generation) , IPAD_PRO_3GEN_129 , or ipadPro129 (Apple's internal naming of the display family for the 3rd generation iPad Pro) in its filename to be assigned the correct display family and to be uploaded to the correct screenshot slot in your app's metadata. Automatically create screenshots If you want to integrate deliver with snapshot , check out fastlane ! Jenkins integration Detailed instructions about how to set up deliver and fastlane in Jenkins can be found in the fastlane README . Firewall Issues deliver uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" fastlane deliver HTTP Proxy iTunes Transporter is a Java application bundled with Xcode. In addition to utilizing the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" , you need to configure the transporter application to use the proxy independently from the system proxy or any environment proxy settings. You can find the configuration file within Xcode: for Xcode11 and later TOOLS_PATH=$( xcode-select -p ) REL_PATH='../SharedFrameworks/ContentDeliveryServices.framework/Versions/A/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" for Xcode10 or earlier TOOLS_PATH=$( xcode-select -p ) REL_PATH='../Applications/Application Loader.app/Contents/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" Add necessary proxy configuration values to the net.properties according to Java Proxy Configuration . As an alternative to editing the properties files, proxy configuration can be specified on the command line directly: DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV -Dhttp.proxyHost=myproxy.com -Dhttp.proxyPort=8080\" Limit App Store Connect has a limit of 150 binary uploads per day. Editing the Deliverfile Change syntax highlighting to Ruby . Provider Short Name If you are on multiple App Store Connect teams, deliver needs a provider short name to know where to upload your binary. deliver will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option. deliver Supported platforms ios, mac Author @KrauseFx 3 Examples upload_to_app_store( force: true, # Set to true to skip verification of HTML preview itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) deliver # alias for \"upload_to_app_store\" appstore # alias for \"upload_to_app_store\" Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of your app * app_version The version that should be edited or created ipa Path to your ipa file * pkg Path to your pkg file * build_number If set the given build number (already uploaded to iTC) will be used instead of the current built one platform The platform to use (optional) ios edit_live Modify live metadata, this option disables ipa upload and screenshot upload false use_live_version Force usage of live version rather than edit version false metadata_path Path to the folder containing the metadata files screenshots_path Path to the folder containing the screenshots skip_binary_upload Skip uploading an ipa or pkg to App Store Connect false skip_screenshots Don't upload the screenshots false skip_metadata Don't upload the metadata (e.g. title, description). This will still upload screenshots false skip_app_version_update Don\u2019t create or update the app version that is being prepared for submission false force Skip verification of HTML preview file false overwrite_screenshots Clear all previously uploaded screenshots before uploading the new ones false sync_screenshots Sync screenshots with local ones. This is currently beta option so set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well false submit_for_review Submit the new version for Review after uploading everything false verify_only Verifies archive with App Store Connect without uploading false reject_if_possible Rejects the previously submitted build if it's in a state where it's possible false automatic_release Should the app be automatically released once it's approved? (Can not be used together with auto_release_date ) auto_release_date Date in milliseconds for automatically releasing on pending approval (Can not be used together with automatic_release ) phased_release Enable the phased release feature of iTC false reset_ratings Reset the summary rating when you release a new version of the application false price_tier The price tier of this application app_rating_config_path Path to the app rating's config submission_information Extra information for the submission (e.g. compliance specifications, IDFA settings) team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your Developer Portal team, if you're in multiple teams. Different from your iTC team ID! * dev_portal_team_name The name of your Developer Portal team if you're in multiple teams * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column * run_precheck_before_submit Run precheck before submitting to app review true precheck_default_rule_level The default precheck rule level unless otherwise configured :warn individual_metadata_items DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - An array of localized metadata items to upload individually by language so that errors can be identified. E.g. ['name', 'keywords', 'description']. Note: slow app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the app icon apple_watch_app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the Apple Watch app icon copyright Metadata: The copyright notice primary_category Metadata: The english name of the primary category (e.g. Business , Books ) secondary_category Metadata: The english name of the secondary category (e.g. Business , Books ) primary_first_sub_category Metadata: The english name of the primary first sub category (e.g. Educational , Puzzle ) primary_second_sub_category Metadata: The english name of the primary second sub category (e.g. Educational , Puzzle ) secondary_first_sub_category Metadata: The english name of the secondary first sub category (e.g. Educational , Puzzle ) secondary_second_sub_category Metadata: The english name of the secondary second sub category (e.g. Educational , Puzzle ) trade_representative_contact_information DEPRECATED! This is no longer used by App Store Connect - Metadata: A hash containing the trade representative contact information app_review_information Metadata: A hash containing the review information app_review_attachment_file Metadata: Path to the app review attachment file description Metadata: The localised app description name Metadata: The localised app name subtitle Metadata: The localised app subtitle keywords Metadata: An array of localised keywords promotional_text Metadata: An array of localised promotional texts release_notes Metadata: Localised release notes for this version privacy_url Metadata: Localised privacy url apple_tv_privacy_policy Metadata: Localised Apple TV privacy policy text support_url Metadata: Localised support url marketing_url Metadata: Localised marketing url languages Metadata: List of languages to activate ignore_language_directory_validation Ignore errors when invalid languages are found in metadata and screenshot directories false precheck_include_in_app_purchases Should precheck check in-app purchases? true app The (spaceship) app ID of the app you want to use/modify * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action deliver CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run deliver To pass parameters, make use of the : symbol, for example fastlane run deliver parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"deliver"},{"location":"actions/deliver/#deliver","text":"Alias for the upload_to_app_store action deliver uploads screenshots, metadata and binaries to App Store Connect. Use deliver to submit your app for App Store review. Features \u2022 Quick Start \u2022 Usage \u2022 Tips","title":"deliver"},{"location":"actions/deliver/#features","text":"Upload hundreds of localized screenshots completely automatically Upload a new ipa/pkg file to App Store Connect without Xcode from any Mac Maintain your app metadata locally and push changes back to App Store Connect Easily implement a real Continuous Deployment process using fastlane Store the configuration in git to easily deploy from any Mac, including your Continuous Integration server Get a HTML preview of the fetched metadata before uploading the app metadata and screenshots to iTC Automatically uses precheck to ensure your app has the highest chances of passing app review the first time To upload builds to TestFlight check out pilot .","title":"Features"},{"location":"actions/deliver/#quick-start","text":"The guide will create all the necessary files for you, using the existing app metadata from App Store Connect. cd [your_project_folder] fastlane deliver init Enter your App Store Connect credentials Enter your app identifier Enjoy a good drink, while the computer does all the work for you From now on, you can run fastlane deliver to deploy a new update, or just upload new app metadata and screenshots.","title":"Quick Start"},{"location":"actions/deliver/#usage","text":"Check out your local ./fastlane/metadata and ./fastlane/screenshots folders (if you don't use fastlane it's ./metadata instead) You'll see your metadata from App Store Connect. Feel free to store the metadata in git (not the screenshots). You can now modify it locally and push the changes back to App Store Connect. Run fastlane deliver to upload the app metadata from your local machine fastlane deliver Provide the path to an ipa file to upload and submit your app for review: fastlane deliver --ipa \"App.ipa\" --submit_for_review or you can specify path to pkg file for macOS apps: fastlane deliver --pkg \"MacApp.pkg\" If you use fastlane you don't have to manually specify the path to your ipa / pkg file. This is just a small sub-set of what you can do with deliver , check out the full documentation in #more-options Download existing screenshots from App Store Connect fastlane deliver download_screenshots Download existing metadata from App Store Connect fastlane deliver download_metadata To get a list of available options run fastlane action deliver","title":"Usage"},{"location":"actions/deliver/#more-options","text":"View all available options and their valid values","title":"More options"},{"location":"actions/deliver/#available-options","text":"All the options below can easily be added to your Deliverfile . The great thing: if you use fastlane you can use all these options from your Fastfile too, for example: deliver( submit_for_review: true, metadata_path: \"../folder\" )","title":"Available options"},{"location":"actions/deliver/#metadata","text":"All options below are useful if you want to specify certain app metadata in your Deliverfile or Fastfile","title":"Metadata"},{"location":"actions/deliver/#submit-build","text":"deliver allows you to promote an existing build to production. Below are examples to select a previously uploaded build and submit it for review. fastlane deliver submit_build --build_number 830","title":"Submit Build"},{"location":"actions/deliver/#credentials","text":"A detailed description about how your credentials are handled is available in a credentials_manager .","title":"Credentials"},{"location":"actions/deliver/#tips","text":"","title":"Tips"},{"location":"actions/deliver/#available-language-codes","text":"ar-SA, ca, cs, da, de-DE, el, en-AU, en-CA, en-GB, en-US, es-ES, es-MX, fi, fr-CA, fr-FR, he, hi, hr, hu, id, it, ja, ko, ms, nl-NL, no, pl, pt-BR, pt-PT, ro, ru, sk, sv, th, tr, uk, vi, zh-Hans, zh-Hant","title":"Available language codes"},{"location":"actions/deliver/#available-metadata-folder-options","text":"deliver allows for metadata to be set through .txt files in the metadata folder. This metadata folder location is defaulted to ./fastlane/metadata but can be overridden through the metadata_path parameter. Below are all allowed metadata options.","title":"Available Metadata Folder Options"},{"location":"actions/deliver/#reference","text":"View all available categories, etc.","title":"Reference"},{"location":"actions/deliver/#default-values","text":"Deliver has a special default language code which allows you to provide values that are not localized, and which will be used as defaults when you don\u2019t provide a specific localized value. In order to use default , you will need to tell deliver which languages your app uses. You can do this in either of two ways: Create the folders named with the language in the metadata folder (i.e. fastlane/metadata/en-US or fastlane/metadata/de-DE) Add the following to your Deliverfile languages(['en-US','de-DE']) You can use this either in json within your Deliverfile and/or as folders in your metadata folder. deliver will take the union of both language sets from the Deliverfile and from the metadata folder and create on single set of languages which will be enabled. Imagine that you have localized data for the following language codes: en-US, de-DE, el, it You can set the following in your Deliverfile release_notes({ 'default' => \"Shiny and new\", 'de-DE' => \"glaenzend und neu\" }) Deliver will use \"Shiny and new\" for en-US, el and it. It will use \"glaenzend und neu\" for de-DE. You can do the same with folders default keywords.txt marketing_url.txt name.txt privacy_url.txt support_url.txt release_notes.txt en-US description.txt de-DE description.txt el description.txt it description.txt In this case, default values for keywords, urls, name and release notes are used in all localizations, but each language has a fully localized description","title":"Default values"},{"location":"actions/deliver/#uploading-screenshots-for-ipad-pro-129-inch-3rd-generation","text":"Starting March 20, 2019 Apple's App Store requires 12.9-inch iPad Pro (3rd generation) screenshots additionally to the iPad Pro 2nd generation screenshots . As fastlane historically uses the screenshot dimensions to determine the \"display family\" of a screenshot, this poses a problem as both use the same dimensions and are recognized as the same device family. To solve this a screenshot of a 12.9-inch iPad Pro (3rd generation) must contain either the string iPad Pro (12.9-inch) (3rd generation) , IPAD_PRO_3GEN_129 , or ipadPro129 (Apple's internal naming of the display family for the 3rd generation iPad Pro) in its filename to be assigned the correct display family and to be uploaded to the correct screenshot slot in your app's metadata.","title":"Uploading screenshots for \"iPad Pro (12.9-inch) (3rd generation)\""},{"location":"actions/deliver/#automatically-create-screenshots","text":"If you want to integrate deliver with snapshot , check out fastlane !","title":"Automatically create screenshots"},{"location":"actions/deliver/#jenkins-integration","text":"Detailed instructions about how to set up deliver and fastlane in Jenkins can be found in the fastlane README .","title":"Jenkins integration"},{"location":"actions/deliver/#firewall-issues","text":"deliver uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" fastlane deliver","title":"Firewall Issues"},{"location":"actions/deliver/#http-proxy","text":"iTunes Transporter is a Java application bundled with Xcode. In addition to utilizing the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" , you need to configure the transporter application to use the proxy independently from the system proxy or any environment proxy settings. You can find the configuration file within Xcode: for Xcode11 and later TOOLS_PATH=$( xcode-select -p ) REL_PATH='../SharedFrameworks/ContentDeliveryServices.framework/Versions/A/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" for Xcode10 or earlier TOOLS_PATH=$( xcode-select -p ) REL_PATH='../Applications/Application Loader.app/Contents/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" Add necessary proxy configuration values to the net.properties according to Java Proxy Configuration . As an alternative to editing the properties files, proxy configuration can be specified on the command line directly: DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV -Dhttp.proxyHost=myproxy.com -Dhttp.proxyPort=8080\"","title":"HTTP Proxy"},{"location":"actions/deliver/#limit","text":"App Store Connect has a limit of 150 binary uploads per day.","title":"Limit"},{"location":"actions/deliver/#editing-the-deliverfile","text":"Change syntax highlighting to Ruby .","title":"Editing the Deliverfile"},{"location":"actions/deliver/#provider-short-name","text":"If you are on multiple App Store Connect teams, deliver needs a provider short name to know where to upload your binary. deliver will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option. deliver Supported platforms ios, mac Author @KrauseFx","title":"Provider Short Name"},{"location":"actions/deliver/#3-examples","text":"upload_to_app_store( force: true, # Set to true to skip verification of HTML preview itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) deliver # alias for \"upload_to_app_store\" appstore # alias for \"upload_to_app_store\"","title":"3 Examples"},{"location":"actions/deliver/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of your app * app_version The version that should be edited or created ipa Path to your ipa file * pkg Path to your pkg file * build_number If set the given build number (already uploaded to iTC) will be used instead of the current built one platform The platform to use (optional) ios edit_live Modify live metadata, this option disables ipa upload and screenshot upload false use_live_version Force usage of live version rather than edit version false metadata_path Path to the folder containing the metadata files screenshots_path Path to the folder containing the screenshots skip_binary_upload Skip uploading an ipa or pkg to App Store Connect false skip_screenshots Don't upload the screenshots false skip_metadata Don't upload the metadata (e.g. title, description). This will still upload screenshots false skip_app_version_update Don\u2019t create or update the app version that is being prepared for submission false force Skip verification of HTML preview file false overwrite_screenshots Clear all previously uploaded screenshots before uploading the new ones false sync_screenshots Sync screenshots with local ones. This is currently beta option so set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well false submit_for_review Submit the new version for Review after uploading everything false verify_only Verifies archive with App Store Connect without uploading false reject_if_possible Rejects the previously submitted build if it's in a state where it's possible false automatic_release Should the app be automatically released once it's approved? (Can not be used together with auto_release_date ) auto_release_date Date in milliseconds for automatically releasing on pending approval (Can not be used together with automatic_release ) phased_release Enable the phased release feature of iTC false reset_ratings Reset the summary rating when you release a new version of the application false price_tier The price tier of this application app_rating_config_path Path to the app rating's config submission_information Extra information for the submission (e.g. compliance specifications, IDFA settings) team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your Developer Portal team, if you're in multiple teams. Different from your iTC team ID! * dev_portal_team_name The name of your Developer Portal team if you're in multiple teams * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column * run_precheck_before_submit Run precheck before submitting to app review true precheck_default_rule_level The default precheck rule level unless otherwise configured :warn individual_metadata_items DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - An array of localized metadata items to upload individually by language so that errors can be identified. E.g. ['name', 'keywords', 'description']. Note: slow app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the app icon apple_watch_app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the Apple Watch app icon copyright Metadata: The copyright notice primary_category Metadata: The english name of the primary category (e.g. Business , Books ) secondary_category Metadata: The english name of the secondary category (e.g. Business , Books ) primary_first_sub_category Metadata: The english name of the primary first sub category (e.g. Educational , Puzzle ) primary_second_sub_category Metadata: The english name of the primary second sub category (e.g. Educational , Puzzle ) secondary_first_sub_category Metadata: The english name of the secondary first sub category (e.g. Educational , Puzzle ) secondary_second_sub_category Metadata: The english name of the secondary second sub category (e.g. Educational , Puzzle ) trade_representative_contact_information DEPRECATED! This is no longer used by App Store Connect - Metadata: A hash containing the trade representative contact information app_review_information Metadata: A hash containing the review information app_review_attachment_file Metadata: Path to the app review attachment file description Metadata: The localised app description name Metadata: The localised app name subtitle Metadata: The localised app subtitle keywords Metadata: An array of localised keywords promotional_text Metadata: An array of localised promotional texts release_notes Metadata: Localised release notes for this version privacy_url Metadata: Localised privacy url apple_tv_privacy_policy Metadata: Localised Apple TV privacy policy text support_url Metadata: Localised support url marketing_url Metadata: Localised marketing url languages Metadata: List of languages to activate ignore_language_directory_validation Ignore errors when invalid languages are found in metadata and screenshot directories false precheck_include_in_app_purchases Should precheck check in-app purchases? true app The (spaceship) app ID of the app you want to use/modify * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/deliver/#documentation","text":"To show the documentation in your terminal, run fastlane action deliver","title":"Documentation"},{"location":"actions/deliver/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run deliver To pass parameters, make use of the : symbol, for example fastlane run deliver parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/deliver/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/deploygate/","text":"deploygate Upload a new build to DeployGate You can retrieve your username and API token on your settings page . More information about the available options can be found in the DeployGate Push API document . deploygate Supported platforms ios, android Author @tnj, @tomorrowkey 2 Examples deploygate( api_token: \"...\", user: \"target username or organization name\", ipa: \"./ipa_file.ipa\", message: \"Build #{lane_context[SharedValues::BUILD_NUMBER]}\", distribution_key: \"(Optional) Target Distribution Key\", distribution_name: \"(Optional) Target Distribution Name\" ) deploygate( api_token: \"...\", user: \"target username or organization name\", apk: \"./apk_file.apk\", message: \"Build #{lane_context[SharedValues::BUILD_NUMBER]}\", distribution_key: \"(Optional) Target Distribution Key\", distribution_name: \"(Optional) Target Distribution Name\" ) Parameters Key Description Default api_token Deploygate API Token user Target username or organization name ipa Path to your IPA file. Optional if you use the gym or xcodebuild action * apk Path to your APK file * message Release Notes No changelog provided distribution_key Target Distribution Key release_note Release note for distribution page disable_notify Disables Push notification emails false distribution_name Target Distribution Name * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The deploygate action generates the following Lane Variables: SharedValue Description SharedValues::DEPLOYGATE_URL URL of the newly uploaded build SharedValues::DEPLOYGATE_REVISION auto incremented revision number SharedValues::DEPLOYGATE_APP_INFO Contains app revision, bundle identifier, etc. To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action deploygate CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run deploygate To pass parameters, make use of the : symbol, for example fastlane run deploygate parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"deploygate"},{"location":"actions/deploygate/#deploygate","text":"Upload a new build to DeployGate You can retrieve your username and API token on your settings page . More information about the available options can be found in the DeployGate Push API document . deploygate Supported platforms ios, android Author @tnj, @tomorrowkey","title":"deploygate"},{"location":"actions/deploygate/#2-examples","text":"deploygate( api_token: \"...\", user: \"target username or organization name\", ipa: \"./ipa_file.ipa\", message: \"Build #{lane_context[SharedValues::BUILD_NUMBER]}\", distribution_key: \"(Optional) Target Distribution Key\", distribution_name: \"(Optional) Target Distribution Name\" ) deploygate( api_token: \"...\", user: \"target username or organization name\", apk: \"./apk_file.apk\", message: \"Build #{lane_context[SharedValues::BUILD_NUMBER]}\", distribution_key: \"(Optional) Target Distribution Key\", distribution_name: \"(Optional) Target Distribution Name\" )","title":"2 Examples"},{"location":"actions/deploygate/#parameters","text":"Key Description Default api_token Deploygate API Token user Target username or organization name ipa Path to your IPA file. Optional if you use the gym or xcodebuild action * apk Path to your APK file * message Release Notes No changelog provided distribution_key Target Distribution Key release_note Release note for distribution page disable_notify Disables Push notification emails false distribution_name Target Distribution Name * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/deploygate/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The deploygate action generates the following Lane Variables: SharedValue Description SharedValues::DEPLOYGATE_URL URL of the newly uploaded build SharedValues::DEPLOYGATE_REVISION auto incremented revision number SharedValues::DEPLOYGATE_APP_INFO Contains app revision, bundle identifier, etc. To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/deploygate/#documentation","text":"To show the documentation in your terminal, run fastlane action deploygate","title":"Documentation"},{"location":"actions/deploygate/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run deploygate To pass parameters, make use of the : symbol, for example fastlane run deploygate parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/deploygate/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/dotgpg_environment/","text":"dotgpg_environment Reads in production secrets set in a dotgpg file and puts them in ENV More information about dotgpg can be found at https://github.com/ConradIrwin/dotgpg . dotgpg_environment Supported platforms ios, android, mac Author @simonlevy5 1 Example dotgpg_environment(dotgpg_file: './path/to/gpgfile') Parameters Key Description Default dotgpg_file Path to your gpg file * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action dotgpg_environment CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run dotgpg_environment To pass parameters, make use of the : symbol, for example fastlane run dotgpg_environment parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"dotgpg_environment"},{"location":"actions/dotgpg_environment/#dotgpg_environment","text":"Reads in production secrets set in a dotgpg file and puts them in ENV More information about dotgpg can be found at https://github.com/ConradIrwin/dotgpg . dotgpg_environment Supported platforms ios, android, mac Author @simonlevy5","title":"dotgpg_environment"},{"location":"actions/dotgpg_environment/#1-example","text":"dotgpg_environment(dotgpg_file: './path/to/gpgfile')","title":"1 Example"},{"location":"actions/dotgpg_environment/#parameters","text":"Key Description Default dotgpg_file Path to your gpg file * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/dotgpg_environment/#documentation","text":"To show the documentation in your terminal, run fastlane action dotgpg_environment","title":"Documentation"},{"location":"actions/dotgpg_environment/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run dotgpg_environment To pass parameters, make use of the : symbol, for example fastlane run dotgpg_environment parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/dotgpg_environment/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/download/","text":"download Download a file from a remote server (e.g. JSON file) Specify the URL to download and get the content as a return value. Automatically parses JSON into a Ruby data structure. For more advanced networking code, use the Ruby functions instead: http://docs.ruby-lang.org/en/2.0.0/Net/HTTP.html . download Supported platforms ios, android, mac Author @KrauseFx 1 Example data = download(url: \"https://host.com/api.json\") Parameters Key Description Default url The URL that should be downloaded * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The download action generates the following Lane Variables: SharedValue Description SharedValues::DOWNLOAD_CONTENT The content of the file we just downloaded To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action download CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download To pass parameters, make use of the : symbol, for example fastlane run download parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"download"},{"location":"actions/download/#download","text":"Download a file from a remote server (e.g. JSON file) Specify the URL to download and get the content as a return value. Automatically parses JSON into a Ruby data structure. For more advanced networking code, use the Ruby functions instead: http://docs.ruby-lang.org/en/2.0.0/Net/HTTP.html . download Supported platforms ios, android, mac Author @KrauseFx","title":"download"},{"location":"actions/download/#1-example","text":"data = download(url: \"https://host.com/api.json\")","title":"1 Example"},{"location":"actions/download/#parameters","text":"Key Description Default url The URL that should be downloaded * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/download/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The download action generates the following Lane Variables: SharedValue Description SharedValues::DOWNLOAD_CONTENT The content of the file we just downloaded To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/download/#documentation","text":"To show the documentation in your terminal, run fastlane action download","title":"Documentation"},{"location":"actions/download/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download To pass parameters, make use of the : symbol, for example fastlane run download parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/download/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/download_app_privacy_details_from_app_store/","text":"download_app_privacy_details_from_app_store Download App Privacy Details from an app in App Store Connect Download App Privacy Details from an app in App Store Connect. For more detail information, view https://docs.fastlane.tools/uploading-app-privacy-details download_app_privacy_details_from_app_store Supported platforms ios, mac Author @igor-makarov 2 Examples download_app_privacy_details_from_app_store( username: \"your@email.com\", team_name: \"Your Team\", app_identifier: \"com.your.bundle\" ) download_app_privacy_details_from_app_store( username: \"your@email.com\", team_name: \"Your Team\", app_identifier: \"com.your.bundle\", output_json_path: \"fastlane/app_data_usages.json\" ) Parameters Key Description Default username Your Apple ID Username for App Store Connect * app_identifier The bundle identifier of your app * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * output_json_path Path to the app usage data JSON file generated by interactive questions ./fastlane/app_privacy_details.json * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action download_app_privacy_details_from_app_store CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download_app_privacy_details_from_app_store To pass parameters, make use of the : symbol, for example fastlane run download_app_privacy_details_from_app_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"download_app_privacy_details_from_app_store"},{"location":"actions/download_app_privacy_details_from_app_store/#download_app_privacy_details_from_app_store","text":"Download App Privacy Details from an app in App Store Connect Download App Privacy Details from an app in App Store Connect. For more detail information, view https://docs.fastlane.tools/uploading-app-privacy-details download_app_privacy_details_from_app_store Supported platforms ios, mac Author @igor-makarov","title":"download_app_privacy_details_from_app_store"},{"location":"actions/download_app_privacy_details_from_app_store/#2-examples","text":"download_app_privacy_details_from_app_store( username: \"your@email.com\", team_name: \"Your Team\", app_identifier: \"com.your.bundle\" ) download_app_privacy_details_from_app_store( username: \"your@email.com\", team_name: \"Your Team\", app_identifier: \"com.your.bundle\", output_json_path: \"fastlane/app_data_usages.json\" )","title":"2 Examples"},{"location":"actions/download_app_privacy_details_from_app_store/#parameters","text":"Key Description Default username Your Apple ID Username for App Store Connect * app_identifier The bundle identifier of your app * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * output_json_path Path to the app usage data JSON file generated by interactive questions ./fastlane/app_privacy_details.json * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/download_app_privacy_details_from_app_store/#documentation","text":"To show the documentation in your terminal, run fastlane action download_app_privacy_details_from_app_store","title":"Documentation"},{"location":"actions/download_app_privacy_details_from_app_store/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download_app_privacy_details_from_app_store To pass parameters, make use of the : symbol, for example fastlane run download_app_privacy_details_from_app_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/download_app_privacy_details_from_app_store/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/download_dsyms/","text":"download_dsyms Download dSYM files from App Store Connect for Bitcode apps This action downloads dSYM files from App Store Connect after the ipa gets re-compiled by Apple. Useful if you have Bitcode enabled. lane :refresh_dsyms do download_dsyms # Download dSYM files from iTC upload_symbols_to_crashlytics # Upload them to Crashlytics clean_build_artifacts # Delete the local dSYM files end download_dsyms Supported platforms ios Author @KrauseFx 6 Examples download_dsyms download_dsyms(version: \"1.0.0\", build_number: \"345\") download_dsyms(version: \"1.0.1\", build_number: 42) download_dsyms(version: \"live\") download_dsyms(min_version: \"1.2.3\") download_dsyms(after_uploaded_date: \"2020-09-11T19:00:00+01:00\") Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option) * username Your Apple ID Username for App Store Connect * app_identifier The bundle identifier of your app * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * platform The app platform for dSYMs you wish to download (ios, appletvos) :ios version The app version for dSYMs you wish to download, pass in 'latest' to download only the latest build's dSYMs or 'live' to download only the live version dSYMs build_number The app build_number for dSYMs you wish to download min_version The minimum app version for dSYMs you wish to download after_uploaded_date The uploaded date after which you wish to download dSYMs output_directory Where to save the download dSYMs, defaults to the current path wait_for_dsym_processing Wait for dSYMs to process false wait_timeout Number of seconds to wait for dSYMs to process 300 * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The download_dsyms action generates the following Lane Variables: SharedValue Description SharedValues::DSYM_PATHS An array to all the zipped dSYM files SharedValues::DSYM_LATEST_UPLOADED_DATE Date of the most recent uploaded time of successfully downloaded dSYM files To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action download_dsyms CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download_dsyms To pass parameters, make use of the : symbol, for example fastlane run download_dsyms parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"download_dsyms"},{"location":"actions/download_dsyms/#download_dsyms","text":"Download dSYM files from App Store Connect for Bitcode apps This action downloads dSYM files from App Store Connect after the ipa gets re-compiled by Apple. Useful if you have Bitcode enabled. lane :refresh_dsyms do download_dsyms # Download dSYM files from iTC upload_symbols_to_crashlytics # Upload them to Crashlytics clean_build_artifacts # Delete the local dSYM files end download_dsyms Supported platforms ios Author @KrauseFx","title":"download_dsyms"},{"location":"actions/download_dsyms/#6-examples","text":"download_dsyms download_dsyms(version: \"1.0.0\", build_number: \"345\") download_dsyms(version: \"1.0.1\", build_number: 42) download_dsyms(version: \"live\") download_dsyms(min_version: \"1.2.3\") download_dsyms(after_uploaded_date: \"2020-09-11T19:00:00+01:00\")","title":"6 Examples"},{"location":"actions/download_dsyms/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option) * username Your Apple ID Username for App Store Connect * app_identifier The bundle identifier of your app * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * platform The app platform for dSYMs you wish to download (ios, appletvos) :ios version The app version for dSYMs you wish to download, pass in 'latest' to download only the latest build's dSYMs or 'live' to download only the live version dSYMs build_number The app build_number for dSYMs you wish to download min_version The minimum app version for dSYMs you wish to download after_uploaded_date The uploaded date after which you wish to download dSYMs output_directory Where to save the download dSYMs, defaults to the current path wait_for_dsym_processing Wait for dSYMs to process false wait_timeout Number of seconds to wait for dSYMs to process 300 * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/download_dsyms/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The download_dsyms action generates the following Lane Variables: SharedValue Description SharedValues::DSYM_PATHS An array to all the zipped dSYM files SharedValues::DSYM_LATEST_UPLOADED_DATE Date of the most recent uploaded time of successfully downloaded dSYM files To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/download_dsyms/#documentation","text":"To show the documentation in your terminal, run fastlane action download_dsyms","title":"Documentation"},{"location":"actions/download_dsyms/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download_dsyms To pass parameters, make use of the : symbol, for example fastlane run download_dsyms parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/download_dsyms/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/download_from_play_store/","text":"download_from_play_store Download metadata and binaries from Google Play (via supply ) More information: https://docs.fastlane.tools/actions/download_from_play_store/ download_from_play_store Supported platforms android Author @janpio 1 Example download_from_play_store Parameters Key Description Default package_name The package name of the application to use * version_name Version name (used when uploading new apks/aabs) - defaults to 'versionName' in build.gradle or AndroidManifest.xml * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production metadata_path Path to the directory containing the metadata files * key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action download_from_play_store CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download_from_play_store To pass parameters, make use of the : symbol, for example fastlane run download_from_play_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"download_from_play_store"},{"location":"actions/download_from_play_store/#download_from_play_store","text":"Download metadata and binaries from Google Play (via supply ) More information: https://docs.fastlane.tools/actions/download_from_play_store/ download_from_play_store Supported platforms android Author @janpio","title":"download_from_play_store"},{"location":"actions/download_from_play_store/#1-example","text":"download_from_play_store","title":"1 Example"},{"location":"actions/download_from_play_store/#parameters","text":"Key Description Default package_name The package name of the application to use * version_name Version name (used when uploading new apks/aabs) - defaults to 'versionName' in build.gradle or AndroidManifest.xml * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production metadata_path Path to the directory containing the metadata files * key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/download_from_play_store/#documentation","text":"To show the documentation in your terminal, run fastlane action download_from_play_store","title":"Documentation"},{"location":"actions/download_from_play_store/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download_from_play_store To pass parameters, make use of the : symbol, for example fastlane run download_from_play_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/download_from_play_store/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/download_universal_apk_from_google_play/","text":"download_universal_apk_from_google_play Download the Universal APK of a given version code from the Google Play Console Download the universal APK of a given version code from the Google Play Console. This uses fastlane supply (and the AndroidPublisher Google API) to download the Universal APK generated by Google after you uploaded an .aab bundle to the Play Console. See https://developers.google.com/android-publisher/api-ref/rest/v3/generatedapks/list download_universal_apk_from_google_play Supported platforms android Author @Automattic Returns The path to the downloaded Universal APK. The action will raise an exception if it failed to find or download the APK in Google Play Parameters Key Description Default package_name The package name of the application to use * version_code The versionCode for which to download the generated APK * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 destination The path on disk where to download the Generated Universal APK certificate_sha256_hash The SHA256 hash of the signing key for which to download the Universal, Code-Signed APK for. Use 'xx:xx:xx:\u2026' format (32 hex bytes separated by colons), as printed by keytool -list -keystore . Only useful to provide if you have multiple signing keys configured on GPC, to specify which generated APK to download * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action download_universal_apk_from_google_play CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download_universal_apk_from_google_play To pass parameters, make use of the : symbol, for example fastlane run download_universal_apk_from_google_play parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"download_universal_apk_from_google_play"},{"location":"actions/download_universal_apk_from_google_play/#download_universal_apk_from_google_play","text":"Download the Universal APK of a given version code from the Google Play Console Download the universal APK of a given version code from the Google Play Console. This uses fastlane supply (and the AndroidPublisher Google API) to download the Universal APK generated by Google after you uploaded an .aab bundle to the Play Console. See https://developers.google.com/android-publisher/api-ref/rest/v3/generatedapks/list download_universal_apk_from_google_play Supported platforms android Author @Automattic Returns The path to the downloaded Universal APK. The action will raise an exception if it failed to find or download the APK in Google Play","title":"download_universal_apk_from_google_play"},{"location":"actions/download_universal_apk_from_google_play/#parameters","text":"Key Description Default package_name The package name of the application to use * version_code The versionCode for which to download the generated APK * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 destination The path on disk where to download the Generated Universal APK certificate_sha256_hash The SHA256 hash of the signing key for which to download the Universal, Code-Signed APK for. Use 'xx:xx:xx:\u2026' format (32 hex bytes separated by colons), as printed by keytool -list -keystore . Only useful to provide if you have multiple signing keys configured on GPC, to specify which generated APK to download * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/download_universal_apk_from_google_play/#documentation","text":"To show the documentation in your terminal, run fastlane action download_universal_apk_from_google_play","title":"Documentation"},{"location":"actions/download_universal_apk_from_google_play/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download_universal_apk_from_google_play To pass parameters, make use of the : symbol, for example fastlane run download_universal_apk_from_google_play parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/download_universal_apk_from_google_play/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/dsym_zip/","text":"dsym_zip Creates a zipped dSYM in the project root from the .xcarchive You can manually specify the path to the xcarchive (not needed if you use xcodebuild / xcarchive to build your archive) dsym_zip Supported platforms ios, mac Author @lmirosevic 2 Examples dsym_zip dsym_zip( archive_path: \"MyApp.xcarchive\" ) Parameters Key Description Default archive_path Path to your xcarchive file. Optional if you use the xcodebuild action * dsym_path Path for generated dsym. Optional, default is your apps root directory all Whether or not all dSYM files are to be included. Optional, default is false in which only your app dSYM is included false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The dsym_zip action generates the following Lane Variables: SharedValue Description SharedValues::DSYM_ZIP_PATH The named of the zipped dSYM To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action dsym_zip CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run dsym_zip To pass parameters, make use of the : symbol, for example fastlane run dsym_zip parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"dsym_zip"},{"location":"actions/dsym_zip/#dsym_zip","text":"Creates a zipped dSYM in the project root from the .xcarchive You can manually specify the path to the xcarchive (not needed if you use xcodebuild / xcarchive to build your archive) dsym_zip Supported platforms ios, mac Author @lmirosevic","title":"dsym_zip"},{"location":"actions/dsym_zip/#2-examples","text":"dsym_zip dsym_zip( archive_path: \"MyApp.xcarchive\" )","title":"2 Examples"},{"location":"actions/dsym_zip/#parameters","text":"Key Description Default archive_path Path to your xcarchive file. Optional if you use the xcodebuild action * dsym_path Path for generated dsym. Optional, default is your apps root directory all Whether or not all dSYM files are to be included. Optional, default is false in which only your app dSYM is included false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/dsym_zip/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The dsym_zip action generates the following Lane Variables: SharedValue Description SharedValues::DSYM_ZIP_PATH The named of the zipped dSYM To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/dsym_zip/#documentation","text":"To show the documentation in your terminal, run fastlane action dsym_zip","title":"Documentation"},{"location":"actions/dsym_zip/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run dsym_zip To pass parameters, make use of the : symbol, for example fastlane run dsym_zip parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/dsym_zip/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/echo/","text":"echo Alias for the puts action echo Supported platforms ios, android, mac Author @KrauseFx 1 Example puts \"Hi there\" Parameters Key Description Default message Message to be printed out * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action echo CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run echo To pass parameters, make use of the : symbol, for example fastlane run echo parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"echo"},{"location":"actions/echo/#echo","text":"Alias for the puts action echo Supported platforms ios, android, mac Author @KrauseFx","title":"echo"},{"location":"actions/echo/#1-example","text":"puts \"Hi there\"","title":"1 Example"},{"location":"actions/echo/#parameters","text":"Key Description Default message Message to be printed out * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/echo/#documentation","text":"To show the documentation in your terminal, run fastlane action echo","title":"Documentation"},{"location":"actions/echo/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run echo To pass parameters, make use of the : symbol, for example fastlane run echo parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/echo/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/ensure_bundle_exec/","text":"ensure_bundle_exec Raises an exception if not using bundle exec to run fastlane This action will check if you are using bundle exec to run fastlane. You can put it into before_all to make sure that fastlane is ran using the bundle exec fastlane command. ensure_bundle_exec Supported platforms ios, android, mac Author @rishabhtayal 1 Example ensure_bundle_exec Documentation To show the documentation in your terminal, run fastlane action ensure_bundle_exec CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_bundle_exec To pass parameters, make use of the : symbol, for example fastlane run ensure_bundle_exec parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"ensure_bundle_exec"},{"location":"actions/ensure_bundle_exec/#ensure_bundle_exec","text":"Raises an exception if not using bundle exec to run fastlane This action will check if you are using bundle exec to run fastlane. You can put it into before_all to make sure that fastlane is ran using the bundle exec fastlane command. ensure_bundle_exec Supported platforms ios, android, mac Author @rishabhtayal","title":"ensure_bundle_exec"},{"location":"actions/ensure_bundle_exec/#1-example","text":"ensure_bundle_exec","title":"1 Example"},{"location":"actions/ensure_bundle_exec/#documentation","text":"To show the documentation in your terminal, run fastlane action ensure_bundle_exec","title":"Documentation"},{"location":"actions/ensure_bundle_exec/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_bundle_exec To pass parameters, make use of the : symbol, for example fastlane run ensure_bundle_exec parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/ensure_bundle_exec/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/ensure_env_vars/","text":"ensure_env_vars Raises an exception if the specified env vars are not set This action will check if some environment variables are set. ensure_env_vars Supported platforms ios, android, mac Author @revolter 1 Example ensure_env_vars( env_vars: ['GITHUB_USER_NAME', 'GITHUB_API_TOKEN'] ) Parameters Key Description Default env_vars The environment variables names that should be checked * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action ensure_env_vars CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_env_vars To pass parameters, make use of the : symbol, for example fastlane run ensure_env_vars parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"ensure_env_vars"},{"location":"actions/ensure_env_vars/#ensure_env_vars","text":"Raises an exception if the specified env vars are not set This action will check if some environment variables are set. ensure_env_vars Supported platforms ios, android, mac Author @revolter","title":"ensure_env_vars"},{"location":"actions/ensure_env_vars/#1-example","text":"ensure_env_vars( env_vars: ['GITHUB_USER_NAME', 'GITHUB_API_TOKEN'] )","title":"1 Example"},{"location":"actions/ensure_env_vars/#parameters","text":"Key Description Default env_vars The environment variables names that should be checked * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/ensure_env_vars/#documentation","text":"To show the documentation in your terminal, run fastlane action ensure_env_vars","title":"Documentation"},{"location":"actions/ensure_env_vars/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_env_vars To pass parameters, make use of the : symbol, for example fastlane run ensure_env_vars parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/ensure_env_vars/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/ensure_git_branch/","text":"ensure_git_branch Raises an exception if not on a specific git branch This action will check if your git repo is checked out to a specific branch. You may only want to make releases from a specific branch, so ensure_git_branch will stop a lane if it was accidentally executed on an incorrect branch. ensure_git_branch Supported platforms ios, android, mac Author @dbachrach, @Liquidsoul 2 Examples ensure_git_branch # defaults to `master` branch ensure_git_branch( branch: 'develop' ) Parameters Key Description Default branch The branch that should be checked for. String that can be either the full name of the branch or a regex e.g. ^feature/.*$ to match master * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action ensure_git_branch CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_git_branch To pass parameters, make use of the : symbol, for example fastlane run ensure_git_branch parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"ensure_git_branch"},{"location":"actions/ensure_git_branch/#ensure_git_branch","text":"Raises an exception if not on a specific git branch This action will check if your git repo is checked out to a specific branch. You may only want to make releases from a specific branch, so ensure_git_branch will stop a lane if it was accidentally executed on an incorrect branch. ensure_git_branch Supported platforms ios, android, mac Author @dbachrach, @Liquidsoul","title":"ensure_git_branch"},{"location":"actions/ensure_git_branch/#2-examples","text":"ensure_git_branch # defaults to `master` branch ensure_git_branch( branch: 'develop' )","title":"2 Examples"},{"location":"actions/ensure_git_branch/#parameters","text":"Key Description Default branch The branch that should be checked for. String that can be either the full name of the branch or a regex e.g. ^feature/.*$ to match master * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/ensure_git_branch/#documentation","text":"To show the documentation in your terminal, run fastlane action ensure_git_branch","title":"Documentation"},{"location":"actions/ensure_git_branch/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_git_branch To pass parameters, make use of the : symbol, for example fastlane run ensure_git_branch parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/ensure_git_branch/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/ensure_git_status_clean/","text":"ensure_git_status_clean Raises an exception if there are uncommitted git changes A sanity check to make sure you are working in a repo that is clean. Especially useful to put at the beginning of your Fastfile in the before_all block, if some of your other actions will touch your filesystem, do things to your git repo, or just as a general reminder to save your work. Also needed as a prerequisite for some other actions like reset_git_repo . ensure_git_status_clean Supported platforms ios, android, mac Author @lmirosevic, @antondomashnev 1 Example ensure_git_status_clean Parameters Key Description Default show_uncommitted_changes The flag whether to show uncommitted changes if the repo is dirty false show_diff The flag whether to show the git diff if the repo is dirty false ignored The handling mode of the ignored files. The available options are: 'traditional' , 'none' (default) and 'matching' . Specifying 'none' to this parameter is the same as not specifying the parameter at all, which means that no ignored file will be used to check if the repo is dirty or not. Specifying 'traditional' or 'matching' causes some ignored files to be used to check if the repo is dirty or not (more info in the official docs: https://git-scm.com/docs/git-status#Documentation/git-status.txt---ignoredltmodegt) ignore_files Array of files to ignore * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The ensure_git_status_clean action generates the following Lane Variables: SharedValue Description SharedValues::GIT_REPO_WAS_CLEAN_ON_START Stores the fact that the git repo was clean at some point To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action ensure_git_status_clean CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_git_status_clean To pass parameters, make use of the : symbol, for example fastlane run ensure_git_status_clean parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"ensure_git_status_clean"},{"location":"actions/ensure_git_status_clean/#ensure_git_status_clean","text":"Raises an exception if there are uncommitted git changes A sanity check to make sure you are working in a repo that is clean. Especially useful to put at the beginning of your Fastfile in the before_all block, if some of your other actions will touch your filesystem, do things to your git repo, or just as a general reminder to save your work. Also needed as a prerequisite for some other actions like reset_git_repo . ensure_git_status_clean Supported platforms ios, android, mac Author @lmirosevic, @antondomashnev","title":"ensure_git_status_clean"},{"location":"actions/ensure_git_status_clean/#1-example","text":"ensure_git_status_clean","title":"1 Example"},{"location":"actions/ensure_git_status_clean/#parameters","text":"Key Description Default show_uncommitted_changes The flag whether to show uncommitted changes if the repo is dirty false show_diff The flag whether to show the git diff if the repo is dirty false ignored The handling mode of the ignored files. The available options are: 'traditional' , 'none' (default) and 'matching' . Specifying 'none' to this parameter is the same as not specifying the parameter at all, which means that no ignored file will be used to check if the repo is dirty or not. Specifying 'traditional' or 'matching' causes some ignored files to be used to check if the repo is dirty or not (more info in the official docs: https://git-scm.com/docs/git-status#Documentation/git-status.txt---ignoredltmodegt) ignore_files Array of files to ignore * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/ensure_git_status_clean/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The ensure_git_status_clean action generates the following Lane Variables: SharedValue Description SharedValues::GIT_REPO_WAS_CLEAN_ON_START Stores the fact that the git repo was clean at some point To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/ensure_git_status_clean/#documentation","text":"To show the documentation in your terminal, run fastlane action ensure_git_status_clean","title":"Documentation"},{"location":"actions/ensure_git_status_clean/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_git_status_clean To pass parameters, make use of the : symbol, for example fastlane run ensure_git_status_clean parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/ensure_git_status_clean/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/ensure_no_debug_code/","text":"ensure_no_debug_code Ensures the given text is nowhere in the code base You don't want any debug code to slip into production. This can be used to check if there is any debug code still in your codebase or if you have things like // TO DO or similar. ensure_no_debug_code Supported platforms ios, android, mac Author @KrauseFx 5 Examples ensure_no_debug_code(text: \"// TODO\") ensure_no_debug_code(text: \"Log.v\", extension: \"java\") ensure_no_debug_code(text: \"NSLog\", path: \"./lib\", extension: \"m\") ensure_no_debug_code(text: \"(^#define DEBUG|NSLog)\", path: \"./lib\", extension: \"m\") ensure_no_debug_code(text: \"<<<<<<\", extensions: [\"m\", \"swift\", \"java\"]) Parameters Key Description Default text The text that must not be in the code base path The directory containing all the source files . extension The extension that should be searched for extensions An array of file extensions that should be searched for exclude Exclude a certain pattern from the search exclude_dirs An array of dirs that should not be included in the search * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action ensure_no_debug_code CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_no_debug_code To pass parameters, make use of the : symbol, for example fastlane run ensure_no_debug_code parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"ensure_no_debug_code"},{"location":"actions/ensure_no_debug_code/#ensure_no_debug_code","text":"Ensures the given text is nowhere in the code base You don't want any debug code to slip into production. This can be used to check if there is any debug code still in your codebase or if you have things like // TO DO or similar. ensure_no_debug_code Supported platforms ios, android, mac Author @KrauseFx","title":"ensure_no_debug_code"},{"location":"actions/ensure_no_debug_code/#5-examples","text":"ensure_no_debug_code(text: \"// TODO\") ensure_no_debug_code(text: \"Log.v\", extension: \"java\") ensure_no_debug_code(text: \"NSLog\", path: \"./lib\", extension: \"m\") ensure_no_debug_code(text: \"(^#define DEBUG|NSLog)\", path: \"./lib\", extension: \"m\") ensure_no_debug_code(text: \"<<<<<<\", extensions: [\"m\", \"swift\", \"java\"])","title":"5 Examples"},{"location":"actions/ensure_no_debug_code/#parameters","text":"Key Description Default text The text that must not be in the code base path The directory containing all the source files . extension The extension that should be searched for extensions An array of file extensions that should be searched for exclude Exclude a certain pattern from the search exclude_dirs An array of dirs that should not be included in the search * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/ensure_no_debug_code/#documentation","text":"To show the documentation in your terminal, run fastlane action ensure_no_debug_code","title":"Documentation"},{"location":"actions/ensure_no_debug_code/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_no_debug_code To pass parameters, make use of the : symbol, for example fastlane run ensure_no_debug_code parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/ensure_no_debug_code/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/ensure_xcode_version/","text":"ensure_xcode_version Ensure the right version of Xcode is used The xcode-install gem, which this action depends on, has been sunset. Please migrate to xcodes . You can find a migration guide here: xcpretty/xcode-install/MIGRATION.md If building your app requires a specific version of Xcode, you can invoke this command before using gym. For example, to ensure that a beta version of Xcode is not accidentally selected to build, which would make uploading to TestFlight fail. You can either manually provide a specific version using version: or you make use of the .xcode-version file. Using the strict parameter, you can either verify the full set of version numbers strictly (i.e. 11.3.1 ) or only a subset of them (i.e. 11.3 or 11 ). ensure_xcode_version Supported platforms ios, mac Author @JaviSoto, @KrauseFx 1 Example ensure_xcode_version(version: \"12.5\") Parameters Key Description Default version Xcode version to verify that is selected strict Should the version be verified strictly (all 3 version numbers), or matching only the given version numbers (i.e. 11.3 == 11.3.x ) true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The ensure_xcode_version action generates the following Lane Variables: SharedValue Description SharedValues::FL_ENSURE_XCODE_VERSION Xcode version to verify that is selected To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action ensure_xcode_version CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_xcode_version To pass parameters, make use of the : symbol, for example fastlane run ensure_xcode_version parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"ensure_xcode_version"},{"location":"actions/ensure_xcode_version/#ensure_xcode_version","text":"Ensure the right version of Xcode is used The xcode-install gem, which this action depends on, has been sunset. Please migrate to xcodes . You can find a migration guide here: xcpretty/xcode-install/MIGRATION.md If building your app requires a specific version of Xcode, you can invoke this command before using gym. For example, to ensure that a beta version of Xcode is not accidentally selected to build, which would make uploading to TestFlight fail. You can either manually provide a specific version using version: or you make use of the .xcode-version file. Using the strict parameter, you can either verify the full set of version numbers strictly (i.e. 11.3.1 ) or only a subset of them (i.e. 11.3 or 11 ). ensure_xcode_version Supported platforms ios, mac Author @JaviSoto, @KrauseFx","title":"ensure_xcode_version"},{"location":"actions/ensure_xcode_version/#1-example","text":"ensure_xcode_version(version: \"12.5\")","title":"1 Example"},{"location":"actions/ensure_xcode_version/#parameters","text":"Key Description Default version Xcode version to verify that is selected strict Should the version be verified strictly (all 3 version numbers), or matching only the given version numbers (i.e. 11.3 == 11.3.x ) true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/ensure_xcode_version/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The ensure_xcode_version action generates the following Lane Variables: SharedValue Description SharedValues::FL_ENSURE_XCODE_VERSION Xcode version to verify that is selected To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/ensure_xcode_version/#documentation","text":"To show the documentation in your terminal, run fastlane action ensure_xcode_version","title":"Documentation"},{"location":"actions/ensure_xcode_version/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_xcode_version To pass parameters, make use of the : symbol, for example fastlane run ensure_xcode_version parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/ensure_xcode_version/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/environment_variable/","text":"environment_variable Sets/gets env vars for Fastlane.swift. Don't use in ruby, use ENV[key] = val environment_variable Supported platforms ios, android, mac Author @taquitos Parameters Key Description Default set Set the environment variables named get Get the environment variable named remove Remove the environment variable named * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action environment_variable CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run environment_variable To pass parameters, make use of the : symbol, for example fastlane run environment_variable parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"environment_variable"},{"location":"actions/environment_variable/#environment_variable","text":"Sets/gets env vars for Fastlane.swift. Don't use in ruby, use ENV[key] = val environment_variable Supported platforms ios, android, mac Author @taquitos","title":"environment_variable"},{"location":"actions/environment_variable/#parameters","text":"Key Description Default set Set the environment variables named get Get the environment variable named remove Remove the environment variable named * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/environment_variable/#documentation","text":"To show the documentation in your terminal, run fastlane action environment_variable","title":"Documentation"},{"location":"actions/environment_variable/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run environment_variable To pass parameters, make use of the : symbol, for example fastlane run environment_variable parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/environment_variable/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/erb/","text":"erb Allows to Generate output files based on ERB templates Renders an ERB template with :placeholders given as a hash via parameter. If no :destination is set, it returns the rendered template as string. erb Supported platforms ios, android, mac Author @hjanuschka 1 Example # Example `erb` template: # Variable1 <%= var1 %> # Variable2 <%= var2 %> # <% for item in var3 %> # <%= item %> # <% end %> erb( template: \"1.erb\", destination: \"/tmp/rendered.out\", placeholders: { :var1 => 123, :var2 => \"string\", :var3 => [\"element1\", \"element2\"] } ) Parameters Key Description Default template ERB Template File destination Destination file placeholders Placeholders given as a hash {} trim_mode Trim mode applied to the ERB * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action erb CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run erb To pass parameters, make use of the : symbol, for example fastlane run erb parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"erb"},{"location":"actions/erb/#erb","text":"Allows to Generate output files based on ERB templates Renders an ERB template with :placeholders given as a hash via parameter. If no :destination is set, it returns the rendered template as string. erb Supported platforms ios, android, mac Author @hjanuschka","title":"erb"},{"location":"actions/erb/#1-example","text":"# Example `erb` template: # Variable1 <%= var1 %> # Variable2 <%= var2 %> # <% for item in var3 %> # <%= item %> # <% end %> erb( template: \"1.erb\", destination: \"/tmp/rendered.out\", placeholders: { :var1 => 123, :var2 => \"string\", :var3 => [\"element1\", \"element2\"] } )","title":"1 Example"},{"location":"actions/erb/#parameters","text":"Key Description Default template ERB Template File destination Destination file placeholders Placeholders given as a hash {} trim_mode Trim mode applied to the ERB * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/erb/#documentation","text":"To show the documentation in your terminal, run fastlane action erb","title":"Documentation"},{"location":"actions/erb/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run erb To pass parameters, make use of the : symbol, for example fastlane run erb parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/erb/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/fastlane_version/","text":"fastlane_version Alias for the min_fastlane_version action Add this to your Fastfile to require a certain version of fastlane . Use it if you use an action that just recently came out and you need it. fastlane_version Supported platforms ios, android, mac Author @KrauseFx 1 Example min_fastlane_version(\"1.50.0\") Documentation To show the documentation in your terminal, run fastlane action fastlane_version CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run fastlane_version To pass parameters, make use of the : symbol, for example fastlane run fastlane_version parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"fastlane_version"},{"location":"actions/fastlane_version/#fastlane_version","text":"Alias for the min_fastlane_version action Add this to your Fastfile to require a certain version of fastlane . Use it if you use an action that just recently came out and you need it. fastlane_version Supported platforms ios, android, mac Author @KrauseFx","title":"fastlane_version"},{"location":"actions/fastlane_version/#1-example","text":"min_fastlane_version(\"1.50.0\")","title":"1 Example"},{"location":"actions/fastlane_version/#documentation","text":"To show the documentation in your terminal, run fastlane action fastlane_version","title":"Documentation"},{"location":"actions/fastlane_version/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run fastlane_version To pass parameters, make use of the : symbol, for example fastlane run fastlane_version parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/fastlane_version/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/flock/","text":"flock Send a message to a Flock group To obtain the token, create a new incoming message webhook in your Flock admin panel. flock Supported platforms ios, android, mac Author @Manav 1 Example flock( message: \"Hello\", token: \"xxx\" ) Parameters Key Description Default message Message text token Token for the Flock incoming webhook base_url Base URL of the Flock incoming message webhook https://api.flock.co/hooks/sendMessage * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action flock CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run flock To pass parameters, make use of the : symbol, for example fastlane run flock parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"flock"},{"location":"actions/flock/#flock","text":"Send a message to a Flock group To obtain the token, create a new incoming message webhook in your Flock admin panel. flock Supported platforms ios, android, mac Author @Manav","title":"flock"},{"location":"actions/flock/#1-example","text":"flock( message: \"Hello\", token: \"xxx\" )","title":"1 Example"},{"location":"actions/flock/#parameters","text":"Key Description Default message Message text token Token for the Flock incoming webhook base_url Base URL of the Flock incoming message webhook https://api.flock.co/hooks/sendMessage * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/flock/#documentation","text":"To show the documentation in your terminal, run fastlane action flock","title":"Documentation"},{"location":"actions/flock/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run flock To pass parameters, make use of the : symbol, for example fastlane run flock parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/flock/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/frame_screenshots/","text":"frame_screenshots Adds device frames around all screenshots (via frameit ) Easily put your screenshots into the right device frames frameit allows you to put a gorgeous device frame around your iOS, macOS and Android screenshots just by running one simple command. Use frameit to prepare perfect screenshots for the App Store, your website, QA or emails. Features \u2022 Usage \u2022 Tips frameit is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Features Frame screenshot Put a gorgeous device frame around your iOS, macOS and Android screenshots just by running one simple command. Support for: iPhone, iPad and Mac Set of Android devices Portrait and Landscape modes Several device frame colors The complete and updated list of supported devices and colors can be found here Here is a nice gif, that shows frameit in action: Advanced Features Put framed screenshot on colored background, define padding add text above or under framed screenshot keyword + text choose text font and color multi line text \"intelligent\" positioning of text that always looks good(ish) Results The frameit 2.0 update was kindly sponsored by MindNode , seen in the screenshots above. The first time that frameit is executed the frames will be downloaded automatically. Originally the frames are coming from Facebook frameset and they are kept on this repo . More information about this process and how to update the frames can be found here Usage Basic Usage Why should you have to use Photoshop, just to add a frame around your screenshots? Just navigate to your folder of screenshots and use the following command (iOS and Mac OS are default platforms for backward compatibility): fastlane frameit To frame Android screenshots: fastlane frameit android To use the silver version of the frames: fastlane frameit silver To download the latest frames fastlane frameit download_frames Note: When using frameit without titles on top, the screenshots will have the full resolution, which means they can't be uploaded to the App Store directly. They are supposed to be used for websites, print media and emails. Check out the section below to use the screenshots for the App Store. Advanced Usage (optional) Text and Background With frameit it's possible to add a custom background and text below or above the framed screenshots in fonts and colors you define. A working example can be found in the fastlane examples project. Framefile.json The Framefile allows to define general and screenshot specific information. It has the following general JSON structure: { \"device_frame_version\": \"latest\", \"default\": { ... }, \"data\": [ ... ] } General parameters The general parameters are defined in the default key and can be: Key Description Default value background The background that should be used for the framed screenshot. Specify the (relative) path to the image file (e.g. *.jpg ). This parameter is mandatory. NA keyword An object that contains up to 3 keys to describe the optional keyword. See table below. NA title An object that contains up to 3 keys to describe the mandatory title. See table below. NA stack_title Specifies whether frameit should display the keyword above the title when both keyword and title are defined. If it is false, the title and keyword will be displayed side by side when both keyword and title are defined. false title_below_image Specifies whether frameit should place the title and optional keyword below the device frame. If it is false, it will be placed above the device frame. false show_complete_frame Specifies whether frameit should shrink the device frame so that it is completely shown in the framed screenshot. If it is false, clipping of the device frame might occur at the bottom (when title_below_image is false ) or top (when title_below_image is true ) of the framed screenshot. false padding The content of the framed screenshot will be resized to match the specified padding around all edges. The vertical padding is also applied between the text and the top or bottom (depending on title_below_image ) of the device frame. There are 3 different options of specifying the padding: 1. Default: An integer value that defines both horizontal and vertical padding in pixels. 2. A string that defines (different) padding values in pixels for horizontal and vertical padding. The syntax is \"x\" , e.g. \"30x60\" . 3. A string that defines (different) padding values in percentage for horizontal and vertical padding. The syntax is \"%x%\" , e.g. \"5%x10%\" . Note: The percentage is calculated from the smallest image dimension (height or width). A combination of option 2 and 3 is possible, e.g. \"5%x40\" . 50 interline_spacing Specifies whether frameit should add or subtract this many pixels between the individual lines of text. This only applies to a multi-line title and/or keyword to expand or squash together the individual lines of text. 0 font_scale_factor Specifies whether frameit should increase or decrease the font size of the text. Is ignored for keyword or title , if font_size is specified. 0.1 frame Overrides the color of the frame to be used. (Valid values are BLACK , WHITE , GOLD and ROSE_GOLD ) NA title_min_height Specifies a height always reserved for the title. Value can be a percentage of the height or an absolute value. The device will be placed below (or above) this area. Convenient to ensure the device top (or bottom) will be consistently placed at the same height on the different screenshots. NA use_platform Overrides the platform used for the screenshot. Valid values are IOS , ANDROID and ANY . IOS force_device_type Forces a specific device. Valid values are: Huawei P8, Motorola Moto E, Motorola Moto G, Nexus 4, Nexus 5X, Nexus 6P, Nexus 9, Samsung Galaxy Grand Prime, Samsung Galaxy Note 5, Samsung Galaxy S Duos, Samsung Galaxy S3, Samsung Galaxy S5, Samsung Galaxy S7, Samsung Galaxy S8, Samsung Galaxy S9, iPhone 5s, iPhone 5c, iPhone SE, iPhone 6s, iPhone 6s Plus, iPhone 7, iPhone 7 Plus, iPhone 8, iPhone 8 Plus, iPhone X, iPhone XS, iPhone XR, iPhone XS Max, iPad Air 2, iPad Mini 4, iPad Pro, MacBook, Google Pixel 3, Google Pixel 3 XL, HTC One A9, HTC One M8 NA Specific parameters The screenshot specific parameters are related to the keyword and title texts. These are defined in the data key. This is an array with the following keys for each screenshot: Key Description filter This is mandatory to link the individual configuration to the screenshot, based on part of the file name. Example: If a screenshot is named iPhone 8-Brainstorming.png you can use value Brainstorming for filter . If there are more than one filter matching an entry, they will all be applied in order (which means that the last one has the highest precedence). All other keys from that array element will only be applied on this specific screenshot. keyword Similar use as in default , except that parameter text can be used here because it is screenshot specific. title Similar use as in default , except that parameter text can be used here because it is screenshot specific. frame Overrides the color of the frame to be used. (Valid values are BLACK , WHITE , GOLD and ROSE_GOLD ) use_platform Overrides the platform used for the screenshot. Valid values are IOS , ANDROID and ANY . force_device_type Forces a specific device. Valid values are the same as for the general parameter. Framefile keyword and title parameters The keyword and title parameters are both used in default and data . They both consist of the following optional keys: Key Description Default value color The font color for the text. Specify a HEX/HTML color code. #000000 (black) font The font family for the text. Specify the (relative) path to the font file (e.g. an OpenType Font). The default imagemagick font, which is system dependent. font_size The font size for the text specified in points. If not specified or 0 , font will be scaled automatically to fit the available space. frameit still shrinks the text, if it would not fit. NA font_weight The font weight for the text . Specify an integer value (e.g. 900). NA text The text that should be used for the keyword or title . Note: If you want to use localised text, use .strings files . NA Example { \"device_frame_version\": \"latest\", \"default\": { \"keyword\": { \"font\": \"./fonts/MyFont-Rg.otf\" }, \"title\": { \"font\": \"./fonts/MyFont-Th.otf\", \"font_size\": 128, \"color\": \"#545454\" }, \"background\": \"./background.jpg\", \"padding\": 50, \"show_complete_frame\": false, \"stack_title\" : false, \"title_below_image\": true, \"frame\": \"WHITE\", \"use_platform\": \"IOS\" }, \"data\": [ { \"filter\": \"Brainstorming\", \"keyword\": { \"color\": \"#d21559\" } }, { \"filter\": \"Organizing\", \"keyword\": { \"color\": \"#feb909\" }, \"frame\": \"ROSE_GOLD\" }, { \"filter\": \"Sharing\", \"keyword\": { \"color\": \"#aa4dbc\" } }, { \"filter\": \"Styling\", \"keyword\": { \"color\": \"#31bb48\" } }, { \"filter\": \"Android\", \"use_platform\": \"ANDROID\" } ] } You can find a more complex configuration to also support Chinese, Japanese and Korean languages. The Framefile.json should be in the screenshots folder, as seen in the example . .strings files To define the title and optionally the keyword, put two .strings files into the language folder (e.g. en-US in the example project ) The keyword.strings and title.strings are standard .strings file you already use for your iOS apps, making it easy to use your existing translation service to get localized titles. Notes These .strings files MUST be utf-8 (UTF-8) or utf-16 encoded (UTF-16 BE with BOM). They also must begin with an empty line. If you are having trouble see issue #1740 You MUST provide a background if you want titles. frameit will not add the titles if a background is not specified. Screenshot orientation By default frameit adds a frame to your screenshot based on an orientation you took it. For a portrait (vertical orientation) it is going to add portrait frame and for a landscape (horizontal orientation) - landscape left (= Home button on the left side ). One way to override the default behavior is editing the file name by adding force_landscaperight to the end. force_orientation_block If the default behavior doesn't fit your needs and you don't want or can't rename your screenshots, you can customize frameit 's orientation behavior by setting a force_orientation_block parameter. The valid values are: :landscape_left (home button on the left side), :landscape_right (home button on the right side), :portrait (home button on the bottom), nil (home button on the right side). Examples # It matches the filename to the framed device orientation frameit( path: \"./fastlane/screenshots\", force_orientation_block: proc do |filename| case filename when \"iPad Pro (12.9-inch)-01LoginScreen\" :landscape_right when \"iPhone 6 Plus-01LoginScreen\" :portrait # and so on end end ) # It frames the screenshots in landscape right whenever the filename contains `landscape` word frameit( silver: true, path: \"./fastlane/screenshots\", force_orientation_block: proc do |filename| f = filename.downcase if f.include?(\"landscape\") :landscape_right end end ) Mac With frameit it's possible to also frame macOS Application screenshots. You have to provide the following: A (relative) path to a background image file, which should contain both the background and the Mac. The offset information so frameit knows where to position your screenshot on the background : offset : A string that specifies the horizontal and vertical offset in pixels, with respect to the top left corner of the background image. The syntax is \"++\" , e.g. \"+200+150\" . titleHeight : The height in pixels that should be used for the title. Example { \"default\": { \"title\": { \"color\": \"#545454\" }, \"background\": \"Mac.jpg\", \"offset\": { \"offset\": \"+676+479\", \"titleHeight\": 320 } }, \"data\": [ { \"filter\": \"Brainstorming\", \"keyword\": { \"color\": \"#d21559\" } } ] } Check out the MindNode example project . Tips Generate localized screenshots Check out snapshot to automatically generate screenshots using UI Automation . Resume framing Framing screenshots is a slow operation. In case you need to resume framing, or just frame a couple updated screenshots again, you can rely on the --resume flag. Only screenshots which have not been framed yet \u2013 or for which there isn't an up-to-date framed image \u2013 will be framed. This feature uses the file modification dates and will reframe screenshots if the screenshot is newer than the framed file. Upload screenshots Use deliver to upload iOS screenshots to App Store Connect, or supply to upload Android screenshots to Play Store completely automatically \ud83d\ude80 Use a clean status bar You can set override_status_bar to true in snapshot to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available. Examples # Sets the time to 9:41AM with full battery and reception, with the default carrier name: Carrier capture_ios_screenshots( override_status_bar: true ) # Set the time to 9:41AM, battery at 75% and charging, on the TELUS LTE network capture_ios_screenshots( override_status_bar: true, override_status_bar_arguments: \"--time 9:41 --dataNetwork lte --cellularMode active --cellularBars 4 --batteryState charging --batteryLevel 75 --operatorName TELUS\" ) Gray artifacts around text If you run into any quality issues, like having a border around the font, it usually helps to just re-install imagemagick . You can do so by running brew uninstall imagemagick brew install imagemagick Uninstall gem uninstall fastlane rm -rf ~/.frameit frame_screenshots Supported platforms ios, android, mac Author @KrauseFx 6 Examples frame_screenshots frameit # alias for \"frame_screenshots\" frame_screenshots(use_platform: \"ANDROID\") frame_screenshots(silver: true) frame_screenshots(path: \"/screenshots\") frame_screenshots(rose_gold: true) Parameters Key Description Default white Use white device frames silver Use white device frames. Alias for :white rose_gold Use rose gold device frames. Alias for :rose_gold gold Use gold device frames. Alias for :gold force_device_type Forces a given device type, useful for Mac screenshots, as their sizes vary use_legacy_iphone5s Use iPhone 5s instead of iPhone SE frames false use_legacy_iphone6s Use iPhone 6s frames instead of iPhone 7 frames false use_legacy_iphone7 Use iPhone 7 frames instead of iPhone 8 frames false use_legacy_iphonex Use iPhone X instead of iPhone XS frames false use_legacy_iphonexr Use iPhone XR instead of iPhone 11 frames false use_legacy_iphonexs Use iPhone XS instead of iPhone 11 Pro frames false use_legacy_iphonexsmax Use iPhone XS Max instead of iPhone 11 Pro Max frames false force_orientation_block [Advanced] A block to customize your screenshots' device orientation * debug_mode Output debug information in framed screenshots false resume Resume frameit instead of reprocessing all screenshots false use_platform Choose a platform, the valid options are IOS, ANDROID and ANY (default is either general platform defined in the fastfile or IOS to ensure backward compatibility) * path The path to the directory containing the screenshots * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action frame_screenshots CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run frame_screenshots To pass parameters, make use of the : symbol, for example fastlane run frame_screenshots parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"frame_screenshots"},{"location":"actions/frame_screenshots/#frame_screenshots","text":"Adds device frames around all screenshots (via frameit )","title":"frame_screenshots"},{"location":"actions/frame_screenshots/#features","text":"","title":"Features"},{"location":"actions/frame_screenshots/#frame-screenshot","text":"Put a gorgeous device frame around your iOS, macOS and Android screenshots just by running one simple command. Support for: iPhone, iPad and Mac Set of Android devices Portrait and Landscape modes Several device frame colors The complete and updated list of supported devices and colors can be found here Here is a nice gif, that shows frameit in action:","title":"Frame screenshot"},{"location":"actions/frame_screenshots/#advanced-features","text":"Put framed screenshot on colored background, define padding add text above or under framed screenshot keyword + text choose text font and color multi line text \"intelligent\" positioning of text that always looks good(ish)","title":"Advanced Features"},{"location":"actions/frame_screenshots/#results","text":"","title":"Results"},{"location":"actions/frame_screenshots/#usage","text":"","title":"Usage"},{"location":"actions/frame_screenshots/#basic-usage","text":"Why should you have to use Photoshop, just to add a frame around your screenshots? Just navigate to your folder of screenshots and use the following command (iOS and Mac OS are default platforms for backward compatibility): fastlane frameit To frame Android screenshots: fastlane frameit android To use the silver version of the frames: fastlane frameit silver To download the latest frames fastlane frameit download_frames Note: When using frameit without titles on top, the screenshots will have the full resolution, which means they can't be uploaded to the App Store directly. They are supposed to be used for websites, print media and emails. Check out the section below to use the screenshots for the App Store.","title":"Basic Usage"},{"location":"actions/frame_screenshots/#advanced-usage-optional","text":"","title":"Advanced Usage (optional)"},{"location":"actions/frame_screenshots/#mac","text":"With frameit it's possible to also frame macOS Application screenshots. You have to provide the following: A (relative) path to a background image file, which should contain both the background and the Mac. The offset information so frameit knows where to position your screenshot on the background : offset : A string that specifies the horizontal and vertical offset in pixels, with respect to the top left corner of the background image. The syntax is \"++\" , e.g. \"+200+150\" . titleHeight : The height in pixels that should be used for the title.","title":"Mac"},{"location":"actions/frame_screenshots/#example_1","text":"{ \"default\": { \"title\": { \"color\": \"#545454\" }, \"background\": \"Mac.jpg\", \"offset\": { \"offset\": \"+676+479\", \"titleHeight\": 320 } }, \"data\": [ { \"filter\": \"Brainstorming\", \"keyword\": { \"color\": \"#d21559\" } } ] } Check out the MindNode example project .","title":"Example"},{"location":"actions/frame_screenshots/#tips","text":"","title":"Tips"},{"location":"actions/frame_screenshots/#generate-localized-screenshots","text":"Check out snapshot to automatically generate screenshots using UI Automation .","title":"Generate localized screenshots"},{"location":"actions/frame_screenshots/#resume-framing","text":"Framing screenshots is a slow operation. In case you need to resume framing, or just frame a couple updated screenshots again, you can rely on the --resume flag. Only screenshots which have not been framed yet \u2013 or for which there isn't an up-to-date framed image \u2013 will be framed. This feature uses the file modification dates and will reframe screenshots if the screenshot is newer than the framed file.","title":"Resume framing"},{"location":"actions/frame_screenshots/#upload-screenshots","text":"Use deliver to upload iOS screenshots to App Store Connect, or supply to upload Android screenshots to Play Store completely automatically \ud83d\ude80","title":"Upload screenshots"},{"location":"actions/frame_screenshots/#use-a-clean-status-bar","text":"You can set override_status_bar to true in snapshot to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available.","title":"Use a clean status bar"},{"location":"actions/frame_screenshots/#gray-artifacts-around-text","text":"If you run into any quality issues, like having a border around the font, it usually helps to just re-install imagemagick . You can do so by running brew uninstall imagemagick brew install imagemagick","title":"Gray artifacts around text"},{"location":"actions/frame_screenshots/#uninstall","text":"gem uninstall fastlane rm -rf ~/.frameit frame_screenshots Supported platforms ios, android, mac Author @KrauseFx","title":"Uninstall"},{"location":"actions/frame_screenshots/#6-examples","text":"frame_screenshots frameit # alias for \"frame_screenshots\" frame_screenshots(use_platform: \"ANDROID\") frame_screenshots(silver: true) frame_screenshots(path: \"/screenshots\") frame_screenshots(rose_gold: true)","title":"6 Examples"},{"location":"actions/frame_screenshots/#parameters","text":"Key Description Default white Use white device frames silver Use white device frames. Alias for :white rose_gold Use rose gold device frames. Alias for :rose_gold gold Use gold device frames. Alias for :gold force_device_type Forces a given device type, useful for Mac screenshots, as their sizes vary use_legacy_iphone5s Use iPhone 5s instead of iPhone SE frames false use_legacy_iphone6s Use iPhone 6s frames instead of iPhone 7 frames false use_legacy_iphone7 Use iPhone 7 frames instead of iPhone 8 frames false use_legacy_iphonex Use iPhone X instead of iPhone XS frames false use_legacy_iphonexr Use iPhone XR instead of iPhone 11 frames false use_legacy_iphonexs Use iPhone XS instead of iPhone 11 Pro frames false use_legacy_iphonexsmax Use iPhone XS Max instead of iPhone 11 Pro Max frames false force_orientation_block [Advanced] A block to customize your screenshots' device orientation * debug_mode Output debug information in framed screenshots false resume Resume frameit instead of reprocessing all screenshots false use_platform Choose a platform, the valid options are IOS, ANDROID and ANY (default is either general platform defined in the fastfile or IOS to ensure backward compatibility) * path The path to the directory containing the screenshots * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/frame_screenshots/#documentation","text":"To show the documentation in your terminal, run fastlane action frame_screenshots","title":"Documentation"},{"location":"actions/frame_screenshots/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run frame_screenshots To pass parameters, make use of the : symbol, for example fastlane run frame_screenshots parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/frame_screenshots/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/frameit/","text":"frameit Alias for the frame_screenshots action Easily put your screenshots into the right device frames frameit allows you to put a gorgeous device frame around your iOS, macOS and Android screenshots just by running one simple command. Use frameit to prepare perfect screenshots for the App Store, your website, QA or emails. Features \u2022 Usage \u2022 Tips frameit is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Features Frame screenshot Put a gorgeous device frame around your iOS, macOS and Android screenshots just by running one simple command. Support for: iPhone, iPad and Mac Set of Android devices Portrait and Landscape modes Several device frame colors The complete and updated list of supported devices and colors can be found here Here is a nice gif, that shows frameit in action: Advanced Features Put framed screenshot on colored background, define padding add text above or under framed screenshot keyword + text choose text font and color multi line text \"intelligent\" positioning of text that always looks good(ish) Results The frameit 2.0 update was kindly sponsored by MindNode , seen in the screenshots above. The first time that frameit is executed the frames will be downloaded automatically. Originally the frames are coming from Facebook frameset and they are kept on this repo . More information about this process and how to update the frames can be found here Usage Basic Usage Why should you have to use Photoshop, just to add a frame around your screenshots? Just navigate to your folder of screenshots and use the following command (iOS and Mac OS are default platforms for backward compatibility): fastlane frameit To frame Android screenshots: fastlane frameit android To use the silver version of the frames: fastlane frameit silver To download the latest frames fastlane frameit download_frames Note: When using frameit without titles on top, the screenshots will have the full resolution, which means they can't be uploaded to the App Store directly. They are supposed to be used for websites, print media and emails. Check out the section below to use the screenshots for the App Store. Advanced Usage (optional) Text and Background With frameit it's possible to add a custom background and text below or above the framed screenshots in fonts and colors you define. A working example can be found in the fastlane examples project. Framefile.json The Framefile allows to define general and screenshot specific information. It has the following general JSON structure: { \"device_frame_version\": \"latest\", \"default\": { ... }, \"data\": [ ... ] } General parameters The general parameters are defined in the default key and can be: Key Description Default value background The background that should be used for the framed screenshot. Specify the (relative) path to the image file (e.g. *.jpg ). This parameter is mandatory. NA keyword An object that contains up to 3 keys to describe the optional keyword. See table below. NA title An object that contains up to 3 keys to describe the mandatory title. See table below. NA stack_title Specifies whether frameit should display the keyword above the title when both keyword and title are defined. If it is false, the title and keyword will be displayed side by side when both keyword and title are defined. false title_below_image Specifies whether frameit should place the title and optional keyword below the device frame. If it is false, it will be placed above the device frame. false show_complete_frame Specifies whether frameit should shrink the device frame so that it is completely shown in the framed screenshot. If it is false, clipping of the device frame might occur at the bottom (when title_below_image is false ) or top (when title_below_image is true ) of the framed screenshot. false padding The content of the framed screenshot will be resized to match the specified padding around all edges. The vertical padding is also applied between the text and the top or bottom (depending on title_below_image ) of the device frame. There are 3 different options of specifying the padding: 1. Default: An integer value that defines both horizontal and vertical padding in pixels. 2. A string that defines (different) padding values in pixels for horizontal and vertical padding. The syntax is \"x\" , e.g. \"30x60\" . 3. A string that defines (different) padding values in percentage for horizontal and vertical padding. The syntax is \"%x%\" , e.g. \"5%x10%\" . Note: The percentage is calculated from the smallest image dimension (height or width). A combination of option 2 and 3 is possible, e.g. \"5%x40\" . 50 interline_spacing Specifies whether frameit should add or subtract this many pixels between the individual lines of text. This only applies to a multi-line title and/or keyword to expand or squash together the individual lines of text. 0 font_scale_factor Specifies whether frameit should increase or decrease the font size of the text. Is ignored for keyword or title , if font_size is specified. 0.1 frame Overrides the color of the frame to be used. (Valid values are BLACK , WHITE , GOLD and ROSE_GOLD ) NA title_min_height Specifies a height always reserved for the title. Value can be a percentage of the height or an absolute value. The device will be placed below (or above) this area. Convenient to ensure the device top (or bottom) will be consistently placed at the same height on the different screenshots. NA use_platform Overrides the platform used for the screenshot. Valid values are IOS , ANDROID and ANY . IOS force_device_type Forces a specific device. Valid values are: Huawei P8, Motorola Moto E, Motorola Moto G, Nexus 4, Nexus 5X, Nexus 6P, Nexus 9, Samsung Galaxy Grand Prime, Samsung Galaxy Note 5, Samsung Galaxy S Duos, Samsung Galaxy S3, Samsung Galaxy S5, Samsung Galaxy S7, Samsung Galaxy S8, Samsung Galaxy S9, iPhone 5s, iPhone 5c, iPhone SE, iPhone 6s, iPhone 6s Plus, iPhone 7, iPhone 7 Plus, iPhone 8, iPhone 8 Plus, iPhone X, iPhone XS, iPhone XR, iPhone XS Max, iPad Air 2, iPad Mini 4, iPad Pro, MacBook, Google Pixel 3, Google Pixel 3 XL, HTC One A9, HTC One M8 NA Specific parameters The screenshot specific parameters are related to the keyword and title texts. These are defined in the data key. This is an array with the following keys for each screenshot: Key Description filter This is mandatory to link the individual configuration to the screenshot, based on part of the file name. Example: If a screenshot is named iPhone 8-Brainstorming.png you can use value Brainstorming for filter . If there are more than one filter matching an entry, they will all be applied in order (which means that the last one has the highest precedence). All other keys from that array element will only be applied on this specific screenshot. keyword Similar use as in default , except that parameter text can be used here because it is screenshot specific. title Similar use as in default , except that parameter text can be used here because it is screenshot specific. frame Overrides the color of the frame to be used. (Valid values are BLACK , WHITE , GOLD and ROSE_GOLD ) use_platform Overrides the platform used for the screenshot. Valid values are IOS , ANDROID and ANY . force_device_type Forces a specific device. Valid values are the same as for the general parameter. Framefile keyword and title parameters The keyword and title parameters are both used in default and data . They both consist of the following optional keys: Key Description Default value color The font color for the text. Specify a HEX/HTML color code. #000000 (black) font The font family for the text. Specify the (relative) path to the font file (e.g. an OpenType Font). The default imagemagick font, which is system dependent. font_size The font size for the text specified in points. If not specified or 0 , font will be scaled automatically to fit the available space. frameit still shrinks the text, if it would not fit. NA font_weight The font weight for the text . Specify an integer value (e.g. 900). NA text The text that should be used for the keyword or title . Note: If you want to use localised text, use .strings files . NA Example { \"device_frame_version\": \"latest\", \"default\": { \"keyword\": { \"font\": \"./fonts/MyFont-Rg.otf\" }, \"title\": { \"font\": \"./fonts/MyFont-Th.otf\", \"font_size\": 128, \"color\": \"#545454\" }, \"background\": \"./background.jpg\", \"padding\": 50, \"show_complete_frame\": false, \"stack_title\" : false, \"title_below_image\": true, \"frame\": \"WHITE\", \"use_platform\": \"IOS\" }, \"data\": [ { \"filter\": \"Brainstorming\", \"keyword\": { \"color\": \"#d21559\" } }, { \"filter\": \"Organizing\", \"keyword\": { \"color\": \"#feb909\" }, \"frame\": \"ROSE_GOLD\" }, { \"filter\": \"Sharing\", \"keyword\": { \"color\": \"#aa4dbc\" } }, { \"filter\": \"Styling\", \"keyword\": { \"color\": \"#31bb48\" } }, { \"filter\": \"Android\", \"use_platform\": \"ANDROID\" } ] } You can find a more complex configuration to also support Chinese, Japanese and Korean languages. The Framefile.json should be in the screenshots folder, as seen in the example . .strings files To define the title and optionally the keyword, put two .strings files into the language folder (e.g. en-US in the example project ) The keyword.strings and title.strings are standard .strings file you already use for your iOS apps, making it easy to use your existing translation service to get localized titles. Notes These .strings files MUST be utf-8 (UTF-8) or utf-16 encoded (UTF-16 BE with BOM). They also must begin with an empty line. If you are having trouble see issue #1740 You MUST provide a background if you want titles. frameit will not add the titles if a background is not specified. Screenshot orientation By default frameit adds a frame to your screenshot based on an orientation you took it. For a portrait (vertical orientation) it is going to add portrait frame and for a landscape (horizontal orientation) - landscape left (= Home button on the left side ). One way to override the default behavior is editing the file name by adding force_landscaperight to the end. force_orientation_block If the default behavior doesn't fit your needs and you don't want or can't rename your screenshots, you can customize frameit 's orientation behavior by setting a force_orientation_block parameter. The valid values are: :landscape_left (home button on the left side), :landscape_right (home button on the right side), :portrait (home button on the bottom), nil (home button on the right side). Examples # It matches the filename to the framed device orientation frameit( path: \"./fastlane/screenshots\", force_orientation_block: proc do |filename| case filename when \"iPad Pro (12.9-inch)-01LoginScreen\" :landscape_right when \"iPhone 6 Plus-01LoginScreen\" :portrait # and so on end end ) # It frames the screenshots in landscape right whenever the filename contains `landscape` word frameit( silver: true, path: \"./fastlane/screenshots\", force_orientation_block: proc do |filename| f = filename.downcase if f.include?(\"landscape\") :landscape_right end end ) Mac With frameit it's possible to also frame macOS Application screenshots. You have to provide the following: A (relative) path to a background image file, which should contain both the background and the Mac. The offset information so frameit knows where to position your screenshot on the background : offset : A string that specifies the horizontal and vertical offset in pixels, with respect to the top left corner of the background image. The syntax is \"++\" , e.g. \"+200+150\" . titleHeight : The height in pixels that should be used for the title. Example { \"default\": { \"title\": { \"color\": \"#545454\" }, \"background\": \"Mac.jpg\", \"offset\": { \"offset\": \"+676+479\", \"titleHeight\": 320 } }, \"data\": [ { \"filter\": \"Brainstorming\", \"keyword\": { \"color\": \"#d21559\" } } ] } Check out the MindNode example project . Tips Generate localized screenshots Check out snapshot to automatically generate screenshots using UI Automation . Resume framing Framing screenshots is a slow operation. In case you need to resume framing, or just frame a couple updated screenshots again, you can rely on the --resume flag. Only screenshots which have not been framed yet \u2013 or for which there isn't an up-to-date framed image \u2013 will be framed. This feature uses the file modification dates and will reframe screenshots if the screenshot is newer than the framed file. Upload screenshots Use deliver to upload iOS screenshots to App Store Connect, or supply to upload Android screenshots to Play Store completely automatically \ud83d\ude80 Use a clean status bar You can set override_status_bar to true in snapshot to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available. Examples # Sets the time to 9:41AM with full battery and reception, with the default carrier name: Carrier capture_ios_screenshots( override_status_bar: true ) # Set the time to 9:41AM, battery at 75% and charging, on the TELUS LTE network capture_ios_screenshots( override_status_bar: true, override_status_bar_arguments: \"--time 9:41 --dataNetwork lte --cellularMode active --cellularBars 4 --batteryState charging --batteryLevel 75 --operatorName TELUS\" ) Gray artifacts around text If you run into any quality issues, like having a border around the font, it usually helps to just re-install imagemagick . You can do so by running brew uninstall imagemagick brew install imagemagick Uninstall gem uninstall fastlane rm -rf ~/.frameit frameit Supported platforms ios, android, mac Author @KrauseFx 6 Examples frame_screenshots frameit # alias for \"frame_screenshots\" frame_screenshots(use_platform: \"ANDROID\") frame_screenshots(silver: true) frame_screenshots(path: \"/screenshots\") frame_screenshots(rose_gold: true) Parameters Key Description Default white Use white device frames silver Use white device frames. Alias for :white rose_gold Use rose gold device frames. Alias for :rose_gold gold Use gold device frames. Alias for :gold force_device_type Forces a given device type, useful for Mac screenshots, as their sizes vary use_legacy_iphone5s Use iPhone 5s instead of iPhone SE frames false use_legacy_iphone6s Use iPhone 6s frames instead of iPhone 7 frames false use_legacy_iphone7 Use iPhone 7 frames instead of iPhone 8 frames false use_legacy_iphonex Use iPhone X instead of iPhone XS frames false use_legacy_iphonexr Use iPhone XR instead of iPhone 11 frames false use_legacy_iphonexs Use iPhone XS instead of iPhone 11 Pro frames false use_legacy_iphonexsmax Use iPhone XS Max instead of iPhone 11 Pro Max frames false force_orientation_block [Advanced] A block to customize your screenshots' device orientation * debug_mode Output debug information in framed screenshots false resume Resume frameit instead of reprocessing all screenshots false use_platform Choose a platform, the valid options are IOS, ANDROID and ANY (default is either general platform defined in the fastfile or IOS to ensure backward compatibility) * path The path to the directory containing the screenshots * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action frameit CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run frameit To pass parameters, make use of the : symbol, for example fastlane run frameit parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"frameit"},{"location":"actions/frameit/#frameit","text":"Alias for the frame_screenshots action","title":"frameit"},{"location":"actions/frameit/#features","text":"","title":"Features"},{"location":"actions/frameit/#frame-screenshot","text":"Put a gorgeous device frame around your iOS, macOS and Android screenshots just by running one simple command. Support for: iPhone, iPad and Mac Set of Android devices Portrait and Landscape modes Several device frame colors The complete and updated list of supported devices and colors can be found here Here is a nice gif, that shows frameit in action:","title":"Frame screenshot"},{"location":"actions/frameit/#advanced-features","text":"Put framed screenshot on colored background, define padding add text above or under framed screenshot keyword + text choose text font and color multi line text \"intelligent\" positioning of text that always looks good(ish)","title":"Advanced Features"},{"location":"actions/frameit/#results","text":"","title":"Results"},{"location":"actions/frameit/#usage","text":"","title":"Usage"},{"location":"actions/frameit/#basic-usage","text":"Why should you have to use Photoshop, just to add a frame around your screenshots? Just navigate to your folder of screenshots and use the following command (iOS and Mac OS are default platforms for backward compatibility): fastlane frameit To frame Android screenshots: fastlane frameit android To use the silver version of the frames: fastlane frameit silver To download the latest frames fastlane frameit download_frames Note: When using frameit without titles on top, the screenshots will have the full resolution, which means they can't be uploaded to the App Store directly. They are supposed to be used for websites, print media and emails. Check out the section below to use the screenshots for the App Store.","title":"Basic Usage"},{"location":"actions/frameit/#advanced-usage-optional","text":"","title":"Advanced Usage (optional)"},{"location":"actions/frameit/#mac","text":"With frameit it's possible to also frame macOS Application screenshots. You have to provide the following: A (relative) path to a background image file, which should contain both the background and the Mac. The offset information so frameit knows where to position your screenshot on the background : offset : A string that specifies the horizontal and vertical offset in pixels, with respect to the top left corner of the background image. The syntax is \"++\" , e.g. \"+200+150\" . titleHeight : The height in pixels that should be used for the title.","title":"Mac"},{"location":"actions/frameit/#example_1","text":"{ \"default\": { \"title\": { \"color\": \"#545454\" }, \"background\": \"Mac.jpg\", \"offset\": { \"offset\": \"+676+479\", \"titleHeight\": 320 } }, \"data\": [ { \"filter\": \"Brainstorming\", \"keyword\": { \"color\": \"#d21559\" } } ] } Check out the MindNode example project .","title":"Example"},{"location":"actions/frameit/#tips","text":"","title":"Tips"},{"location":"actions/frameit/#generate-localized-screenshots","text":"Check out snapshot to automatically generate screenshots using UI Automation .","title":"Generate localized screenshots"},{"location":"actions/frameit/#resume-framing","text":"Framing screenshots is a slow operation. In case you need to resume framing, or just frame a couple updated screenshots again, you can rely on the --resume flag. Only screenshots which have not been framed yet \u2013 or for which there isn't an up-to-date framed image \u2013 will be framed. This feature uses the file modification dates and will reframe screenshots if the screenshot is newer than the framed file.","title":"Resume framing"},{"location":"actions/frameit/#upload-screenshots","text":"Use deliver to upload iOS screenshots to App Store Connect, or supply to upload Android screenshots to Play Store completely automatically \ud83d\ude80","title":"Upload screenshots"},{"location":"actions/frameit/#use-a-clean-status-bar","text":"You can set override_status_bar to true in snapshot to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available.","title":"Use a clean status bar"},{"location":"actions/frameit/#gray-artifacts-around-text","text":"If you run into any quality issues, like having a border around the font, it usually helps to just re-install imagemagick . You can do so by running brew uninstall imagemagick brew install imagemagick","title":"Gray artifacts around text"},{"location":"actions/frameit/#uninstall","text":"gem uninstall fastlane rm -rf ~/.frameit frameit Supported platforms ios, android, mac Author @KrauseFx","title":"Uninstall"},{"location":"actions/frameit/#6-examples","text":"frame_screenshots frameit # alias for \"frame_screenshots\" frame_screenshots(use_platform: \"ANDROID\") frame_screenshots(silver: true) frame_screenshots(path: \"/screenshots\") frame_screenshots(rose_gold: true)","title":"6 Examples"},{"location":"actions/frameit/#parameters","text":"Key Description Default white Use white device frames silver Use white device frames. Alias for :white rose_gold Use rose gold device frames. Alias for :rose_gold gold Use gold device frames. Alias for :gold force_device_type Forces a given device type, useful for Mac screenshots, as their sizes vary use_legacy_iphone5s Use iPhone 5s instead of iPhone SE frames false use_legacy_iphone6s Use iPhone 6s frames instead of iPhone 7 frames false use_legacy_iphone7 Use iPhone 7 frames instead of iPhone 8 frames false use_legacy_iphonex Use iPhone X instead of iPhone XS frames false use_legacy_iphonexr Use iPhone XR instead of iPhone 11 frames false use_legacy_iphonexs Use iPhone XS instead of iPhone 11 Pro frames false use_legacy_iphonexsmax Use iPhone XS Max instead of iPhone 11 Pro Max frames false force_orientation_block [Advanced] A block to customize your screenshots' device orientation * debug_mode Output debug information in framed screenshots false resume Resume frameit instead of reprocessing all screenshots false use_platform Choose a platform, the valid options are IOS, ANDROID and ANY (default is either general platform defined in the fastfile or IOS to ensure backward compatibility) * path The path to the directory containing the screenshots * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/frameit/#documentation","text":"To show the documentation in your terminal, run fastlane action frameit","title":"Documentation"},{"location":"actions/frameit/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run frameit To pass parameters, make use of the : symbol, for example fastlane run frameit parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/frameit/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/gcovr/","text":"gcovr Runs test coverage reports for your Xcode project Generate summarized code coverage reports using gcovr gcovr Supported platforms ios Author @dtrenz 1 Example gcovr( html: true, html_details: true, output: \"./code-coverage/report.html\" ) Documentation To show the documentation in your terminal, run fastlane action gcovr CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run gcovr To pass parameters, make use of the : symbol, for example fastlane run gcovr parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"gcovr"},{"location":"actions/gcovr/#gcovr","text":"Runs test coverage reports for your Xcode project Generate summarized code coverage reports using gcovr gcovr Supported platforms ios Author @dtrenz","title":"gcovr"},{"location":"actions/gcovr/#1-example","text":"gcovr( html: true, html_details: true, output: \"./code-coverage/report.html\" )","title":"1 Example"},{"location":"actions/gcovr/#documentation","text":"To show the documentation in your terminal, run fastlane action gcovr","title":"Documentation"},{"location":"actions/gcovr/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run gcovr To pass parameters, make use of the : symbol, for example fastlane run gcovr parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/gcovr/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/get_build_number/","text":"get_build_number Get the build number of your project This action will return the current build number set on your project. You first have to set up your Xcode project, if you haven't done it already: https://developer.apple.com/library/ios/qa/qa1827/_index.html . get_build_number Supported platforms ios, mac Author @Liquidsoul 1 Example build_number = get_build_number(xcodeproj: \"Project.xcodeproj\") Parameters Key Description Default xcodeproj optional, you must specify the path to your main Xcode project if it is not in the project root directory hide_error_when_versioning_disabled Used during fastlane init to hide the error message false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_build_number action generates the following Lane Variables: SharedValue Description SharedValues::BUILD_NUMBER The build number To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action get_build_number CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_build_number To pass parameters, make use of the : symbol, for example fastlane run get_build_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"get_build_number"},{"location":"actions/get_build_number/#get_build_number","text":"Get the build number of your project This action will return the current build number set on your project. You first have to set up your Xcode project, if you haven't done it already: https://developer.apple.com/library/ios/qa/qa1827/_index.html . get_build_number Supported platforms ios, mac Author @Liquidsoul","title":"get_build_number"},{"location":"actions/get_build_number/#1-example","text":"build_number = get_build_number(xcodeproj: \"Project.xcodeproj\")","title":"1 Example"},{"location":"actions/get_build_number/#parameters","text":"Key Description Default xcodeproj optional, you must specify the path to your main Xcode project if it is not in the project root directory hide_error_when_versioning_disabled Used during fastlane init to hide the error message false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/get_build_number/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_build_number action generates the following Lane Variables: SharedValue Description SharedValues::BUILD_NUMBER The build number To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/get_build_number/#documentation","text":"To show the documentation in your terminal, run fastlane action get_build_number","title":"Documentation"},{"location":"actions/get_build_number/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_build_number To pass parameters, make use of the : symbol, for example fastlane run get_build_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/get_build_number/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/get_build_number_repository/","text":"get_build_number_repository Get the build number from the current repository This action will get the build number according to what the SCM HEAD reports. Currently supported SCMs are svn (uses root revision), git-svn (uses svn revision), git (uses short hash) and mercurial (uses short hash or revision number). There is an option, :use_hg_revision_number , which allows to use mercurial revision number instead of hash. get_build_number_repository Supported platforms ios, mac Author @bartoszj, @pbrooks, @armadsen Returns The build number from the current repository 1 Example get_build_number_repository Parameters Key Description Default use_hg_revision_number Use hg revision number instead of hash (ignored for non-hg repos) false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_build_number_repository action generates the following Lane Variables: SharedValue Description SharedValues::BUILD_NUMBER_REPOSITORY The build number from the current repository To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action get_build_number_repository CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_build_number_repository To pass parameters, make use of the : symbol, for example fastlane run get_build_number_repository parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"get_build_number_repository"},{"location":"actions/get_build_number_repository/#get_build_number_repository","text":"Get the build number from the current repository This action will get the build number according to what the SCM HEAD reports. Currently supported SCMs are svn (uses root revision), git-svn (uses svn revision), git (uses short hash) and mercurial (uses short hash or revision number). There is an option, :use_hg_revision_number , which allows to use mercurial revision number instead of hash. get_build_number_repository Supported platforms ios, mac Author @bartoszj, @pbrooks, @armadsen Returns The build number from the current repository","title":"get_build_number_repository"},{"location":"actions/get_build_number_repository/#1-example","text":"get_build_number_repository","title":"1 Example"},{"location":"actions/get_build_number_repository/#parameters","text":"Key Description Default use_hg_revision_number Use hg revision number instead of hash (ignored for non-hg repos) false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/get_build_number_repository/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_build_number_repository action generates the following Lane Variables: SharedValue Description SharedValues::BUILD_NUMBER_REPOSITORY The build number from the current repository To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/get_build_number_repository/#documentation","text":"To show the documentation in your terminal, run fastlane action get_build_number_repository","title":"Documentation"},{"location":"actions/get_build_number_repository/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_build_number_repository To pass parameters, make use of the : symbol, for example fastlane run get_build_number_repository parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/get_build_number_repository/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/get_certificates/","text":"get_certificates Create new iOS code signing certificates (via cert ) Why? \u2022 Usage \u2022 How does it work? \u2022 Tips cert is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. In the gif we used cert && sigh , which will first create an iOS code signing certificate and then a provisioning profile for your app if cert succeeded. Usage Note : It is recommended to use match according to the codesigning.guide for generating and maintaining your certificates. Use cert directly only if you want full control over what's going on and know more about codesigning. fastlane cert This will check if any of the available signing certificates is installed on your local machine. Only if a new certificate needs to be created, cert will Create a new private key Create a new signing request Generate, downloads and installs the certificate Import all the generated files into your Keychain cert will never revoke your existing certificates. If you can't create any more certificates, cert will raise an exception, which means, you have to revoke one of the existing certificates to make room for a new one. You can pass your Apple ID: fastlane cert -u cert@krausefx.com For a list of available commands run fastlane action cert Keep in mind, there is no way for cert to download existing certificates + private keys from the Apple Developer Portal, as the private key never leaves your computer. Environment Variables Run fastlane action cert to get a list of all available environment variables. Use with sigh cert becomes really interesting when used in fastlane in combination with sigh . Update your Fastfile to contain the following code: lane :beta do cert sigh(force: true) end force: true will make sure to re-generate the provisioning profile on each run. This will result in sigh always using the correct signing certificate, which is installed on the local machine. How is my password stored? cert uses the password manager from fastlane . Take a look the CredentialsManager README for more information. Tips Use 'ProvisionQL' for advanced Quick Look in Finder Install ProvisionQL . It will show you mobileprovision files like this: get_certificates Supported platforms ios Author @KrauseFx 3 Examples get_certificates cert # alias for \"get_certificates\" get_certificates( development: true, username: \"user@email.com\" ) Parameters Key Description Default development Create a development certificate instead of a distribution one false type Create specific certificate type (takes precedence over :development) force Create a certificate even if an existing certificate exists false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * filename The filename of certificate to store output_path The path to a directory in which all certificates and private keys should be stored . keychain_path Path to a custom keychain * keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false platform Set the provisioning profile's platform (ios, macos, tvos) ios * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_certificates action generates the following Lane Variables: SharedValue Description SharedValues::CERT_FILE_PATH The path to the certificate SharedValues::CERT_CERTIFICATE_ID The id of the certificate To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action get_certificates CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_certificates To pass parameters, make use of the : symbol, for example fastlane run get_certificates parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"get_certificates"},{"location":"actions/get_certificates/#get_certificates","text":"Create new iOS code signing certificates (via cert ) Why? \u2022 Usage \u2022 How does it work? \u2022 Tips","title":"get_certificates"},{"location":"actions/get_certificates/#usage","text":"Note : It is recommended to use match according to the codesigning.guide for generating and maintaining your certificates. Use cert directly only if you want full control over what's going on and know more about codesigning. fastlane cert This will check if any of the available signing certificates is installed on your local machine. Only if a new certificate needs to be created, cert will Create a new private key Create a new signing request Generate, downloads and installs the certificate Import all the generated files into your Keychain cert will never revoke your existing certificates. If you can't create any more certificates, cert will raise an exception, which means, you have to revoke one of the existing certificates to make room for a new one. You can pass your Apple ID: fastlane cert -u cert@krausefx.com For a list of available commands run fastlane action cert Keep in mind, there is no way for cert to download existing certificates + private keys from the Apple Developer Portal, as the private key never leaves your computer.","title":"Usage"},{"location":"actions/get_certificates/#environment-variables","text":"Run fastlane action cert to get a list of all available environment variables.","title":"Environment Variables"},{"location":"actions/get_certificates/#use-with-sigh","text":"cert becomes really interesting when used in fastlane in combination with sigh . Update your Fastfile to contain the following code: lane :beta do cert sigh(force: true) end force: true will make sure to re-generate the provisioning profile on each run. This will result in sigh always using the correct signing certificate, which is installed on the local machine.","title":"Use with sigh"},{"location":"actions/get_certificates/#how-is-my-password-stored","text":"cert uses the password manager from fastlane . Take a look the CredentialsManager README for more information.","title":"How is my password stored?"},{"location":"actions/get_certificates/#tips","text":"","title":"Tips"},{"location":"actions/get_certificates/#use-provisionql-for-advanced-quick-look-in-finder","text":"Install ProvisionQL . It will show you mobileprovision files like this: get_certificates Supported platforms ios Author @KrauseFx","title":"Use 'ProvisionQL' for advanced Quick Look in Finder"},{"location":"actions/get_certificates/#3-examples","text":"get_certificates cert # alias for \"get_certificates\" get_certificates( development: true, username: \"user@email.com\" )","title":"3 Examples"},{"location":"actions/get_certificates/#parameters","text":"Key Description Default development Create a development certificate instead of a distribution one false type Create specific certificate type (takes precedence over :development) force Create a certificate even if an existing certificate exists false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * filename The filename of certificate to store output_path The path to a directory in which all certificates and private keys should be stored . keychain_path Path to a custom keychain * keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false platform Set the provisioning profile's platform (ios, macos, tvos) ios * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/get_certificates/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_certificates action generates the following Lane Variables: SharedValue Description SharedValues::CERT_FILE_PATH The path to the certificate SharedValues::CERT_CERTIFICATE_ID The id of the certificate To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/get_certificates/#documentation","text":"To show the documentation in your terminal, run fastlane action get_certificates","title":"Documentation"},{"location":"actions/get_certificates/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_certificates To pass parameters, make use of the : symbol, for example fastlane run get_certificates parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/get_certificates/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/get_github_release/","text":"get_github_release This will verify if a given release version is available on GitHub This will return all information about a release. For example: { \"url\"=>\"https://api.github.com/repos/KrauseFx/fastlane/releases/1537713\", \"assets_url\"=>\"https://api.github.com/repos/KrauseFx/fastlane/releases/1537713/assets\", \"upload_url\"=>\"https://uploads.github.com/repos/KrauseFx/fastlane/releases/1537713/assets{?name}\", \"html_url\"=>\"https://github.com/fastlane/fastlane/releases/tag/1.8.0\", \"id\"=>1537713, \"tag_name\"=>\"1.8.0\", \"target_commitish\"=>\"master\", \"name\"=>\"1.8.0 Switch Lanes & Pass Parameters\", \"draft\"=>false, \"author\"=> {\"login\"=>\"KrauseFx\", \"id\"=>869950, \"avatar_url\"=>\"https://avatars.githubusercontent.com/u/869950?v=3\", \"gravatar_id\"=>\"\", \"url\"=>\"https://api.github.com/users/KrauseFx\", \"html_url\"=>\"https://github.com/fastlane\", \"followers_url\"=>\"https://api.github.com/users/KrauseFx/followers\", \"following_url\"=>\"https://api.github.com/users/KrauseFx/following{/other_user}\", \"gists_url\"=>\"https://api.github.com/users/KrauseFx/gists{/gist_id}\", \"starred_url\"=>\"https://api.github.com/users/KrauseFx/starred{/owner}{/repo}\", \"subscriptions_url\"=>\"https://api.github.com/users/KrauseFx/subscriptions\", \"organizations_url\"=>\"https://api.github.com/users/KrauseFx/orgs\", \"repos_url\"=>\"https://api.github.com/users/KrauseFx/repos\", \"events_url\"=>\"https://api.github.com/users/KrauseFx/events{/privacy}\", \"received_events_url\"=>\"https://api.github.com/users/KrauseFx/received_events\", \"type\"=>\"User\", \"site_admin\"=>false}, \"prerelease\"=>false, \"created_at\"=>\"2015-07-14T23:33:01Z\", \"published_at\"=>\"2015-07-14T23:44:10Z\", \"assets\"=>[], \"tarball_url\"=>\"https://api.github.com/repos/KrauseFx/fastlane/tarball/1.8.0\", \"zipball_url\"=>\"https://api.github.com/repos/KrauseFx/fastlane/zipball/1.8.0\", \"body\"=> ...Markdown... \"This is one of the biggest updates of _fastlane_ yet\" } get_github_release Supported platforms ios, android, mac Author @KrauseFx, @czechboy0, @jaleksynas, @tommeier 1 Example release = get_github_release(url: \"fastlane/fastlane\", version: \"1.0.0\") puts release[\"name\"] Parameters Key Description Default url The path to your repo, e.g. 'KrauseFx/fastlane' server_url The server url. e.g. 'https://your.github.server/api/v3' (Default: 'https://api.github.com') https://api.github.com version The version tag of the release to check api_token GitHub Personal Token (required for private repositories) * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_github_release action generates the following Lane Variables: SharedValue Description SharedValues::GET_GITHUB_RELEASE_INFO Contains all the information about this release To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action get_github_release CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_github_release To pass parameters, make use of the : symbol, for example fastlane run get_github_release parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"get_github_release"},{"location":"actions/get_github_release/#get_github_release","text":"This will verify if a given release version is available on GitHub This will return all information about a release. For example: { \"url\"=>\"https://api.github.com/repos/KrauseFx/fastlane/releases/1537713\", \"assets_url\"=>\"https://api.github.com/repos/KrauseFx/fastlane/releases/1537713/assets\", \"upload_url\"=>\"https://uploads.github.com/repos/KrauseFx/fastlane/releases/1537713/assets{?name}\", \"html_url\"=>\"https://github.com/fastlane/fastlane/releases/tag/1.8.0\", \"id\"=>1537713, \"tag_name\"=>\"1.8.0\", \"target_commitish\"=>\"master\", \"name\"=>\"1.8.0 Switch Lanes & Pass Parameters\", \"draft\"=>false, \"author\"=> {\"login\"=>\"KrauseFx\", \"id\"=>869950, \"avatar_url\"=>\"https://avatars.githubusercontent.com/u/869950?v=3\", \"gravatar_id\"=>\"\", \"url\"=>\"https://api.github.com/users/KrauseFx\", \"html_url\"=>\"https://github.com/fastlane\", \"followers_url\"=>\"https://api.github.com/users/KrauseFx/followers\", \"following_url\"=>\"https://api.github.com/users/KrauseFx/following{/other_user}\", \"gists_url\"=>\"https://api.github.com/users/KrauseFx/gists{/gist_id}\", \"starred_url\"=>\"https://api.github.com/users/KrauseFx/starred{/owner}{/repo}\", \"subscriptions_url\"=>\"https://api.github.com/users/KrauseFx/subscriptions\", \"organizations_url\"=>\"https://api.github.com/users/KrauseFx/orgs\", \"repos_url\"=>\"https://api.github.com/users/KrauseFx/repos\", \"events_url\"=>\"https://api.github.com/users/KrauseFx/events{/privacy}\", \"received_events_url\"=>\"https://api.github.com/users/KrauseFx/received_events\", \"type\"=>\"User\", \"site_admin\"=>false}, \"prerelease\"=>false, \"created_at\"=>\"2015-07-14T23:33:01Z\", \"published_at\"=>\"2015-07-14T23:44:10Z\", \"assets\"=>[], \"tarball_url\"=>\"https://api.github.com/repos/KrauseFx/fastlane/tarball/1.8.0\", \"zipball_url\"=>\"https://api.github.com/repos/KrauseFx/fastlane/zipball/1.8.0\", \"body\"=> ...Markdown... \"This is one of the biggest updates of _fastlane_ yet\" } get_github_release Supported platforms ios, android, mac Author @KrauseFx, @czechboy0, @jaleksynas, @tommeier","title":"get_github_release"},{"location":"actions/get_github_release/#1-example","text":"release = get_github_release(url: \"fastlane/fastlane\", version: \"1.0.0\") puts release[\"name\"]","title":"1 Example"},{"location":"actions/get_github_release/#parameters","text":"Key Description Default url The path to your repo, e.g. 'KrauseFx/fastlane' server_url The server url. e.g. 'https://your.github.server/api/v3' (Default: 'https://api.github.com') https://api.github.com version The version tag of the release to check api_token GitHub Personal Token (required for private repositories) * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/get_github_release/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_github_release action generates the following Lane Variables: SharedValue Description SharedValues::GET_GITHUB_RELEASE_INFO Contains all the information about this release To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/get_github_release/#documentation","text":"To show the documentation in your terminal, run fastlane action get_github_release","title":"Documentation"},{"location":"actions/get_github_release/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_github_release To pass parameters, make use of the : symbol, for example fastlane run get_github_release parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/get_github_release/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/get_info_plist_value/","text":"get_info_plist_value Returns value from Info.plist of your project as native Ruby data structures Get a value from a plist file, which can be used to fetch the app identifier and more information about your app get_info_plist_value Supported platforms ios, mac Author @kohtenko 1 Example identifier = get_info_plist_value(path: \"./Info.plist\", key: \"CFBundleIdentifier\") Parameters Key Description Default key Name of parameter path Path to plist file you want to read * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_info_plist_value action generates the following Lane Variables: SharedValue Description SharedValues::GET_INFO_PLIST_VALUE_CUSTOM_VALUE The value of the last plist file that was parsed To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action get_info_plist_value CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_info_plist_value To pass parameters, make use of the : symbol, for example fastlane run get_info_plist_value parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"get_info_plist_value"},{"location":"actions/get_info_plist_value/#get_info_plist_value","text":"Returns value from Info.plist of your project as native Ruby data structures Get a value from a plist file, which can be used to fetch the app identifier and more information about your app get_info_plist_value Supported platforms ios, mac Author @kohtenko","title":"get_info_plist_value"},{"location":"actions/get_info_plist_value/#1-example","text":"identifier = get_info_plist_value(path: \"./Info.plist\", key: \"CFBundleIdentifier\")","title":"1 Example"},{"location":"actions/get_info_plist_value/#parameters","text":"Key Description Default key Name of parameter path Path to plist file you want to read * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/get_info_plist_value/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_info_plist_value action generates the following Lane Variables: SharedValue Description SharedValues::GET_INFO_PLIST_VALUE_CUSTOM_VALUE The value of the last plist file that was parsed To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/get_info_plist_value/#documentation","text":"To show the documentation in your terminal, run fastlane action get_info_plist_value","title":"Documentation"},{"location":"actions/get_info_plist_value/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_info_plist_value To pass parameters, make use of the : symbol, for example fastlane run get_info_plist_value parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/get_info_plist_value/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/get_ipa_info_plist_value/","text":"get_ipa_info_plist_value Returns a value from Info.plist inside a .ipa file This is useful for introspecting Info.plist files for .ipa files that have already been built. get_ipa_info_plist_value Supported platforms ios, mac Author @johnboiles Returns Returns the value in the .ipa's Info.plist corresponding to the passed in Key 1 Example get_ipa_info_plist_value(ipa: \"path.ipa\", key: \"KEY_YOU_READ\") Parameters Key Description Default key Name of parameter ipa Path to IPA * * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_ipa_info_plist_value action generates the following Lane Variables: SharedValue Description SharedValues::GET_IPA_INFO_PLIST_VALUE_CUSTOM_VALUE The value of the last plist file that was parsed To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action get_ipa_info_plist_value CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_ipa_info_plist_value To pass parameters, make use of the : symbol, for example fastlane run get_ipa_info_plist_value parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"get_ipa_info_plist_value"},{"location":"actions/get_ipa_info_plist_value/#get_ipa_info_plist_value","text":"Returns a value from Info.plist inside a .ipa file This is useful for introspecting Info.plist files for .ipa files that have already been built. get_ipa_info_plist_value Supported platforms ios, mac Author @johnboiles Returns Returns the value in the .ipa's Info.plist corresponding to the passed in Key","title":"get_ipa_info_plist_value"},{"location":"actions/get_ipa_info_plist_value/#1-example","text":"get_ipa_info_plist_value(ipa: \"path.ipa\", key: \"KEY_YOU_READ\")","title":"1 Example"},{"location":"actions/get_ipa_info_plist_value/#parameters","text":"Key Description Default key Name of parameter ipa Path to IPA * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/get_ipa_info_plist_value/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_ipa_info_plist_value action generates the following Lane Variables: SharedValue Description SharedValues::GET_IPA_INFO_PLIST_VALUE_CUSTOM_VALUE The value of the last plist file that was parsed To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/get_ipa_info_plist_value/#documentation","text":"To show the documentation in your terminal, run fastlane action get_ipa_info_plist_value","title":"Documentation"},{"location":"actions/get_ipa_info_plist_value/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_ipa_info_plist_value To pass parameters, make use of the : symbol, for example fastlane run get_ipa_info_plist_value parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/get_ipa_info_plist_value/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/get_managed_play_store_publishing_rights/","text":"get_managed_play_store_publishing_rights Obtain publishing rights for custom apps on Managed Google Play Store If you haven't done so before, start by following the first two steps of Googles \"Get started with custom app publishing\" -> \"Preliminary setup\" instructions: \" Enable the Google Play Custom App Publishing API \" and \" Create a service account \". You need the \"service account's private key file\" to continue. Run the action and supply the \"private key file\" to it as the json_key parameter. The command will output a URL to visit. After logging in you are redirected to a page that outputs your \"Developer Account ID\" - take note of that, you will need it to be able to use create_app_on_managed_play_store . get_managed_play_store_publishing_rights Supported platforms android Author @janpio Returns An URI to obtain publishing rights for custom apps on Managed Play Store 1 Example get_managed_play_store_publishing_rights( json_key: \"path/to/your/json/key/file\" ) # it is probably easier to execute this action directly in the command line: # $ fastlane run get_managed_play_store_publishing_rights Parameters Key Description Default json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action get_managed_play_store_publishing_rights CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_managed_play_store_publishing_rights To pass parameters, make use of the : symbol, for example fastlane run get_managed_play_store_publishing_rights parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"get_managed_play_store_publishing_rights"},{"location":"actions/get_managed_play_store_publishing_rights/#get_managed_play_store_publishing_rights","text":"Obtain publishing rights for custom apps on Managed Google Play Store If you haven't done so before, start by following the first two steps of Googles \"Get started with custom app publishing\" -> \"Preliminary setup\" instructions: \" Enable the Google Play Custom App Publishing API \" and \" Create a service account \". You need the \"service account's private key file\" to continue. Run the action and supply the \"private key file\" to it as the json_key parameter. The command will output a URL to visit. After logging in you are redirected to a page that outputs your \"Developer Account ID\" - take note of that, you will need it to be able to use create_app_on_managed_play_store . get_managed_play_store_publishing_rights Supported platforms android Author @janpio Returns An URI to obtain publishing rights for custom apps on Managed Play Store","title":"get_managed_play_store_publishing_rights"},{"location":"actions/get_managed_play_store_publishing_rights/#1-example","text":"get_managed_play_store_publishing_rights( json_key: \"path/to/your/json/key/file\" ) # it is probably easier to execute this action directly in the command line: # $ fastlane run get_managed_play_store_publishing_rights","title":"1 Example"},{"location":"actions/get_managed_play_store_publishing_rights/#parameters","text":"Key Description Default json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/get_managed_play_store_publishing_rights/#documentation","text":"To show the documentation in your terminal, run fastlane action get_managed_play_store_publishing_rights","title":"Documentation"},{"location":"actions/get_managed_play_store_publishing_rights/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_managed_play_store_publishing_rights To pass parameters, make use of the : symbol, for example fastlane run get_managed_play_store_publishing_rights parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/get_managed_play_store_publishing_rights/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/get_provisioning_profile/","text":"get_provisioning_profile Generates a provisioning profile, saving it in the current folder (via sigh ) Because you would rather spend your time building stuff than fighting provisioning sigh can create, renew, download and repair provisioning profiles (with one command). It supports App Store, Ad Hoc, Development and Enterprise profiles and supports nice features, like auto-adding all test devices. Features \u2022 Usage \u2022 Resign \u2022 How does it work? Features Download the latest provisioning profile for your app Renew a provisioning profile, when it has expired Repair a provisioning profile, when it is broken Create a new provisioning profile, if it doesn't exist already Supports App Store , Ad Hoc and Development profiles Support for multiple Apple accounts , storing your credentials securely in the Keychain Support for multiple Teams Support for Enterprise Profiles To automate iOS Push profiles you can use pem . Why not let Xcode do the work? sigh can easily be integrated into your CI-server (e.g. Jenkins) Xcode sometimes invalidates all existing profiles You have control over what happens You still get to have the signing files, which you can then use for your build scripts or store in git See sigh in action: Usage Note : It is recommended to use match according to the codesigning.guide for generating and maintaining your provisioning profiles. Use sigh directly only if you want full control over what's going on and know more about codesigning. fastlane sigh Yes, that's the whole command! sigh will create, repair and download profiles for the App Store by default. You can pass your bundle identifier and username like this: fastlane sigh -a com.krausefx.app -u username If you want to generate an Ad Hoc profile instead of an App Store profile: fastlane sigh --adhoc If you want to generate a Development profile: fastlane sigh --development To generate the profile in a specific directory: fastlane sigh -o \"~/Certificates/\" To download all your provisioning profiles use fastlane sigh download_all Optionally, use fastlane sigh download_all --download_xcode_profiles to also include the Xcode managed provisioning profiles For a list of available parameters and commands run fastlane action sigh Advanced By default, sigh will install the downloaded profile on your machine. If you just want to generate the profile and skip the installation, use the following flag: fastlane sigh --skip_install To save the provisioning profile under a specific name, use the -q option: fastlane sigh -a com.krausefx.app -u username -q \"myProfile.mobileprovision\" If for some reason you don't want sigh to verify that the code signing identity is installed on your local machine: fastlane sigh --skip_certificate_verification If you need the provisioning profile to be renewed regardless of its state use the --force option. This gives you a profile with the maximum lifetime. --force will also add all available devices to this profile. fastlane sigh --force By default, sigh will include all certificates on development profiles, and first certificate on other types. If you need to specify which certificate to use you can either use the environment variable SIGH_CERTIFICATE , or pass the name or expiry date of the certificate as argument: fastlane sigh -c \"SunApps GmbH\" For a list of available parameters and commands run fastlane action sigh Use with fastlane sigh becomes really interesting when used in fastlane in combination with cert . Update your Fastfile to contain the following code: lane :beta do cert sigh(force: true) end force: true will make sure to re-generate the provisioning profile on each run. This will result in sigh always using the correct signing certificate, which is installed on the local machine. Repair sigh can automatically repair all your existing provisioning profiles which are expired or just invalid. fastlane sigh repair Resign If you generated your ipa file but want to apply a different code signing onto the ipa file, you can use sigh resign : fastlane sigh resign sigh will find the ipa file and the provisioning profile for you if they are located in the current folder. You can pass more information using the command line: fastlane sigh resign ./path/app.ipa --signing_identity \"iPhone Distribution: Felix Krause\" -p \"my.mobileprovision\" Manage With sigh manage you can list all provisioning profiles installed locally. fastlane sigh manage Delete all expired provisioning profiles fastlane sigh manage -e Or delete all iOS Team Provisioning Profile by using a regular expression fastlane sigh manage -p \"iOS\\ ?Team Provisioning Profile:\" Environment Variables Run fastlane action sigh to get a list of all available environment variables. If you're using cert in combination with fastlane the signing certificate will automatically be selected for you. (make sure to run cert before sigh ) How does it work? sigh will access the iOS Dev Center to download, renew or generate the .mobileprovision file. It uses spaceship to communicate with Apple's web services. How is my password stored? sigh uses the CredentialsManager from fastlane . Tips Use 'ProvisionQL' for advanced Quick Look in Finder Install ProvisionQL . It will show you mobileprovision files like this: App Identifier couldn't be found If you also want to create a new App Identifier on the Apple Developer Portal, check out produce , which does exactly that. What happens to my Xcode managed profiles? sigh will never touch or use the profiles which are created and managed by Xcode. Instead sigh will manage its own set of provisioning profiles. get_provisioning_profile Supported platforms ios, mac Author @KrauseFx Returns The UUID of the profile sigh just fetched/generated 3 Examples get_provisioning_profile sigh # alias for \"get_provisioning_profile\" get_provisioning_profile( adhoc: true, force: true, filename: \"myFile.mobileprovision\" ) Parameters Key Description Default adhoc Setting this flag will generate AdHoc profiles instead of App Store Profiles false developer_id Setting this flag will generate Developer ID profiles instead of App Store Profiles false development Renew the development certificate instead of the production one false skip_install By default, the certificate will be added to your local machine. Setting this flag will skip this action false force Renew provisioning profiles regardless of its state - to automatically add all devices for ad hoc profiles false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false app_identifier The bundle identifier of your app * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * provisioning_name The name of the profile that is used on the Apple Developer Portal ignore_profiles_with_different_name Use in combination with :provisioning_name - when true only profiles matching this exact name will be downloaded false output_path Directory in which the profile should be stored . cert_id The ID of the code signing certificate to use (e.g. 78ADL6LVAA) cert_owner_name The certificate name to use for new profiles, or to renew with. (e.g. \"Felix Krause\") filename Filename to use for the generated provisioning profile (must include .mobileprovision) skip_fetch_profiles Skips the verification of existing profiles which is useful if you have thousands of profiles false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false skip_certificate_verification Skips the verification of the certificates for every existing profiles. This will make sure the provisioning profile can be used on the local machine * platform Set the provisioning profile's platform (i.e. ios, tvos, macos, catalyst) ios readonly Only fetch existing profile, don't generate new ones false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_provisioning_profile action generates the following Lane Variables: SharedValue Description SharedValues::SIGH_PROFILE_PATH A path in which certificates, key and profile are exported SharedValues::SIGH_PROFILE_PATHS Paths in which certificates, key and profile are exported SharedValues::SIGH_UUID UUID (Universally Unique IDentifier) of a provisioning profile SharedValues::SIGH_NAME The name of the profile SharedValues::SIGH_PROFILE_TYPE The profile type, can be app-store, ad-hoc, development, enterprise, developer-id, can be used in build_app as a default value for export_method To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action get_provisioning_profile CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_provisioning_profile To pass parameters, make use of the : symbol, for example fastlane run get_provisioning_profile parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"get_provisioning_profile"},{"location":"actions/get_provisioning_profile/#get_provisioning_profile","text":"Generates a provisioning profile, saving it in the current folder (via sigh )","title":"get_provisioning_profile"},{"location":"actions/get_provisioning_profile/#features","text":"Download the latest provisioning profile for your app Renew a provisioning profile, when it has expired Repair a provisioning profile, when it is broken Create a new provisioning profile, if it doesn't exist already Supports App Store , Ad Hoc and Development profiles Support for multiple Apple accounts , storing your credentials securely in the Keychain Support for multiple Teams Support for Enterprise Profiles To automate iOS Push profiles you can use pem .","title":"Features"},{"location":"actions/get_provisioning_profile/#usage","text":"Note : It is recommended to use match according to the codesigning.guide for generating and maintaining your provisioning profiles. Use sigh directly only if you want full control over what's going on and know more about codesigning. fastlane sigh Yes, that's the whole command! sigh will create, repair and download profiles for the App Store by default. You can pass your bundle identifier and username like this: fastlane sigh -a com.krausefx.app -u username If you want to generate an Ad Hoc profile instead of an App Store profile: fastlane sigh --adhoc If you want to generate a Development profile: fastlane sigh --development To generate the profile in a specific directory: fastlane sigh -o \"~/Certificates/\" To download all your provisioning profiles use fastlane sigh download_all Optionally, use fastlane sigh download_all --download_xcode_profiles to also include the Xcode managed provisioning profiles For a list of available parameters and commands run fastlane action sigh","title":"Usage"},{"location":"actions/get_provisioning_profile/#repair","text":"sigh can automatically repair all your existing provisioning profiles which are expired or just invalid. fastlane sigh repair","title":"Repair"},{"location":"actions/get_provisioning_profile/#resign","text":"If you generated your ipa file but want to apply a different code signing onto the ipa file, you can use sigh resign : fastlane sigh resign sigh will find the ipa file and the provisioning profile for you if they are located in the current folder. You can pass more information using the command line: fastlane sigh resign ./path/app.ipa --signing_identity \"iPhone Distribution: Felix Krause\" -p \"my.mobileprovision\"","title":"Resign"},{"location":"actions/get_provisioning_profile/#manage","text":"With sigh manage you can list all provisioning profiles installed locally. fastlane sigh manage Delete all expired provisioning profiles fastlane sigh manage -e Or delete all iOS Team Provisioning Profile by using a regular expression fastlane sigh manage -p \"iOS\\ ?Team Provisioning Profile:\"","title":"Manage"},{"location":"actions/get_provisioning_profile/#environment-variables","text":"Run fastlane action sigh to get a list of all available environment variables. If you're using cert in combination with fastlane the signing certificate will automatically be selected for you. (make sure to run cert before sigh )","title":"Environment Variables"},{"location":"actions/get_provisioning_profile/#how-does-it-work","text":"sigh will access the iOS Dev Center to download, renew or generate the .mobileprovision file. It uses spaceship to communicate with Apple's web services.","title":"How does it work?"},{"location":"actions/get_provisioning_profile/#how-is-my-password-stored","text":"sigh uses the CredentialsManager from fastlane .","title":"How is my password stored?"},{"location":"actions/get_provisioning_profile/#tips","text":"","title":"Tips"},{"location":"actions/get_provisioning_profile/#use-provisionql-for-advanced-quick-look-in-finder","text":"Install ProvisionQL . It will show you mobileprovision files like this:","title":"Use 'ProvisionQL' for advanced Quick Look in Finder"},{"location":"actions/get_provisioning_profile/#app-identifier-couldnt-be-found","text":"If you also want to create a new App Identifier on the Apple Developer Portal, check out produce , which does exactly that.","title":"App Identifier couldn't be found"},{"location":"actions/get_provisioning_profile/#what-happens-to-my-xcode-managed-profiles","text":"sigh will never touch or use the profiles which are created and managed by Xcode. Instead sigh will manage its own set of provisioning profiles. get_provisioning_profile Supported platforms ios, mac Author @KrauseFx Returns The UUID of the profile sigh just fetched/generated","title":"What happens to my Xcode managed profiles?"},{"location":"actions/get_provisioning_profile/#3-examples","text":"get_provisioning_profile sigh # alias for \"get_provisioning_profile\" get_provisioning_profile( adhoc: true, force: true, filename: \"myFile.mobileprovision\" )","title":"3 Examples"},{"location":"actions/get_provisioning_profile/#parameters","text":"Key Description Default adhoc Setting this flag will generate AdHoc profiles instead of App Store Profiles false developer_id Setting this flag will generate Developer ID profiles instead of App Store Profiles false development Renew the development certificate instead of the production one false skip_install By default, the certificate will be added to your local machine. Setting this flag will skip this action false force Renew provisioning profiles regardless of its state - to automatically add all devices for ad hoc profiles false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false app_identifier The bundle identifier of your app * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * provisioning_name The name of the profile that is used on the Apple Developer Portal ignore_profiles_with_different_name Use in combination with :provisioning_name - when true only profiles matching this exact name will be downloaded false output_path Directory in which the profile should be stored . cert_id The ID of the code signing certificate to use (e.g. 78ADL6LVAA) cert_owner_name The certificate name to use for new profiles, or to renew with. (e.g. \"Felix Krause\") filename Filename to use for the generated provisioning profile (must include .mobileprovision) skip_fetch_profiles Skips the verification of existing profiles which is useful if you have thousands of profiles false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false skip_certificate_verification Skips the verification of the certificates for every existing profiles. This will make sure the provisioning profile can be used on the local machine * platform Set the provisioning profile's platform (i.e. ios, tvos, macos, catalyst) ios readonly Only fetch existing profile, don't generate new ones false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/get_provisioning_profile/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_provisioning_profile action generates the following Lane Variables: SharedValue Description SharedValues::SIGH_PROFILE_PATH A path in which certificates, key and profile are exported SharedValues::SIGH_PROFILE_PATHS Paths in which certificates, key and profile are exported SharedValues::SIGH_UUID UUID (Universally Unique IDentifier) of a provisioning profile SharedValues::SIGH_NAME The name of the profile SharedValues::SIGH_PROFILE_TYPE The profile type, can be app-store, ad-hoc, development, enterprise, developer-id, can be used in build_app as a default value for export_method To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/get_provisioning_profile/#documentation","text":"To show the documentation in your terminal, run fastlane action get_provisioning_profile","title":"Documentation"},{"location":"actions/get_provisioning_profile/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_provisioning_profile To pass parameters, make use of the : symbol, for example fastlane run get_provisioning_profile parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/get_provisioning_profile/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/get_push_certificate/","text":"get_push_certificate Ensure a valid push profile is active, creating a new one if needed (via pem ) Automatically generate and renew your push notification profiles Tired of manually creating and maintaining your push notification profiles for your iOS apps? Tired of generating a pem file for your server? pem does all that for you, just by simply running pem . pem creates new .pem, .cer, and .p12 files to be uploaded to your push server if a valid push notification profile is needed. pem does not cover uploading the file to your server. To automate iOS Provisioning profiles you can use match . Features \u2022 Usage \u2022 How does it work? \u2022 Tips \u2022 Need help? pem is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Features Well, it's actually just one: Generate the pem file for your server. Check out this gif: Usage fastlane pem Yes, that's the whole command! This does the following: Create a new signing request Create a new push certification Downloads the certificate Generates a new .pem file in the current working directory, which you can upload to your server Note that pem will never revoke your existing certificates. pem can't download any of your existing push certificates, as the private key is only available on the machine it was created on. If you already have a push certificate enabled, which is active for at least 30 more days, pem will not create a new certificate. If you still want to create one, use the force : fastlane pem --force You can pass parameters like this: fastlane pem -a com.krausefx.app -u username If you want to generate a development certificate instead: fastlane pem --development If you want to generate a Website Push certificate: fastlane pem --website_push Set a password for your p12 file: fastlane pem -p \"MyPass\" You can specify a name for the output file: fastlane pem -o my.pem To get a list of available options run: fastlane action pem Note about empty p12 passwords and Keychain Access.app pem will produce a valid p12 without specifying a password, or using the empty-string as the password. While the file is valid, the Mac's Keychain Access will not allow you to open the file without specifying a passphrase. Instead, you may verify the file is valid using OpenSSL: openssl pkcs12 -info -in my.p12 If you need the p12 in your keychain, perhaps to test push with an app like Knuff or Pusher , you can use openssl to export the p12 to pem and back to p12 : % openssl pkcs12 -in my.p12 -out my.pem Enter Import Password: MAC verified OK Enter your pem passphrase: % openssl pkcs12 -export -in my.pem -out my-with-passphrase.p12 Enter pass phrase for temp.pem: Enter Export Password: Environment Variables Run fastlane action pem to get a list of available environment variables. How does it work? pem uses spaceship to communicate with the Apple Developer Portal to request a new push certificate for you. How is my password stored? pem uses the password manager from fastlane . Take a look the CredentialsManager README for more information. get_push_certificate Supported platforms ios, mac Author @KrauseFx 3 Examples get_push_certificate pem # alias for \"get_push_certificate\" get_push_certificate( force: true, # create a new profile, even if the old one is still valid app_identifier: \"net.sunapps.9\", # optional app identifier, save_private_key: true, new_profile: proc do |profile_path| # this block gets called when a new profile was generated puts profile_path # the absolute path to the new PEM file # insert the code to upload the PEM file to the server end ) Parameters Key Description Default platform Set certificate's platform. Used for creation of production & development certificates. Supported platforms: ios, macos ios development Renew the development push certificate instead of the production one false website_push Create a Website Push certificate false generate_p12 Generate a p12 file additionally to a PEM file true active_days_limit If the current certificate is active for less than this number of days, generate a new one 30 force Create a new push certificate, even if the current one is active for 30 (or PEM_ACTIVE_DAYS_LIMIT) more days false save_private_key Set to save the private RSA key true app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * p12_password The password that is used for your p12 file pem_name The file name of the generated .pem file output_path The path to a directory in which all certificates and private keys should be stored . new_profile Block that is called if there is a new profile * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action get_push_certificate CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_push_certificate To pass parameters, make use of the : symbol, for example fastlane run get_push_certificate parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"get_push_certificate"},{"location":"actions/get_push_certificate/#get_push_certificate","text":"Ensure a valid push profile is active, creating a new one if needed (via pem )","title":"get_push_certificate"},{"location":"actions/get_push_certificate/#features","text":"Well, it's actually just one: Generate the pem file for your server. Check out this gif:","title":"Features"},{"location":"actions/get_push_certificate/#usage","text":"fastlane pem Yes, that's the whole command! This does the following: Create a new signing request Create a new push certification Downloads the certificate Generates a new .pem file in the current working directory, which you can upload to your server Note that pem will never revoke your existing certificates. pem can't download any of your existing push certificates, as the private key is only available on the machine it was created on. If you already have a push certificate enabled, which is active for at least 30 more days, pem will not create a new certificate. If you still want to create one, use the force : fastlane pem --force You can pass parameters like this: fastlane pem -a com.krausefx.app -u username If you want to generate a development certificate instead: fastlane pem --development If you want to generate a Website Push certificate: fastlane pem --website_push Set a password for your p12 file: fastlane pem -p \"MyPass\" You can specify a name for the output file: fastlane pem -o my.pem To get a list of available options run: fastlane action pem","title":"Usage"},{"location":"actions/get_push_certificate/#environment-variables","text":"Run fastlane action pem to get a list of available environment variables.","title":"Environment Variables"},{"location":"actions/get_push_certificate/#how-does-it-work","text":"pem uses spaceship to communicate with the Apple Developer Portal to request a new push certificate for you.","title":"How does it work?"},{"location":"actions/get_push_certificate/#how-is-my-password-stored","text":"pem uses the password manager from fastlane . Take a look the CredentialsManager README for more information. get_push_certificate Supported platforms ios, mac Author @KrauseFx","title":"How is my password stored?"},{"location":"actions/get_push_certificate/#3-examples","text":"get_push_certificate pem # alias for \"get_push_certificate\" get_push_certificate( force: true, # create a new profile, even if the old one is still valid app_identifier: \"net.sunapps.9\", # optional app identifier, save_private_key: true, new_profile: proc do |profile_path| # this block gets called when a new profile was generated puts profile_path # the absolute path to the new PEM file # insert the code to upload the PEM file to the server end )","title":"3 Examples"},{"location":"actions/get_push_certificate/#parameters","text":"Key Description Default platform Set certificate's platform. Used for creation of production & development certificates. Supported platforms: ios, macos ios development Renew the development push certificate instead of the production one false website_push Create a Website Push certificate false generate_p12 Generate a p12 file additionally to a PEM file true active_days_limit If the current certificate is active for less than this number of days, generate a new one 30 force Create a new push certificate, even if the current one is active for 30 (or PEM_ACTIVE_DAYS_LIMIT) more days false save_private_key Set to save the private RSA key true app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * p12_password The password that is used for your p12 file pem_name The file name of the generated .pem file output_path The path to a directory in which all certificates and private keys should be stored . new_profile Block that is called if there is a new profile * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/get_push_certificate/#documentation","text":"To show the documentation in your terminal, run fastlane action get_push_certificate","title":"Documentation"},{"location":"actions/get_push_certificate/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_push_certificate To pass parameters, make use of the : symbol, for example fastlane run get_push_certificate parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/get_push_certificate/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/get_version_number/","text":"get_version_number Get the version number of your project This action will return the current version number set on your project. It first looks in the plist and then for '$(MARKETING_VERSION)' in the build settings. get_version_number Supported platforms ios, mac Author @Liquidsoul, @joshdholtz 2 Examples version = get_version_number(xcodeproj: \"Project.xcodeproj\") version = get_version_number( xcodeproj: \"Project.xcodeproj\", target: \"App\" ) Parameters Key Description Default xcodeproj Path to the Xcode project to read version number from, or its containing directory, optional. If omitted, or if a directory is passed instead, it will use the first Xcode project found within the given directory, or the project root directory if none is passed target Target name, optional. Will be needed if you have more than one non-test target to avoid being prompted to select one configuration Configuration name, optional. Will be needed if you have altered the configurations from the default or your version number depends on the configuration selected * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_version_number action generates the following Lane Variables: SharedValue Description SharedValues::VERSION_NUMBER The version number To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action get_version_number CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_version_number To pass parameters, make use of the : symbol, for example fastlane run get_version_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"get_version_number"},{"location":"actions/get_version_number/#get_version_number","text":"Get the version number of your project This action will return the current version number set on your project. It first looks in the plist and then for '$(MARKETING_VERSION)' in the build settings. get_version_number Supported platforms ios, mac Author @Liquidsoul, @joshdholtz","title":"get_version_number"},{"location":"actions/get_version_number/#2-examples","text":"version = get_version_number(xcodeproj: \"Project.xcodeproj\") version = get_version_number( xcodeproj: \"Project.xcodeproj\", target: \"App\" )","title":"2 Examples"},{"location":"actions/get_version_number/#parameters","text":"Key Description Default xcodeproj Path to the Xcode project to read version number from, or its containing directory, optional. If omitted, or if a directory is passed instead, it will use the first Xcode project found within the given directory, or the project root directory if none is passed target Target name, optional. Will be needed if you have more than one non-test target to avoid being prompted to select one configuration Configuration name, optional. Will be needed if you have altered the configurations from the default or your version number depends on the configuration selected * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/get_version_number/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_version_number action generates the following Lane Variables: SharedValue Description SharedValues::VERSION_NUMBER The version number To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/get_version_number/#documentation","text":"To show the documentation in your terminal, run fastlane action get_version_number","title":"Documentation"},{"location":"actions/get_version_number/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_version_number To pass parameters, make use of the : symbol, for example fastlane run get_version_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/get_version_number/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/git_add/","text":"git_add Directly add the given file or all files git_add Supported platforms ios, android, mac Author @4brunu, @antondomashnev 7 Examples git_add git_add(path: \"./version.txt\") git_add(path: [\"./version.txt\", \"./changelog.txt\"]) git_add(path: \"./Frameworks/*\", shell_escape: false) git_add(path: [\"*.h\", \"*.m\"], shell_escape: false) git_add(path: \"./Frameworks/*\", shell_escape: false) git_add(path: \"*.txt\", shell_escape: false) Parameters Key Description Default path The file(s) and path(s) you want to add shell_escape Shell escapes paths (set to false if using wildcards or manually escaping spaces in :path) true pathspec DEPRECATED! Use --path instead - The pathspec you want to add files from * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action git_add CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_add To pass parameters, make use of the : symbol, for example fastlane run git_add parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"git_add"},{"location":"actions/git_add/#git_add","text":"Directly add the given file or all files git_add Supported platforms ios, android, mac Author @4brunu, @antondomashnev","title":"git_add"},{"location":"actions/git_add/#7-examples","text":"git_add git_add(path: \"./version.txt\") git_add(path: [\"./version.txt\", \"./changelog.txt\"]) git_add(path: \"./Frameworks/*\", shell_escape: false) git_add(path: [\"*.h\", \"*.m\"], shell_escape: false) git_add(path: \"./Frameworks/*\", shell_escape: false) git_add(path: \"*.txt\", shell_escape: false)","title":"7 Examples"},{"location":"actions/git_add/#parameters","text":"Key Description Default path The file(s) and path(s) you want to add shell_escape Shell escapes paths (set to false if using wildcards or manually escaping spaces in :path) true pathspec DEPRECATED! Use --path instead - The pathspec you want to add files from * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/git_add/#documentation","text":"To show the documentation in your terminal, run fastlane action git_add","title":"Documentation"},{"location":"actions/git_add/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_add To pass parameters, make use of the : symbol, for example fastlane run git_add parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/git_add/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/git_branch/","text":"git_branch Returns the name of the current git branch, possibly as managed by CI ENV vars If no branch could be found, this action will return an empty string. This is a wrapper for the internal action Actions.git_branch git_branch Supported platforms ios, android, mac Author @KrauseFx 1 Example git_branch Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The git_branch action generates the following Lane Variables: SharedValue Description SharedValues::GIT_BRANCH_ENV_VARS The git branch environment variables To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action git_branch CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_branch To pass parameters, make use of the : symbol, for example fastlane run git_branch parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"git_branch"},{"location":"actions/git_branch/#git_branch","text":"Returns the name of the current git branch, possibly as managed by CI ENV vars If no branch could be found, this action will return an empty string. This is a wrapper for the internal action Actions.git_branch git_branch Supported platforms ios, android, mac Author @KrauseFx","title":"git_branch"},{"location":"actions/git_branch/#1-example","text":"git_branch","title":"1 Example"},{"location":"actions/git_branch/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The git_branch action generates the following Lane Variables: SharedValue Description SharedValues::GIT_BRANCH_ENV_VARS The git branch environment variables To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/git_branch/#documentation","text":"To show the documentation in your terminal, run fastlane action git_branch","title":"Documentation"},{"location":"actions/git_branch/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_branch To pass parameters, make use of the : symbol, for example fastlane run git_branch parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/git_branch/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/git_commit/","text":"git_commit Directly commit the given file with the given message git_commit Supported platforms ios, android, mac Author @KrauseFx 4 Examples git_commit(path: \"./version.txt\", message: \"Version Bump\") git_commit(path: [\"./version.txt\", \"./changelog.txt\"], message: \"Version Bump\") git_commit(path: [\"./*.txt\", \"./*.md\"], message: \"Update documentation\") git_commit(path: [\"./*.txt\", \"./*.md\"], message: \"Update documentation\", skip_git_hooks: true) Parameters Key Description Default path The file(s) or directory(ies) you want to commit. You can pass an array of multiple file-paths or fileglobs \"*.txt\" to commit all matching files. The files already staged but not specified and untracked files won't be committed message The commit message that should be used skip_git_hooks Set to true to pass --no-verify to git false allow_nothing_to_commit Set to true to allow commit without any git changes in the files you want to commit false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action git_commit CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_commit To pass parameters, make use of the : symbol, for example fastlane run git_commit parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"git_commit"},{"location":"actions/git_commit/#git_commit","text":"Directly commit the given file with the given message git_commit Supported platforms ios, android, mac Author @KrauseFx","title":"git_commit"},{"location":"actions/git_commit/#4-examples","text":"git_commit(path: \"./version.txt\", message: \"Version Bump\") git_commit(path: [\"./version.txt\", \"./changelog.txt\"], message: \"Version Bump\") git_commit(path: [\"./*.txt\", \"./*.md\"], message: \"Update documentation\") git_commit(path: [\"./*.txt\", \"./*.md\"], message: \"Update documentation\", skip_git_hooks: true)","title":"4 Examples"},{"location":"actions/git_commit/#parameters","text":"Key Description Default path The file(s) or directory(ies) you want to commit. You can pass an array of multiple file-paths or fileglobs \"*.txt\" to commit all matching files. The files already staged but not specified and untracked files won't be committed message The commit message that should be used skip_git_hooks Set to true to pass --no-verify to git false allow_nothing_to_commit Set to true to allow commit without any git changes in the files you want to commit false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/git_commit/#documentation","text":"To show the documentation in your terminal, run fastlane action git_commit","title":"Documentation"},{"location":"actions/git_commit/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_commit To pass parameters, make use of the : symbol, for example fastlane run git_commit parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/git_commit/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/git_pull/","text":"git_pull Executes a simple git pull command git_pull Supported platforms ios, android, mac Author @KrauseFx, @JaviSoto 3 Examples git_pull git_pull(only_tags: true) # only the tags, no commits git_pull(rebase: true) # use --rebase with pull Parameters Key Description Default only_tags Simply pull the tags, and not bring new commits to the current branch from the remote false rebase Rebase on top of the remote branch instead of merge false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action git_pull CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_pull To pass parameters, make use of the : symbol, for example fastlane run git_pull parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"git_pull"},{"location":"actions/git_pull/#git_pull","text":"Executes a simple git pull command git_pull Supported platforms ios, android, mac Author @KrauseFx, @JaviSoto","title":"git_pull"},{"location":"actions/git_pull/#3-examples","text":"git_pull git_pull(only_tags: true) # only the tags, no commits git_pull(rebase: true) # use --rebase with pull","title":"3 Examples"},{"location":"actions/git_pull/#parameters","text":"Key Description Default only_tags Simply pull the tags, and not bring new commits to the current branch from the remote false rebase Rebase on top of the remote branch instead of merge false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/git_pull/#documentation","text":"To show the documentation in your terminal, run fastlane action git_pull","title":"Documentation"},{"location":"actions/git_pull/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_pull To pass parameters, make use of the : symbol, for example fastlane run git_pull parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/git_pull/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/git_remote_branch/","text":"git_remote_branch Returns the name of the current git remote default branch If no default remote branch could be found, this action will return nil. This is a wrapper for the internal action Actions.git_default_remote_branch_name git_remote_branch Supported platforms ios, android, mac Author @SeanMcNeil 2 Examples git_remote_branch # Query git for first available remote name git_remote_branch(remote_name:\"upstream\") # Provide a remote name Parameters Key Description Default remote_name The remote repository to check * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action git_remote_branch CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_remote_branch To pass parameters, make use of the : symbol, for example fastlane run git_remote_branch parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"git_remote_branch"},{"location":"actions/git_remote_branch/#git_remote_branch","text":"Returns the name of the current git remote default branch If no default remote branch could be found, this action will return nil. This is a wrapper for the internal action Actions.git_default_remote_branch_name git_remote_branch Supported platforms ios, android, mac Author @SeanMcNeil","title":"git_remote_branch"},{"location":"actions/git_remote_branch/#2-examples","text":"git_remote_branch # Query git for first available remote name git_remote_branch(remote_name:\"upstream\") # Provide a remote name","title":"2 Examples"},{"location":"actions/git_remote_branch/#parameters","text":"Key Description Default remote_name The remote repository to check * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/git_remote_branch/#documentation","text":"To show the documentation in your terminal, run fastlane action git_remote_branch","title":"Documentation"},{"location":"actions/git_remote_branch/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_remote_branch To pass parameters, make use of the : symbol, for example fastlane run git_remote_branch parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/git_remote_branch/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/git_submodule_update/","text":"git_submodule_update Executes a git submodule update command git_submodule_update Supported platforms ios, android, mac Author @braunico 4 Examples git_submodule_update git_submodule_update(recursive: true) git_submodule_update(init: true) git_submodule_update(recursive: true, init: true) Parameters Key Description Default recursive Should the submodules be updated recursively? false init Should the submodules be initiated before update? false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action git_submodule_update CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_submodule_update To pass parameters, make use of the : symbol, for example fastlane run git_submodule_update parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"git_submodule_update"},{"location":"actions/git_submodule_update/#git_submodule_update","text":"Executes a git submodule update command git_submodule_update Supported platforms ios, android, mac Author @braunico","title":"git_submodule_update"},{"location":"actions/git_submodule_update/#4-examples","text":"git_submodule_update git_submodule_update(recursive: true) git_submodule_update(init: true) git_submodule_update(recursive: true, init: true)","title":"4 Examples"},{"location":"actions/git_submodule_update/#parameters","text":"Key Description Default recursive Should the submodules be updated recursively? false init Should the submodules be initiated before update? false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/git_submodule_update/#documentation","text":"To show the documentation in your terminal, run fastlane action git_submodule_update","title":"Documentation"},{"location":"actions/git_submodule_update/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_submodule_update To pass parameters, make use of the : symbol, for example fastlane run git_submodule_update parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/git_submodule_update/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/git_tag_exists/","text":"git_tag_exists Checks if the git tag with the given name exists in the current repo git_tag_exists Supported platforms ios, android, mac Author @antondomashnev Returns Boolean value whether the tag exists or not 1 Example if git_tag_exists(tag: \"1.1.0\") UI.message(\"Found it \ud83d\ude80\") end Parameters Key Description Default tag The tag name that should be checked remote Whether to check remote. Defaults to false false remote_name The remote to check. Defaults to origin origin * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action git_tag_exists CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_tag_exists To pass parameters, make use of the : symbol, for example fastlane run git_tag_exists parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"git_tag_exists"},{"location":"actions/git_tag_exists/#git_tag_exists","text":"Checks if the git tag with the given name exists in the current repo git_tag_exists Supported platforms ios, android, mac Author @antondomashnev Returns Boolean value whether the tag exists or not","title":"git_tag_exists"},{"location":"actions/git_tag_exists/#1-example","text":"if git_tag_exists(tag: \"1.1.0\") UI.message(\"Found it \ud83d\ude80\") end","title":"1 Example"},{"location":"actions/git_tag_exists/#parameters","text":"Key Description Default tag The tag name that should be checked remote Whether to check remote. Defaults to false false remote_name The remote to check. Defaults to origin origin * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/git_tag_exists/#documentation","text":"To show the documentation in your terminal, run fastlane action git_tag_exists","title":"Documentation"},{"location":"actions/git_tag_exists/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_tag_exists To pass parameters, make use of the : symbol, for example fastlane run git_tag_exists parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/git_tag_exists/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/github_api/","text":"github_api Call a GitHub API endpoint and get the resulting JSON response Calls any GitHub API endpoint. You must provide your GitHub Personal token (get one from https://github.com/settings/tokens/new ). Out parameters provide the status code and the full response JSON if valid, otherwise the raw response body. Documentation: https://developer.github.com/v3 . github_api Supported platforms ios, android, mac Author @tommeier Returns A hash including the HTTP status code (:status), the response body (:body), and if valid JSON has been returned the parsed JSON (:json). 2 Examples result = github_api( server_url: \"https://api.github.com\", api_token: ENV[\"GITHUB_TOKEN\"], http_method: \"GET\", path: \"/repos/:owner/:repo/readme\", body: { ref: \"master\" } ) # Alternatively call directly with optional error handling or block usage GithubApiAction.run( server_url: \"https://api.github.com\", api_token: ENV[\"GITHUB_TOKEN\"], http_method: \"GET\", path: \"/repos/:owner/:repo/readme\", error_handlers: { 404 => proc do |result| UI.message(\"Something went wrong - I couldn't find it...\") end, '*' => proc do |result| UI.message(\"Handle all error codes other than 404\") end } ) do |result| UI.message(\"JSON returned: #{result[:json]}\") end Parameters Key Description Default server_url The server url. e.g. 'https://your.internal.github.host/api/v3' (Default: 'https://api.github.com') https://api.github.com api_token Personal API Token for GitHub - generate one at https://github.com/settings/tokens * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable http_method The HTTP method. e.g. GET / POST GET body The request body in JSON or hash format {} raw_body The request body taken verbatim instead of as JSON, useful for file uploads path The endpoint path. e.g. '/repos/:owner/:repo/readme' url The complete full url - used instead of path. e.g. 'https://uploads.github.com/repos/fastlane...' error_handlers Optional error handling hash based on status code, or pass '*' to handle all errors {} headers Optional headers to apply {} secure Optionally disable secure requests (ssl_verify_peer) true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The github_api action generates the following Lane Variables: SharedValue Description SharedValues::GITHUB_API_STATUS_CODE The status code returned from the request SharedValues::GITHUB_API_RESPONSE The full response body SharedValues::GITHUB_API_JSON The parsed json returned from GitHub To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action github_api CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run github_api To pass parameters, make use of the : symbol, for example fastlane run github_api parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"github_api"},{"location":"actions/github_api/#github_api","text":"Call a GitHub API endpoint and get the resulting JSON response Calls any GitHub API endpoint. You must provide your GitHub Personal token (get one from https://github.com/settings/tokens/new ). Out parameters provide the status code and the full response JSON if valid, otherwise the raw response body. Documentation: https://developer.github.com/v3 . github_api Supported platforms ios, android, mac Author @tommeier Returns A hash including the HTTP status code (:status), the response body (:body), and if valid JSON has been returned the parsed JSON (:json).","title":"github_api"},{"location":"actions/github_api/#2-examples","text":"result = github_api( server_url: \"https://api.github.com\", api_token: ENV[\"GITHUB_TOKEN\"], http_method: \"GET\", path: \"/repos/:owner/:repo/readme\", body: { ref: \"master\" } ) # Alternatively call directly with optional error handling or block usage GithubApiAction.run( server_url: \"https://api.github.com\", api_token: ENV[\"GITHUB_TOKEN\"], http_method: \"GET\", path: \"/repos/:owner/:repo/readme\", error_handlers: { 404 => proc do |result| UI.message(\"Something went wrong - I couldn't find it...\") end, '*' => proc do |result| UI.message(\"Handle all error codes other than 404\") end } ) do |result| UI.message(\"JSON returned: #{result[:json]}\") end","title":"2 Examples"},{"location":"actions/github_api/#parameters","text":"Key Description Default server_url The server url. e.g. 'https://your.internal.github.host/api/v3' (Default: 'https://api.github.com') https://api.github.com api_token Personal API Token for GitHub - generate one at https://github.com/settings/tokens * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable http_method The HTTP method. e.g. GET / POST GET body The request body in JSON or hash format {} raw_body The request body taken verbatim instead of as JSON, useful for file uploads path The endpoint path. e.g. '/repos/:owner/:repo/readme' url The complete full url - used instead of path. e.g. 'https://uploads.github.com/repos/fastlane...' error_handlers Optional error handling hash based on status code, or pass '*' to handle all errors {} headers Optional headers to apply {} secure Optionally disable secure requests (ssl_verify_peer) true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/github_api/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The github_api action generates the following Lane Variables: SharedValue Description SharedValues::GITHUB_API_STATUS_CODE The status code returned from the request SharedValues::GITHUB_API_RESPONSE The full response body SharedValues::GITHUB_API_JSON The parsed json returned from GitHub To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/github_api/#documentation","text":"To show the documentation in your terminal, run fastlane action github_api","title":"Documentation"},{"location":"actions/github_api/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run github_api To pass parameters, make use of the : symbol, for example fastlane run github_api parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/github_api/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/google_play_track_release_names/","text":"google_play_track_release_names Retrieves release names for a Google Play track More information: https://docs.fastlane.tools/actions/supply/ google_play_track_release_names Supported platforms android Author @raldred Returns Array of strings representing the release names for the given Google Play track 1 Example google_play_track_release_names Parameters Key Description Default package_name The package name of the application to use * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action google_play_track_release_names CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run google_play_track_release_names To pass parameters, make use of the : symbol, for example fastlane run google_play_track_release_names parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"google_play_track_release_names"},{"location":"actions/google_play_track_release_names/#google_play_track_release_names","text":"Retrieves release names for a Google Play track More information: https://docs.fastlane.tools/actions/supply/ google_play_track_release_names Supported platforms android Author @raldred Returns Array of strings representing the release names for the given Google Play track","title":"google_play_track_release_names"},{"location":"actions/google_play_track_release_names/#1-example","text":"google_play_track_release_names","title":"1 Example"},{"location":"actions/google_play_track_release_names/#parameters","text":"Key Description Default package_name The package name of the application to use * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/google_play_track_release_names/#documentation","text":"To show the documentation in your terminal, run fastlane action google_play_track_release_names","title":"Documentation"},{"location":"actions/google_play_track_release_names/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run google_play_track_release_names To pass parameters, make use of the : symbol, for example fastlane run google_play_track_release_names parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/google_play_track_release_names/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/google_play_track_version_codes/","text":"google_play_track_version_codes Retrieves version codes for a Google Play track More information: https://docs.fastlane.tools/actions/supply/ google_play_track_version_codes Supported platforms android Author @panthomakos Returns Array of integers representing the version codes for the given Google Play track 1 Example google_play_track_version_codes Parameters Key Description Default package_name The package name of the application to use * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action google_play_track_version_codes CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run google_play_track_version_codes To pass parameters, make use of the : symbol, for example fastlane run google_play_track_version_codes parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"google_play_track_version_codes"},{"location":"actions/google_play_track_version_codes/#google_play_track_version_codes","text":"Retrieves version codes for a Google Play track More information: https://docs.fastlane.tools/actions/supply/ google_play_track_version_codes Supported platforms android Author @panthomakos Returns Array of integers representing the version codes for the given Google Play track","title":"google_play_track_version_codes"},{"location":"actions/google_play_track_version_codes/#1-example","text":"google_play_track_version_codes","title":"1 Example"},{"location":"actions/google_play_track_version_codes/#parameters","text":"Key Description Default package_name The package name of the application to use * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/google_play_track_version_codes/#documentation","text":"To show the documentation in your terminal, run fastlane action google_play_track_version_codes","title":"Documentation"},{"location":"actions/google_play_track_version_codes/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run google_play_track_version_codes To pass parameters, make use of the : symbol, for example fastlane run google_play_track_version_codes parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/google_play_track_version_codes/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/gradle/","text":"gradle All gradle related actions, including building and testing your Android app Run ./gradlew tasks to get a list of all available gradle tasks for your project gradle Supported platforms ios, android Author @KrauseFx, @lmirosevic Returns The output of running the gradle task 1 Example gradle( task: \"assemble\", flavor: \"WorldDomination\", build_type: \"Release\" ) To build an AAB use: gradle( task: \"bundle\", flavor: \"WorldDomination\", build_type: \"Release\" ) You can pass multiple gradle tasks: gradle( tasks: [\"assembleDebug\", \"bundleDebug\"] ) You can pass properties to gradle: gradle( # ... properties: { \"exampleNumber\" => 100, \"exampleString\" => \"1.0.0\", # ... } ) You can use this to change the version code and name of your app: gradle( # ... properties: { \"android.injected.version.code\" => 100, \"android.injected.version.name\" => \"1.0.0\", # ... } ) You can use this to automatically sign and zipalign your app: gradle( task: \"assemble\", build_type: \"Release\", print_command: false, properties: { \"android.injected.signing.store.file\" => \"keystore.jks\", \"android.injected.signing.store.password\" => \"store_password\", \"android.injected.signing.key.alias\" => \"key_alias\", \"android.injected.signing.key.password\" => \"key_password\", } ) If you need to pass sensitive information through the gradle action, and don't want the generated command to be printed before it is run, you can suppress that: gradle( # ... print_command: false ) You can also suppress printing the output generated by running the generated Gradle command: gradle( # ... print_command_output: false ) To pass any other CLI flags to gradle use: gradle( # ... flags: \"--exitcode --xml file.xml\" ) Delete the build directory, generated APKs and AABs gradle( task: \"clean\" ) Parameters Key Description Default task The gradle task you want to execute, e.g. assemble , bundle or test . For tasks such as assembleMyFlavorRelease you should use gradle(task: 'assemble', flavor: 'Myflavor', build_type: 'Release') flavor The flavor that you want the task for, e.g. MyFlavor . If you are running the assemble task in a multi-flavor project, and you rely on Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH] then you must specify a flavor here or else this value will be undefined build_type The build type that you want the task for, e.g. Release . Useful for some tasks such as assemble tasks The multiple gradle tasks that you want to execute, e.g. [assembleDebug, bundleDebug] flags All parameter flags you want to pass to the gradle command, e.g. --exitcode --xml file.xml project_dir The root directory of the gradle project . gradle_path The path to your gradlew . If you specify a relative path, it is assumed to be relative to the project_dir properties Gradle properties to be exposed to the gradle script system_properties Gradle system properties to be exposed to the gradle script serial Android serial, which device should be used for this command '' print_command Control whether the generated Gradle command is printed as output before running it (true/false) true print_command_output Control whether the output produced by given Gradle command is printed while running (true/false) true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The gradle action generates the following Lane Variables: SharedValue Description SharedValues::GRADLE_APK_OUTPUT_PATH The path to the newly generated apk file. Undefined in a multi-variant assemble scenario SharedValues::GRADLE_ALL_APK_OUTPUT_PATHS When running a multi-variant assemble , the array of signed apk's that were generated SharedValues::GRADLE_FLAVOR The flavor, e.g. MyFlavor SharedValues::GRADLE_BUILD_TYPE The build type, e.g. Release SharedValues::GRADLE_AAB_OUTPUT_PATH The path to the most recent Android app bundle SharedValues::GRADLE_ALL_AAB_OUTPUT_PATHS The paths to the most recent Android app bundles SharedValues::GRADLE_OUTPUT_JSON_OUTPUT_PATH The path to the most recent output.json file SharedValues::GRADLE_ALL_OUTPUT_JSON_OUTPUT_PATHS The path to the newly generated output.json files SharedValues::GRADLE_MAPPING_TXT_OUTPUT_PATH The path to the most recent mapping.txt file SharedValues::GRADLE_ALL_MAPPING_TXT_OUTPUT_PATHS The path to the newly generated mapping.txt files To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action gradle CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run gradle To pass parameters, make use of the : symbol, for example fastlane run gradle parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"gradle"},{"location":"actions/gradle/#gradle","text":"All gradle related actions, including building and testing your Android app Run ./gradlew tasks to get a list of all available gradle tasks for your project gradle Supported platforms ios, android Author @KrauseFx, @lmirosevic Returns The output of running the gradle task","title":"gradle"},{"location":"actions/gradle/#1-example","text":"gradle( task: \"assemble\", flavor: \"WorldDomination\", build_type: \"Release\" ) To build an AAB use: gradle( task: \"bundle\", flavor: \"WorldDomination\", build_type: \"Release\" ) You can pass multiple gradle tasks: gradle( tasks: [\"assembleDebug\", \"bundleDebug\"] ) You can pass properties to gradle: gradle( # ... properties: { \"exampleNumber\" => 100, \"exampleString\" => \"1.0.0\", # ... } ) You can use this to change the version code and name of your app: gradle( # ... properties: { \"android.injected.version.code\" => 100, \"android.injected.version.name\" => \"1.0.0\", # ... } ) You can use this to automatically sign and zipalign your app: gradle( task: \"assemble\", build_type: \"Release\", print_command: false, properties: { \"android.injected.signing.store.file\" => \"keystore.jks\", \"android.injected.signing.store.password\" => \"store_password\", \"android.injected.signing.key.alias\" => \"key_alias\", \"android.injected.signing.key.password\" => \"key_password\", } ) If you need to pass sensitive information through the gradle action, and don't want the generated command to be printed before it is run, you can suppress that: gradle( # ... print_command: false ) You can also suppress printing the output generated by running the generated Gradle command: gradle( # ... print_command_output: false ) To pass any other CLI flags to gradle use: gradle( # ... flags: \"--exitcode --xml file.xml\" ) Delete the build directory, generated APKs and AABs gradle( task: \"clean\" )","title":"1 Example"},{"location":"actions/gradle/#parameters","text":"Key Description Default task The gradle task you want to execute, e.g. assemble , bundle or test . For tasks such as assembleMyFlavorRelease you should use gradle(task: 'assemble', flavor: 'Myflavor', build_type: 'Release') flavor The flavor that you want the task for, e.g. MyFlavor . If you are running the assemble task in a multi-flavor project, and you rely on Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH] then you must specify a flavor here or else this value will be undefined build_type The build type that you want the task for, e.g. Release . Useful for some tasks such as assemble tasks The multiple gradle tasks that you want to execute, e.g. [assembleDebug, bundleDebug] flags All parameter flags you want to pass to the gradle command, e.g. --exitcode --xml file.xml project_dir The root directory of the gradle project . gradle_path The path to your gradlew . If you specify a relative path, it is assumed to be relative to the project_dir properties Gradle properties to be exposed to the gradle script system_properties Gradle system properties to be exposed to the gradle script serial Android serial, which device should be used for this command '' print_command Control whether the generated Gradle command is printed as output before running it (true/false) true print_command_output Control whether the output produced by given Gradle command is printed while running (true/false) true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/gradle/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The gradle action generates the following Lane Variables: SharedValue Description SharedValues::GRADLE_APK_OUTPUT_PATH The path to the newly generated apk file. Undefined in a multi-variant assemble scenario SharedValues::GRADLE_ALL_APK_OUTPUT_PATHS When running a multi-variant assemble , the array of signed apk's that were generated SharedValues::GRADLE_FLAVOR The flavor, e.g. MyFlavor SharedValues::GRADLE_BUILD_TYPE The build type, e.g. Release SharedValues::GRADLE_AAB_OUTPUT_PATH The path to the most recent Android app bundle SharedValues::GRADLE_ALL_AAB_OUTPUT_PATHS The paths to the most recent Android app bundles SharedValues::GRADLE_OUTPUT_JSON_OUTPUT_PATH The path to the most recent output.json file SharedValues::GRADLE_ALL_OUTPUT_JSON_OUTPUT_PATHS The path to the newly generated output.json files SharedValues::GRADLE_MAPPING_TXT_OUTPUT_PATH The path to the most recent mapping.txt file SharedValues::GRADLE_ALL_MAPPING_TXT_OUTPUT_PATHS The path to the newly generated mapping.txt files To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/gradle/#documentation","text":"To show the documentation in your terminal, run fastlane action gradle","title":"Documentation"},{"location":"actions/gradle/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run gradle To pass parameters, make use of the : symbol, for example fastlane run gradle parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/gradle/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/gym/","text":"gym Alias for the build_app action Features \u2022 Usage \u2022 Tips gym is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. What's gym? gym builds and packages iOS apps for you. It takes care of all the heavy lifting and makes it super easy to generate a signed ipa or app file \ud83d\udcaa gym is a replacement for shenzhen . Before gym xcodebuild clean archive -archivePath build/MyApp \\ -scheme MyApp xcodebuild -exportArchive \\ -exportFormat ipa \\ -archivePath \"build/MyApp.xcarchive\" \\ -exportPath \"build/MyApp.ipa\" \\ -exportProvisioningProfile \"ProvisioningProfileName\" With gym fastlane gym Why gym ? gym uses the latest APIs to build and sign your application which results in much faster build times. gym Features \ud83d\ude80 gym builds 30% faster than other build tools like shenzhen \ud83c\udfc1 Beautiful inline build output \ud83d\udcd6 Helps you resolve common build errors like code signing issues \ud83d\udea0 Sensible defaults: Automatically detect the project, its schemes and more \ud83d\udd17 Works perfectly with fastlane and other tools \ud83d\udce6 Automatically generates an ipa and a compressed dSYM file \ud83d\ude85 Don't remember any complicated build commands, just gym \ud83d\udd27 Easy and dynamic configuration using parameters and environment variables \ud83d\udcbe Store common build settings in a Gymfile \ud83d\udce4 All archives are stored and accessible in the Xcode Organizer \ud83d\udcbb Supports both iOS and Mac applications Usage fastlane gym That's all you need to build your application. If you want more control, here are some available parameters: fastlane gym --workspace \"Example.xcworkspace\" --scheme \"AppName\" --clean If you need to use a different Xcode installation, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" fastlane gym For a list of all available parameters use fastlane action gym If you run into any issues, use the verbose mode to get more information fastlane gym --verbose Set the right export method if you're not uploading to App Store or TestFlight: fastlane gym --export_method ad-hoc To pass boolean parameters make sure to use gym like this: fastlane gym --include_bitcode true --include_symbols false To access the raw xcodebuild output open ~/Library/Logs/gym Gymfile Since you might want to manually trigger a new build but don't want to specify all the parameters every time, you can store your defaults in a so called Gymfile . Run fastlane gym init to create a new configuration file. Example: scheme(\"Example\") sdk(\"iphoneos9.0\") clean(true) output_directory(\"./build\") # store the ipa in this folder output_name(\"MyApp\") # the name of the ipa file Export options Since Xcode 7, gym is using new Xcode API which allows us to specify export options using plist file. By default gym creates this file for you and you are able to modify some parameters by using export_method , export_team_id , include_symbols or include_bitcode . If you want to have more options, like creating manifest file for app thinning, you can provide your own plist file: export_options(\"./ExportOptions.plist\") or you can provide hash of values directly in the Gymfile : export_options({ method: \"ad-hoc\", manifest: { appURL: \"https://example.com/My App.ipa\", }, thinning: \"\" }) Optional: If gym can't automatically detect the provisioning profiles to use, you can pass a mapping of bundle identifiers to provisioning profiles: build_app( scheme: \"Release\", export_method: \"app-store\", export_options: { provisioningProfiles: { \"com.example.bundleid\" => \"Provisioning Profile Name\", \"com.example.bundleid2\" => \"Provisioning Profile Name 2\" } } ) Note : If you use fastlane with match you don't need to provide those values manually, unless you pass a plist file into export_options For the list of available options run xcodebuild -help . Setup code signing More information on how to get started with codesigning Docs on how to set up your Xcode project Automating the whole process gym works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :beta do scan gym(scheme: \"MyApp\") crashlytics end # error block is executed when a error occurs error do |lane, exception| slack( # message with short human friendly message message: exception.to_s, success: false, # Output containing extended log output payload: { \"Output\" => exception.error_info.to_s } ) end When gym raises an error the error_info property will contain the process output in case you want to display the error in 3rd party tools such as Slack. You can then easily switch between the beta provider (e.g. testflight , hockey , s3 and more). How does it work? gym uses the latest APIs to build and sign your application. The 2 main components are xcodebuild xcpretty When you run gym without the --silent mode it will print out every command it executes. To build the archive gym uses the following command: set -o pipefail && \\ xcodebuild -scheme 'Example' \\ -project './Example.xcodeproj' \\ -configuration 'Release' \\ -destination 'generic/platform=iOS' \\ -archivePath '/Users/felixkrause/Library/Developer/Xcode/Archives/2015-08-11/ExampleProductName 2015-08-11 18.15.30.xcarchive' \\ archive | xcpretty After building the archive it is being checked by gym . If it's valid, it gets packaged up and signed into an ipa file. gym automatically chooses a different packaging method depending on the version of Xcode you're using. Xcode 7 and above /usr/bin/xcrun path/to/xcbuild-safe.sh -exportArchive \\ -exportOptionsPlist '/tmp/gym_config_1442852529.plist' \\ -archivePath '/Users/fkrause/Library/Developer/Xcode/Archives/2015-09-21/App 2015-09-21 09.21.56.xcarchive' \\ -exportPath '/tmp/1442852529' gym makes use of the new Xcode 7 API which allows us to specify the export options using a plist file. You can find more information about the available options by running xcodebuild --help . Using this method there are no workarounds for WatchKit or Swift required, as it uses the same technique Xcode uses when exporting your binary. Note: the xcbuild-safe.sh script wraps around xcodebuild to workaround some incompatibilities. Use 'ProvisionQL' for advanced Quick Look in Finder Install ProvisionQL . It will show you ipa files like this: gym Supported platforms ios, mac Author @KrauseFx Returns The absolute path to the generated ipa file 5 Examples build_app(scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\") build_app( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", silent: true, clean: true, output_directory: \"path/to/dir\", # Destination directory. Defaults to current directory. output_name: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) sdk: \"iOS 11.1\" # use SDK as the name or path of the base SDK when building the project. ) gym # alias for \"build_app\" build_ios_app # alias for \"build_app (only iOS options)\" build_mac_app # alias for \"build_app (only macOS options)\" Parameters Key Description Default workspace Path to the workspace file project Path to the project file scheme The project's scheme. Make sure it's marked as Shared clean Should the project be cleaned before building it? false output_directory The directory in which the ipa file should be stored in . output_name The name of the resulting ipa file configuration The configuration to use when building the app. Defaults to 'Release' * silent Hide all information that's not necessary while building false codesigning_identity The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH' skip_package_ipa Should we skip packaging the ipa? false skip_package_pkg Should we skip packaging the pkg? false include_symbols Should the ipa file include symbols? include_bitcode Should the ipa file include bitcode? export_method Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application export_options Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options export_xcargs Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" skip_build_archive Export ipa from previously built xcarchive. Uses archive_path as source skip_archive After building, don't archive, effectively not including -archivePath param skip_codesigning Build without codesigning catalyst_platform Platform to build when using a Catalyst enabled app. Valid values are: ios, macos installer_cert_name Full name of 3rd Party Mac Developer Installer or Developer ID Installer certificate. Example: 3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ) build_path The directory in which the archive should be stored in archive_path The path to the created archive derived_data_path The directory where built products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false result_bundle_path Path to the result bundle directory to create. Ignored if result_bundle if false buildlog_path The directory where to store the build log * sdk The SDK that should be used for building the application toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a) destination Use a custom destination for building the app export_team_id Optional: Sometimes you need to specify a team id when exporting the ipa file xcargs Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * build_timing_summary Create a build timing summary false disable_xcpretty DEPRECATED! Use xcodebuild_formatter: '' instead - Disable xcpretty formatting of build output xcpretty_test_format Use the test (RSpec style) format for build output xcpretty_formatter A custom xcpretty formatter to use xcpretty_report_junit Have xcpretty create a JUnit-style XML report at the provided path xcpretty_report_html Have xcpretty create a simple HTML report at the provided path xcpretty_report_json Have xcpretty create a JSON compilation database at the provided path xcpretty_utf Have xcpretty use unicode encoding when reporting builds analyze_build_time Analyze the project build time and store the output in 'culprits.txt' file skip_profile_detection Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used false xcodebuild_command Allows for override of the default xcodebuild command xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The gym action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::PKG_OUTPUT_PATH The path to the newly generated pkg file SharedValues::DSYM_OUTPUT_PATH The path to the dSYM files SharedValues::XCODEBUILD_ARCHIVE The path to the xcodebuild archive To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action gym CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run gym To pass parameters, make use of the : symbol, for example fastlane run gym parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"gym"},{"location":"actions/gym/#gym","text":"Alias for the build_app action Features \u2022 Usage \u2022 Tips","title":"gym"},{"location":"actions/gym/#whats-gym","text":"gym builds and packages iOS apps for you. It takes care of all the heavy lifting and makes it super easy to generate a signed ipa or app file \ud83d\udcaa gym is a replacement for shenzhen .","title":"What's gym?"},{"location":"actions/gym/#usage","text":"fastlane gym That's all you need to build your application. If you want more control, here are some available parameters: fastlane gym --workspace \"Example.xcworkspace\" --scheme \"AppName\" --clean If you need to use a different Xcode installation, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" fastlane gym For a list of all available parameters use fastlane action gym If you run into any issues, use the verbose mode to get more information fastlane gym --verbose Set the right export method if you're not uploading to App Store or TestFlight: fastlane gym --export_method ad-hoc To pass boolean parameters make sure to use gym like this: fastlane gym --include_bitcode true --include_symbols false To access the raw xcodebuild output open ~/Library/Logs/gym","title":"Usage"},{"location":"actions/gym/#gymfile","text":"Since you might want to manually trigger a new build but don't want to specify all the parameters every time, you can store your defaults in a so called Gymfile . Run fastlane gym init to create a new configuration file. Example: scheme(\"Example\") sdk(\"iphoneos9.0\") clean(true) output_directory(\"./build\") # store the ipa in this folder output_name(\"MyApp\") # the name of the ipa file","title":"Gymfile"},{"location":"actions/gym/#export-options","text":"Since Xcode 7, gym is using new Xcode API which allows us to specify export options using plist file. By default gym creates this file for you and you are able to modify some parameters by using export_method , export_team_id , include_symbols or include_bitcode . If you want to have more options, like creating manifest file for app thinning, you can provide your own plist file: export_options(\"./ExportOptions.plist\") or you can provide hash of values directly in the Gymfile : export_options({ method: \"ad-hoc\", manifest: { appURL: \"https://example.com/My App.ipa\", }, thinning: \"\" }) Optional: If gym can't automatically detect the provisioning profiles to use, you can pass a mapping of bundle identifiers to provisioning profiles: build_app( scheme: \"Release\", export_method: \"app-store\", export_options: { provisioningProfiles: { \"com.example.bundleid\" => \"Provisioning Profile Name\", \"com.example.bundleid2\" => \"Provisioning Profile Name 2\" } } ) Note : If you use fastlane with match you don't need to provide those values manually, unless you pass a plist file into export_options For the list of available options run xcodebuild -help .","title":"Export options"},{"location":"actions/gym/#setup-code-signing","text":"More information on how to get started with codesigning Docs on how to set up your Xcode project","title":"Setup code signing"},{"location":"actions/gym/#automating-the-whole-process","text":"gym works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :beta do scan gym(scheme: \"MyApp\") crashlytics end # error block is executed when a error occurs error do |lane, exception| slack( # message with short human friendly message message: exception.to_s, success: false, # Output containing extended log output payload: { \"Output\" => exception.error_info.to_s } ) end When gym raises an error the error_info property will contain the process output in case you want to display the error in 3rd party tools such as Slack. You can then easily switch between the beta provider (e.g. testflight , hockey , s3 and more).","title":"Automating the whole process"},{"location":"actions/gym/#how-does-it-work","text":"gym uses the latest APIs to build and sign your application. The 2 main components are xcodebuild xcpretty When you run gym without the --silent mode it will print out every command it executes. To build the archive gym uses the following command: set -o pipefail && \\ xcodebuild -scheme 'Example' \\ -project './Example.xcodeproj' \\ -configuration 'Release' \\ -destination 'generic/platform=iOS' \\ -archivePath '/Users/felixkrause/Library/Developer/Xcode/Archives/2015-08-11/ExampleProductName 2015-08-11 18.15.30.xcarchive' \\ archive | xcpretty After building the archive it is being checked by gym . If it's valid, it gets packaged up and signed into an ipa file. gym automatically chooses a different packaging method depending on the version of Xcode you're using.","title":"How does it work?"},{"location":"actions/gym/#use-provisionql-for-advanced-quick-look-in-finder","text":"Install ProvisionQL . It will show you ipa files like this: gym Supported platforms ios, mac Author @KrauseFx Returns The absolute path to the generated ipa file","title":"Use 'ProvisionQL' for advanced Quick Look in Finder"},{"location":"actions/gym/#5-examples","text":"build_app(scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\") build_app( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", silent: true, clean: true, output_directory: \"path/to/dir\", # Destination directory. Defaults to current directory. output_name: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) sdk: \"iOS 11.1\" # use SDK as the name or path of the base SDK when building the project. ) gym # alias for \"build_app\" build_ios_app # alias for \"build_app (only iOS options)\" build_mac_app # alias for \"build_app (only macOS options)\"","title":"5 Examples"},{"location":"actions/gym/#parameters","text":"Key Description Default workspace Path to the workspace file project Path to the project file scheme The project's scheme. Make sure it's marked as Shared clean Should the project be cleaned before building it? false output_directory The directory in which the ipa file should be stored in . output_name The name of the resulting ipa file configuration The configuration to use when building the app. Defaults to 'Release' * silent Hide all information that's not necessary while building false codesigning_identity The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH' skip_package_ipa Should we skip packaging the ipa? false skip_package_pkg Should we skip packaging the pkg? false include_symbols Should the ipa file include symbols? include_bitcode Should the ipa file include bitcode? export_method Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application export_options Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options export_xcargs Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" skip_build_archive Export ipa from previously built xcarchive. Uses archive_path as source skip_archive After building, don't archive, effectively not including -archivePath param skip_codesigning Build without codesigning catalyst_platform Platform to build when using a Catalyst enabled app. Valid values are: ios, macos installer_cert_name Full name of 3rd Party Mac Developer Installer or Developer ID Installer certificate. Example: 3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ) build_path The directory in which the archive should be stored in archive_path The path to the created archive derived_data_path The directory where built products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false result_bundle_path Path to the result bundle directory to create. Ignored if result_bundle if false buildlog_path The directory where to store the build log * sdk The SDK that should be used for building the application toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a) destination Use a custom destination for building the app export_team_id Optional: Sometimes you need to specify a team id when exporting the ipa file xcargs Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * build_timing_summary Create a build timing summary false disable_xcpretty DEPRECATED! Use xcodebuild_formatter: '' instead - Disable xcpretty formatting of build output xcpretty_test_format Use the test (RSpec style) format for build output xcpretty_formatter A custom xcpretty formatter to use xcpretty_report_junit Have xcpretty create a JUnit-style XML report at the provided path xcpretty_report_html Have xcpretty create a simple HTML report at the provided path xcpretty_report_json Have xcpretty create a JSON compilation database at the provided path xcpretty_utf Have xcpretty use unicode encoding when reporting builds analyze_build_time Analyze the project build time and store the output in 'culprits.txt' file skip_profile_detection Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used false xcodebuild_command Allows for override of the default xcodebuild command xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/gym/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The gym action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::PKG_OUTPUT_PATH The path to the newly generated pkg file SharedValues::DSYM_OUTPUT_PATH The path to the dSYM files SharedValues::XCODEBUILD_ARCHIVE The path to the xcodebuild archive To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/gym/#documentation","text":"To show the documentation in your terminal, run fastlane action gym","title":"Documentation"},{"location":"actions/gym/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run gym To pass parameters, make use of the : symbol, for example fastlane run gym parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/gym/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/hg_add_tag/","text":"hg_add_tag This will add a hg tag to the current branch hg_add_tag Supported platforms ios, android, mac Author @sjrmanning 1 Example hg_add_tag(tag: \"1.3\") Parameters Key Description Default tag Tag to create * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action hg_add_tag CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hg_add_tag To pass parameters, make use of the : symbol, for example fastlane run hg_add_tag parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"hg_add_tag"},{"location":"actions/hg_add_tag/#hg_add_tag","text":"This will add a hg tag to the current branch hg_add_tag Supported platforms ios, android, mac Author @sjrmanning","title":"hg_add_tag"},{"location":"actions/hg_add_tag/#1-example","text":"hg_add_tag(tag: \"1.3\")","title":"1 Example"},{"location":"actions/hg_add_tag/#parameters","text":"Key Description Default tag Tag to create * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/hg_add_tag/#documentation","text":"To show the documentation in your terminal, run fastlane action hg_add_tag","title":"Documentation"},{"location":"actions/hg_add_tag/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hg_add_tag To pass parameters, make use of the : symbol, for example fastlane run hg_add_tag parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/hg_add_tag/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/hg_commit_version_bump/","text":"hg_commit_version_bump This will commit a version bump to the hg repo The mercurial equivalent of the commit_version_bump git action. Like the git version, it is useful in conjunction with increment_build_number . It checks the repo to make sure that only the relevant files have changed, these are the files that increment_build_number ( agvtool ) touches: All .plist files The .xcodeproj/project.pbxproj file Then commits those files to the repo. Customize the message with the :message option, defaults to 'Version Bump' If you have other uncommitted changes in your repo, this action will fail. If you started off in a clean repo, and used the ipa and or sigh actions, then you can use the clean_build_artifacts action to clean those temporary files up before running this action. hg_commit_version_bump Supported platforms ios, android, mac Author @sjrmanning 2 Examples hg_commit_version_bump hg_commit_version_bump( message: \"Version Bump\", # create a commit with a custom message xcodeproj: \"./path/MyProject.xcodeproj\", # optional, if you have multiple Xcode project files, you must specify your main project here ) Parameters Key Description Default message The commit message when committing the version bump Version Bump xcodeproj The path to your project file (Not the workspace). If you have only one, this is optional force Forces the commit, even if other files than the ones containing the version number have been modified false test_dirty_files A list of dirty files passed in for testing file1, file2 test_expected_files A list of expected changed files passed in for testing file1, file2 * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action hg_commit_version_bump CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hg_commit_version_bump To pass parameters, make use of the : symbol, for example fastlane run hg_commit_version_bump parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"hg_commit_version_bump"},{"location":"actions/hg_commit_version_bump/#hg_commit_version_bump","text":"This will commit a version bump to the hg repo The mercurial equivalent of the commit_version_bump git action. Like the git version, it is useful in conjunction with increment_build_number . It checks the repo to make sure that only the relevant files have changed, these are the files that increment_build_number ( agvtool ) touches: All .plist files The .xcodeproj/project.pbxproj file Then commits those files to the repo. Customize the message with the :message option, defaults to 'Version Bump' If you have other uncommitted changes in your repo, this action will fail. If you started off in a clean repo, and used the ipa and or sigh actions, then you can use the clean_build_artifacts action to clean those temporary files up before running this action. hg_commit_version_bump Supported platforms ios, android, mac Author @sjrmanning","title":"hg_commit_version_bump"},{"location":"actions/hg_commit_version_bump/#2-examples","text":"hg_commit_version_bump hg_commit_version_bump( message: \"Version Bump\", # create a commit with a custom message xcodeproj: \"./path/MyProject.xcodeproj\", # optional, if you have multiple Xcode project files, you must specify your main project here )","title":"2 Examples"},{"location":"actions/hg_commit_version_bump/#parameters","text":"Key Description Default message The commit message when committing the version bump Version Bump xcodeproj The path to your project file (Not the workspace). If you have only one, this is optional force Forces the commit, even if other files than the ones containing the version number have been modified false test_dirty_files A list of dirty files passed in for testing file1, file2 test_expected_files A list of expected changed files passed in for testing file1, file2 * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/hg_commit_version_bump/#documentation","text":"To show the documentation in your terminal, run fastlane action hg_commit_version_bump","title":"Documentation"},{"location":"actions/hg_commit_version_bump/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hg_commit_version_bump To pass parameters, make use of the : symbol, for example fastlane run hg_commit_version_bump parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/hg_commit_version_bump/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/hg_ensure_clean_status/","text":"hg_ensure_clean_status Raises an exception if there are uncommitted hg changes Along the same lines as the ensure_git_status_clean action, this is a sanity check to ensure the working mercurial repo is clean. Especially useful to put at the beginning of your Fastfile in the before_all block. hg_ensure_clean_status Supported platforms ios, android, mac Author @sjrmanning 1 Example hg_ensure_clean_status Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The hg_ensure_clean_status action generates the following Lane Variables: SharedValue Description SharedValues::HG_REPO_WAS_CLEAN_ON_START Stores the fact that the hg repo was clean at some point To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action hg_ensure_clean_status CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hg_ensure_clean_status To pass parameters, make use of the : symbol, for example fastlane run hg_ensure_clean_status parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"hg_ensure_clean_status"},{"location":"actions/hg_ensure_clean_status/#hg_ensure_clean_status","text":"Raises an exception if there are uncommitted hg changes Along the same lines as the ensure_git_status_clean action, this is a sanity check to ensure the working mercurial repo is clean. Especially useful to put at the beginning of your Fastfile in the before_all block. hg_ensure_clean_status Supported platforms ios, android, mac Author @sjrmanning","title":"hg_ensure_clean_status"},{"location":"actions/hg_ensure_clean_status/#1-example","text":"hg_ensure_clean_status","title":"1 Example"},{"location":"actions/hg_ensure_clean_status/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The hg_ensure_clean_status action generates the following Lane Variables: SharedValue Description SharedValues::HG_REPO_WAS_CLEAN_ON_START Stores the fact that the hg repo was clean at some point To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/hg_ensure_clean_status/#documentation","text":"To show the documentation in your terminal, run fastlane action hg_ensure_clean_status","title":"Documentation"},{"location":"actions/hg_ensure_clean_status/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hg_ensure_clean_status To pass parameters, make use of the : symbol, for example fastlane run hg_ensure_clean_status parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/hg_ensure_clean_status/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/hg_push/","text":"hg_push This will push changes to the remote hg repository The mercurial equivalent of push_to_git_remote . Pushes your local commits to a remote mercurial repo. Useful when local changes such as adding a version bump commit or adding a tag are part of your lane\u2019s actions. hg_push Supported platforms ios, android, mac Author @sjrmanning 2 Examples hg_push hg_push( destination: \"ssh://hg@repohost.com/owner/repo\", force: true ) Parameters Key Description Default force Force push to remote false destination The destination to push to '' * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action hg_push CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hg_push To pass parameters, make use of the : symbol, for example fastlane run hg_push parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"hg_push"},{"location":"actions/hg_push/#hg_push","text":"This will push changes to the remote hg repository The mercurial equivalent of push_to_git_remote . Pushes your local commits to a remote mercurial repo. Useful when local changes such as adding a version bump commit or adding a tag are part of your lane\u2019s actions. hg_push Supported platforms ios, android, mac Author @sjrmanning","title":"hg_push"},{"location":"actions/hg_push/#2-examples","text":"hg_push hg_push( destination: \"ssh://hg@repohost.com/owner/repo\", force: true )","title":"2 Examples"},{"location":"actions/hg_push/#parameters","text":"Key Description Default force Force push to remote false destination The destination to push to '' * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/hg_push/#documentation","text":"To show the documentation in your terminal, run fastlane action hg_push","title":"Documentation"},{"location":"actions/hg_push/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hg_push To pass parameters, make use of the : symbol, for example fastlane run hg_push parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/hg_push/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/hipchat/","text":"hipchat Send a error/success message to HipChat Send a message to room (by default) or a direct message to @username with success (green) or failure (red) status. hipchat Supported platforms ios, android, mac Author @jingx23 1 Example hipchat( message: \"App successfully released!\", message_format: \"html\", # or \"text\", defaults to \"html\" channel: \"Room or @username\", success: true ) Parameters Key Description Default message The message to post on HipChat '' channel The room or @username api_token Hipchat API Token custom_color Specify a custom color, this overrides the success boolean. Can be one of 'yellow', 'red', 'green', 'purple', 'gray', or 'random' success Was this build successful? (true/false) true version Version of the Hipchat API. Must be 1 or 2 notify_room Should the people in the room be notified? (true/false) false api_host The host of the HipChat-Server API api.hipchat.com message_format Format of the message to post. Must be either 'html' or 'text' html include_html_header Should html formatted messages include a preformatted header? (true/false) true from Name the message will appear to be sent from fastlane * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action hipchat CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hipchat To pass parameters, make use of the : symbol, for example fastlane run hipchat parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"hipchat"},{"location":"actions/hipchat/#hipchat","text":"Send a error/success message to HipChat Send a message to room (by default) or a direct message to @username with success (green) or failure (red) status. hipchat Supported platforms ios, android, mac Author @jingx23","title":"hipchat"},{"location":"actions/hipchat/#1-example","text":"hipchat( message: \"App successfully released!\", message_format: \"html\", # or \"text\", defaults to \"html\" channel: \"Room or @username\", success: true )","title":"1 Example"},{"location":"actions/hipchat/#parameters","text":"Key Description Default message The message to post on HipChat '' channel The room or @username api_token Hipchat API Token custom_color Specify a custom color, this overrides the success boolean. Can be one of 'yellow', 'red', 'green', 'purple', 'gray', or 'random' success Was this build successful? (true/false) true version Version of the Hipchat API. Must be 1 or 2 notify_room Should the people in the room be notified? (true/false) false api_host The host of the HipChat-Server API api.hipchat.com message_format Format of the message to post. Must be either 'html' or 'text' html include_html_header Should html formatted messages include a preformatted header? (true/false) true from Name the message will appear to be sent from fastlane * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/hipchat/#documentation","text":"To show the documentation in your terminal, run fastlane action hipchat","title":"Documentation"},{"location":"actions/hipchat/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hipchat To pass parameters, make use of the : symbol, for example fastlane run hipchat parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/hipchat/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/hockey/","text":"hockey Refer to App Center HockeyApp will be no longer supported and will be transitioned into App Center on November 16, 2019. Please migrate over to App Center HockeyApp will be no longer supported and will be transitioned into App Center on November 16, 2019. Please migrate over to App Center Symbols will also be uploaded automatically if a app.dSYM.zip file is found next to app.ipa . In case it is located in a different place you can specify the path explicitly in the :dsym parameter. More information about the available options can be found in the HockeyApp Docs . hockey Supported platforms ios, android, mac Author @KrauseFx, @modzelewski, @lacostej 3 Examples hockey( api_token: \"...\", ipa: \"./app.ipa\", notes: \"Changelog\" ) hockey( api_token: \"...\", create_update: true, public_identifier: \"....\", bundle_short_version: \"1.0.2\", bundle_version: \"1.0.2.145\", ipa: \"./my.msi\", notes: \"Changelog\" ) # You can bypass the CDN if you are uploading to Hockey and receive an SSL error (which can happen on corporate firewalls) hockey( api_token: \"...\", ipa: \"./app.ipa\", notes: \"Changelog\", bypass_cdn: true ) Parameters Key Description Default apk Path to your APK file * api_token API Token for Hockey Access ipa Path to your IPA file. Optional if you use the gym or xcodebuild action. For Mac zip the .app. For Android provide path to .apk file. In addition you could use this to upload .msi, .zip, .pkg, etc if you use the 'create_update' mechanism * dsym Path to your symbols file. For iOS and Mac provide path to app.dSYM.zip. For Android provide path to mappings.txt file * create_update Set true if you want to create then update your app as opposed to just upload it. You will need the 'public_identifier', 'bundle_version' and 'bundle_short_version' false notes Beta Notes * notify Notify testers? \"1\" for yes 1 status Download status: \"1\" = No user can download; \"2\" = Available for download (only possible with full-access token) 2 create_status Download status for initial version creation when create_update is true: \"1\" = No user can download; \"2\" = Available for download (only possible with full-access token) 2 notes_type Notes type for your :notes, \"0\" = Textile, \"1\" = Markdown (default) 1 release_type Release type of the app: \"0\" = Beta (default), \"1\" = Store, \"2\" = Alpha, \"3\" = Enterprise 0 mandatory Set to \"1\" to make this update mandatory 0 teams Comma separated list of team ID numbers to which this build will be restricted users Comma separated list of user ID numbers to which this build will be restricted tags Comma separated list of tags which will receive access to the build bundle_short_version The bundle_short_version of your application, required when using create_update bundle_version The bundle_version of your application, required when using create_update public_identifier App id of the app you are targeting, usually you won't need this value. Required, if upload_dsym_only set to true commit_sha The Git commit SHA for this build repository_url The URL of your source repository build_server_url The URL of the build job on your build server upload_dsym_only Flag to upload only the dSYM file to hockey app false owner_id ID for the owner of the app strategy Strategy: 'add' = to add the build as a new build even if it has the same build number (default); 'replace' = to replace a build with the same build number add timeout Request timeout in seconds bypass_cdn Flag to bypass Hockey CDN when it uploads successfully but reports error false dsa_signature DSA signature for sparkle updates for macOS '' * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The hockey action generates the following Lane Variables: SharedValue Description SharedValues::HOCKEY_DOWNLOAD_LINK The newly generated download link for this build SharedValues::HOCKEY_BUILD_INFORMATION contains all keys/values from the HockeyApp API, like :title, :bundle_identifier To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action hockey CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hockey To pass parameters, make use of the : symbol, for example fastlane run hockey parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"hockey"},{"location":"actions/hockey/#hockey","text":"Refer to App Center HockeyApp will be no longer supported and will be transitioned into App Center on November 16, 2019. Please migrate over to App Center HockeyApp will be no longer supported and will be transitioned into App Center on November 16, 2019. Please migrate over to App Center Symbols will also be uploaded automatically if a app.dSYM.zip file is found next to app.ipa . In case it is located in a different place you can specify the path explicitly in the :dsym parameter. More information about the available options can be found in the HockeyApp Docs . hockey Supported platforms ios, android, mac Author @KrauseFx, @modzelewski, @lacostej","title":"hockey"},{"location":"actions/hockey/#3-examples","text":"hockey( api_token: \"...\", ipa: \"./app.ipa\", notes: \"Changelog\" ) hockey( api_token: \"...\", create_update: true, public_identifier: \"....\", bundle_short_version: \"1.0.2\", bundle_version: \"1.0.2.145\", ipa: \"./my.msi\", notes: \"Changelog\" ) # You can bypass the CDN if you are uploading to Hockey and receive an SSL error (which can happen on corporate firewalls) hockey( api_token: \"...\", ipa: \"./app.ipa\", notes: \"Changelog\", bypass_cdn: true )","title":"3 Examples"},{"location":"actions/hockey/#parameters","text":"Key Description Default apk Path to your APK file * api_token API Token for Hockey Access ipa Path to your IPA file. Optional if you use the gym or xcodebuild action. For Mac zip the .app. For Android provide path to .apk file. In addition you could use this to upload .msi, .zip, .pkg, etc if you use the 'create_update' mechanism * dsym Path to your symbols file. For iOS and Mac provide path to app.dSYM.zip. For Android provide path to mappings.txt file * create_update Set true if you want to create then update your app as opposed to just upload it. You will need the 'public_identifier', 'bundle_version' and 'bundle_short_version' false notes Beta Notes * notify Notify testers? \"1\" for yes 1 status Download status: \"1\" = No user can download; \"2\" = Available for download (only possible with full-access token) 2 create_status Download status for initial version creation when create_update is true: \"1\" = No user can download; \"2\" = Available for download (only possible with full-access token) 2 notes_type Notes type for your :notes, \"0\" = Textile, \"1\" = Markdown (default) 1 release_type Release type of the app: \"0\" = Beta (default), \"1\" = Store, \"2\" = Alpha, \"3\" = Enterprise 0 mandatory Set to \"1\" to make this update mandatory 0 teams Comma separated list of team ID numbers to which this build will be restricted users Comma separated list of user ID numbers to which this build will be restricted tags Comma separated list of tags which will receive access to the build bundle_short_version The bundle_short_version of your application, required when using create_update bundle_version The bundle_version of your application, required when using create_update public_identifier App id of the app you are targeting, usually you won't need this value. Required, if upload_dsym_only set to true commit_sha The Git commit SHA for this build repository_url The URL of your source repository build_server_url The URL of the build job on your build server upload_dsym_only Flag to upload only the dSYM file to hockey app false owner_id ID for the owner of the app strategy Strategy: 'add' = to add the build as a new build even if it has the same build number (default); 'replace' = to replace a build with the same build number add timeout Request timeout in seconds bypass_cdn Flag to bypass Hockey CDN when it uploads successfully but reports error false dsa_signature DSA signature for sparkle updates for macOS '' * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/hockey/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The hockey action generates the following Lane Variables: SharedValue Description SharedValues::HOCKEY_DOWNLOAD_LINK The newly generated download link for this build SharedValues::HOCKEY_BUILD_INFORMATION contains all keys/values from the HockeyApp API, like :title, :bundle_identifier To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/hockey/#documentation","text":"To show the documentation in your terminal, run fastlane action hockey","title":"Documentation"},{"location":"actions/hockey/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hockey To pass parameters, make use of the : symbol, for example fastlane run hockey parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/hockey/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/ifttt/","text":"ifttt Connect to the IFTTT Maker Channel Connect to the IFTTT Maker Channel . An IFTTT Recipe has two components: a Trigger and an Action. In this case, the Trigger will fire every time the Maker Channel receives a web request (made by this fastlane action) to notify it of an event. The Action can be anything that IFTTT supports: email, SMS, etc. ifttt Supported platforms ios, android, mac Author @vpolouchkine 1 Example ifttt( api_key: \"...\", event_name: \"...\", value1: \"foo\", value2: \"bar\", value3: \"baz\" ) Parameters Key Description Default api_key API key event_name The name of the event that will be triggered value1 Extra data sent with the event value2 Extra data sent with the event value3 Extra data sent with the event * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action ifttt CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ifttt To pass parameters, make use of the : symbol, for example fastlane run ifttt parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"ifttt"},{"location":"actions/ifttt/#ifttt","text":"Connect to the IFTTT Maker Channel Connect to the IFTTT Maker Channel . An IFTTT Recipe has two components: a Trigger and an Action. In this case, the Trigger will fire every time the Maker Channel receives a web request (made by this fastlane action) to notify it of an event. The Action can be anything that IFTTT supports: email, SMS, etc. ifttt Supported platforms ios, android, mac Author @vpolouchkine","title":"ifttt"},{"location":"actions/ifttt/#1-example","text":"ifttt( api_key: \"...\", event_name: \"...\", value1: \"foo\", value2: \"bar\", value3: \"baz\" )","title":"1 Example"},{"location":"actions/ifttt/#parameters","text":"Key Description Default api_key API key event_name The name of the event that will be triggered value1 Extra data sent with the event value2 Extra data sent with the event value3 Extra data sent with the event * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/ifttt/#documentation","text":"To show the documentation in your terminal, run fastlane action ifttt","title":"Documentation"},{"location":"actions/ifttt/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ifttt To pass parameters, make use of the : symbol, for example fastlane run ifttt parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/ifttt/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/import/","text":"import Import another Fastfile to use its lanes 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 Supported platforms ios, android, mac Author @KrauseFx 1 Example import(\"./path/to/other/Fastfile\") Documentation To show the documentation in your terminal, run fastlane action import CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run import To pass parameters, make use of the : symbol, for example fastlane run import parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"import"},{"location":"actions/import/#import","text":"Import another Fastfile to use its lanes 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 Supported platforms ios, android, mac Author @KrauseFx","title":"import"},{"location":"actions/import/#1-example","text":"import(\"./path/to/other/Fastfile\")","title":"1 Example"},{"location":"actions/import/#documentation","text":"To show the documentation in your terminal, run fastlane action import","title":"Documentation"},{"location":"actions/import/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run import To pass parameters, make use of the : symbol, for example fastlane run import parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/import/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/import_certificate/","text":"import_certificate Import certificate from inputfile into a keychain Import certificates (and private keys) into the current default keychain. Use the create_keychain action to create a new keychain. import_certificate Supported platforms ios, android, mac Author @gin0606 3 Examples import_certificate(certificate_path: \"certs/AppleWWDRCA6.cer\") import_certificate( certificate_path: \"certs/dist.p12\", certificate_password: ENV[\"CERTIFICATE_PASSWORD\"] || \"default\" ) import_certificate( certificate_path: \"certs/development.cer\" ) Parameters Key Description Default certificate_path Path to certificate certificate_password Certificate password '' keychain_name Keychain the items should be imported to keychain_path Path to the Keychain file to which the items should be imported keychain_password The password for the keychain. Note that for the login keychain this is your user's password log_output If output should be logged to the console false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action import_certificate CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run import_certificate To pass parameters, make use of the : symbol, for example fastlane run import_certificate parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"import_certificate"},{"location":"actions/import_certificate/#import_certificate","text":"Import certificate from inputfile into a keychain Import certificates (and private keys) into the current default keychain. Use the create_keychain action to create a new keychain. import_certificate Supported platforms ios, android, mac Author @gin0606","title":"import_certificate"},{"location":"actions/import_certificate/#3-examples","text":"import_certificate(certificate_path: \"certs/AppleWWDRCA6.cer\") import_certificate( certificate_path: \"certs/dist.p12\", certificate_password: ENV[\"CERTIFICATE_PASSWORD\"] || \"default\" ) import_certificate( certificate_path: \"certs/development.cer\" )","title":"3 Examples"},{"location":"actions/import_certificate/#parameters","text":"Key Description Default certificate_path Path to certificate certificate_password Certificate password '' keychain_name Keychain the items should be imported to keychain_path Path to the Keychain file to which the items should be imported keychain_password The password for the keychain. Note that for the login keychain this is your user's password log_output If output should be logged to the console false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/import_certificate/#documentation","text":"To show the documentation in your terminal, run fastlane action import_certificate","title":"Documentation"},{"location":"actions/import_certificate/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run import_certificate To pass parameters, make use of the : symbol, for example fastlane run import_certificate parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/import_certificate/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/import_from_git/","text":"import_from_git Import another Fastfile from a remote git repository to use its lanes This is useful if you have shared lanes across multiple apps and you want to store the Fastfile in a remote git repository. import_from_git Supported platforms ios, android, mac Author @fabiomassimo, @KrauseFx, @Liquidsoul 2 Examples import_from_git( url: \"git@github.com:fastlane/fastlane.git\", # The URL of the repository to import the Fastfile from. branch: \"HEAD\", # The branch to checkout on the repository. path: \"fastlane/Fastfile\", # The path of the Fastfile in the repository. version: \"~> 1.0.0\" # The version to checkout on the repository. Optimistic match operator can be used to select the latest version within constraints. ) import_from_git( url: \"git@github.com:fastlane/fastlane.git\", # The URL of the repository to import the Fastfile from. branch: \"HEAD\", # The branch to checkout on the repository. path: \"fastlane/Fastfile\", # The path of the Fastfile in the repository. version: [\">= 1.1.0\", \"< 2.0.0\"], # The version to checkout on the repository. Multiple conditions can be used to select the latest version within constraints. cache_path: \"~/.cache/fastlane/imported\" # A directory in which the repository will be added, which means that it will not be cloned again on subsequent calls. ) Parameters Key Description Default url The URL of the repository to import the Fastfile from branch The branch or tag to check-out on the repository HEAD dependencies The array of additional Fastfiles in the repository [] path The path of the Fastfile in the repository fastlane/Fastfile version The version to checkout on the repository. Optimistic match operator or multiple conditions can be used to select the latest version within constraints cache_path The path to a directory where the repository should be cloned into. Defaults to nil , which causes the repository to be cloned on every call, to a temporary directory * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action import_from_git CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run import_from_git To pass parameters, make use of the : symbol, for example fastlane run import_from_git parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"import_from_git"},{"location":"actions/import_from_git/#import_from_git","text":"Import another Fastfile from a remote git repository to use its lanes This is useful if you have shared lanes across multiple apps and you want to store the Fastfile in a remote git repository. import_from_git Supported platforms ios, android, mac Author @fabiomassimo, @KrauseFx, @Liquidsoul","title":"import_from_git"},{"location":"actions/import_from_git/#2-examples","text":"import_from_git( url: \"git@github.com:fastlane/fastlane.git\", # The URL of the repository to import the Fastfile from. branch: \"HEAD\", # The branch to checkout on the repository. path: \"fastlane/Fastfile\", # The path of the Fastfile in the repository. version: \"~> 1.0.0\" # The version to checkout on the repository. Optimistic match operator can be used to select the latest version within constraints. ) import_from_git( url: \"git@github.com:fastlane/fastlane.git\", # The URL of the repository to import the Fastfile from. branch: \"HEAD\", # The branch to checkout on the repository. path: \"fastlane/Fastfile\", # The path of the Fastfile in the repository. version: [\">= 1.1.0\", \"< 2.0.0\"], # The version to checkout on the repository. Multiple conditions can be used to select the latest version within constraints. cache_path: \"~/.cache/fastlane/imported\" # A directory in which the repository will be added, which means that it will not be cloned again on subsequent calls. )","title":"2 Examples"},{"location":"actions/import_from_git/#parameters","text":"Key Description Default url The URL of the repository to import the Fastfile from branch The branch or tag to check-out on the repository HEAD dependencies The array of additional Fastfiles in the repository [] path The path of the Fastfile in the repository fastlane/Fastfile version The version to checkout on the repository. Optimistic match operator or multiple conditions can be used to select the latest version within constraints cache_path The path to a directory where the repository should be cloned into. Defaults to nil , which causes the repository to be cloned on every call, to a temporary directory * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/import_from_git/#documentation","text":"To show the documentation in your terminal, run fastlane action import_from_git","title":"Documentation"},{"location":"actions/import_from_git/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run import_from_git To pass parameters, make use of the : symbol, for example fastlane run import_from_git parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/import_from_git/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/increment_build_number/","text":"increment_build_number Increment the build number of your project increment_build_number Supported platforms ios, mac Author @KrauseFx Returns The new build number 4 Examples increment_build_number # automatically increment by one increment_build_number( build_number: \"75\" # set a specific number ) increment_build_number( build_number: 75, # specify specific build number (optional, omitting it increments by one) xcodeproj: \"./path/to/MyApp.xcodeproj\" # (optional, you must specify the path to your main Xcode project if it is not in the project root directory) ) build_number = increment_build_number Parameters Key Description Default build_number Change to a specific version. When you provide this parameter, Apple Generic Versioning does not have to be enabled skip_info_plist Don't update Info.plist files when updating the build version false xcodeproj optional, you must specify the path to your main Xcode project if it is not in the project root directory * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The increment_build_number action generates the following Lane Variables: SharedValue Description SharedValues::BUILD_NUMBER The new build number To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action increment_build_number CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run increment_build_number To pass parameters, make use of the : symbol, for example fastlane run increment_build_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"increment_build_number"},{"location":"actions/increment_build_number/#increment_build_number","text":"Increment the build number of your project increment_build_number Supported platforms ios, mac Author @KrauseFx Returns The new build number","title":"increment_build_number"},{"location":"actions/increment_build_number/#4-examples","text":"increment_build_number # automatically increment by one increment_build_number( build_number: \"75\" # set a specific number ) increment_build_number( build_number: 75, # specify specific build number (optional, omitting it increments by one) xcodeproj: \"./path/to/MyApp.xcodeproj\" # (optional, you must specify the path to your main Xcode project if it is not in the project root directory) ) build_number = increment_build_number","title":"4 Examples"},{"location":"actions/increment_build_number/#parameters","text":"Key Description Default build_number Change to a specific version. When you provide this parameter, Apple Generic Versioning does not have to be enabled skip_info_plist Don't update Info.plist files when updating the build version false xcodeproj optional, you must specify the path to your main Xcode project if it is not in the project root directory * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/increment_build_number/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The increment_build_number action generates the following Lane Variables: SharedValue Description SharedValues::BUILD_NUMBER The new build number To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/increment_build_number/#documentation","text":"To show the documentation in your terminal, run fastlane action increment_build_number","title":"Documentation"},{"location":"actions/increment_build_number/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run increment_build_number To pass parameters, make use of the : symbol, for example fastlane run increment_build_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/increment_build_number/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/increment_version_number/","text":"increment_version_number Increment the version number of your project This action will increment the version number. You first have to set up your Xcode project, if you haven't done it already: https://developer.apple.com/library/ios/qa/qa1827/_index.html . increment_version_number Supported platforms ios, mac Author @serluca Returns The new version number 7 Examples increment_version_number # Automatically increment version number increment_version_number( bump_type: \"patch\" # Automatically increment patch version number ) increment_version_number( bump_type: \"minor\" # Automatically increment minor version number ) increment_version_number( bump_type: \"major\" # Automatically increment major version number ) increment_version_number( version_number: \"2.1.1\" # Set a specific version number ) increment_version_number( version_number: \"2.1.1\", # specify specific version number (optional, omitting it increments patch version number) xcodeproj: \"./path/to/MyApp.xcodeproj\" # (optional, you must specify the path to your main Xcode project if it is not in the project root directory) ) version = increment_version_number Parameters Key Description Default bump_type The type of this version bump. Available: patch, minor, major bump version_number Change to a specific version. This will replace the bump type value xcodeproj optional, you must specify the path to your main Xcode project if it is not in the project root directory * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The increment_version_number action generates the following Lane Variables: SharedValue Description SharedValues::VERSION_NUMBER The new version number To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action increment_version_number CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run increment_version_number To pass parameters, make use of the : symbol, for example fastlane run increment_version_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"increment_version_number"},{"location":"actions/increment_version_number/#increment_version_number","text":"Increment the version number of your project This action will increment the version number. You first have to set up your Xcode project, if you haven't done it already: https://developer.apple.com/library/ios/qa/qa1827/_index.html . increment_version_number Supported platforms ios, mac Author @serluca Returns The new version number","title":"increment_version_number"},{"location":"actions/increment_version_number/#7-examples","text":"increment_version_number # Automatically increment version number increment_version_number( bump_type: \"patch\" # Automatically increment patch version number ) increment_version_number( bump_type: \"minor\" # Automatically increment minor version number ) increment_version_number( bump_type: \"major\" # Automatically increment major version number ) increment_version_number( version_number: \"2.1.1\" # Set a specific version number ) increment_version_number( version_number: \"2.1.1\", # specify specific version number (optional, omitting it increments patch version number) xcodeproj: \"./path/to/MyApp.xcodeproj\" # (optional, you must specify the path to your main Xcode project if it is not in the project root directory) ) version = increment_version_number","title":"7 Examples"},{"location":"actions/increment_version_number/#parameters","text":"Key Description Default bump_type The type of this version bump. Available: patch, minor, major bump version_number Change to a specific version. This will replace the bump type value xcodeproj optional, you must specify the path to your main Xcode project if it is not in the project root directory * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/increment_version_number/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The increment_version_number action generates the following Lane Variables: SharedValue Description SharedValues::VERSION_NUMBER The new version number To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/increment_version_number/#documentation","text":"To show the documentation in your terminal, run fastlane action increment_version_number","title":"Documentation"},{"location":"actions/increment_version_number/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run increment_version_number To pass parameters, make use of the : symbol, for example fastlane run increment_version_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/increment_version_number/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/install_on_device/","text":"install_on_device Installs an .ipa file on a connected iOS-device via usb or wifi Installs the ipa on the device. If no id is given, the first found iOS device will be used. Works via USB or Wi-Fi. This requires ios-deploy to be installed. Please have a look at ios-deploy . To quickly install it, use npm -g i ios-deploy install_on_device Supported platforms ios Author @hjanuschka 1 Example install_on_device( device_id: \"a3be6c9ff7e5c3c6028597513243b0f933b876d4\", ipa: \"./app.ipa\" ) Parameters Key Description Default extra Extra Commandline arguments passed to ios-deploy device_id id of the device / if not set defaults to first found device skip_wifi Do not search for devices via WiFi ipa The IPA file to put on the device * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action install_on_device CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run install_on_device To pass parameters, make use of the : symbol, for example fastlane run install_on_device parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"install_on_device"},{"location":"actions/install_on_device/#install_on_device","text":"Installs an .ipa file on a connected iOS-device via usb or wifi Installs the ipa on the device. If no id is given, the first found iOS device will be used. Works via USB or Wi-Fi. This requires ios-deploy to be installed. Please have a look at ios-deploy . To quickly install it, use npm -g i ios-deploy install_on_device Supported platforms ios Author @hjanuschka","title":"install_on_device"},{"location":"actions/install_on_device/#1-example","text":"install_on_device( device_id: \"a3be6c9ff7e5c3c6028597513243b0f933b876d4\", ipa: \"./app.ipa\" )","title":"1 Example"},{"location":"actions/install_on_device/#parameters","text":"Key Description Default extra Extra Commandline arguments passed to ios-deploy device_id id of the device / if not set defaults to first found device skip_wifi Do not search for devices via WiFi ipa The IPA file to put on the device * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/install_on_device/#documentation","text":"To show the documentation in your terminal, run fastlane action install_on_device","title":"Documentation"},{"location":"actions/install_on_device/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run install_on_device To pass parameters, make use of the : symbol, for example fastlane run install_on_device parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/install_on_device/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/install_provisioning_profile/","text":"install_provisioning_profile Install provisioning profile from path Install provisioning profile from path for current user install_provisioning_profile Supported platforms ios, mac Author @SofteqDG Returns The absolute path to the installed provisioning profile 1 Example install_provisioning_profile(path: \"profiles/profile.mobileprovision\") Parameters Key Description Default path Path to provisioning profile * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action install_provisioning_profile CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run install_provisioning_profile To pass parameters, make use of the : symbol, for example fastlane run install_provisioning_profile parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"install_provisioning_profile"},{"location":"actions/install_provisioning_profile/#install_provisioning_profile","text":"Install provisioning profile from path Install provisioning profile from path for current user install_provisioning_profile Supported platforms ios, mac Author @SofteqDG Returns The absolute path to the installed provisioning profile","title":"install_provisioning_profile"},{"location":"actions/install_provisioning_profile/#1-example","text":"install_provisioning_profile(path: \"profiles/profile.mobileprovision\")","title":"1 Example"},{"location":"actions/install_provisioning_profile/#parameters","text":"Key Description Default path Path to provisioning profile * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/install_provisioning_profile/#documentation","text":"To show the documentation in your terminal, run fastlane action install_provisioning_profile","title":"Documentation"},{"location":"actions/install_provisioning_profile/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run install_provisioning_profile To pass parameters, make use of the : symbol, for example fastlane run install_provisioning_profile parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/install_provisioning_profile/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/install_xcode_plugin/","text":"install_xcode_plugin Install an Xcode plugin for the current user install_xcode_plugin Supported platforms ios, mac Author @NeoNachoSoto, @tommeier 2 Examples install_xcode_plugin(url: \"https://example.com/clubmate/plugin.zip\") install_xcode_plugin(github: \"https://github.com/contentful/ContentfulXcodePlugin\") Parameters Key Description Default url URL for Xcode plugin ZIP file github GitHub repository URL for Xcode plugin * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action install_xcode_plugin CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run install_xcode_plugin To pass parameters, make use of the : symbol, for example fastlane run install_xcode_plugin parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"install_xcode_plugin"},{"location":"actions/install_xcode_plugin/#install_xcode_plugin","text":"Install an Xcode plugin for the current user install_xcode_plugin Supported platforms ios, mac Author @NeoNachoSoto, @tommeier","title":"install_xcode_plugin"},{"location":"actions/install_xcode_plugin/#2-examples","text":"install_xcode_plugin(url: \"https://example.com/clubmate/plugin.zip\") install_xcode_plugin(github: \"https://github.com/contentful/ContentfulXcodePlugin\")","title":"2 Examples"},{"location":"actions/install_xcode_plugin/#parameters","text":"Key Description Default url URL for Xcode plugin ZIP file github GitHub repository URL for Xcode plugin * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/install_xcode_plugin/#documentation","text":"To show the documentation in your terminal, run fastlane action install_xcode_plugin","title":"Documentation"},{"location":"actions/install_xcode_plugin/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run install_xcode_plugin To pass parameters, make use of the : symbol, for example fastlane run install_xcode_plugin parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/install_xcode_plugin/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/installr/","text":"installr Upload a new build to Installr installr Supported platforms ios Author @scottrhoyt 1 Example installr( api_token: \"...\", ipa: \"test.ipa\", notes: \"The next great version of the app!\", notify: \"dev,qa\", add: \"exec,ops\" ) Parameters Key Description Default api_token API Token for Installr Access ipa Path to your IPA file. Optional if you use the gym or xcodebuild action * notes Release notes notify Groups to notify (e.g. 'dev,qa') add Groups to add (e.g. 'exec,ops') * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The installr action generates the following Lane Variables: SharedValue Description SharedValues::INSTALLR_BUILD_INFORMATION Contains release info like :appData. See http://help.installrapp.com/api/ To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action installr CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run installr To pass parameters, make use of the : symbol, for example fastlane run installr parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"installr"},{"location":"actions/installr/#installr","text":"Upload a new build to Installr installr Supported platforms ios Author @scottrhoyt","title":"installr"},{"location":"actions/installr/#1-example","text":"installr( api_token: \"...\", ipa: \"test.ipa\", notes: \"The next great version of the app!\", notify: \"dev,qa\", add: \"exec,ops\" )","title":"1 Example"},{"location":"actions/installr/#parameters","text":"Key Description Default api_token API Token for Installr Access ipa Path to your IPA file. Optional if you use the gym or xcodebuild action * notes Release notes notify Groups to notify (e.g. 'dev,qa') add Groups to add (e.g. 'exec,ops') * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/installr/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The installr action generates the following Lane Variables: SharedValue Description SharedValues::INSTALLR_BUILD_INFORMATION Contains release info like :appData. See http://help.installrapp.com/api/ To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/installr/#documentation","text":"To show the documentation in your terminal, run fastlane action installr","title":"Documentation"},{"location":"actions/installr/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run installr To pass parameters, make use of the : symbol, for example fastlane run installr parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/installr/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/ipa/","text":"ipa Easily build and sign your app using shenzhen You are using legacy shenzhen to build your app, which will be removed soon! It is recommended to upgrade to gym . To do so, just replace ipa(...) with gym(...) in your Fastfile. To make code signing work, follow https://docs.fastlane.tools/codesigning/xcode-project/ . ipa Supported platforms ios Author @joshdholtz 1 Example ipa( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", # (optionals) clean: true, # This means \"Do Clean\". Cleans project before building (the default if not specified). destination: \"path/to/dir\", # Destination directory. Defaults to current directory. ipa: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) xcargs: \"MY_ADHOC=0\", # pass additional arguments to xcodebuild when building the app. embed: \"my.mobileprovision\", # Sign .ipa file with .mobileprovision identity: \"MyIdentity\",# Identity to be used along with --embed sdk: \"10.0\", # use SDK as the name or path of the base SDK when building the project. archive: true# this means \"Do Archive\". Archive project after building (the default if not specified). ) Parameters Key Description Default workspace WORKSPACE Workspace (.xcworkspace) file to use to build app (automatically detected in current directory) project Project (.xcodeproj) file to use to build app (automatically detected in current directory, overridden by --workspace option, if passed) configuration Configuration used to build scheme Scheme used to build app clean Clean project before building archive Archive project after building destination Build destination. Defaults to current directory * embed Sign .ipa file with .mobileprovision identity Identity to be used along with --embed sdk Use SDK as the name or path of the base SDK when building the project ipa Specify the name of the .ipa file to generate (including file extension) xcconfig Use an extra XCCONFIG file to build the app xcargs Pass additional arguments to xcodebuild when building the app. Be sure to quote multiple args * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The ipa action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::DSYM_OUTPUT_PATH The path to the dsym file To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action ipa CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ipa To pass parameters, make use of the : symbol, for example fastlane run ipa parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"ipa"},{"location":"actions/ipa/#ipa","text":"Easily build and sign your app using shenzhen You are using legacy shenzhen to build your app, which will be removed soon! It is recommended to upgrade to gym . To do so, just replace ipa(...) with gym(...) in your Fastfile. To make code signing work, follow https://docs.fastlane.tools/codesigning/xcode-project/ . ipa Supported platforms ios Author @joshdholtz","title":"ipa"},{"location":"actions/ipa/#1-example","text":"ipa( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", # (optionals) clean: true, # This means \"Do Clean\". Cleans project before building (the default if not specified). destination: \"path/to/dir\", # Destination directory. Defaults to current directory. ipa: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) xcargs: \"MY_ADHOC=0\", # pass additional arguments to xcodebuild when building the app. embed: \"my.mobileprovision\", # Sign .ipa file with .mobileprovision identity: \"MyIdentity\",# Identity to be used along with --embed sdk: \"10.0\", # use SDK as the name or path of the base SDK when building the project. archive: true# this means \"Do Archive\". Archive project after building (the default if not specified). )","title":"1 Example"},{"location":"actions/ipa/#parameters","text":"Key Description Default workspace WORKSPACE Workspace (.xcworkspace) file to use to build app (automatically detected in current directory) project Project (.xcodeproj) file to use to build app (automatically detected in current directory, overridden by --workspace option, if passed) configuration Configuration used to build scheme Scheme used to build app clean Clean project before building archive Archive project after building destination Build destination. Defaults to current directory * embed Sign .ipa file with .mobileprovision identity Identity to be used along with --embed sdk Use SDK as the name or path of the base SDK when building the project ipa Specify the name of the .ipa file to generate (including file extension) xcconfig Use an extra XCCONFIG file to build the app xcargs Pass additional arguments to xcodebuild when building the app. Be sure to quote multiple args * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/ipa/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The ipa action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::DSYM_OUTPUT_PATH The path to the dsym file To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/ipa/#documentation","text":"To show the documentation in your terminal, run fastlane action ipa","title":"Documentation"},{"location":"actions/ipa/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ipa To pass parameters, make use of the : symbol, for example fastlane run ipa parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/ipa/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/is_ci/","text":"is_ci Is the current run being executed on a CI system, like Jenkins or Travis The return value of this method is true if fastlane is currently executed on Travis, Jenkins, Circle or a similar CI service is_ci Supported platforms ios, android, mac Author @KrauseFx 1 Example if is_ci puts \"I'm a computer\" else say \"Hi Human!\" end Documentation To show the documentation in your terminal, run fastlane action is_ci CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run is_ci To pass parameters, make use of the : symbol, for example fastlane run is_ci parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"is_ci"},{"location":"actions/is_ci/#is_ci","text":"Is the current run being executed on a CI system, like Jenkins or Travis The return value of this method is true if fastlane is currently executed on Travis, Jenkins, Circle or a similar CI service is_ci Supported platforms ios, android, mac Author @KrauseFx","title":"is_ci"},{"location":"actions/is_ci/#1-example","text":"if is_ci puts \"I'm a computer\" else say \"Hi Human!\" end","title":"1 Example"},{"location":"actions/is_ci/#documentation","text":"To show the documentation in your terminal, run fastlane action is_ci","title":"Documentation"},{"location":"actions/is_ci/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run is_ci To pass parameters, make use of the : symbol, for example fastlane run is_ci parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/is_ci/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/jazzy/","text":"jazzy Generate docs using Jazzy jazzy Supported platforms ios, mac Author @KrauseFx 2 Examples jazzy jazzy(config: \".jazzy.yaml\", module_version: \"2.1.37\") Parameters Key Description Default config Path to jazzy config file module_version Version string to use as part of the the default docs title and inside the docset * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action jazzy CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run jazzy To pass parameters, make use of the : symbol, for example fastlane run jazzy parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"jazzy"},{"location":"actions/jazzy/#jazzy","text":"Generate docs using Jazzy jazzy Supported platforms ios, mac Author @KrauseFx","title":"jazzy"},{"location":"actions/jazzy/#2-examples","text":"jazzy jazzy(config: \".jazzy.yaml\", module_version: \"2.1.37\")","title":"2 Examples"},{"location":"actions/jazzy/#parameters","text":"Key Description Default config Path to jazzy config file module_version Version string to use as part of the the default docs title and inside the docset * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/jazzy/#documentation","text":"To show the documentation in your terminal, run fastlane action jazzy","title":"Documentation"},{"location":"actions/jazzy/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run jazzy To pass parameters, make use of the : symbol, for example fastlane run jazzy parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/jazzy/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/jira/","text":"jira Leave a comment on a Jira ticket jira Supported platforms ios, android, mac Author @iAmChrisTruman, @crazymanish Returns A hash containing all relevant information of the Jira comment Access Jira comment 'id', 'author', 'body', and more 3 Examples jira( url: \"https://bugs.yourdomain.com\", username: \"Your username\", password: \"Your password or API token\", ticket_id: \"IOS-123\", comment_text: \"Text to post as a comment\" ) jira( url: \"https://yourserverdomain.com\", context_path: \"/jira\", username: \"Your username\", password: \"Your password or API token\", ticket_id: \"IOS-123\", comment_text: \"Text to post as a comment\" ) jira( ticket_id: \"IOS-123\", comment_text: \"Text to post as a comment\", fail_on_error: false ) Parameters Key Description Default url URL for Jira instance context_path Appends to the url (ex: \"/jira\") '' username Username for Jira instance password Password or API token for Jira ticket_id Ticket ID for Jira, i.e. IOS-123 comment_text Text to add to the ticket as a comment fail_on_error Should an error adding the Jira comment cause a failure? true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The jira action generates the following Lane Variables: SharedValue Description SharedValues::JIRA_JSON The whole Jira API JSON object To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action jira CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run jira To pass parameters, make use of the : symbol, for example fastlane run jira parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"jira"},{"location":"actions/jira/#jira","text":"Leave a comment on a Jira ticket jira Supported platforms ios, android, mac Author @iAmChrisTruman, @crazymanish Returns A hash containing all relevant information of the Jira comment Access Jira comment 'id', 'author', 'body', and more","title":"jira"},{"location":"actions/jira/#3-examples","text":"jira( url: \"https://bugs.yourdomain.com\", username: \"Your username\", password: \"Your password or API token\", ticket_id: \"IOS-123\", comment_text: \"Text to post as a comment\" ) jira( url: \"https://yourserverdomain.com\", context_path: \"/jira\", username: \"Your username\", password: \"Your password or API token\", ticket_id: \"IOS-123\", comment_text: \"Text to post as a comment\" ) jira( ticket_id: \"IOS-123\", comment_text: \"Text to post as a comment\", fail_on_error: false )","title":"3 Examples"},{"location":"actions/jira/#parameters","text":"Key Description Default url URL for Jira instance context_path Appends to the url (ex: \"/jira\") '' username Username for Jira instance password Password or API token for Jira ticket_id Ticket ID for Jira, i.e. IOS-123 comment_text Text to add to the ticket as a comment fail_on_error Should an error adding the Jira comment cause a failure? true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/jira/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The jira action generates the following Lane Variables: SharedValue Description SharedValues::JIRA_JSON The whole Jira API JSON object To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/jira/#documentation","text":"To show the documentation in your terminal, run fastlane action jira","title":"Documentation"},{"location":"actions/jira/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run jira To pass parameters, make use of the : symbol, for example fastlane run jira parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/jira/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/lane_context/","text":"lane_context Access lane context values Access the fastlane lane context values. More information about how the lane context works: https://docs.fastlane.tools/advanced/#lane-context . lane_context Supported platforms ios, android, mac Author @KrauseFx 2 Examples lane_context[SharedValues::BUILD_NUMBER] lane_context[SharedValues::IPA_OUTPUT_PATH] Documentation To show the documentation in your terminal, run fastlane action lane_context CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run lane_context To pass parameters, make use of the : symbol, for example fastlane run lane_context parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"lane_context"},{"location":"actions/lane_context/#lane_context","text":"Access lane context values Access the fastlane lane context values. More information about how the lane context works: https://docs.fastlane.tools/advanced/#lane-context . lane_context Supported platforms ios, android, mac Author @KrauseFx","title":"lane_context"},{"location":"actions/lane_context/#2-examples","text":"lane_context[SharedValues::BUILD_NUMBER] lane_context[SharedValues::IPA_OUTPUT_PATH]","title":"2 Examples"},{"location":"actions/lane_context/#documentation","text":"To show the documentation in your terminal, run fastlane action lane_context","title":"Documentation"},{"location":"actions/lane_context/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run lane_context To pass parameters, make use of the : symbol, for example fastlane run lane_context parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/lane_context/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/last_git_commit/","text":"last_git_commit Return last git commit hash, abbreviated commit hash, commit message and author last_git_commit Supported platforms ios, android, mac Author @ngutman Returns Returns the following dict: 1 Example commit = last_git_commit pilot(changelog: commit[:message]) # message of commit author = commit[:author] # author of the commit author_email = commit[:author_email] # email of the author of the commit hash = commit[:commit_hash] # long sha of commit short_hash = commit[:abbreviated_commit_hash] # short sha of commit Documentation To show the documentation in your terminal, run fastlane action last_git_commit CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run last_git_commit To pass parameters, make use of the : symbol, for example fastlane run last_git_commit parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"last_git_commit"},{"location":"actions/last_git_commit/#last_git_commit","text":"Return last git commit hash, abbreviated commit hash, commit message and author last_git_commit Supported platforms ios, android, mac Author @ngutman Returns Returns the following dict:","title":"last_git_commit"},{"location":"actions/last_git_commit/#1-example","text":"commit = last_git_commit pilot(changelog: commit[:message]) # message of commit author = commit[:author] # author of the commit author_email = commit[:author_email] # email of the author of the commit hash = commit[:commit_hash] # long sha of commit short_hash = commit[:abbreviated_commit_hash] # short sha of commit","title":"1 Example"},{"location":"actions/last_git_commit/#documentation","text":"To show the documentation in your terminal, run fastlane action last_git_commit","title":"Documentation"},{"location":"actions/last_git_commit/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run last_git_commit To pass parameters, make use of the : symbol, for example fastlane run last_git_commit parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/last_git_commit/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/last_git_tag/","text":"last_git_tag Get the most recent git tag If you are using this action on a shallow clone , the default with some CI systems like Bamboo , you need to ensure that you have also pulled all the git tags appropriately. Assuming your git repo has the correct remote set you can issue sh('git fetch --tags') . Pattern parameter allows you to filter to a subset of tags. last_git_tag Supported platforms ios, android, mac Author @KrauseFx, @wedkarz 2 Examples last_git_tag last_git_tag(pattern: \"release/v1.0/\") Parameters Key Description Default pattern Pattern to filter tags when looking for last one. Limit tags to ones matching given shell glob. If pattern lacks ?, *, or [, * at the end is implied * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action last_git_tag CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run last_git_tag To pass parameters, make use of the : symbol, for example fastlane run last_git_tag parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"last_git_tag"},{"location":"actions/last_git_tag/#last_git_tag","text":"Get the most recent git tag If you are using this action on a shallow clone , the default with some CI systems like Bamboo , you need to ensure that you have also pulled all the git tags appropriately. Assuming your git repo has the correct remote set you can issue sh('git fetch --tags') . Pattern parameter allows you to filter to a subset of tags. last_git_tag Supported platforms ios, android, mac Author @KrauseFx, @wedkarz","title":"last_git_tag"},{"location":"actions/last_git_tag/#2-examples","text":"last_git_tag last_git_tag(pattern: \"release/v1.0/\")","title":"2 Examples"},{"location":"actions/last_git_tag/#parameters","text":"Key Description Default pattern Pattern to filter tags when looking for last one. Limit tags to ones matching given shell glob. If pattern lacks ?, *, or [, * at the end is implied * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/last_git_tag/#documentation","text":"To show the documentation in your terminal, run fastlane action last_git_tag","title":"Documentation"},{"location":"actions/last_git_tag/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run last_git_tag To pass parameters, make use of the : symbol, for example fastlane run last_git_tag parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/last_git_tag/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/latest_testflight_build_number/","text":"latest_testflight_build_number Fetches most recent build number from TestFlight Provides a way to have increment_build_number be based on the latest build you uploaded to iTC. Fetches the most recent build number from TestFlight based on the version number. Provides a way to have increment_build_number be based on the latest build you uploaded to iTC. latest_testflight_build_number Supported platforms ios, mac Author @daveanderson Returns Integer representation of the latest build number uploaded to TestFlight 2 Examples latest_testflight_build_number(version: \"1.3\") increment_build_number({ build_number: latest_testflight_build_number + 1 }) Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) live Query the live version (ready-for-sale) false app_identifier The bundle identifier of your app * username Your Apple ID Username * version The version number whose latest build number we want platform The platform to use (optional) ios initial_build_number sets the build number to given value if no build is in current train 1 team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The latest_testflight_build_number action generates the following Lane Variables: SharedValue Description SharedValues::LATEST_TESTFLIGHT_BUILD_NUMBER The latest build number of the latest version of the app uploaded to TestFlight SharedValues::LATEST_TESTFLIGHT_VERSION The version of the latest build number To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action latest_testflight_build_number CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run latest_testflight_build_number To pass parameters, make use of the : symbol, for example fastlane run latest_testflight_build_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"latest_testflight_build_number"},{"location":"actions/latest_testflight_build_number/#latest_testflight_build_number","text":"Fetches most recent build number from TestFlight Provides a way to have increment_build_number be based on the latest build you uploaded to iTC. Fetches the most recent build number from TestFlight based on the version number. Provides a way to have increment_build_number be based on the latest build you uploaded to iTC. latest_testflight_build_number Supported platforms ios, mac Author @daveanderson Returns Integer representation of the latest build number uploaded to TestFlight","title":"latest_testflight_build_number"},{"location":"actions/latest_testflight_build_number/#2-examples","text":"latest_testflight_build_number(version: \"1.3\") increment_build_number({ build_number: latest_testflight_build_number + 1 })","title":"2 Examples"},{"location":"actions/latest_testflight_build_number/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) live Query the live version (ready-for-sale) false app_identifier The bundle identifier of your app * username Your Apple ID Username * version The version number whose latest build number we want platform The platform to use (optional) ios initial_build_number sets the build number to given value if no build is in current train 1 team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/latest_testflight_build_number/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The latest_testflight_build_number action generates the following Lane Variables: SharedValue Description SharedValues::LATEST_TESTFLIGHT_BUILD_NUMBER The latest build number of the latest version of the app uploaded to TestFlight SharedValues::LATEST_TESTFLIGHT_VERSION The version of the latest build number To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/latest_testflight_build_number/#documentation","text":"To show the documentation in your terminal, run fastlane action latest_testflight_build_number","title":"Documentation"},{"location":"actions/latest_testflight_build_number/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run latest_testflight_build_number To pass parameters, make use of the : symbol, for example fastlane run latest_testflight_build_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/latest_testflight_build_number/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/lcov/","text":"lcov Generates coverage data using lcov lcov Supported platforms ios, mac Author @thiagolioy 1 Example lcov( project_name: \"ProjectName\", scheme: \"yourScheme\", output_dir: \"cov_reports\" # This value is optional. Default is coverage_reports ) Parameters Key Description Default project_name Name of the project scheme Scheme of the project arch The build arch where will search .gcda files i386 output_dir The output directory that coverage data will be stored. If not passed will use coverage_reports as default value coverage_reports * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action lcov CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run lcov To pass parameters, make use of the : symbol, for example fastlane run lcov parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"lcov"},{"location":"actions/lcov/#lcov","text":"Generates coverage data using lcov lcov Supported platforms ios, mac Author @thiagolioy","title":"lcov"},{"location":"actions/lcov/#1-example","text":"lcov( project_name: \"ProjectName\", scheme: \"yourScheme\", output_dir: \"cov_reports\" # This value is optional. Default is coverage_reports )","title":"1 Example"},{"location":"actions/lcov/#parameters","text":"Key Description Default project_name Name of the project scheme Scheme of the project arch The build arch where will search .gcda files i386 output_dir The output directory that coverage data will be stored. If not passed will use coverage_reports as default value coverage_reports * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/lcov/#documentation","text":"To show the documentation in your terminal, run fastlane action lcov","title":"Documentation"},{"location":"actions/lcov/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run lcov To pass parameters, make use of the : symbol, for example fastlane run lcov parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/lcov/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/mailgun/","text":"mailgun Send a success/error message to an email group mailgun Supported platforms ios, android, mac Author @thiagolioy 2 Examples mailgun( to: \"fastlane@krausefx.com\", success: true, message: \"This is the mail's content\" ) mailgun( postmaster: \"MY_POSTMASTER\", apikey: \"MY_API_KEY\", to: \"DESTINATION_EMAIL\", from: \"EMAIL_FROM_NAME\", reply_to: \"EMAIL_REPLY_TO\", success: true, message: \"Mail Body\", app_link: \"http://www.myapplink.com\", ci_build_link: \"http://www.mycibuildlink.com\", template_path: \"HTML_TEMPLATE_PATH\", custom_placeholders: { :var1 => 123, :var2 => \"string\" }, attachment: \"dirname/filename.ext\" ) Parameters Key Description Default mailgun_sandbox_domain Mailgun sandbox domain postmaster for your mail. Please use postmaster instead mailgun_sandbox_postmaster Mailgun sandbox domain postmaster for your mail. Please use postmaster instead mailgun_apikey Mailgun apikey for your mail. Please use postmaster instead postmaster Mailgun sandbox domain postmaster for your mail apikey Mailgun apikey for your mail to Destination of your mail from Mailgun sender name Mailgun Sandbox message Message of your mail subject Subject of your mail fastlane build success Was this build successful? (true/false) true app_link App Release link ci_build_link CI Build Link template_path Mail HTML template reply_to Mail Reply to attachment Mail Attachment filenames, either an array or just one string custom_placeholders Placeholders for template given as a hash {} * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action mailgun CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run mailgun To pass parameters, make use of the : symbol, for example fastlane run mailgun parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"mailgun"},{"location":"actions/mailgun/#mailgun","text":"Send a success/error message to an email group mailgun Supported platforms ios, android, mac Author @thiagolioy","title":"mailgun"},{"location":"actions/mailgun/#2-examples","text":"mailgun( to: \"fastlane@krausefx.com\", success: true, message: \"This is the mail's content\" ) mailgun( postmaster: \"MY_POSTMASTER\", apikey: \"MY_API_KEY\", to: \"DESTINATION_EMAIL\", from: \"EMAIL_FROM_NAME\", reply_to: \"EMAIL_REPLY_TO\", success: true, message: \"Mail Body\", app_link: \"http://www.myapplink.com\", ci_build_link: \"http://www.mycibuildlink.com\", template_path: \"HTML_TEMPLATE_PATH\", custom_placeholders: { :var1 => 123, :var2 => \"string\" }, attachment: \"dirname/filename.ext\" )","title":"2 Examples"},{"location":"actions/mailgun/#parameters","text":"Key Description Default mailgun_sandbox_domain Mailgun sandbox domain postmaster for your mail. Please use postmaster instead mailgun_sandbox_postmaster Mailgun sandbox domain postmaster for your mail. Please use postmaster instead mailgun_apikey Mailgun apikey for your mail. Please use postmaster instead postmaster Mailgun sandbox domain postmaster for your mail apikey Mailgun apikey for your mail to Destination of your mail from Mailgun sender name Mailgun Sandbox message Message of your mail subject Subject of your mail fastlane build success Was this build successful? (true/false) true app_link App Release link ci_build_link CI Build Link template_path Mail HTML template reply_to Mail Reply to attachment Mail Attachment filenames, either an array or just one string custom_placeholders Placeholders for template given as a hash {} * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/mailgun/#documentation","text":"To show the documentation in your terminal, run fastlane action mailgun","title":"Documentation"},{"location":"actions/mailgun/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run mailgun To pass parameters, make use of the : symbol, for example fastlane run mailgun parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/mailgun/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/make_changelog_from_jenkins/","text":"make_changelog_from_jenkins Generate a changelog using the Changes section from the current Jenkins build This is useful when deploying automated builds. The changelog from Jenkins lists all the commit messages since the last build. make_changelog_from_jenkins Supported platforms ios, android, mac Author @mandrizzle 1 Example make_changelog_from_jenkins( # Optional, lets you set a changelog in the case is not generated on Jenkins or if ran outside of Jenkins fallback_changelog: \"Bug fixes and performance enhancements\" ) Parameters Key Description Default fallback_changelog Fallback changelog if there is not one on Jenkins, or it couldn't be read '' include_commit_body Include the commit body along with the summary true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The make_changelog_from_jenkins action generates the following Lane Variables: SharedValue Description SharedValues::FL_CHANGELOG The changelog generated by Jenkins To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action make_changelog_from_jenkins CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run make_changelog_from_jenkins To pass parameters, make use of the : symbol, for example fastlane run make_changelog_from_jenkins parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"make_changelog_from_jenkins"},{"location":"actions/make_changelog_from_jenkins/#make_changelog_from_jenkins","text":"Generate a changelog using the Changes section from the current Jenkins build This is useful when deploying automated builds. The changelog from Jenkins lists all the commit messages since the last build. make_changelog_from_jenkins Supported platforms ios, android, mac Author @mandrizzle","title":"make_changelog_from_jenkins"},{"location":"actions/make_changelog_from_jenkins/#1-example","text":"make_changelog_from_jenkins( # Optional, lets you set a changelog in the case is not generated on Jenkins or if ran outside of Jenkins fallback_changelog: \"Bug fixes and performance enhancements\" )","title":"1 Example"},{"location":"actions/make_changelog_from_jenkins/#parameters","text":"Key Description Default fallback_changelog Fallback changelog if there is not one on Jenkins, or it couldn't be read '' include_commit_body Include the commit body along with the summary true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/make_changelog_from_jenkins/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The make_changelog_from_jenkins action generates the following Lane Variables: SharedValue Description SharedValues::FL_CHANGELOG The changelog generated by Jenkins To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/make_changelog_from_jenkins/#documentation","text":"To show the documentation in your terminal, run fastlane action make_changelog_from_jenkins","title":"Documentation"},{"location":"actions/make_changelog_from_jenkins/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run make_changelog_from_jenkins To pass parameters, make use of the : symbol, for example fastlane run make_changelog_from_jenkins parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/make_changelog_from_jenkins/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/match/","text":"match Alias for the sync_code_signing action Easily sync your certificates and profiles across your team A new approach to iOS and macOS code signing: Share one code signing identity across your development team to simplify your codesigning setup and prevent code signing issues. match is the implementation of the codesigning.guide concept . match creates all required certificates & provisioning profiles and stores them in a separate git repository, Google Cloud, or Amazon S3. Every team member with access to the selected storage can use those credentials for code signing. match also automatically repairs broken and expired credentials. It's the easiest way to share signing credentials across teams More information on how to get started with codesigning Why? \u2022 Usage \u2022 Is this secure? match is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Why match? Before starting to use match , make sure to read the codesigning.guide : When deploying an app to the App Store, beta testing service or even installing it on a device, most development teams have separate code signing identities for every member. This results in dozens of profiles including a lot of duplicates. You have to manually renew and download the latest set of provisioning profiles every time you add a new device or a certificate expires. Additionally this requires spending a lot of time when setting up a new machine that will build your app. A new approach Share one code signing identity across your development team to simplify your setup and prevent code signing issues. What if there was a central place where your code signing identity and profiles are kept, so anyone in the team can access them during the build process? For more information about the concept, visit codesigning.guide . Why not let Xcode handle all this? You have full control over what happens You have access to all the certificates and profiles, which are all securely stored in git You share one code signing identity across the team to have fewer certificates and profiles Xcode sometimes revokes certificates which breaks your setup causing failed builds More predictable builds by settings profiles in an explicit way instead of using the Automatic setting It just works\u2122 What does match do for you? match \ud83d\udd04 Automatically sync your iOS and macOS keys and profiles across all your team members using git \ud83d\udce6 Handle all the heavy lifting of creating and storing your certificates and profiles \ud83d\udcbb Setup codesigning on a new machine in under a minute \ud83c\udfaf Designed to work with apps with multiple targets and bundle identifiers \ud83d\udd12 You have full control over your files and Git repo, no third party service involved \u2728 Provisioning profile will always match the correct certificate \ud83d\udca5 Easily reset your existing profiles and certificates if your current account has expired or invalid profiles \u267b\ufe0f Automatically renew your provisioning profiles to include all your devices using the --force option \ud83d\udc65 Support for multiple Apple accounts and multiple teams \u2728 Tightly integrated with fastlane to work seamlessly with gym and other build tools Usage Setup Optional: Create a new, shared Apple Developer Portal account , something like office@company.com , that will be shared across your team from now on (for more information visit codesigning.guide ) Run the following in your project folder to start using match : fastlane match init You'll be asked if you want to store your code signing identities inside a Git repo , Google Cloud or Amazon S3 . Git Storage Use Git Storage to store all code signing identities in a private git repo, owned and operated by you. The files will be encrypted using OpenSSL. First, enter the URL to your private (!) Git repo (You can create one for free on e.g. GitHub or BitBucket ). The URL you enter can be either a https:// or a git URL. fastlane match init won't read or modify your certificates or profiles yet, and also won't validate your git URL. This will create a Matchfile in your current directory (or in your ./fastlane/ folder). Example content (for more advanced setups check out the fastlane section ): git_url(\"https://github.com/fastlane/certificates\") app_identifier(\"tools.fastlane.app\") username(\"user@fastlane.tools\") Git Storage on GitHub If your machine is currently using SSH to authenticate with GitHub, you'll want to use a git URL, otherwise, you may see an authentication error when you attempt to use match. Alternatively, you can set a basic authorization for match : Using parameter: match(git_basic_authorization: '') Using environment variable: ENV['MATCH_GIT_BASIC_AUTHORIZATION'] = '' match To generate your base64 key according to RFC 7617 , run this: echo -n your_github_username:your_personal_access_token | base64 You can find more information about GitHub basic authentication and personal token generation here: https://developer.github.com/v3/auth/#basic-authentication Git Storage on GitHub - Deploy keys If your machine does not have a private key set up for your certificates repository, you can give match a path for one: Using parameter: match(git_private_key: '') Using environment variable: ENV['MATCH_GIT_PRIVATE_KEY'] = '' match You can find more information about GitHub basic authentication and personal token generation here: https://developer.github.com/v3/auth/#basic-authentication Git Storage on Azure DevOps If you're running a pipeline on Azure DevOps and using git storage in a another repository on the same project, you might want to use bearer token authentication. Using parameter: match(git_bearer_authorization: '') Using environment variable: ENV['MATCH_GIT_BEARER_AUTHORIZATION'] = '' match You can find more information about this use case here: https://docs.microsoft.com/en-us/azure/devops/pipelines/repos/azure-repos-git?view=azure-devops&tabs=yaml#authorize-access-to-your-repositories Google Cloud Storage Use Google Cloud Storage for a fully hosted solution for your code signing identities. Certificates are stored on Google Cloud, encrypted using Google managed keys. Everything will be stored on your Google account, inside a storage bucket you provide. You can also directly access the files using the web console. This will create a Matchfile in your current directory (or in your ./fastlane/ folder). Example content (for more advanced setups check out the fastlane section ): google_cloud_bucket_name(\"major-key-certificates\") Amazon S3 Use Amazon S3 for a fully hosted solution for your code signing identities. Certificates are stored on S3, inside a storage bucket you provide. You can also directly access the files using the web console. This will create a Matchfile in your current directory (or in your ./fastlane/ folder). Example content (for more advanced setups check out the fastlane section ): s3_bucket(\"ios-certificates\") Multiple teams match can store the codesigning files for multiple development teams: Git Storage Use one git branch per team. match also supports storing certificates of multiple teams in one repo, by using separate git branches. If you work in multiple teams, make sure to set the git_branch parameter to a unique value per team. From there, match will automatically create and use the specified branch for you. match(git_branch: \"team1\", username: \"user@team1.com\") match(git_branch: \"team2\", username: \"user@team2.com\") Google Cloud or Amazon S3 Storage If you use Google Cloud or Amazon S3 Storage, you don't need to do anything manually. Just use Google Cloud or Amazon S3 Storage, and the top level folder will be the team ID. Run Before running match for the first time, you should consider clearing your existing profiles and certificates using the match nuke command . After running fastlane match init you can run the following to generate new certificates and profiles: fastlane match appstore fastlane match development This will create a new certificate and provisioning profile (if required) and store them in your selected storage. If you previously ran match with the configured storage it will automatically install the existing profiles from your storage. The provisioning profiles are installed in ~/Library/MobileDevice/Provisioning Profiles while the certificates and private keys are installed in your Keychain. To get a more detailed output of what match is doing use fastlane match --verbose For a list of all available options run fastlane action match Handle multiple targets match can use the same one Git repository, Google Cloud, or Amazon S3 Storage for all bundle identifiers. If you have several targets with different bundle identifiers, supply them as a comma-separated list: fastlane match appstore -a tools.fastlane.app,tools.fastlane.app.watchkitapp You can make this even easier using fastlane by creating a certificates lane like this: lane :certificates do match(app_identifier: [\"tools.fastlane.app\", \"tools.fastlane.app.watchkitapp\"]) end Then all your team has to do is run fastlane certificates and the keys, certificates and profiles for all targets will be synced. Handle multiple apps per developer/distribution certificate If you want to use a single developer and/or distribution certificate for multiple apps belonging to the same development team, you may use the same signing identities repository and branch to store the signing identities for your apps: Matchfile example for both App #1 and #2: git_url(\"https://github.com/example/example-repo.git\") git_branch(\"master\") match will reuse certificates and will create separate provisioning profiles for each app. Passphrase Git Repo storage only When running match for the first time on a new machine, it will ask you for the passphrase for the Git repository. This is an additional layer of security: each of the files will be encrypted using openssl . Make sure to remember the password, as you'll need it when you run match on a different machine. To set the passphrase to decrypt your profiles using an environment variable (and avoid the prompt) use MATCH_PASSWORD . Migrate from Git Repo to Google Cloud If you're already using a Git Repo, but would like to switch to using Google Cloud Storage, run the following command to automatically migrate all your existing code signing identities and provisioning profiles fastlane match migrate After a successful migration you can safely delete your Git repo. Google Cloud access control Google Cloud Storage only There are two cases for reading and writing certificates stored in a Google Cloud storage bucket: Continuous integration jobs. These will authenticate to your Google Cloud project via a service account, and use a gc_keys.json file as credentials. Developers on a local workstation. In this case, you should choose whether everyone on your team will create their own gc_keys.json file, or whether you want to manage access to the bucket directly using your developers' Google accounts. When running fastlane match init the first time, the setup process will give you the option to create your gc_keys.json file. This file contains the authentication credentials needed to access your Google Cloud storage bucket. Make sure to keep that file secret and never add it to version control. We recommend adding gc_keys.json to your .gitignore Managing developer access via keys If you want to manage developer access to your certificates via authentication keys, every developer should create their own gc_keys.json and add the file to all their work machines. This will give the admin full control over who has read/write access to the given Storage bucket. At the same time it allows your team to revoke a single key if a file gets compromised. Managing developer access via Google accounts If your developers already have Google accounts and access to your Google Cloud project, you can also manage access to the storage bucket via Cloud Identity and Access Management (IAM) . Just set up individual developer accounts or an entire Google Group containing your team as readers and writers on your storage bucket. You can then specify the Google Cloud project id containing your storage bucket in your Matchfile : storage_mode(\"google_cloud\") google_cloud_bucket_name(\"my-app-certificates\") google_cloud_project_id(\"my-app-project\") This lets developers on your team use Application Default Credentials when accessing your storage bucket. After installing the Google Cloud SDK , they only need to run the following command once: gcloud auth application-default login ... and log in with their Google account. Then, when they run fastlane match , match will use these credentials to read from and write to the storage bucket. New machine To set up the certificates and provisioning profiles on a new machine, you just run the same command using: fastlane match development You can also run match in a readonly mode to be sure it won't create any new certificates or profiles. fastlane match development --readonly We recommend to always use readonly mode when running fastlane on CI systems. This can be done using lane :beta do match(type: \"appstore\", readonly: is_ci) gym(scheme: \"Release\") end Access Control A benefit of using match is that it enables you to give the developers of your team access to the code signing certificates without having to give everyone access to the Developer Portal: Run match to store the certificates in a Git repo or Google Cloud Storage Grant access to the Git repo / Google Cloud Storage Bucket to your developers and give them the passphrase (for git storage) The developers can now run match which will install the latest code signing profiles so they can build and sign the application without having to have access to the Apple Developer Portal Every time you run match to update the profiles (e.g. add a new device), all your developers will automatically get the latest profiles when running match If you decide to run match without access to the Developer Portal, make sure to use the --readonly option so that the commands don't ask you for the password to the Developer Portal. The advantage of this approach is that no one in your team will revoke a certificate by mistake, while having all code signing secrets in one location. Folder structure After running match for the first time, your Git repo or Google Cloud bucket will contain 2 directories: The certs folder contains all certificates with their private keys The profiles folder contains all provisioning profiles Additionally, match creates a nice repo README.md for you, making it easy to onboard new team members: In the case of Google Cloud, the top level folder will be the team ID. fastlane Add match to your Fastfile to automatically fetch the latest code signing certificates with fastlane . match(type: \"appstore\") match(type: \"development\") match(type: \"adhoc\", app_identifier: \"tools.fastlane.app\") match(type: \"enterprise\", app_identifier: \"tools.fastlane.app\") # _match_ should be called before building the app with _gym_ gym # ... Registering new devices By using match , you'll save a lot of time every time you add new device to your Ad Hoc or Development profiles. Use match in combination with the register_devices action. lane :beta do register_devices(devices_file: \"./devices.txt\") match(type: \"adhoc\", force_for_new_devices: true) end By using the force_for_new_devices parameter, match will check if the (enabled) device count has changed since the last time you ran match , and automatically re-generate the provisioning profile if necessary. You can also use force: true to re-generate the provisioning profile on each run. Important: The force_for_new_devices parameter is ignored for App Store provisioning profiles since they don't contain any device information. If you're not using Fastfile , you can also use the force_for_new_devices option from the command line: fastlane match adhoc --force_for_new_devices Templates (aka: custom entitlements) match can generate profiles that contain custom entitlements by passing in the entitlement's name with the template_name parameter. match(type: \"development\", template_name: \"Apple Pay Pass Suppression Development\") Setup Xcode project Docs on how to set up your Xcode project To build from the command line using fastlane match automatically pre-fills environment variables with the UUIDs of the correct provisioning profiles, ready to be used in your Xcode project. More information about how to setup your Xcode project can be found here To build from Xcode manually This is useful when installing your application on your device using the Development profile. You can statically select the right provisioning profile in your Xcode project (the name will be match Development tools.fastlane.app ). Docs on how to set up your Xcode project Continuous Integration Git repo access There is one tricky part of setting up a CI system to work with match , which is enabling the CI to access the repo. Usually you'd just add your CI's public ssh key as a deploy key to your match repo, but since your CI will already likely be using its public ssh key to access the codebase repo, you won't be able to do that . Some repo hosts might allow you to use the same deploy key for different repos, but GitHub will not. If your host does, you don't need to worry about this, just add your CI's public ssh key as a deploy key for your match repo and scroll down to \" Encryption password \". There are a few ways around this: Create a new account on your repo host with read-only access to your match repo. Bitrise have a good description of this here . Some CIs allow you to upload your signing credentials manually, but obviously this means that you'll have to re-upload the profiles/keys/certs each time they change. Neither solution is pretty. It's one of those trade-off things. Do you care more about not having an extra account sitting around, or do you care more about having the :sparkles: of auto-syncing of credentials. Git repo encryption password Once you've decided which approach to take, all that's left to do is to set your encryption password as secret environment variable named MATCH_PASSWORD . match will pick this up when it's run. Google Cloud Storage access Accessing Google Cloud Storage from your CI system requires you to provide the gc_keys.json file as part of your build. How you implement this is your decision. You can inject that file during build time. Amazon S3 Storage access Accessing Amazon S3 Storage from your CI system requires you to provide the s3_region , s3_access_key , s3_secret_access_key and s3_bucket options (or environment variables), with keys that has read access to the bucket. Nuke If you never really cared about code signing and have a messy Apple Developer account with a lot of invalid, expired or Xcode managed profiles/certificates, you can use the match nuke command to revoke your certificates and provisioning profiles. Don't worry, apps that are already available in the App Store / TestFlight will still work. Builds distributed via Ad Hoc or Enterprise will be disabled after nuking your account, so you'll have to re-upload a new build. After clearing your account you'll start from a clean state, and you can run match to generate your certificates and profiles again. To revoke all certificates and provisioning profiles for a specific environment: fastlane match nuke development fastlane match nuke distribution fastlane match nuke enterprise You'll have to confirm a list of profiles / certificates that will be deleted. Advanced Git Storage features Change Password To change the password of your repo and therefore decrypting and encrypting all files run: fastlane match change_password You'll be asked for the new password on all your machines on the next run. Import To import and encrypt a certificate ( .cer ), the private key ( .p12 ) and the provisioning profiles ( .mobileprovision or .provisionprofile ) into the match repo run: fastlane match import You'll be prompted for the certificate ( .cer ), the private key ( .p12 ) and the provisioning profiles ( .mobileprovision or .provisionprofile ) paths. match will first validate the certificate ( .cer ) against the Developer Portal before importing the certificate, the private key and the provisioning profiles into the specified match repository. However if there is no access to the developer portal but there are certificates, private keys and profiles provided, you can use the skip_certificate_matching option to tell match not to verify the certificates. Like this: fastlane match import --skip_certificate_matching true This will skip login to Apple Developer Portal and will import the provided certificate, private key and profile directly to the certificates repo. Please be careful when using this option and ensure the certificates and profiles match the type (development, adhoc, appstore, enterprise, developer_id) and are not revoked or expired. Manual Decrypt If you want to manually decrypt a file you can. openssl aes-256-cbc -k \"\" -in \"\" -out \"\" -a -d -md [md5|sha256] Note: You may need to swap double quotes \" for single quotes ' if your match password contains an exclamation mark ! . Export Distribution Certificate and Private Key as Single .p12 File match stores the certificate ( .cer ) and the private key ( .p12 ) files separately. The following steps will repackage the separate certificate and private key into a single .p12 file. Decrypt your cert found in certs//.cer as a pem file: openssl aes-256-cbc -k \"\" -in \"certs//.cer\" -out \"cert.der\" -a -d -md [md5|sha256] openssl x509 -inform der -in cert.der -out cert.pem Decrypt your private key found in certs//.p12 as a pem file: openssl aes-256-cbc -k \"\" -in \"certs/distribution/.p12\" -out \"key.pem\" -a -d -md [md5|sha256] Generate an encrypted p12 file with the same or new password: openssl pkcs12 -export -out \"cert.p12\" -inkey \"key.pem\" -in \"cert.pem\" -password pass: Is this secure? Git Both your keys and provisioning profiles are encrypted using OpenSSL using a passphrase. Storing your private keys in a Git repo may sound off-putting at first. We did an analysis of potential security issues, see section below. Google Cloud Storage All your keys and provisioning profiles are encrypted using Google managed keys. What could happen if someone stole a private key? If attackers would have your certificate and provisioning profile, they could codesign an application with the same bundle identifier. What's the worst that could happen for each of the profile types? App Store Profiles An App Store profile can't be used for anything as long as it's not re-signed by Apple. The only way to get an app resigned is to submit an app for review which could take anywhere from 24 hours to a few days (checkout appreviewtimes.com for up-to-date expectations). Attackers could only submit an app for review, if they also got access to your App Store Connect credentials (which are not stored in git, but in your local keychain). Additionally you get an email notification every time a build gets uploaded to cancel the submission even before your app gets into the review stage. Development and Ad Hoc Profiles In general those profiles are harmless as they can only be used to install a signed application on a small subset of devices. To add new devices, the attacker would also need your Apple Developer Portal credentials (which are not stored in git, but in your local keychain). Enterprise Profiles Attackers could use an In-House profile to distribute signed application to a potentially unlimited number of devices. All this would run under your company name and it could eventually lead to Apple revoking your In-House account. However it is very easy to revoke a certificate to remotely break the app on all devices. Because of the potentially dangerous nature of In-House profiles please use match with enterprise profiles with caution, ensure your git repository is private and use a secure password. To sum up You have full control over the access list of your Git repo, no third party service involved Even if your certificates are leaked, they can't be used to cause any harm without your App Store Connect login credentials Use In-House enterprise profile with match with caution If you use GitHub or Bitbucket we encourage enabling 2 factor authentication for all accounts that have access to the certificates repo The complete source code of match is fully open source on GitHub match Supported platforms ios, mac Author @KrauseFx 4 Examples sync_code_signing(type: \"appstore\", app_identifier: \"tools.fastlane.app\") sync_code_signing(type: \"development\", readonly: true) sync_code_signing(app_identifier: [\"tools.fastlane.app\", \"tools.fastlane.sleepy\"]) match # alias for \"sync_code_signing\" Parameters Key Description Default type Define the profile type, can be appstore, adhoc, development, enterprise, developer_id, mac_installer_distribution, developer_id_installer development additional_cert_types Create additional cert types needed for macOS installers (valid values: mac_installer_distribution, developer_id_installer) readonly Only fetch existing certificates and profiles, don't generate new ones false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * skip_provisioning_profiles Skip syncing provisioning profiles false app_identifier The bundle identifier(s) of your app (comma-separated string or array of strings) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * storage_mode Define where you want to store your certificates git git_url URL to the git repo containing all the certificates git_branch Specific git branch to use master git_full_name git user full name to commit git_user_email git user email to commit shallow_clone Make a shallow clone of the repository (truncate the history to 1 revision) false clone_branch_directly Clone just the branch specified, instead of the whole repo. This requires that the branch already exists. Otherwise the command will fail false git_basic_authorization Use a basic authorization header to access the git repo (e.g.: access via HTTPS, GitHub Actions, etc), usually a string in Base64 git_bearer_authorization Use a bearer authorization header to access the git repo (e.g.: access to an Azure DevOps repository), usually a string in Base64 git_private_key Use a private key to access the git repo (e.g.: access to GitHub repository via Deploy keys), usually a id_rsa named file or the contents hereof google_cloud_bucket_name Name of the Google Cloud Storage bucket to use google_cloud_keys_file Path to the gc_keys.json file google_cloud_project_id ID of the Google Cloud project to use for authentication skip_google_cloud_account_confirmation Skips confirming to use the system google account false s3_region Name of the S3 region s3_access_key S3 access key s3_secret_access_key S3 secret access key s3_bucket Name of the S3 bucket s3_object_prefix Prefix to be used on all objects uploaded to S3 s3_skip_encryption Skip encryption of all objects uploaded to S3. WARNING: only enable this on S3 buckets with sufficiently restricted permissions and server-side encryption enabled. See https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html false gitlab_project GitLab Project Path (i.e. 'gitlab-org/gitlab') gitlab_host GitLab Host (i.e. 'https://gitlab.com') https://gitlab.com job_token GitLab CI_JOB_TOKEN private_token GitLab Access Token keychain_name Keychain the items should be imported to login.keychain keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password force Renew the provisioning profiles every time you run match false force_for_new_devices Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile types 'appstore' and 'developer_id' false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false force_for_new_certificates Renew the provisioning profiles if the certificate count on the developer portal has changed. Works only for the 'development' provisioning profile type. Requires 'include_all_certificates' option to be 'true' false skip_confirmation Disables confirmation prompts during nuke, answering them with yes false safe_remove_certs Remove certs from repository during nuke without revoking them on the developer portal false skip_docs Skip generation of a README.md for the created git repository false platform Set the provisioning profile's platform to work with (i.e. ios, tvos, macos, catalyst) * derive_catalyst_app_identifier Enable this if you have the Mac Catalyst capability enabled and your project was created with Xcode 11.3 or earlier. Prepends 'maccatalyst.' to the app identifier for the provisioning profile mapping false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") profile_name A custom name for the provisioning profile. This will replace the default provisioning profile name if specified fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false skip_certificate_matching Set to true if there is no access to Apple developer portal but there are certificates, keys and profiles provided. Only works with match import action false output_path Path in which to export certificates, key and profile skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false verbose Print out extra information and all commands false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The match action generates the following Lane Variables: SharedValue Description SharedValues::MATCH_PROVISIONING_PROFILE_MAPPING The match provisioning profile mapping SharedValues::SIGH_PROFILE_TYPE The profile type, can be app-store, ad-hoc, development, enterprise, can be used in build_app as a default value for export_method To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action match CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run match To pass parameters, make use of the : symbol, for example fastlane run match parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"match"},{"location":"actions/match/#match","text":"Alias for the sync_code_signing action","title":"match"},{"location":"actions/match/#why-match","text":"Before starting to use match , make sure to read the codesigning.guide : When deploying an app to the App Store, beta testing service or even installing it on a device, most development teams have separate code signing identities for every member. This results in dozens of profiles including a lot of duplicates. You have to manually renew and download the latest set of provisioning profiles every time you add a new device or a certificate expires. Additionally this requires spending a lot of time when setting up a new machine that will build your app. A new approach Share one code signing identity across your development team to simplify your setup and prevent code signing issues. What if there was a central place where your code signing identity and profiles are kept, so anyone in the team can access them during the build process? For more information about the concept, visit codesigning.guide .","title":"Why match?"},{"location":"actions/match/#usage","text":"","title":"Usage"},{"location":"actions/match/#advanced-git-storage-features","text":"","title":"Advanced Git Storage features"},{"location":"actions/match/#is-this-secure","text":"","title":"Is this secure?"},{"location":"actions/match/#4-examples","text":"sync_code_signing(type: \"appstore\", app_identifier: \"tools.fastlane.app\") sync_code_signing(type: \"development\", readonly: true) sync_code_signing(app_identifier: [\"tools.fastlane.app\", \"tools.fastlane.sleepy\"]) match # alias for \"sync_code_signing\"","title":"4 Examples"},{"location":"actions/match/#parameters","text":"Key Description Default type Define the profile type, can be appstore, adhoc, development, enterprise, developer_id, mac_installer_distribution, developer_id_installer development additional_cert_types Create additional cert types needed for macOS installers (valid values: mac_installer_distribution, developer_id_installer) readonly Only fetch existing certificates and profiles, don't generate new ones false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * skip_provisioning_profiles Skip syncing provisioning profiles false app_identifier The bundle identifier(s) of your app (comma-separated string or array of strings) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * storage_mode Define where you want to store your certificates git git_url URL to the git repo containing all the certificates git_branch Specific git branch to use master git_full_name git user full name to commit git_user_email git user email to commit shallow_clone Make a shallow clone of the repository (truncate the history to 1 revision) false clone_branch_directly Clone just the branch specified, instead of the whole repo. This requires that the branch already exists. Otherwise the command will fail false git_basic_authorization Use a basic authorization header to access the git repo (e.g.: access via HTTPS, GitHub Actions, etc), usually a string in Base64 git_bearer_authorization Use a bearer authorization header to access the git repo (e.g.: access to an Azure DevOps repository), usually a string in Base64 git_private_key Use a private key to access the git repo (e.g.: access to GitHub repository via Deploy keys), usually a id_rsa named file or the contents hereof google_cloud_bucket_name Name of the Google Cloud Storage bucket to use google_cloud_keys_file Path to the gc_keys.json file google_cloud_project_id ID of the Google Cloud project to use for authentication skip_google_cloud_account_confirmation Skips confirming to use the system google account false s3_region Name of the S3 region s3_access_key S3 access key s3_secret_access_key S3 secret access key s3_bucket Name of the S3 bucket s3_object_prefix Prefix to be used on all objects uploaded to S3 s3_skip_encryption Skip encryption of all objects uploaded to S3. WARNING: only enable this on S3 buckets with sufficiently restricted permissions and server-side encryption enabled. See https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html false gitlab_project GitLab Project Path (i.e. 'gitlab-org/gitlab') gitlab_host GitLab Host (i.e. 'https://gitlab.com') https://gitlab.com job_token GitLab CI_JOB_TOKEN private_token GitLab Access Token keychain_name Keychain the items should be imported to login.keychain keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password force Renew the provisioning profiles every time you run match false force_for_new_devices Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile types 'appstore' and 'developer_id' false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false force_for_new_certificates Renew the provisioning profiles if the certificate count on the developer portal has changed. Works only for the 'development' provisioning profile type. Requires 'include_all_certificates' option to be 'true' false skip_confirmation Disables confirmation prompts during nuke, answering them with yes false safe_remove_certs Remove certs from repository during nuke without revoking them on the developer portal false skip_docs Skip generation of a README.md for the created git repository false platform Set the provisioning profile's platform to work with (i.e. ios, tvos, macos, catalyst) * derive_catalyst_app_identifier Enable this if you have the Mac Catalyst capability enabled and your project was created with Xcode 11.3 or earlier. Prepends 'maccatalyst.' to the app identifier for the provisioning profile mapping false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") profile_name A custom name for the provisioning profile. This will replace the default provisioning profile name if specified fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false skip_certificate_matching Set to true if there is no access to Apple developer portal but there are certificates, keys and profiles provided. Only works with match import action false output_path Path in which to export certificates, key and profile skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false verbose Print out extra information and all commands false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/match/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The match action generates the following Lane Variables: SharedValue Description SharedValues::MATCH_PROVISIONING_PROFILE_MAPPING The match provisioning profile mapping SharedValues::SIGH_PROFILE_TYPE The profile type, can be app-store, ad-hoc, development, enterprise, can be used in build_app as a default value for export_method To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/match/#documentation","text":"To show the documentation in your terminal, run fastlane action match","title":"Documentation"},{"location":"actions/match/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run match To pass parameters, make use of the : symbol, for example fastlane run match parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/match/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/match_nuke/","text":"match_nuke Easily nuke your certificate and provisioning profiles (via match ) Use the match_nuke action to revoke your certificates and provisioning profiles. Don't worry, apps that are already available in the App Store / TestFlight will still work. Builds distributed via Ad Hoc or Enterprise will be disabled after nuking your account, so you'll have to re-upload a new build. After clearing your account you'll start from a clean state, and you can run match to generate your certificates and profiles again. More information: https://docs.fastlane.tools/actions/match/ match_nuke Supported platforms ios, mac Author @crazymanish 2 Examples match_nuke(type: \"development\") match_nuke(type: \"development\", api_key: app_store_connect_api_key) Parameters Key Description Default type Define the profile type, can be appstore, adhoc, development, enterprise, developer_id, mac_installer_distribution, developer_id_installer development additional_cert_types Create additional cert types needed for macOS installers (valid values: mac_installer_distribution, developer_id_installer) readonly Only fetch existing certificates and profiles, don't generate new ones false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * skip_provisioning_profiles Skip syncing provisioning profiles false app_identifier The bundle identifier(s) of your app (comma-separated string or array of strings) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * storage_mode Define where you want to store your certificates git git_url URL to the git repo containing all the certificates git_branch Specific git branch to use master git_full_name git user full name to commit git_user_email git user email to commit shallow_clone Make a shallow clone of the repository (truncate the history to 1 revision) false clone_branch_directly Clone just the branch specified, instead of the whole repo. This requires that the branch already exists. Otherwise the command will fail false git_basic_authorization Use a basic authorization header to access the git repo (e.g.: access via HTTPS, GitHub Actions, etc), usually a string in Base64 git_bearer_authorization Use a bearer authorization header to access the git repo (e.g.: access to an Azure DevOps repository), usually a string in Base64 git_private_key Use a private key to access the git repo (e.g.: access to GitHub repository via Deploy keys), usually a id_rsa named file or the contents hereof google_cloud_bucket_name Name of the Google Cloud Storage bucket to use google_cloud_keys_file Path to the gc_keys.json file google_cloud_project_id ID of the Google Cloud project to use for authentication skip_google_cloud_account_confirmation Skips confirming to use the system google account false s3_region Name of the S3 region s3_access_key S3 access key s3_secret_access_key S3 secret access key s3_bucket Name of the S3 bucket s3_object_prefix Prefix to be used on all objects uploaded to S3 s3_skip_encryption Skip encryption of all objects uploaded to S3. WARNING: only enable this on S3 buckets with sufficiently restricted permissions and server-side encryption enabled. See https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html false gitlab_project GitLab Project Path (i.e. 'gitlab-org/gitlab') gitlab_host GitLab Host (i.e. 'https://gitlab.com') https://gitlab.com job_token GitLab CI_JOB_TOKEN private_token GitLab Access Token keychain_name Keychain the items should be imported to login.keychain keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password force Renew the provisioning profiles every time you run match false force_for_new_devices Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile types 'appstore' and 'developer_id' false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false force_for_new_certificates Renew the provisioning profiles if the certificate count on the developer portal has changed. Works only for the 'development' provisioning profile type. Requires 'include_all_certificates' option to be 'true' false skip_confirmation Disables confirmation prompts during nuke, answering them with yes false safe_remove_certs Remove certs from repository during nuke without revoking them on the developer portal false skip_docs Skip generation of a README.md for the created git repository false platform Set the provisioning profile's platform to work with (i.e. ios, tvos, macos, catalyst) * derive_catalyst_app_identifier Enable this if you have the Mac Catalyst capability enabled and your project was created with Xcode 11.3 or earlier. Prepends 'maccatalyst.' to the app identifier for the provisioning profile mapping false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") profile_name A custom name for the provisioning profile. This will replace the default provisioning profile name if specified fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false skip_certificate_matching Set to true if there is no access to Apple developer portal but there are certificates, keys and profiles provided. Only works with match import action false output_path Path in which to export certificates, key and profile skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false verbose Print out extra information and all commands false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action match_nuke CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run match_nuke To pass parameters, make use of the : symbol, for example fastlane run match_nuke parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"match_nuke"},{"location":"actions/match_nuke/#match_nuke","text":"Easily nuke your certificate and provisioning profiles (via match ) Use the match_nuke action to revoke your certificates and provisioning profiles. Don't worry, apps that are already available in the App Store / TestFlight will still work. Builds distributed via Ad Hoc or Enterprise will be disabled after nuking your account, so you'll have to re-upload a new build. After clearing your account you'll start from a clean state, and you can run match to generate your certificates and profiles again. More information: https://docs.fastlane.tools/actions/match/ match_nuke Supported platforms ios, mac Author @crazymanish","title":"match_nuke"},{"location":"actions/match_nuke/#2-examples","text":"match_nuke(type: \"development\") match_nuke(type: \"development\", api_key: app_store_connect_api_key)","title":"2 Examples"},{"location":"actions/match_nuke/#parameters","text":"Key Description Default type Define the profile type, can be appstore, adhoc, development, enterprise, developer_id, mac_installer_distribution, developer_id_installer development additional_cert_types Create additional cert types needed for macOS installers (valid values: mac_installer_distribution, developer_id_installer) readonly Only fetch existing certificates and profiles, don't generate new ones false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * skip_provisioning_profiles Skip syncing provisioning profiles false app_identifier The bundle identifier(s) of your app (comma-separated string or array of strings) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * storage_mode Define where you want to store your certificates git git_url URL to the git repo containing all the certificates git_branch Specific git branch to use master git_full_name git user full name to commit git_user_email git user email to commit shallow_clone Make a shallow clone of the repository (truncate the history to 1 revision) false clone_branch_directly Clone just the branch specified, instead of the whole repo. This requires that the branch already exists. Otherwise the command will fail false git_basic_authorization Use a basic authorization header to access the git repo (e.g.: access via HTTPS, GitHub Actions, etc), usually a string in Base64 git_bearer_authorization Use a bearer authorization header to access the git repo (e.g.: access to an Azure DevOps repository), usually a string in Base64 git_private_key Use a private key to access the git repo (e.g.: access to GitHub repository via Deploy keys), usually a id_rsa named file or the contents hereof google_cloud_bucket_name Name of the Google Cloud Storage bucket to use google_cloud_keys_file Path to the gc_keys.json file google_cloud_project_id ID of the Google Cloud project to use for authentication skip_google_cloud_account_confirmation Skips confirming to use the system google account false s3_region Name of the S3 region s3_access_key S3 access key s3_secret_access_key S3 secret access key s3_bucket Name of the S3 bucket s3_object_prefix Prefix to be used on all objects uploaded to S3 s3_skip_encryption Skip encryption of all objects uploaded to S3. WARNING: only enable this on S3 buckets with sufficiently restricted permissions and server-side encryption enabled. See https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html false gitlab_project GitLab Project Path (i.e. 'gitlab-org/gitlab') gitlab_host GitLab Host (i.e. 'https://gitlab.com') https://gitlab.com job_token GitLab CI_JOB_TOKEN private_token GitLab Access Token keychain_name Keychain the items should be imported to login.keychain keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password force Renew the provisioning profiles every time you run match false force_for_new_devices Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile types 'appstore' and 'developer_id' false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false force_for_new_certificates Renew the provisioning profiles if the certificate count on the developer portal has changed. Works only for the 'development' provisioning profile type. Requires 'include_all_certificates' option to be 'true' false skip_confirmation Disables confirmation prompts during nuke, answering them with yes false safe_remove_certs Remove certs from repository during nuke without revoking them on the developer portal false skip_docs Skip generation of a README.md for the created git repository false platform Set the provisioning profile's platform to work with (i.e. ios, tvos, macos, catalyst) * derive_catalyst_app_identifier Enable this if you have the Mac Catalyst capability enabled and your project was created with Xcode 11.3 or earlier. Prepends 'maccatalyst.' to the app identifier for the provisioning profile mapping false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") profile_name A custom name for the provisioning profile. This will replace the default provisioning profile name if specified fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false skip_certificate_matching Set to true if there is no access to Apple developer portal but there are certificates, keys and profiles provided. Only works with match import action false output_path Path in which to export certificates, key and profile skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false verbose Print out extra information and all commands false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/match_nuke/#documentation","text":"To show the documentation in your terminal, run fastlane action match_nuke","title":"Documentation"},{"location":"actions/match_nuke/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run match_nuke To pass parameters, make use of the : symbol, for example fastlane run match_nuke parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/match_nuke/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/min_fastlane_version/","text":"min_fastlane_version Verifies the minimum fastlane version required Add this to your Fastfile to require a certain version of fastlane . Use it if you use an action that just recently came out and you need it. min_fastlane_version Supported platforms ios, android, mac Author @KrauseFx 1 Example min_fastlane_version(\"1.50.0\") Documentation To show the documentation in your terminal, run fastlane action min_fastlane_version CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run min_fastlane_version To pass parameters, make use of the : symbol, for example fastlane run min_fastlane_version parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"min_fastlane_version"},{"location":"actions/min_fastlane_version/#min_fastlane_version","text":"Verifies the minimum fastlane version required Add this to your Fastfile to require a certain version of fastlane . Use it if you use an action that just recently came out and you need it. min_fastlane_version Supported platforms ios, android, mac Author @KrauseFx","title":"min_fastlane_version"},{"location":"actions/min_fastlane_version/#1-example","text":"min_fastlane_version(\"1.50.0\")","title":"1 Example"},{"location":"actions/min_fastlane_version/#documentation","text":"To show the documentation in your terminal, run fastlane action min_fastlane_version","title":"Documentation"},{"location":"actions/min_fastlane_version/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run min_fastlane_version To pass parameters, make use of the : symbol, for example fastlane run min_fastlane_version parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/min_fastlane_version/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/modify_services/","text":"modify_services Modifies the services of the app created on Developer Portal The options are the same as :enable_services in the produce action modify_services Supported platforms ios Author @bhimsenpadalkar 1 Example modify_services( username: \"test.account@gmail.com\", app_identifier: \"com.someorg.app\", services: { push_notification: \"on\", associated_domains: \"off\", wallet: :on, apple_pay: :off, data_protection: true, multipath: false }) Parameters Key Description Default username Your Apple ID Username * app_identifier App Identifier (Bundle ID, e.g. com.krausefx.app) * services Array with Spaceship App Services (e.g. access_wifi: (on|off)(:on|:off)(true|false), app_attest: (on|off)(:on|:off)(true|false), app_group: (on|off)(:on|:off)(true|false), apple_pay: (on|off)(:on|:off)(true|false), associated_domains: (on|off)(:on|:off)(true|false), auto_fill_credential: (on|off)(:on|:off)(true|false), class_kit: (on|off)(:on|:off)(true|false), icloud: (legacy|cloudkit)(:on|:off)(true|false), custom_network_protocol: (on|off)(:on|:off)(true|false), data_protection: (complete|unlessopen|untilfirstauth)(:on|:off)(true|false), extended_virtual_address_space: (on|off)(:on|:off)(true|false), family_controls: (on|off)(:on|:off)(true|false), file_provider_testing_mode: (on|off)(:on|:off)(true|false), fonts: (on|off)(:on|:off)(true|false), game_center: (ios|mac)(:on|:off)(true|false), health_kit: (on|off)(:on|:off)(true|false), hls_interstitial_preview: (on|off)(:on|:off)(true|false), home_kit: (on|off)(:on|:off)(true|false), hotspot: (on|off)(:on|:off)(true|false), in_app_purchase: (on|off)(:on|:off)(true|false), inter_app_audio: (on|off)(:on|:off)(true|false), low_latency_hls: (on|off)(:on|:off)(true|false), managed_associated_domains: (on|off)(:on|:off)(true|false), maps: (on|off)(:on|:off)(true|false), multipath: (on|off)(:on|:off)(true|false), network_extension: (on|off)(:on|:off)(true|false), nfc_tag_reading: (on|off)(:on|:off)(true|false), personal_vpn: (on|off)(:on|:off)(true|false), passbook: (on|off)(:on|:off)(true|false), push_notification: (on|off)(:on|:off)(true|false), sign_in_with_apple: (on)(:on|:off)(true|false), siri_kit: (on|off)(:on|:off)(true|false), system_extension: (on|off)(:on|:off)(true|false), user_management: (on|off)(:on|:off)(true|false), vpn_configuration: (on|off)(:on|:off)(true|false), wallet: (on|off)(:on|:off)(true|false), wireless_accessory: (on|off)(:on|:off)(true|false), car_play_audio_app: (on|off)(:on|:off)(true|false), car_play_messaging_app: (on|off)(:on|:off)(true|false), car_play_navigation_app: (on|off)(:on|:off)(true|false), car_play_voip_calling_app: (on|off)(:on|:off)(true|false), critical_alerts: (on|off)(:on|:off)(true|false), hotspot_helper: (on|off)(:on|:off)(true|false), driver_kit: (on|off)(:on|:off)(true|false), driver_kit_endpoint_security: (on|off)(:on|:off)(true|false), driver_kit_family_hid_device: (on|off)(:on|:off)(true|false), driver_kit_family_networking: (on|off)(:on|:off)(true|false), driver_kit_family_serial: (on|off)(:on|:off)(true|false), driver_kit_hid_event_service: (on|off)(:on|:off)(true|false), driver_kit_transport_hid: (on|off)(:on|:off)(true|false), multitasking_camera_access: (on|off)(:on|:off)(true|false), sf_universal_link_api: (on|off)(:on|:off)(true|false), vp9_decoder: (on|off)(:on|:off)(true|false), music_kit: (on|off)(:on|:off)(true|false), shazam_kit: (on|off)(:on|:off)(true|false), communication_notifications: (on|off)(:on|:off)(true|false), group_activities: (on|off)(:on|:off)(true|false), health_kit_estimate_recalibration: (on|off)(:on|:off)(true|false), time_sensitive_notifications: (on|off)(:on|:off)(true|false)) {} team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action modify_services CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run modify_services To pass parameters, make use of the : symbol, for example fastlane run modify_services parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"modify_services"},{"location":"actions/modify_services/#modify_services","text":"Modifies the services of the app created on Developer Portal The options are the same as :enable_services in the produce action modify_services Supported platforms ios Author @bhimsenpadalkar","title":"modify_services"},{"location":"actions/modify_services/#1-example","text":"modify_services( username: \"test.account@gmail.com\", app_identifier: \"com.someorg.app\", services: { push_notification: \"on\", associated_domains: \"off\", wallet: :on, apple_pay: :off, data_protection: true, multipath: false })","title":"1 Example"},{"location":"actions/modify_services/#parameters","text":"Key Description Default username Your Apple ID Username * app_identifier App Identifier (Bundle ID, e.g. com.krausefx.app) * services Array with Spaceship App Services (e.g. access_wifi: (on|off)(:on|:off)(true|false), app_attest: (on|off)(:on|:off)(true|false), app_group: (on|off)(:on|:off)(true|false), apple_pay: (on|off)(:on|:off)(true|false), associated_domains: (on|off)(:on|:off)(true|false), auto_fill_credential: (on|off)(:on|:off)(true|false), class_kit: (on|off)(:on|:off)(true|false), icloud: (legacy|cloudkit)(:on|:off)(true|false), custom_network_protocol: (on|off)(:on|:off)(true|false), data_protection: (complete|unlessopen|untilfirstauth)(:on|:off)(true|false), extended_virtual_address_space: (on|off)(:on|:off)(true|false), family_controls: (on|off)(:on|:off)(true|false), file_provider_testing_mode: (on|off)(:on|:off)(true|false), fonts: (on|off)(:on|:off)(true|false), game_center: (ios|mac)(:on|:off)(true|false), health_kit: (on|off)(:on|:off)(true|false), hls_interstitial_preview: (on|off)(:on|:off)(true|false), home_kit: (on|off)(:on|:off)(true|false), hotspot: (on|off)(:on|:off)(true|false), in_app_purchase: (on|off)(:on|:off)(true|false), inter_app_audio: (on|off)(:on|:off)(true|false), low_latency_hls: (on|off)(:on|:off)(true|false), managed_associated_domains: (on|off)(:on|:off)(true|false), maps: (on|off)(:on|:off)(true|false), multipath: (on|off)(:on|:off)(true|false), network_extension: (on|off)(:on|:off)(true|false), nfc_tag_reading: (on|off)(:on|:off)(true|false), personal_vpn: (on|off)(:on|:off)(true|false), passbook: (on|off)(:on|:off)(true|false), push_notification: (on|off)(:on|:off)(true|false), sign_in_with_apple: (on)(:on|:off)(true|false), siri_kit: (on|off)(:on|:off)(true|false), system_extension: (on|off)(:on|:off)(true|false), user_management: (on|off)(:on|:off)(true|false), vpn_configuration: (on|off)(:on|:off)(true|false), wallet: (on|off)(:on|:off)(true|false), wireless_accessory: (on|off)(:on|:off)(true|false), car_play_audio_app: (on|off)(:on|:off)(true|false), car_play_messaging_app: (on|off)(:on|:off)(true|false), car_play_navigation_app: (on|off)(:on|:off)(true|false), car_play_voip_calling_app: (on|off)(:on|:off)(true|false), critical_alerts: (on|off)(:on|:off)(true|false), hotspot_helper: (on|off)(:on|:off)(true|false), driver_kit: (on|off)(:on|:off)(true|false), driver_kit_endpoint_security: (on|off)(:on|:off)(true|false), driver_kit_family_hid_device: (on|off)(:on|:off)(true|false), driver_kit_family_networking: (on|off)(:on|:off)(true|false), driver_kit_family_serial: (on|off)(:on|:off)(true|false), driver_kit_hid_event_service: (on|off)(:on|:off)(true|false), driver_kit_transport_hid: (on|off)(:on|:off)(true|false), multitasking_camera_access: (on|off)(:on|:off)(true|false), sf_universal_link_api: (on|off)(:on|:off)(true|false), vp9_decoder: (on|off)(:on|:off)(true|false), music_kit: (on|off)(:on|:off)(true|false), shazam_kit: (on|off)(:on|:off)(true|false), communication_notifications: (on|off)(:on|:off)(true|false), group_activities: (on|off)(:on|:off)(true|false), health_kit_estimate_recalibration: (on|off)(:on|:off)(true|false), time_sensitive_notifications: (on|off)(:on|:off)(true|false)) {} team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/modify_services/#documentation","text":"To show the documentation in your terminal, run fastlane action modify_services","title":"Documentation"},{"location":"actions/modify_services/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run modify_services To pass parameters, make use of the : symbol, for example fastlane run modify_services parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/modify_services/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/nexus_upload/","text":"nexus_upload Upload a file to Sonatype Nexus platform nexus_upload Supported platforms ios, android, mac Author @xfreebird, @mdio 2 Examples # for Nexus 2 nexus_upload( file: \"/path/to/file.ipa\", repo_id: \"artefacts\", repo_group_id: \"com.fastlane\", repo_project_name: \"ipa\", repo_project_version: \"1.13\", repo_classifier: \"dSYM\", # Optional endpoint: \"http://localhost:8081\", username: \"admin\", password: \"admin123\" ) # for Nexus 3 nexus_upload( nexus_version: 3, mount_path: \"\", file: \"/path/to/file.ipa\", repo_id: \"artefacts\", repo_group_id: \"com.fastlane\", repo_project_name: \"ipa\", repo_project_version: \"1.13\", repo_classifier: \"dSYM\", # Optional endpoint: \"http://localhost:8081\", username: \"admin\", password: \"admin123\" ) Parameters Key Description Default file File to be uploaded to Nexus repo_id Nexus repository id e.g. artefacts repo_group_id Nexus repository group id e.g. com.company repo_project_name Nexus repository commandect name. Only letters, digits, underscores(_), hyphens(-), and dots(.) are allowed repo_project_version Nexus repository commandect version repo_classifier Nexus repository artifact classifier (optional) endpoint Nexus endpoint e.g. http://nexus:8081 mount_path Nexus mount path (Nexus 3 instances have this configured as empty by default) /nexus username Nexus username password Nexus password ssl_verify Verify SSL true nexus_version Nexus major version 2 verbose Make detailed output false proxy_username Proxy username proxy_password Proxy password proxy_address Proxy address proxy_port Proxy port * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action nexus_upload CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run nexus_upload To pass parameters, make use of the : symbol, for example fastlane run nexus_upload parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"nexus_upload"},{"location":"actions/nexus_upload/#nexus_upload","text":"Upload a file to Sonatype Nexus platform nexus_upload Supported platforms ios, android, mac Author @xfreebird, @mdio","title":"nexus_upload"},{"location":"actions/nexus_upload/#2-examples","text":"# for Nexus 2 nexus_upload( file: \"/path/to/file.ipa\", repo_id: \"artefacts\", repo_group_id: \"com.fastlane\", repo_project_name: \"ipa\", repo_project_version: \"1.13\", repo_classifier: \"dSYM\", # Optional endpoint: \"http://localhost:8081\", username: \"admin\", password: \"admin123\" ) # for Nexus 3 nexus_upload( nexus_version: 3, mount_path: \"\", file: \"/path/to/file.ipa\", repo_id: \"artefacts\", repo_group_id: \"com.fastlane\", repo_project_name: \"ipa\", repo_project_version: \"1.13\", repo_classifier: \"dSYM\", # Optional endpoint: \"http://localhost:8081\", username: \"admin\", password: \"admin123\" )","title":"2 Examples"},{"location":"actions/nexus_upload/#parameters","text":"Key Description Default file File to be uploaded to Nexus repo_id Nexus repository id e.g. artefacts repo_group_id Nexus repository group id e.g. com.company repo_project_name Nexus repository commandect name. Only letters, digits, underscores(_), hyphens(-), and dots(.) are allowed repo_project_version Nexus repository commandect version repo_classifier Nexus repository artifact classifier (optional) endpoint Nexus endpoint e.g. http://nexus:8081 mount_path Nexus mount path (Nexus 3 instances have this configured as empty by default) /nexus username Nexus username password Nexus password ssl_verify Verify SSL true nexus_version Nexus major version 2 verbose Make detailed output false proxy_username Proxy username proxy_password Proxy password proxy_address Proxy address proxy_port Proxy port * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/nexus_upload/#documentation","text":"To show the documentation in your terminal, run fastlane action nexus_upload","title":"Documentation"},{"location":"actions/nexus_upload/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run nexus_upload To pass parameters, make use of the : symbol, for example fastlane run nexus_upload parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/nexus_upload/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/notarize/","text":"notarize Notarizes a macOS app notarize Supported platforms mac Author @zeplin Parameters Key Description Default package Path to package to notarize, e.g. .app bundle or disk image use_notarytool Whether to xcrun notarytool or xcrun altool * try_early_stapling Whether to try early stapling while the notarization request is in progress false skip_stapling Do not staple the notarization ticket to the artifact; useful for single file executables and ZIP archives false bundle_id Bundle identifier to uniquely identify the package username Apple ID username * asc_provider Provider short name for accounts associated with multiple providers print_log Whether to print notarization log file, listing issues on failure and warnings on success false verbose Whether to log requests false api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action notarize CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run notarize To pass parameters, make use of the : symbol, for example fastlane run notarize parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"notarize"},{"location":"actions/notarize/#notarize","text":"Notarizes a macOS app notarize Supported platforms mac Author @zeplin","title":"notarize"},{"location":"actions/notarize/#parameters","text":"Key Description Default package Path to package to notarize, e.g. .app bundle or disk image use_notarytool Whether to xcrun notarytool or xcrun altool * try_early_stapling Whether to try early stapling while the notarization request is in progress false skip_stapling Do not staple the notarization ticket to the artifact; useful for single file executables and ZIP archives false bundle_id Bundle identifier to uniquely identify the package username Apple ID username * asc_provider Provider short name for accounts associated with multiple providers print_log Whether to print notarization log file, listing issues on failure and warnings on success false verbose Whether to log requests false api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/notarize/#documentation","text":"To show the documentation in your terminal, run fastlane action notarize","title":"Documentation"},{"location":"actions/notarize/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run notarize To pass parameters, make use of the : symbol, for example fastlane run notarize parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/notarize/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/notification/","text":"notification Display a macOS notification with custom message and title notification Supported platforms ios, android, mac Author @champo, @cbowns, @KrauseFx, @amarcadet, @dusek 1 Example notification(subtitle: \"Finished Building\", message: \"Ready to upload...\") Parameters Key Description Default title The title to display in the notification fastlane subtitle A subtitle to display in the notification message The message to display in the notification sound The name of a sound to play when the notification appears (names are listed in Sound Preferences) activate Bundle identifier of application to be opened when the notification is clicked app_icon The URL of an image to display instead of the application icon (Mavericks+ only) content_image The URL of an image to display attached to the notification (Mavericks+ only) open URL of the resource to be opened when the notification is clicked execute Shell command to run when the notification is clicked * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action notification CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run notification To pass parameters, make use of the : symbol, for example fastlane run notification parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"notification"},{"location":"actions/notification/#notification","text":"Display a macOS notification with custom message and title notification Supported platforms ios, android, mac Author @champo, @cbowns, @KrauseFx, @amarcadet, @dusek","title":"notification"},{"location":"actions/notification/#1-example","text":"notification(subtitle: \"Finished Building\", message: \"Ready to upload...\")","title":"1 Example"},{"location":"actions/notification/#parameters","text":"Key Description Default title The title to display in the notification fastlane subtitle A subtitle to display in the notification message The message to display in the notification sound The name of a sound to play when the notification appears (names are listed in Sound Preferences) activate Bundle identifier of application to be opened when the notification is clicked app_icon The URL of an image to display instead of the application icon (Mavericks+ only) content_image The URL of an image to display attached to the notification (Mavericks+ only) open URL of the resource to be opened when the notification is clicked execute Shell command to run when the notification is clicked * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/notification/#documentation","text":"To show the documentation in your terminal, run fastlane action notification","title":"Documentation"},{"location":"actions/notification/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run notification To pass parameters, make use of the : symbol, for example fastlane run notification parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/notification/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/notify/","text":"notify Shows a macOS notification - use notification instead It's recommended to use the new notification action instead of notify notify Supported platforms ios, android, mac Author @champo, @KrauseFx Documentation To show the documentation in your terminal, run fastlane action notify CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run notify To pass parameters, make use of the : symbol, for example fastlane run notify parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"notify"},{"location":"actions/notify/#notify","text":"Shows a macOS notification - use notification instead It's recommended to use the new notification action instead of notify notify Supported platforms ios, android, mac Author @champo, @KrauseFx","title":"notify"},{"location":"actions/notify/#documentation","text":"To show the documentation in your terminal, run fastlane action notify","title":"Documentation"},{"location":"actions/notify/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run notify To pass parameters, make use of the : symbol, for example fastlane run notify parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/notify/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/number_of_commits/","text":"number_of_commits Return the number of commits in current git branch You can use this action to get the number of commits of this branch. This is useful if you want to set the build number to the number of commits. See fastlane actions number_of_commits for more details. number_of_commits Supported platforms ios, android, mac Author @onevcat, @samuelbeek Returns The total number of all commits in current git branch 2 Examples increment_build_number(build_number: number_of_commits) build_number = number_of_commits(all: true) increment_build_number(build_number: build_number) Parameters Key Description Default all Returns number of all commits instead of current branch * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action number_of_commits CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run number_of_commits To pass parameters, make use of the : symbol, for example fastlane run number_of_commits parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"number_of_commits"},{"location":"actions/number_of_commits/#number_of_commits","text":"Return the number of commits in current git branch You can use this action to get the number of commits of this branch. This is useful if you want to set the build number to the number of commits. See fastlane actions number_of_commits for more details. number_of_commits Supported platforms ios, android, mac Author @onevcat, @samuelbeek Returns The total number of all commits in current git branch","title":"number_of_commits"},{"location":"actions/number_of_commits/#2-examples","text":"increment_build_number(build_number: number_of_commits) build_number = number_of_commits(all: true) increment_build_number(build_number: build_number)","title":"2 Examples"},{"location":"actions/number_of_commits/#parameters","text":"Key Description Default all Returns number of all commits instead of current branch * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/number_of_commits/#documentation","text":"To show the documentation in your terminal, run fastlane action number_of_commits","title":"Documentation"},{"location":"actions/number_of_commits/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run number_of_commits To pass parameters, make use of the : symbol, for example fastlane run number_of_commits parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/number_of_commits/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/oclint/","text":"oclint Lints implementation files with OCLint Run the static analyzer tool OCLint for your project. You need to have a compile_commands.json file in your fastlane directory or pass a path to your file. oclint Supported platforms ios, android, mac Author @HeEAaD 1 Example oclint( compile_commands: \"commands.json\", # The JSON compilation database, use xctool reporter \"json-compilation-database\" select_regex: /ViewController.m/, # Select all files matching this regex exclude_regex: /Test.m/, # Exclude all files matching this regex report_type: \"pmd\", # The type of the report (default: html) max_priority_1: 10, # The max allowed number of priority 1 violations max_priority_2: 100, # The max allowed number of priority 2 violations max_priority_3: 1000, # The max allowed number of priority 3 violations thresholds: [ # Override the default behavior of rules \"LONG_LINE=200\", \"LONG_METHOD=200\" ], enable_rules: [ # List of rules to pick explicitly \"DoubleNegative\", \"SwitchStatementsDon'TNeedDefaultWhenFullyCovered\" ], disable_rules: [\"GotoStatement\"], # List of rules to disable list_enabled_rules: true, # List enabled rules enable_clang_static_analyzer: true, # Enable Clang Static Analyzer, and integrate results into OCLint report enable_global_analysis: true, # Compile every source, and analyze across global contexts (depends on number of source files, could results in high memory load) allow_duplicated_violations: true, # Allow duplicated violations in the OCLint report extra_arg: \"-Wno-everything\"# Additional argument to append to the compiler command line ) Parameters Key Description Default oclint_path The path to oclint binary oclint compile_commands The json compilation database, use xctool reporter 'json-compilation-database' compile_commands.json select_reqex DEPRECATED! Use :select_regex instead - Select all files matching this reqex select_regex Select all files matching this regex exclude_regex Exclude all files matching this regex report_type The type of the report (default: html) html report_path The reports file path list_enabled_rules List enabled rules false rc Override the default behavior of rules thresholds List of rule thresholds to override the default behavior of rules enable_rules List of rules to pick explicitly disable_rules List of rules to disable max_priority_1 The max allowed number of priority 1 violations max_priority_2 The max allowed number of priority 2 violations max_priority_3 The max allowed number of priority 3 violations enable_clang_static_analyzer Enable Clang Static Analyzer, and integrate results into OCLint report false enable_global_analysis Compile every source, and analyze across global contexts (depends on number of source files, could results in high memory load) false allow_duplicated_violations Allow duplicated violations in the OCLint report false extra_arg Additional argument to append to the compiler command line * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The oclint action generates the following Lane Variables: SharedValue Description SharedValues::FL_OCLINT_REPORT_PATH The reports file path To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action oclint CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run oclint To pass parameters, make use of the : symbol, for example fastlane run oclint parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"oclint"},{"location":"actions/oclint/#oclint","text":"Lints implementation files with OCLint Run the static analyzer tool OCLint for your project. You need to have a compile_commands.json file in your fastlane directory or pass a path to your file. oclint Supported platforms ios, android, mac Author @HeEAaD","title":"oclint"},{"location":"actions/oclint/#1-example","text":"oclint( compile_commands: \"commands.json\", # The JSON compilation database, use xctool reporter \"json-compilation-database\" select_regex: /ViewController.m/, # Select all files matching this regex exclude_regex: /Test.m/, # Exclude all files matching this regex report_type: \"pmd\", # The type of the report (default: html) max_priority_1: 10, # The max allowed number of priority 1 violations max_priority_2: 100, # The max allowed number of priority 2 violations max_priority_3: 1000, # The max allowed number of priority 3 violations thresholds: [ # Override the default behavior of rules \"LONG_LINE=200\", \"LONG_METHOD=200\" ], enable_rules: [ # List of rules to pick explicitly \"DoubleNegative\", \"SwitchStatementsDon'TNeedDefaultWhenFullyCovered\" ], disable_rules: [\"GotoStatement\"], # List of rules to disable list_enabled_rules: true, # List enabled rules enable_clang_static_analyzer: true, # Enable Clang Static Analyzer, and integrate results into OCLint report enable_global_analysis: true, # Compile every source, and analyze across global contexts (depends on number of source files, could results in high memory load) allow_duplicated_violations: true, # Allow duplicated violations in the OCLint report extra_arg: \"-Wno-everything\"# Additional argument to append to the compiler command line )","title":"1 Example"},{"location":"actions/oclint/#parameters","text":"Key Description Default oclint_path The path to oclint binary oclint compile_commands The json compilation database, use xctool reporter 'json-compilation-database' compile_commands.json select_reqex DEPRECATED! Use :select_regex instead - Select all files matching this reqex select_regex Select all files matching this regex exclude_regex Exclude all files matching this regex report_type The type of the report (default: html) html report_path The reports file path list_enabled_rules List enabled rules false rc Override the default behavior of rules thresholds List of rule thresholds to override the default behavior of rules enable_rules List of rules to pick explicitly disable_rules List of rules to disable max_priority_1 The max allowed number of priority 1 violations max_priority_2 The max allowed number of priority 2 violations max_priority_3 The max allowed number of priority 3 violations enable_clang_static_analyzer Enable Clang Static Analyzer, and integrate results into OCLint report false enable_global_analysis Compile every source, and analyze across global contexts (depends on number of source files, could results in high memory load) false allow_duplicated_violations Allow duplicated violations in the OCLint report false extra_arg Additional argument to append to the compiler command line * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/oclint/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The oclint action generates the following Lane Variables: SharedValue Description SharedValues::FL_OCLINT_REPORT_PATH The reports file path To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/oclint/#documentation","text":"To show the documentation in your terminal, run fastlane action oclint","title":"Documentation"},{"location":"actions/oclint/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run oclint To pass parameters, make use of the : symbol, for example fastlane run oclint parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/oclint/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/onesignal/","text":"onesignal Create or update a new OneSignal application You can use this action to automatically create or update a OneSignal application. You can also upload a .p12 with password, a GCM key, or both. onesignal Supported platforms ios, android Author @timothybarraclough, @smartshowltd 2 Examples onesignal( auth_token: \"Your OneSignal Auth Token\", app_name: \"Name for OneSignal App\", android_token: \"Your Android GCM key (optional)\", android_gcm_sender_id: \"Your Android GCM Sender ID (optional)\", apns_p12: \"Path to Apple .p12 file (optional)\", apns_p12_password: \"Password for .p12 file (optional)\", apns_env: \"production/sandbox (defaults to production)\", organization_id: \"Onesignal organization id (optional)\" ) onesignal( app_id: \"Your OneSignal App ID\", auth_token: \"Your OneSignal Auth Token\", app_name: \"New Name for OneSignal App\", android_token: \"Your Android GCM key (optional)\", android_gcm_sender_id: \"Your Android GCM Sender ID (optional)\", apns_p12: \"Path to Apple .p12 file (optional)\", apns_p12_password: \"Password for .p12 file (optional)\", apns_env: \"production/sandbox (defaults to production)\", organization_id: \"Onesignal organization id (optional)\" ) Parameters Key Description Default app_id OneSignal App ID. Setting this updates an existing app auth_token OneSignal Authorization Key app_name OneSignal App Name. This is required when creating an app (in other words, when :app_id is not set, and optional when updating an app android_token ANDROID GCM KEY android_gcm_sender_id GCM SENDER ID apns_p12 APNS P12 File (in .p12 format) apns_p12_password APNS P12 password apns_env APNS environment production organization_id OneSignal Organization ID * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The onesignal action generates the following Lane Variables: SharedValue Description SharedValues::ONE_SIGNAL_APP_ID The app ID of the newly created or updated app SharedValues::ONE_SIGNAL_APP_AUTH_KEY The auth token for the newly created or updated app To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action onesignal CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run onesignal To pass parameters, make use of the : symbol, for example fastlane run onesignal parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"onesignal"},{"location":"actions/onesignal/#onesignal","text":"Create or update a new OneSignal application You can use this action to automatically create or update a OneSignal application. You can also upload a .p12 with password, a GCM key, or both. onesignal Supported platforms ios, android Author @timothybarraclough, @smartshowltd","title":"onesignal"},{"location":"actions/onesignal/#2-examples","text":"onesignal( auth_token: \"Your OneSignal Auth Token\", app_name: \"Name for OneSignal App\", android_token: \"Your Android GCM key (optional)\", android_gcm_sender_id: \"Your Android GCM Sender ID (optional)\", apns_p12: \"Path to Apple .p12 file (optional)\", apns_p12_password: \"Password for .p12 file (optional)\", apns_env: \"production/sandbox (defaults to production)\", organization_id: \"Onesignal organization id (optional)\" ) onesignal( app_id: \"Your OneSignal App ID\", auth_token: \"Your OneSignal Auth Token\", app_name: \"New Name for OneSignal App\", android_token: \"Your Android GCM key (optional)\", android_gcm_sender_id: \"Your Android GCM Sender ID (optional)\", apns_p12: \"Path to Apple .p12 file (optional)\", apns_p12_password: \"Password for .p12 file (optional)\", apns_env: \"production/sandbox (defaults to production)\", organization_id: \"Onesignal organization id (optional)\" )","title":"2 Examples"},{"location":"actions/onesignal/#parameters","text":"Key Description Default app_id OneSignal App ID. Setting this updates an existing app auth_token OneSignal Authorization Key app_name OneSignal App Name. This is required when creating an app (in other words, when :app_id is not set, and optional when updating an app android_token ANDROID GCM KEY android_gcm_sender_id GCM SENDER ID apns_p12 APNS P12 File (in .p12 format) apns_p12_password APNS P12 password apns_env APNS environment production organization_id OneSignal Organization ID * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/onesignal/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The onesignal action generates the following Lane Variables: SharedValue Description SharedValues::ONE_SIGNAL_APP_ID The app ID of the newly created or updated app SharedValues::ONE_SIGNAL_APP_AUTH_KEY The auth token for the newly created or updated app To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/onesignal/#documentation","text":"To show the documentation in your terminal, run fastlane action onesignal","title":"Documentation"},{"location":"actions/onesignal/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run onesignal To pass parameters, make use of the : symbol, for example fastlane run onesignal parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/onesignal/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/opt_out_crash_reporting/","text":"opt_out_crash_reporting This will prevent reports from being uploaded when fastlane crashes fastlane doesn't have crash reporting any more. Feel free to remove opt_out_crash_reporting from your Fastfile. opt_out_crash_reporting Supported platforms ios, android, mac Author @mpirri, @ohayon Documentation To show the documentation in your terminal, run fastlane action opt_out_crash_reporting CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run opt_out_crash_reporting To pass parameters, make use of the : symbol, for example fastlane run opt_out_crash_reporting parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"opt_out_crash_reporting"},{"location":"actions/opt_out_crash_reporting/#opt_out_crash_reporting","text":"This will prevent reports from being uploaded when fastlane crashes fastlane doesn't have crash reporting any more. Feel free to remove opt_out_crash_reporting from your Fastfile. opt_out_crash_reporting Supported platforms ios, android, mac Author @mpirri, @ohayon","title":"opt_out_crash_reporting"},{"location":"actions/opt_out_crash_reporting/#documentation","text":"To show the documentation in your terminal, run fastlane action opt_out_crash_reporting","title":"Documentation"},{"location":"actions/opt_out_crash_reporting/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run opt_out_crash_reporting To pass parameters, make use of the : symbol, for example fastlane run opt_out_crash_reporting parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/opt_out_crash_reporting/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/opt_out_usage/","text":"opt_out_usage This will stop uploading the information which actions were run By default, fastlane will track what actions are being used. No personal/sensitive information is recorded. Learn more at https://docs.fastlane.tools/#metrics . Add opt_out_usage at the top of your Fastfile to disable metrics collection. opt_out_usage Supported platforms ios, android, mac Author @KrauseFx 1 Example opt_out_usage # add this to the top of your Fastfile Documentation To show the documentation in your terminal, run fastlane action opt_out_usage CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run opt_out_usage To pass parameters, make use of the : symbol, for example fastlane run opt_out_usage parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"opt_out_usage"},{"location":"actions/opt_out_usage/#opt_out_usage","text":"This will stop uploading the information which actions were run By default, fastlane will track what actions are being used. No personal/sensitive information is recorded. Learn more at https://docs.fastlane.tools/#metrics . Add opt_out_usage at the top of your Fastfile to disable metrics collection. opt_out_usage Supported platforms ios, android, mac Author @KrauseFx","title":"opt_out_usage"},{"location":"actions/opt_out_usage/#1-example","text":"opt_out_usage # add this to the top of your Fastfile","title":"1 Example"},{"location":"actions/opt_out_usage/#documentation","text":"To show the documentation in your terminal, run fastlane action opt_out_usage","title":"Documentation"},{"location":"actions/opt_out_usage/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run opt_out_usage To pass parameters, make use of the : symbol, for example fastlane run opt_out_usage parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/opt_out_usage/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/pem/","text":"pem Alias for the get_push_certificate action Automatically generate and renew your push notification profiles Tired of manually creating and maintaining your push notification profiles for your iOS apps? Tired of generating a pem file for your server? pem does all that for you, just by simply running pem . pem creates new .pem, .cer, and .p12 files to be uploaded to your push server if a valid push notification profile is needed. pem does not cover uploading the file to your server. To automate iOS Provisioning profiles you can use match . Features \u2022 Usage \u2022 How does it work? \u2022 Tips \u2022 Need help? pem is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Features Well, it's actually just one: Generate the pem file for your server. Check out this gif: Usage fastlane pem Yes, that's the whole command! This does the following: Create a new signing request Create a new push certification Downloads the certificate Generates a new .pem file in the current working directory, which you can upload to your server Note that pem will never revoke your existing certificates. pem can't download any of your existing push certificates, as the private key is only available on the machine it was created on. If you already have a push certificate enabled, which is active for at least 30 more days, pem will not create a new certificate. If you still want to create one, use the force : fastlane pem --force You can pass parameters like this: fastlane pem -a com.krausefx.app -u username If you want to generate a development certificate instead: fastlane pem --development If you want to generate a Website Push certificate: fastlane pem --website_push Set a password for your p12 file: fastlane pem -p \"MyPass\" You can specify a name for the output file: fastlane pem -o my.pem To get a list of available options run: fastlane action pem Note about empty p12 passwords and Keychain Access.app pem will produce a valid p12 without specifying a password, or using the empty-string as the password. While the file is valid, the Mac's Keychain Access will not allow you to open the file without specifying a passphrase. Instead, you may verify the file is valid using OpenSSL: openssl pkcs12 -info -in my.p12 If you need the p12 in your keychain, perhaps to test push with an app like Knuff or Pusher , you can use openssl to export the p12 to pem and back to p12 : % openssl pkcs12 -in my.p12 -out my.pem Enter Import Password: MAC verified OK Enter your pem passphrase: % openssl pkcs12 -export -in my.pem -out my-with-passphrase.p12 Enter pass phrase for temp.pem: Enter Export Password: Environment Variables Run fastlane action pem to get a list of available environment variables. How does it work? pem uses spaceship to communicate with the Apple Developer Portal to request a new push certificate for you. How is my password stored? pem uses the password manager from fastlane . Take a look the CredentialsManager README for more information. pem Supported platforms ios, mac Author @KrauseFx 3 Examples get_push_certificate pem # alias for \"get_push_certificate\" get_push_certificate( force: true, # create a new profile, even if the old one is still valid app_identifier: \"net.sunapps.9\", # optional app identifier, save_private_key: true, new_profile: proc do |profile_path| # this block gets called when a new profile was generated puts profile_path # the absolute path to the new PEM file # insert the code to upload the PEM file to the server end ) Parameters Key Description Default platform Set certificate's platform. Used for creation of production & development certificates. Supported platforms: ios, macos ios development Renew the development push certificate instead of the production one false website_push Create a Website Push certificate false generate_p12 Generate a p12 file additionally to a PEM file true active_days_limit If the current certificate is active for less than this number of days, generate a new one 30 force Create a new push certificate, even if the current one is active for 30 (or PEM_ACTIVE_DAYS_LIMIT) more days false save_private_key Set to save the private RSA key true app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * p12_password The password that is used for your p12 file pem_name The file name of the generated .pem file output_path The path to a directory in which all certificates and private keys should be stored . new_profile Block that is called if there is a new profile * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action pem CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run pem To pass parameters, make use of the : symbol, for example fastlane run pem parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"pem"},{"location":"actions/pem/#pem","text":"Alias for the get_push_certificate action","title":"pem"},{"location":"actions/pem/#features","text":"Well, it's actually just one: Generate the pem file for your server. Check out this gif:","title":"Features"},{"location":"actions/pem/#usage","text":"fastlane pem Yes, that's the whole command! This does the following: Create a new signing request Create a new push certification Downloads the certificate Generates a new .pem file in the current working directory, which you can upload to your server Note that pem will never revoke your existing certificates. pem can't download any of your existing push certificates, as the private key is only available on the machine it was created on. If you already have a push certificate enabled, which is active for at least 30 more days, pem will not create a new certificate. If you still want to create one, use the force : fastlane pem --force You can pass parameters like this: fastlane pem -a com.krausefx.app -u username If you want to generate a development certificate instead: fastlane pem --development If you want to generate a Website Push certificate: fastlane pem --website_push Set a password for your p12 file: fastlane pem -p \"MyPass\" You can specify a name for the output file: fastlane pem -o my.pem To get a list of available options run: fastlane action pem","title":"Usage"},{"location":"actions/pem/#environment-variables","text":"Run fastlane action pem to get a list of available environment variables.","title":"Environment Variables"},{"location":"actions/pem/#how-does-it-work","text":"pem uses spaceship to communicate with the Apple Developer Portal to request a new push certificate for you.","title":"How does it work?"},{"location":"actions/pem/#how-is-my-password-stored","text":"pem uses the password manager from fastlane . Take a look the CredentialsManager README for more information. pem Supported platforms ios, mac Author @KrauseFx","title":"How is my password stored?"},{"location":"actions/pem/#3-examples","text":"get_push_certificate pem # alias for \"get_push_certificate\" get_push_certificate( force: true, # create a new profile, even if the old one is still valid app_identifier: \"net.sunapps.9\", # optional app identifier, save_private_key: true, new_profile: proc do |profile_path| # this block gets called when a new profile was generated puts profile_path # the absolute path to the new PEM file # insert the code to upload the PEM file to the server end )","title":"3 Examples"},{"location":"actions/pem/#parameters","text":"Key Description Default platform Set certificate's platform. Used for creation of production & development certificates. Supported platforms: ios, macos ios development Renew the development push certificate instead of the production one false website_push Create a Website Push certificate false generate_p12 Generate a p12 file additionally to a PEM file true active_days_limit If the current certificate is active for less than this number of days, generate a new one 30 force Create a new push certificate, even if the current one is active for 30 (or PEM_ACTIVE_DAYS_LIMIT) more days false save_private_key Set to save the private RSA key true app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * p12_password The password that is used for your p12 file pem_name The file name of the generated .pem file output_path The path to a directory in which all certificates and private keys should be stored . new_profile Block that is called if there is a new profile * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/pem/#documentation","text":"To show the documentation in your terminal, run fastlane action pem","title":"Documentation"},{"location":"actions/pem/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run pem To pass parameters, make use of the : symbol, for example fastlane run pem parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/pem/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/pilot/","text":"pilot Alias for the upload_to_testflight action The best way to manage your TestFlight testers and builds from your terminal pilot makes it easier to manage your app on Apple\u2019s TestFlight. You can: Upload & distribute builds Add & remove testers Retrieve information about testers & devices Import/export all available testers pilot uses spaceship.airforce to interact with App Store Connect \ud83d\ude80 Usage \u2022 Tips pilot is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Usage For all commands, you can either use an API Key or your Apple ID . App Store Connect API Key The App Store Connect API Key is the preferred authentication method (if you are able to use it). Uses official App Store Connect API No need for 2FA Better performance over Apple ID Specify the API key using --api_key_path ./path/to/api_key_info.json or --api_key \"{\\\"key_id\\\": \\\"D83848D23\\\", \\\"issuer_id\\\": \\\"227b0bbf-ada8-458c-9d62-3d8022b7d07f\\\", \\\"key_filepath\\\": \\\"D83848D23.p8\\\"}\" Go to Using App Store Connect API for information on obtaining an API key, the fastlane api_key_info.json format, and other API key usage. Apple ID Specify the Apple ID to use using -u felix@krausefx.com . If you execute pilot in a project already using fastlane the username and app identifier will automatically be determined. Uploading builds To upload a new build, just run fastlane pilot upload This will automatically look for an ipa in your current directory and tries to fetch the login credentials from your fastlane setup . You'll be asked for any missing information. Additionally, you can pass all kinds of parameters: fastlane action pilot You can pass a changelog using fastlane pilot upload --changelog \"Something that is new here\" You can also skip the submission of the binary, which means, the ipa file will only be uploaded and not distributed to testers: fastlane pilot upload --skip_submission pilot does all kinds of magic for you: Automatically detects the bundle identifier from your ipa file Automatically fetch the AppID of your app based on the bundle identifier pilot uses spaceship to submit the build metadata and the iTunes Transporter to upload the binary. Because iTunes Transporter's upload capability is only supported on OS X, pilot upload does not work on Linux, as described in this issue List builds To list all builds for specific application use fastlane pilot builds The result lists all active builds and processing builds: +-----------+---------+----------+ | Great App Builds | +-----------+---------+----------+ | Version # | Build # | Installs | +-----------+---------+----------+ | 0.9.13 | 1 | 0 | | 0.9.13 | 2 | 0 | | 0.9.20 | 3 | 0 | | 0.9.20 | 4 | 3 | +-----------+---------+----------+ Managing beta testers List of Testers This command will list all your testers, both internal and external. fastlane pilot list The output will look like this: +--------+--------+--------------------------+-----------+ | Internal Testers | +--------+--------+--------------------------+-----------+ | First | Last | Email | # Devices | +--------+--------+--------------------------+-----------+ | Felix | Krause | felix@krausefx.com | 2 | +--------+--------+--------------------------+-----------+ +-----------+---------+----------------------------+-----------+ | External Testers | +-----------+---------+----------------------------+-----------+ | First | Last | Email | # Devices | +-----------+---------+----------------------------+-----------+ | Max | Manfred | email@email.com | 0 | | Detlef | M\u00fcller | detlef@krausefx.com | 1 | +-----------+---------+----------------------------+-----------+ Add a new tester To add a new tester to your App Store Connect account and to associate it to at least one testing group of your app, use the pilot add command. This will create a new tester (if necessary) or add an existing tester to the app to test. fastlane pilot add email@invite.com -g group-1,group-2 Additionally you can specify the app identifier (if necessary): fastlane pilot add email@email.com -a com.krausefx.app -g group-1,group-2 Find a tester To find a specific tester use fastlane pilot find felix@krausefx.com The resulting output will look like this: +---------------------+---------------------+ | felix@krausefx.com | +---------------------+---------------------+ | First name | Felix | | Last name | Krause | | Email | felix@krausefx.com | | Latest Version | 0.9.14 (23 | | Latest Install Date | 03/28/15 19:00 | | 2 Devices | \u2022 iPhone 6, iOS 8.3 | | | \u2022 iPhone 5, iOS 7.0 | +---------------------+---------------------+ Remove a tester This command will remove beta tester from app (from all internal and external groups) fastlane pilot remove felix@krausefx.com You can also use groups option to remove the tester from the groups specified: fastlane pilot remove felix@krausefx.com -g group-1,group-2 Export testers To export all external testers to a CSV file. Useful if you need to import tester info to another system or a new account. fastlane pilot export Import testers Add external testers from a CSV file. Create a file (ex: testers.csv ) and fill it with the following format: John,Appleseed,appleseed_john@mac.com,group-1;group-2 fastlane pilot import You can also specify the directory using fastlane pilot export -c ~/Desktop/testers.csv fastlane pilot import -c ~/Desktop/testers.csv Tips Debug information If you run into any issues you can use the verbose mode to get a more detailed output: fastlane pilot upload --verbose Firewall Issues pilot uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol from the command line using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" pilot ... If you are using pilot via the fastlane action , add the following to your Fastfile ENV[\"DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS\"] = \"-t DAV\" pilot... Note, however, that Apple recommends you don\u2019t specify the -t transport and instead allow Transporter to use automatic transport discovery to determine the best transport mode for your packages. For this reason, if the t option is passed, we will raise a warning. Also note that -t is not the only additional parameter that can be used. The string specified in the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS environment variable will be forwarded to Transporter. For all the available options, check Apple's Transporter User Guide . Credentials Issues If your password contains special characters, pilot may throw a confusing error saying your \"Your Apple ID or password was entered incorrectly\". The easiest way to fix this error is to change your password to something that does not contains special characters. How is my password stored? pilot uses the CredentialsManager from fastlane . Provider Short Name If you are on multiple App Store Connect teams, iTunes Transporter may need a provider short name to know where to upload your binary. pilot will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option. Use an Application Specific Password to upload pilot / upload_to_testflight can use an Application Specific Password via the FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD environment variable to upload a binary if both the skip_waiting_for_build_processing and apple_id options are set. (If any of those are not set, it will use the normal Apple login process that might require 2FA authentication.) Role for App Store Connect User pilot / upload_to_testflight updates build information and testers after the build has finished processing. App Store Connect requires the \"App Manager\" or \"Admin\" role for your Apple account to update this information. The \"Developer\" role will allow builds to be uploaded but will not allow updating of build information and testers. pilot Supported platforms ios, mac Author @KrauseFx 7 Examples upload_to_testflight testflight # alias for \"upload_to_testflight\" pilot # alias for \"upload_to_testflight\" upload_to_testflight(skip_submission: true) # to only upload the build upload_to_testflight( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) upload_to_testflight( beta_app_feedback_email: \"email@email.com\", beta_app_description: \"This is a description of my app\", demo_account_required: true, notify_external_testers: false, changelog: \"This is my changelog of things that have changed in a log\" ) upload_to_testflight( beta_app_review_info: { contact_email: \"email@email.com\", contact_first_name: \"Connect\", contact_last_name: \"API\", contact_phone: \"5558675309\", demo_account_name: \"demo@email.com\", demo_account_password: \"connectapi\", notes: \"this is review note for the reviewer <3 thank you for reviewing\" }, localized_app_info: { \"default\": { feedback_email: \"default@email.com\", marketing_url: \"https://example.com/marketing-defafult\", privacy_policy_url: \"https://example.com/privacy-defafult\", description: \"Default description\", }, \"en-GB\": { feedback_email: \"en-gb@email.com\", marketing_url: \"https://example.com/marketing-en-gb\", privacy_policy_url: \"https://example.com/privacy-en-gb\", description: \"en-gb description\", } }, localized_build_info: { \"default\": { whats_new: \"Default changelog\", }, \"en-GB\": { whats_new: \"en-gb changelog\", } } ) Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of the app to upload or manage testers (optional) * app_platform The platform to use (optional) apple_id Apple ID property in the App Information section in App Store Connect * ipa Path to the ipa file to upload * pkg Path to your pkg file * demo_account_required Do you need a demo account when Apple does review? beta_app_review_info Beta app review information for contact info and demo account localized_app_info Localized beta app test info for description, feedback email, marketing url, and privacy policy beta_app_description Provide the 'Beta App Description' when uploading a new build beta_app_feedback_email Provide the beta app email when uploading a new build localized_build_info Localized beta app test info for what's new changelog Provide the 'What to Test' text when uploading a new build skip_submission Skip the distributing action of pilot and only upload the ipa file false skip_waiting_for_build_processing If set to true, the distribute_external option won't work and no build will be distributed to testers. (You might want to use this option if you are using this action on CI and have to pay for 'minutes used' on your CI plan). If set to true and a changelog is provided, it will partially wait for the build to appear on AppStore Connect so the changelog can be set, and skip the remaining processing steps false update_build_info_on_upload DEPRECATED! Update build info immediately after validation. This is deprecated and will be removed in a future release. App Store Connect no longer supports setting build info until after build processing has completed, which is when build info is updated by default false distribute_only Distribute a previously uploaded build (equivalent to the fastlane pilot distribute command) false uses_non_exempt_encryption Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist false distribute_external Should the build be distributed to external testers? If set to true, use of groups option is required false notify_external_testers Should notify external testers? (Not setting a value will use App Store Connect's default which is to notify) app_version The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed build_number The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed expire_previous_builds Should expire previous builds? false first_name The tester's first name last_name The tester's last name email The tester's email testers_file_path Path to a CSV file of testers ./testers.csv groups Associate tester to one group or more by group name / group id. E.g. -g \"Team 1\",\"Team 2\" This is required when distribute_external option is set to true or when we want to add a tester to one or more external testing groups team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your team in the developer portal, if you're in multiple teams. Different from your iTC team ID! * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column wait_processing_interval Interval in seconds to wait for App Store Connect processing 30 wait_processing_timeout_duration Timeout duration in seconds to wait for App Store Connect processing. If set, after exceeding timeout duration, this will force stop to wait for App Store Connect processing and exit with exception wait_for_uploaded_build DEPRECATED! No longer needed with the transition over to the App Store Connect API - Use version info from uploaded ipa file to determine what build to use for distribution. If set to false, latest processing or any latest build will be used false reject_build_waiting_for_review Expire previous if it's 'waiting for review' false submit_beta_review Send the build for a beta review true * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action pilot CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run pilot To pass parameters, make use of the : symbol, for example fastlane run pilot parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"pilot"},{"location":"actions/pilot/#pilot","text":"Alias for the upload_to_testflight action","title":"pilot"},{"location":"actions/pilot/#usage","text":"For all commands, you can either use an API Key or your Apple ID .","title":"Usage"},{"location":"actions/pilot/#uploading-builds","text":"To upload a new build, just run fastlane pilot upload This will automatically look for an ipa in your current directory and tries to fetch the login credentials from your fastlane setup . You'll be asked for any missing information. Additionally, you can pass all kinds of parameters: fastlane action pilot You can pass a changelog using fastlane pilot upload --changelog \"Something that is new here\" You can also skip the submission of the binary, which means, the ipa file will only be uploaded and not distributed to testers: fastlane pilot upload --skip_submission pilot does all kinds of magic for you: Automatically detects the bundle identifier from your ipa file Automatically fetch the AppID of your app based on the bundle identifier pilot uses spaceship to submit the build metadata and the iTunes Transporter to upload the binary. Because iTunes Transporter's upload capability is only supported on OS X, pilot upload does not work on Linux, as described in this issue","title":"Uploading builds"},{"location":"actions/pilot/#list-builds","text":"To list all builds for specific application use fastlane pilot builds The result lists all active builds and processing builds: +-----------+---------+----------+ | Great App Builds | +-----------+---------+----------+ | Version # | Build # | Installs | +-----------+---------+----------+ | 0.9.13 | 1 | 0 | | 0.9.13 | 2 | 0 | | 0.9.20 | 3 | 0 | | 0.9.20 | 4 | 3 | +-----------+---------+----------+","title":"List builds"},{"location":"actions/pilot/#managing-beta-testers","text":"","title":"Managing beta testers"},{"location":"actions/pilot/#tips","text":"","title":"Tips"},{"location":"actions/pilot/#debug-information","text":"If you run into any issues you can use the verbose mode to get a more detailed output: fastlane pilot upload --verbose","title":"Debug information"},{"location":"actions/pilot/#firewall-issues","text":"pilot uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol from the command line using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" pilot ... If you are using pilot via the fastlane action , add the following to your Fastfile ENV[\"DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS\"] = \"-t DAV\" pilot... Note, however, that Apple recommends you don\u2019t specify the -t transport and instead allow Transporter to use automatic transport discovery to determine the best transport mode for your packages. For this reason, if the t option is passed, we will raise a warning. Also note that -t is not the only additional parameter that can be used. The string specified in the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS environment variable will be forwarded to Transporter. For all the available options, check Apple's Transporter User Guide .","title":"Firewall Issues"},{"location":"actions/pilot/#credentials-issues","text":"If your password contains special characters, pilot may throw a confusing error saying your \"Your Apple ID or password was entered incorrectly\". The easiest way to fix this error is to change your password to something that does not contains special characters.","title":"Credentials Issues"},{"location":"actions/pilot/#how-is-my-password-stored","text":"pilot uses the CredentialsManager from fastlane .","title":"How is my password stored?"},{"location":"actions/pilot/#provider-short-name","text":"If you are on multiple App Store Connect teams, iTunes Transporter may need a provider short name to know where to upload your binary. pilot will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option.","title":"Provider Short Name"},{"location":"actions/pilot/#use-an-application-specific-password-to-upload","text":"pilot / upload_to_testflight can use an Application Specific Password via the FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD environment variable to upload a binary if both the skip_waiting_for_build_processing and apple_id options are set. (If any of those are not set, it will use the normal Apple login process that might require 2FA authentication.)","title":"Use an Application Specific Password to upload"},{"location":"actions/pilot/#role-for-app-store-connect-user","text":"pilot / upload_to_testflight updates build information and testers after the build has finished processing. App Store Connect requires the \"App Manager\" or \"Admin\" role for your Apple account to update this information. The \"Developer\" role will allow builds to be uploaded but will not allow updating of build information and testers. pilot Supported platforms ios, mac Author @KrauseFx","title":"Role for App Store Connect User"},{"location":"actions/pilot/#7-examples","text":"upload_to_testflight testflight # alias for \"upload_to_testflight\" pilot # alias for \"upload_to_testflight\" upload_to_testflight(skip_submission: true) # to only upload the build upload_to_testflight( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) upload_to_testflight( beta_app_feedback_email: \"email@email.com\", beta_app_description: \"This is a description of my app\", demo_account_required: true, notify_external_testers: false, changelog: \"This is my changelog of things that have changed in a log\" ) upload_to_testflight( beta_app_review_info: { contact_email: \"email@email.com\", contact_first_name: \"Connect\", contact_last_name: \"API\", contact_phone: \"5558675309\", demo_account_name: \"demo@email.com\", demo_account_password: \"connectapi\", notes: \"this is review note for the reviewer <3 thank you for reviewing\" }, localized_app_info: { \"default\": { feedback_email: \"default@email.com\", marketing_url: \"https://example.com/marketing-defafult\", privacy_policy_url: \"https://example.com/privacy-defafult\", description: \"Default description\", }, \"en-GB\": { feedback_email: \"en-gb@email.com\", marketing_url: \"https://example.com/marketing-en-gb\", privacy_policy_url: \"https://example.com/privacy-en-gb\", description: \"en-gb description\", } }, localized_build_info: { \"default\": { whats_new: \"Default changelog\", }, \"en-GB\": { whats_new: \"en-gb changelog\", } } )","title":"7 Examples"},{"location":"actions/pilot/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of the app to upload or manage testers (optional) * app_platform The platform to use (optional) apple_id Apple ID property in the App Information section in App Store Connect * ipa Path to the ipa file to upload * pkg Path to your pkg file * demo_account_required Do you need a demo account when Apple does review? beta_app_review_info Beta app review information for contact info and demo account localized_app_info Localized beta app test info for description, feedback email, marketing url, and privacy policy beta_app_description Provide the 'Beta App Description' when uploading a new build beta_app_feedback_email Provide the beta app email when uploading a new build localized_build_info Localized beta app test info for what's new changelog Provide the 'What to Test' text when uploading a new build skip_submission Skip the distributing action of pilot and only upload the ipa file false skip_waiting_for_build_processing If set to true, the distribute_external option won't work and no build will be distributed to testers. (You might want to use this option if you are using this action on CI and have to pay for 'minutes used' on your CI plan). If set to true and a changelog is provided, it will partially wait for the build to appear on AppStore Connect so the changelog can be set, and skip the remaining processing steps false update_build_info_on_upload DEPRECATED! Update build info immediately after validation. This is deprecated and will be removed in a future release. App Store Connect no longer supports setting build info until after build processing has completed, which is when build info is updated by default false distribute_only Distribute a previously uploaded build (equivalent to the fastlane pilot distribute command) false uses_non_exempt_encryption Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist false distribute_external Should the build be distributed to external testers? If set to true, use of groups option is required false notify_external_testers Should notify external testers? (Not setting a value will use App Store Connect's default which is to notify) app_version The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed build_number The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed expire_previous_builds Should expire previous builds? false first_name The tester's first name last_name The tester's last name email The tester's email testers_file_path Path to a CSV file of testers ./testers.csv groups Associate tester to one group or more by group name / group id. E.g. -g \"Team 1\",\"Team 2\" This is required when distribute_external option is set to true or when we want to add a tester to one or more external testing groups team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your team in the developer portal, if you're in multiple teams. Different from your iTC team ID! * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column wait_processing_interval Interval in seconds to wait for App Store Connect processing 30 wait_processing_timeout_duration Timeout duration in seconds to wait for App Store Connect processing. If set, after exceeding timeout duration, this will force stop to wait for App Store Connect processing and exit with exception wait_for_uploaded_build DEPRECATED! No longer needed with the transition over to the App Store Connect API - Use version info from uploaded ipa file to determine what build to use for distribution. If set to false, latest processing or any latest build will be used false reject_build_waiting_for_review Expire previous if it's 'waiting for review' false submit_beta_review Send the build for a beta review true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/pilot/#documentation","text":"To show the documentation in your terminal, run fastlane action pilot","title":"Documentation"},{"location":"actions/pilot/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run pilot To pass parameters, make use of the : symbol, for example fastlane run pilot parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/pilot/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/plugin_scores/","text":"plugin_scores \u001b[31mNo description provided\u001b[0m plugin_scores | -----|---- Supported platforms | ios, android, mac Author | @KrauseFx Parameters Key Description Default * = default value is dependent on the user's system To show the documentation in your terminal, run fastlane action plugin_scores View source code Back to actions","title":"Plugin scores"},{"location":"actions/plugin_scores/#plugin_scores","text":"\u001b[31mNo description provided\u001b[0m plugin_scores | -----|---- Supported platforms | ios, android, mac Author | @KrauseFx","title":"plugin_scores"},{"location":"actions/plugin_scores/#parameters","text":"Key Description Default * = default value is dependent on the user's system To show the documentation in your terminal, run fastlane action plugin_scores View source code Back to actions","title":"Parameters"},{"location":"actions/pod_lib_lint/","text":"pod_lib_lint Pod lib lint Test the syntax of your Podfile by linting the pod against the files of its directory pod_lib_lint Supported platforms ios, mac Author @thierryxing 4 Examples pod_lib_lint # Allow output detail in console pod_lib_lint(verbose: true) # Allow warnings during pod lint pod_lib_lint(allow_warnings: true) # If the podspec has a dependency on another private pod, then you will have to supply the sources pod_lib_lint(sources: [\"https://github.com/username/Specs\", \"https://github.com/CocoaPods/Specs\"]) Parameters Key Description Default use_bundle_exec Use bundle exec when there is a Gemfile presented true podspec Path of spec to lint verbose Allow output detail in console allow_warnings Allow warnings during pod lint sources The sources of repos you want the pod spec to lint with, separated by commas subspec A specific subspec to lint instead of the entire spec include_podspecs A Glob of additional ancillary podspecs which are used for linting via :path (available since cocoapods >= 1.7) external_podspecs A Glob of additional ancillary podspecs which are used for linting via :podspec. If there are --include-podspecs, then these are removed from them (available since cocoapods >= 1.7) swift_version The SWIFT_VERSION that should be used to lint the spec. This takes precedence over a .swift-version file use_libraries Lint uses static libraries to install the spec false use_modular_headers Lint using modular libraries (available since cocoapods >= 1.6) false fail_fast Lint stops on the first failing platform or subspec false private Lint skips checks that apply only to public specs false quick Lint skips checks that would require to download and build the spec false no_clean Lint leaves the build directory intact for inspection false no_subspecs Lint skips validation of subspecs false platforms Lint against specific platforms (defaults to all platforms supported by the podspec). Multiple platforms must be comma-delimited (available since cocoapods >= 1.6) skip_import_validation Lint skips validating that the pod can be imported (available since cocoapods >= 1.3) false skip_tests Lint skips building and running tests during validation (available since cocoapods >= 1.3) false analyze Validate with the Xcode Static Analysis tool (available since cocoapods >= 1.6.1) false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action pod_lib_lint CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run pod_lib_lint To pass parameters, make use of the : symbol, for example fastlane run pod_lib_lint parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"pod_lib_lint"},{"location":"actions/pod_lib_lint/#pod_lib_lint","text":"Pod lib lint Test the syntax of your Podfile by linting the pod against the files of its directory pod_lib_lint Supported platforms ios, mac Author @thierryxing","title":"pod_lib_lint"},{"location":"actions/pod_lib_lint/#4-examples","text":"pod_lib_lint # Allow output detail in console pod_lib_lint(verbose: true) # Allow warnings during pod lint pod_lib_lint(allow_warnings: true) # If the podspec has a dependency on another private pod, then you will have to supply the sources pod_lib_lint(sources: [\"https://github.com/username/Specs\", \"https://github.com/CocoaPods/Specs\"])","title":"4 Examples"},{"location":"actions/pod_lib_lint/#parameters","text":"Key Description Default use_bundle_exec Use bundle exec when there is a Gemfile presented true podspec Path of spec to lint verbose Allow output detail in console allow_warnings Allow warnings during pod lint sources The sources of repos you want the pod spec to lint with, separated by commas subspec A specific subspec to lint instead of the entire spec include_podspecs A Glob of additional ancillary podspecs which are used for linting via :path (available since cocoapods >= 1.7) external_podspecs A Glob of additional ancillary podspecs which are used for linting via :podspec. If there are --include-podspecs, then these are removed from them (available since cocoapods >= 1.7) swift_version The SWIFT_VERSION that should be used to lint the spec. This takes precedence over a .swift-version file use_libraries Lint uses static libraries to install the spec false use_modular_headers Lint using modular libraries (available since cocoapods >= 1.6) false fail_fast Lint stops on the first failing platform or subspec false private Lint skips checks that apply only to public specs false quick Lint skips checks that would require to download and build the spec false no_clean Lint leaves the build directory intact for inspection false no_subspecs Lint skips validation of subspecs false platforms Lint against specific platforms (defaults to all platforms supported by the podspec). Multiple platforms must be comma-delimited (available since cocoapods >= 1.6) skip_import_validation Lint skips validating that the pod can be imported (available since cocoapods >= 1.3) false skip_tests Lint skips building and running tests during validation (available since cocoapods >= 1.3) false analyze Validate with the Xcode Static Analysis tool (available since cocoapods >= 1.6.1) false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/pod_lib_lint/#documentation","text":"To show the documentation in your terminal, run fastlane action pod_lib_lint","title":"Documentation"},{"location":"actions/pod_lib_lint/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run pod_lib_lint To pass parameters, make use of the : symbol, for example fastlane run pod_lib_lint parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/pod_lib_lint/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/pod_push/","text":"pod_push Push a Podspec to Trunk or a private repository pod_push Supported platforms ios, mac Author @squarefrog 4 Examples # If no path is supplied then Trunk will attempt to find the first Podspec in the current directory. pod_push # Alternatively, supply the Podspec file path pod_push(path: \"TSMessages.podspec\") # You may also push to a private repo instead of Trunk pod_push(path: \"TSMessages.podspec\", repo: \"MyRepo\") # If the podspec has a dependency on another private pod, then you will have to supply the sources you want the podspec to lint with for pod_push to succeed. Read more here - https://github.com/CocoaPods/CocoaPods/issues/2543. pod_push(path: \"TMessages.podspec\", repo: \"MyRepo\", sources: [\"https://github.com/username/Specs\", \"https://github.com/CocoaPods/Specs\"]) Parameters Key Description Default use_bundle_exec Use bundle exec when there is a Gemfile presented false path The Podspec you want to push repo The repo you want to push. Pushes to Trunk by default allow_warnings Allow warnings during pod push use_libraries Allow lint to use static libraries to install the spec sources The sources of repos you want the pod spec to lint with, separated by commas swift_version The SWIFT_VERSION that should be used to lint the spec. This takes precedence over a .swift-version file skip_import_validation Lint skips validating that the pod can be imported skip_tests Lint skips building and running tests during validation use_json Convert the podspec to JSON before pushing it to the repo verbose Show more debugging information false use_modular_headers Use modular headers option during validation synchronous If validation depends on other recently pushed pods, synchronize no_overwrite Disallow pushing that would overwrite an existing spec local_only Does not perform the step of pushing REPO to its remote * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action pod_push CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run pod_push To pass parameters, make use of the : symbol, for example fastlane run pod_push parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"pod_push"},{"location":"actions/pod_push/#pod_push","text":"Push a Podspec to Trunk or a private repository pod_push Supported platforms ios, mac Author @squarefrog","title":"pod_push"},{"location":"actions/pod_push/#4-examples","text":"# If no path is supplied then Trunk will attempt to find the first Podspec in the current directory. pod_push # Alternatively, supply the Podspec file path pod_push(path: \"TSMessages.podspec\") # You may also push to a private repo instead of Trunk pod_push(path: \"TSMessages.podspec\", repo: \"MyRepo\") # If the podspec has a dependency on another private pod, then you will have to supply the sources you want the podspec to lint with for pod_push to succeed. Read more here - https://github.com/CocoaPods/CocoaPods/issues/2543. pod_push(path: \"TMessages.podspec\", repo: \"MyRepo\", sources: [\"https://github.com/username/Specs\", \"https://github.com/CocoaPods/Specs\"])","title":"4 Examples"},{"location":"actions/pod_push/#parameters","text":"Key Description Default use_bundle_exec Use bundle exec when there is a Gemfile presented false path The Podspec you want to push repo The repo you want to push. Pushes to Trunk by default allow_warnings Allow warnings during pod push use_libraries Allow lint to use static libraries to install the spec sources The sources of repos you want the pod spec to lint with, separated by commas swift_version The SWIFT_VERSION that should be used to lint the spec. This takes precedence over a .swift-version file skip_import_validation Lint skips validating that the pod can be imported skip_tests Lint skips building and running tests during validation use_json Convert the podspec to JSON before pushing it to the repo verbose Show more debugging information false use_modular_headers Use modular headers option during validation synchronous If validation depends on other recently pushed pods, synchronize no_overwrite Disallow pushing that would overwrite an existing spec local_only Does not perform the step of pushing REPO to its remote * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/pod_push/#documentation","text":"To show the documentation in your terminal, run fastlane action pod_push","title":"Documentation"},{"location":"actions/pod_push/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run pod_push To pass parameters, make use of the : symbol, for example fastlane run pod_push parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/pod_push/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/podio_item/","text":"podio_item Creates or updates an item within your Podio app Use this action to create or update an item within your Podio app (see https://help.podio.com/hc/en-us/articles/201019278-Creating-apps- ). Pass in dictionary with field keys and their values. Field key is located under Modify app -> Advanced -> Developer -> External ID (see https://developers.podio.com/examples/items ). podio_item Supported platforms ios, android, mac Author @pprochazka72, @laugejepsen 1 Example podio_item( identifying_value: \"Your unique value\", other_fields: { \"field1\" => \"fieldValue\", \"field2\" => \"fieldValue2\" } ) Parameters Key Description Default client_id Client ID for Podio API (see https://developers.podio.com/api-key) client_secret Client secret for Podio API (see https://developers.podio.com/api-key) app_id App ID of the app you intend to authenticate with (see https://developers.podio.com/authentication/app_auth) app_token App token of the app you intend to authenticate with (see https://developers.podio.com/authentication/app_auth) identifying_field String specifying the field key used for identification of an item identifying_value String uniquely specifying an item within the app other_fields Dictionary of your app fields. Podio supports several field types, see https://developers.podio.com/doc/items * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The podio_item action generates the following Lane Variables: SharedValue Description SharedValues::PODIO_ITEM_URL URL to newly created (or updated) Podio item To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action podio_item CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run podio_item To pass parameters, make use of the : symbol, for example fastlane run podio_item parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"podio_item"},{"location":"actions/podio_item/#podio_item","text":"Creates or updates an item within your Podio app Use this action to create or update an item within your Podio app (see https://help.podio.com/hc/en-us/articles/201019278-Creating-apps- ). Pass in dictionary with field keys and their values. Field key is located under Modify app -> Advanced -> Developer -> External ID (see https://developers.podio.com/examples/items ). podio_item Supported platforms ios, android, mac Author @pprochazka72, @laugejepsen","title":"podio_item"},{"location":"actions/podio_item/#1-example","text":"podio_item( identifying_value: \"Your unique value\", other_fields: { \"field1\" => \"fieldValue\", \"field2\" => \"fieldValue2\" } )","title":"1 Example"},{"location":"actions/podio_item/#parameters","text":"Key Description Default client_id Client ID for Podio API (see https://developers.podio.com/api-key) client_secret Client secret for Podio API (see https://developers.podio.com/api-key) app_id App ID of the app you intend to authenticate with (see https://developers.podio.com/authentication/app_auth) app_token App token of the app you intend to authenticate with (see https://developers.podio.com/authentication/app_auth) identifying_field String specifying the field key used for identification of an item identifying_value String uniquely specifying an item within the app other_fields Dictionary of your app fields. Podio supports several field types, see https://developers.podio.com/doc/items * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/podio_item/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The podio_item action generates the following Lane Variables: SharedValue Description SharedValues::PODIO_ITEM_URL URL to newly created (or updated) Podio item To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/podio_item/#documentation","text":"To show the documentation in your terminal, run fastlane action podio_item","title":"Documentation"},{"location":"actions/podio_item/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run podio_item To pass parameters, make use of the : symbol, for example fastlane run podio_item parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/podio_item/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/precheck/","text":"precheck Alias for the check_app_store_metadata action precheck Check your app using a community driven set of App Store review rules to avoid being rejected Apple rejects builds for many avoidable metadata issues like including swear words \ud83d\ude2e, other companies\u2019 trademarks, or even mentioning an iOS bug \ud83d\udc1b. fastlane precheck takes a lot of the guess work out by scanning your app\u2019s details in App Store Connect for avoidable problems. fastlane precheck helps you get your app through app review without rejections so you can ship faster \ud83d\ude80 Features \u2022 Usage \u2022 Example \u2022 How does it work? Features precheck Features \ud83d\udc1b \uf8ff product bug mentions \ud83d\ude45 Swear word checker \ud83e\udd16 Mentioning other platforms \ud83d\ude35 URL reachability checker \ud83d\udcdd Placeholder/test words/mentioning future features \ud83d\udcc5 Copyright date checking \ud83d\ude48 Customizable word list checking \ud83d\udce2 You can decide if you want to warn about potential problems and continue or have fastlane show an error and stop after all scans are done Usage Run fastlane precheck to check the app metadata from App Store Connect fastlane precheck To get a list of available options run fastlane action precheck Example Since you might want to manually trigger precheck but don't want to specify all the parameters every time, you can store your defaults in a so called Precheckfile . Run fastlane precheck init to create a new configuration file. Example: # indicates that your metadata will not be checked by this rule negative_apple_sentiment(level: :skip) # when triggered, this rule will warn you of a potential problem curse_words(level: :warn) # show error and prevent any further commands from running after fastlane precheck finishes unreachable_urls(level: :error) # pass in whatever words you want to check for custom_text(data: [\"chrome\", \"webos\"], level: :warn) Use with fastlane precheck is fully integrated with deliver another fastlane tool. Update your Fastfile to contain the following code: lane :production do # ... # by default deliver will call precheck and warn you of any problems # if you want precheck to halt submitting to app review, you can pass # precheck_default_rule_level: :error deliver(precheck_default_rule_level: :error) # ... end # or if you prefer, you can run precheck alone lane :check_metadata do precheck end How does it work? precheck will access App Store Connect to download your app's metadata. It uses spaceship to communicate with Apple's web services. Want to improve precheck's rules? Please submit an issue on GitHub and provide information about your App Store rejection! Make sure you scrub out any personally identifiable information since this will be public. precheck Supported platforms ios Author @taquitos Returns true if precheck passes, else, false 2 Examples check_app_store_metadata( negative_apple_sentiment: [level: :skip], # Set to skip to not run the `negative_apple_sentiment` rule curse_words: [level: :warn] # Set to warn to only warn on curse word check failures ) precheck # alias for \"check_app_store_metadata\" Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * platform The platform to use (optional) ios default_rule_level The default rule level unless otherwise configured :error include_in_app_purchases Should check in-app purchases? true use_live Should force check live app? false negative_apple_sentiment mentioning \uf8ff in a way that could be considered negative placeholder_text using placeholder text (e.g.:\"lorem ipsum\", \"text here\", etc...) other_platforms mentioning other platforms, like Android or Blackberry future_functionality mentioning features or content that is not currently available in your app test_words using text indicating this release is a test curse_words including words that might be considered objectionable free_stuff_in_iap using text indicating that your IAP is free custom_text mentioning any of the user-specified words passed to custom_text(data: [words]) copyright_date using a copyright date that is any different from this current year, or missing a date unreachable_urls unreachable URLs in app metadata * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action precheck CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run precheck To pass parameters, make use of the : symbol, for example fastlane run precheck parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"precheck"},{"location":"actions/precheck/#precheck","text":"Alias for the check_app_store_metadata action","title":"precheck"},{"location":"actions/precheck/#precheck_1","text":"","title":"precheck"},{"location":"actions/precheck/#features","text":"precheck Features \ud83d\udc1b \uf8ff product bug mentions \ud83d\ude45 Swear word checker \ud83e\udd16 Mentioning other platforms \ud83d\ude35 URL reachability checker \ud83d\udcdd Placeholder/test words/mentioning future features \ud83d\udcc5 Copyright date checking \ud83d\ude48 Customizable word list checking \ud83d\udce2 You can decide if you want to warn about potential problems and continue or have fastlane show an error and stop after all scans are done","title":"Features"},{"location":"actions/precheck/#usage","text":"Run fastlane precheck to check the app metadata from App Store Connect fastlane precheck To get a list of available options run fastlane action precheck","title":"Usage"},{"location":"actions/precheck/#example","text":"Since you might want to manually trigger precheck but don't want to specify all the parameters every time, you can store your defaults in a so called Precheckfile . Run fastlane precheck init to create a new configuration file. Example: # indicates that your metadata will not be checked by this rule negative_apple_sentiment(level: :skip) # when triggered, this rule will warn you of a potential problem curse_words(level: :warn) # show error and prevent any further commands from running after fastlane precheck finishes unreachable_urls(level: :error) # pass in whatever words you want to check for custom_text(data: [\"chrome\", \"webos\"], level: :warn)","title":"Example"},{"location":"actions/precheck/#how-does-it-work","text":"precheck will access App Store Connect to download your app's metadata. It uses spaceship to communicate with Apple's web services.","title":"How does it work?"},{"location":"actions/precheck/#want-to-improve-prechecks-rules","text":"Please submit an issue on GitHub and provide information about your App Store rejection! Make sure you scrub out any personally identifiable information since this will be public. precheck Supported platforms ios Author @taquitos Returns true if precheck passes, else, false","title":"Want to improve precheck's rules?"},{"location":"actions/precheck/#2-examples","text":"check_app_store_metadata( negative_apple_sentiment: [level: :skip], # Set to skip to not run the `negative_apple_sentiment` rule curse_words: [level: :warn] # Set to warn to only warn on curse word check failures ) precheck # alias for \"check_app_store_metadata\"","title":"2 Examples"},{"location":"actions/precheck/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * platform The platform to use (optional) ios default_rule_level The default rule level unless otherwise configured :error include_in_app_purchases Should check in-app purchases? true use_live Should force check live app? false negative_apple_sentiment mentioning \uf8ff in a way that could be considered negative placeholder_text using placeholder text (e.g.:\"lorem ipsum\", \"text here\", etc...) other_platforms mentioning other platforms, like Android or Blackberry future_functionality mentioning features or content that is not currently available in your app test_words using text indicating this release is a test curse_words including words that might be considered objectionable free_stuff_in_iap using text indicating that your IAP is free custom_text mentioning any of the user-specified words passed to custom_text(data: [words]) copyright_date using a copyright date that is any different from this current year, or missing a date unreachable_urls unreachable URLs in app metadata * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/precheck/#documentation","text":"To show the documentation in your terminal, run fastlane action precheck","title":"Documentation"},{"location":"actions/precheck/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run precheck To pass parameters, make use of the : symbol, for example fastlane run precheck parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/precheck/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/println/","text":"println Alias for the puts action println Supported platforms ios, android, mac Author @KrauseFx 1 Example puts \"Hi there\" Parameters Key Description Default message Message to be printed out * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action println CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run println To pass parameters, make use of the : symbol, for example fastlane run println parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"println"},{"location":"actions/println/#println","text":"Alias for the puts action println Supported platforms ios, android, mac Author @KrauseFx","title":"println"},{"location":"actions/println/#1-example","text":"puts \"Hi there\"","title":"1 Example"},{"location":"actions/println/#parameters","text":"Key Description Default message Message to be printed out * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/println/#documentation","text":"To show the documentation in your terminal, run fastlane action println","title":"Documentation"},{"location":"actions/println/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run println To pass parameters, make use of the : symbol, for example fastlane run println parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/println/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/produce/","text":"produce Alias for the create_app_online action Create new iOS apps on App Store Connect and Apple Developer Portal using your command line produce creates new iOS apps on both the Apple Developer Portal and App Store Connect with the minimum required information. Features \u2022 Usage \u2022 How does it work? Features Create new apps on both App Store Connect and the Apple Developer Portal Modify Application Services on the Apple Developer Portal Create App Groups on the Apple Developer Portal Associate apps with App Groups on the Apple Developer Portal Create iCloud Containers on the Apple Developer Portal Associate apps with iCloud Containers on the Apple Developer Portal Create Merchant Identifiers on the Apple Developer Portal Associate apps with Merchant Identifiers on the Apple Developer Portal Support for multiple Apple accounts , storing your credentials securely in the Keychain Usage Creating a new application fastlane produce To get a list of all available parameters: fastlane produce --help Commands: (* default) associate_group Associate with a group, which is created if needed or simply located otherwise associate_merchant Associate with a merchant for use with Apple Pay. Apple Pay will be enabled for this app create * Creates a new app on App Store Connect and the Apple Developer Portal disable_services Disable specific Application Services for a specific app on the Apple Developer Portal enable_services Enable specific Application Services for a specific app on the Apple Developer Portal group Ensure that a specific App Group exists cloud_container Ensure that a specific iCloud Container exists help Display global or [command] help documentation merchant Ensure that a specific Merchant exists Global Options: --verbose -h, --help Display help documentation -v, --version Display version information Options for create: -u, --username STRING Your Apple ID Username (PRODUCE_USERNAME) -a, --app_identifier STRING App Identifier (Bundle ID, e.g. com.krausefx.app) (PRODUCE_APP_IDENTIFIER) -e, --bundle_identifier_suffix STRING App Identifier Suffix (Ignored if App Identifier does not ends with .*) (PRODUCE_APP_IDENTIFIER_SUFFIX) -q, --app_name STRING App Name (PRODUCE_APP_NAME) -z, --app_version STRING Initial version number (e.g. '1.0') (PRODUCE_VERSION) -y, --sku STRING SKU Number (e.g. '1234') (PRODUCE_SKU) -j, --platform STRING The platform to use (optional) (PRODUCE_PLATFORM) -m, --language STRING Primary Language (e.g. 'English', 'German') (PRODUCE_LANGUAGE) -c, --company_name STRING The name of your company. It's used to set company name on App Store Connect team's app pages. Only required if it's the first app you create (PRODUCE_COMPANY_NAME) -i, --skip_itc [VALUE] Skip the creation of the app on App Store Connect (PRODUCE_SKIP_ITC) -d, --skip_devcenter [VALUE] Skip the creation of the app on the Apple Developer Portal (PRODUCE_SKIP_DEVCENTER) -s, --itc_users ARRAY Array of App Store Connect users. If provided, you can limit access to this newly created app for users with the App Manager, Developer, Marketer or Sales roles (ITC_USERS) -b, --team_id STRING The ID of your Developer Portal team if you're in multiple teams (PRODUCE_TEAM_ID) -l, --team_name STRING The name of your Developer Portal team if you're in multiple teams (PRODUCE_TEAM_NAME) -k, --itc_team_id [VALUE] The ID of your App Store Connect team if you're in multiple teams (PRODUCE_ITC_TEAM_ID) -p, --itc_team_name STRING The name of your App Store Connect team if you're in multiple teams (PRODUCE_ITC_TEAM_NAME) Enabling / Disabling Application Services If you want to enable Application Services for an App ID (HomeKit and HealthKit in this example): fastlane produce enable_services --homekit --healthkit If you want to disable Application Services for an App ID (iCloud in this case): fastlane produce disable_services --icloud If you want to create a new App Group: fastlane produce group -g group.krausefx -n \"Example App Group\" If you want to associate an app with an App Group: fastlane produce associate_group -a com.krausefx.app group.krausefx If you want to create a new iCloud Container: fastlane produce cloud_container -g iCloud.com.krausefx.app -n \"Example iCloud Container\" If you want to associate an app with an iCloud Container: fastlane produce associate_cloud_container -a com.krausefx.app iCloud.com.krausefx.app If you want to associate an app with multiple iCloud Containers: fastlane produce associate_cloud_container -a com.krausefx.app iCloud.com.krausefx.app1 iCloud.com.krausefx.app2 Parameters Get a list of all available options using fastlane produce enable_services --help --access-wifi Enable Access Wifi --app-attest Enable App Attest --app-group Enable App Group --apple-pay Enable Apple Pay --associated-domains Enable Associated Domains --auto-fill-credential Enable Auto Fill Credential --class-kit Enable Class Kit --icloud STRING Enable iCloud, suitable values are \"xcode5_compatible\" and \"xcode6_compatible\" --custom-network-protocol Enable Custom Network Protocol --data-protection STRING Enable Data Protection, suitable values are \"complete\", \"unlessopen\" and \"untilfirstauth\" --extended-virtual-address-space Enable Extended Virtual Address Space --game-center STRING Enable Game Center, suitable values are \"ios\" and \"macos --health-kit Enable Health Kit --hls-interstitial-preview Enable Hls Interstitial Preview --home-kit Enable Home Kit --hotspot Enable Hotspot --in-app-purchase Enable In App Purchase --inter-app-audio Enable Inter App Audio --low-latency-hls Enable Low Latency Hls --managed-associated-domains Enable Managed Associated Domains --maps Enable Maps --multipath Enable Multipath --network-extension Enable Network Extension --nfc-tag-reading Enable NFC Tag Reading --personal-vpn Enable Personal VPN --passbook Enable Passbook (deprecated) --push-notification Enable Push Notification --sign-in-with-apple Enable Sign In With Apple --siri-kit Enable Siri Kit --system-extension Enable System Extension --user-management Enable User Management --vpn-configuration Enable Vpn Configuration (deprecated) --wallet Enable Wallet --wireless-accessory Enable Wireless Accessory --car-play-audio-app Enable Car Play Audio App --car-play-messaging-app Enable Car Play Messaging App --car-play-navigation-app Enable Car Play Navigation App --car-play-voip-calling-app Enable Car Play Voip Calling App --critical-alerts Enable Critical Alerts --hotspot-helper Enable Hotspot Helper --driver-kit Enable DriverKit --driver-kit-endpoint-security Enable DriverKit Endpoint Security --driver-kit-family-hid-device Enable DriverKit Family HID Device --driver-kit-family-networking Enable DriverKit Family Networking --driver-kit-family-serial Enable DriverKit Family Serial --driver-kit-hid-event-service Enable DriverKit HID EventService --driver-kit-transport-hid Enable DriverKit Transport HID --multitasking-camera-access Enable Multitasking Camera Access --sf-universal-link-api Enable SFUniversalLink API --vp9-decoder Enable VP9 Decoder --music-kit Enable MusicKit --shazam-kit Enable ShazamKit --communication-notifications Enable Communication Notifications --group-activities Enable Group Activities --health-kit-estimate-recalibration Enable HealthKit Estimate Recalibration --time-sensitive-notifications Enable Time Sensitive Notifications fastlane produce disable_services --help --access-wifi Disable Access Wifi --app-attest Disable App Attest --app-group Disable App Group --apple-pay Disable Apple Pay --associated-domains Disable Associated Domains --auto-fill-credential Disable Auto Fill Credential --class-kit Disable Class Kit --icloud STRING Disable iCloud --custom-network-protocol Disable Custom Network Protocol --data-protection STRING Disable Data Protection --extended-virtual-address-space Disable Extended Virtual Address Space --game-center STRING Disable Game Center --health-kit Disable Health Kit --hls-interstitial-preview Disable Hls Interstitial Preview --home-kit Disable Home Kit --hotspot Disable Hotspot --in-app-purchase Disable In App Purchase --inter-app-audio Disable Inter App Audio --low-latency-hls Disable Low Latency Hls --managed-associated-domains Disable Managed Associated Domains --maps Disable Maps --multipath Disable Multipath --network-extension Disable Network Extension --nfc-tag-reading Disable NFC Tag Reading --personal-vpn Disable Personal VPN --passbook Disable Passbook (deprecated) --push-notification Disable Push Notification --sign-in-with-apple Disable Sign In With Apple --siri-kit Disable Siri Kit --system-extension Disable System Extension --user-management Disable User Management --vpn-configuration Disable Vpn Configuration (deprecated) --wallet Disable Wallet --wireless-accessory Disable Wireless Accessory --car-play-audio-app Disable Car Play Audio App --car-play-messaging-app Disable Car Play Messaging App --car-play-navigation-app Disable Car Play Navigation App --car-play-voip-calling-app Disable Car Play Voip Calling App --critical-alerts Disable Critical Alerts --hotspot-helper Disable Hotspot Helper --driver-kit Disable DriverKit --driver-kit-endpoint-security Disable DriverKit Endpoint Security --driver-kit-family-hid-device Disable DriverKit Family HID Device --driver-kit-family-networking Disable DriverKit Family Networking --driver-kit-family-serial Disable DriverKit Family Serial --driver-kit-hid-event-service Disable DriverKit HID EventService --driver-kit-transport-hid Disable DriverKit Transport HID --multitasking-camera-access Disable Multitasking Camera Access --sf-universal-link-api Disable SFUniversalLink API --vp9-decoder Disable VP9 Decoder --music-kit Disable MusicKit --shazam-kit Disable ShazamKit --communication-notifications Disable Communication Notifications --group-activities Disable Group Activities --health-kit-estimate-recalibration Disable HealthKit Estimate Recalibration --time-sensitive-notifications Disable Time Sensitive Notifications Creating Apple Pay merchants and associating them with an App ID If you want to create a new Apple Pay Merchant Identifier: fastlane produce merchant -o merchant.com.example.production -r \"Example Merchant Production\" Use --help for more information about all available parameters fastlane produce merchant --help If you want to associate an app with a Merchant Identifier: fastlane produce associate_merchant -a com.krausefx.app merchant.com.example.production If you want to associate an app with multiple Merchant Identifiers: fastlane produce associate_merchant -a com.krausefx.app merchant.com.example.production merchant.com.example.sandbox Use --help for more information about all available parameters fastlane produce associate_merchant --help Environment Variables All available values can also be passed using environment variables, run fastlane produce --help to get a list of all available parameters. fastlane Integration Your Fastfile should look like this lane :release do produce( username: 'felix@krausefx.com', app_identifier: 'com.krausefx.app', app_name: 'MyApp', language: 'English', app_version: '1.0', sku: '123', team_name: 'SunApps GmbH', # only necessary when in multiple teams # Optional # App services can be enabled during app creation enable_services: { access_wifi: \"on\", # Valid values: \"on\", \"off\" app_attest: \"on\", # Valid values: \"on\", \"off\" app_group: \"on\", # Valid values: \"on\", \"off\" apple_pay: \"on\", # Valid values: \"on\", \"off\" associated_domains: \"on\", # Valid values: \"on\", \"off\" auto_fill_credential: \"on\", # Valid values: \"on\", \"off\" car_play_audio_app: \"on\", # Valid values: \"on\", \"off\" car_play_messaging_app: \"on\", # Valid values: \"on\", \"off\" car_play_navigation_app: \"on\", # Valid values: \"on\", \"off\" car_play_voip_calling_app: \"on\", # Valid values: \"on\", \"off\" class_kit: \"on\", # Valid values: \"on\", \"off\" icloud: \"xcode5_compatible\", # Valid values: \"xcode5_compatible\", \"xcode6_compatible\", \"off\" critical_alerts: \"on\", # Valid values: \"on\", \"off\" custom_network_protocol: \"on\", # Valid values: \"on\", \"off\" data_protection: \"complete\", # Valid values: \"complete\", \"unlessopen\", \"untilfirstauth\", \"off\" extended_virtual_address_space: \"on\", # Valid values: \"on\", \"off\" file_provider_testing_mode: \"on\", # Valid values: \"on\", \"off\" fonts: \"on\", # Valid values: \"on\", \"off\" game_center: \"ios\", # Valid values: \"ios\", \"macos\", off\" health_kit: \"on\", # Valid values: \"on\", \"off\" hls_interstitial_preview: \"on\", # Valid values: \"on\", \"off\" home_kit: \"on\", # Valid values: \"on\", \"off\" hotspot: \"on\", # Valid values: \"on\", \"off\" hotspot_helper: \"on\", # Valid values: \"on\", \"off\" in_app_purchase: \"on\", # Valid values: \"on\", \"off\" inter_app_audio: \"on\", # Valid values: \"on\", \"off\" low_latency_hls: \"on\", # Valid values: \"on\", \"off\" managed_associated_domains: \"on\", # Valid values: \"on\", \"off\" maps: \"on\", # Valid values: \"on\", \"off\" multipath: \"on\", # Valid values: \"on\", \"off\" network_extension: \"on\", # Valid values: \"on\", \"off\" nfc_tag_reading: \"on\", # Valid values: \"on\", \"off\" passbook: \"on\", # Valid values: \"on\", \"off\" (deprecated) personal_vpn: \"on\", # Valid values: \"on\", \"off\" push_notification: \"on\", # Valid values: \"on\", \"off\" sign_in_with_apple: \"on\", # Valid values: \"on\", \"off\" siri_kit: \"on\", # Valid values: \"on\", \"off\" system_extension: \"on\", # Valid values: \"on\", \"off\" user_management: \"on\", # Valid values: \"on\", \"off\" vpn_configuration: \"on\", # Valid values: \"on\", \"off\" (deprecated) wallet: \"on\", # Valid values: \"on\", \"off\" wireless_accessory: \"on\", # Valid values: \"on\", \"off\" driver_kit: \"on\", # Valid values: \"on\", \"off\" driver_kit_endpoint_security: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_hid_device: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_networking: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_serial: \"on\", # Valid values: \"on\", \"off\" driver_kit_hid_event_service: \"on\", # Valid values: \"on\", \"off\" driver_kit_transport_hid: \"on\", # Valid values: \"on\", \"off\" multitasking_camera_access: \"on\", # Valid values: \"on\", \"off\" sf_universal_link_api: \"on\", # Valid values: \"on\", \"off\" vp9_decoder: \"on\", # Valid values: \"on\", \"off\" music_kit: \"on\", # Valid values: \"on\", \"off\" shazam_kit: \"on\", # Valid values: \"on\", \"off\" communication_notifications: \"on\", # Valid values: \"on\", \"off\" group_activities: \"on\", # Valid values: \"on\", \"off\" health_kit_estimate_recalibration: \"on\", # Valid values: \"on\", \"off\" time_sensitive_notifications: \"on\", # Valid values: \"on\", \"off\" } ) deliver end To use the newly generated app in deliver , you need to add this line to your Deliverfile : apple_id(ENV['PRODUCE_APPLE_ID']) This will tell deliver , which App ID to use, since the app is not yet available in the App Store. You'll still have to fill out the remaining information (like screenshots, app description and pricing). You can use deliver to upload your app metadata using a CLI How is my password stored? produce uses the password manager from fastlane . Take a look the CredentialsManager README for more information. produce Supported platforms ios Author @KrauseFx 2 Examples create_app_online( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", app_name: \"MyApp\", language: \"English\", app_version: \"1.0\", sku: \"123\", team_name: \"SunApps GmbH\" # Only necessary when in multiple teams. ) produce # alias for \"create_app_online\" Parameters Key Description Default username Your Apple ID Username * app_identifier App Identifier (Bundle ID, e.g. com.krausefx.app) * bundle_identifier_suffix App Identifier Suffix (Ignored if App Identifier does not end with .*) app_name App Name app_version Initial version number (e.g. '1.0') sku SKU Number (e.g. '1234') * platform The platform to use (optional) ios platforms The platforms to use (optional) language Primary Language (e.g. 'en-US', 'fr-FR') English company_name The name of your company. It's used to set company name on App Store Connect team's app pages. Only required if it's the first app you create skip_itc Skip the creation of the app on App Store Connect false itc_users Array of App Store Connect users. If provided, you can limit access to this newly created app for users with the App Manager, Developer, Marketer or Sales roles enabled_features DEPRECATED! Please use enable_services instead - Array with Spaceship App Services {} enable_services Array with Spaceship App Services (e.g. access_wifi: (on|off), app_attest: (on|off), app_group: (on|off), apple_pay: (on|off), associated_domains: (on|off), auto_fill_credential: (on|off), class_kit: (on|off), icloud: (legacy|cloudkit), custom_network_protocol: (on|off), data_protection: (complete|unlessopen|untilfirstauth), extended_virtual_address_space: (on|off), family_controls: (on|off), file_provider_testing_mode: (on|off), fonts: (on|off), game_center: (ios|mac), health_kit: (on|off), hls_interstitial_preview: (on|off), home_kit: (on|off), hotspot: (on|off), in_app_purchase: (on|off), inter_app_audio: (on|off), low_latency_hls: (on|off), managed_associated_domains: (on|off), maps: (on|off), multipath: (on|off), network_extension: (on|off), nfc_tag_reading: (on|off), personal_vpn: (on|off), passbook: (on|off), push_notification: (on|off), sign_in_with_apple: (on), siri_kit: (on|off), system_extension: (on|off), user_management: (on|off), vpn_configuration: (on|off), wallet: (on|off), wireless_accessory: (on|off), car_play_audio_app: (on|off), car_play_messaging_app: (on|off), car_play_navigation_app: (on|off), car_play_voip_calling_app: (on|off), critical_alerts: (on|off), hotspot_helper: (on|off), driver_kit: (on|off), driver_kit_endpoint_security: (on|off), driver_kit_family_hid_device: (on|off), driver_kit_family_networking: (on|off), driver_kit_family_serial: (on|off), driver_kit_hid_event_service: (on|off), driver_kit_transport_hid: (on|off), multitasking_camera_access: (on|off), sf_universal_link_api: (on|off), vp9_decoder: (on|off), music_kit: (on|off), shazam_kit: (on|off), communication_notifications: (on|off), group_activities: (on|off), health_kit_estimate_recalibration: (on|off), time_sensitive_notifications: (on|off)) {} skip_devcenter Skip the creation of the app on the Apple Developer Portal false team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * itc_team_id The ID of your App Store Connect team if you're in multiple teams * itc_team_name The name of your App Store Connect team if you're in multiple teams * * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The produce action generates the following Lane Variables: SharedValue Description SharedValues::PRODUCE_APPLE_ID The Apple ID of the newly created app. You probably need it for deliver To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action produce CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run produce To pass parameters, make use of the : symbol, for example fastlane run produce parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"produce"},{"location":"actions/produce/#produce","text":"Alias for the create_app_online action","title":"produce"},{"location":"actions/produce/#features","text":"Create new apps on both App Store Connect and the Apple Developer Portal Modify Application Services on the Apple Developer Portal Create App Groups on the Apple Developer Portal Associate apps with App Groups on the Apple Developer Portal Create iCloud Containers on the Apple Developer Portal Associate apps with iCloud Containers on the Apple Developer Portal Create Merchant Identifiers on the Apple Developer Portal Associate apps with Merchant Identifiers on the Apple Developer Portal Support for multiple Apple accounts , storing your credentials securely in the Keychain","title":"Features"},{"location":"actions/produce/#usage","text":"","title":"Usage"},{"location":"actions/produce/#creating-a-new-application","text":"fastlane produce To get a list of all available parameters: fastlane produce --help Commands: (* default) associate_group Associate with a group, which is created if needed or simply located otherwise associate_merchant Associate with a merchant for use with Apple Pay. Apple Pay will be enabled for this app create * Creates a new app on App Store Connect and the Apple Developer Portal disable_services Disable specific Application Services for a specific app on the Apple Developer Portal enable_services Enable specific Application Services for a specific app on the Apple Developer Portal group Ensure that a specific App Group exists cloud_container Ensure that a specific iCloud Container exists help Display global or [command] help documentation merchant Ensure that a specific Merchant exists Global Options: --verbose -h, --help Display help documentation -v, --version Display version information Options for create: -u, --username STRING Your Apple ID Username (PRODUCE_USERNAME) -a, --app_identifier STRING App Identifier (Bundle ID, e.g. com.krausefx.app) (PRODUCE_APP_IDENTIFIER) -e, --bundle_identifier_suffix STRING App Identifier Suffix (Ignored if App Identifier does not ends with .*) (PRODUCE_APP_IDENTIFIER_SUFFIX) -q, --app_name STRING App Name (PRODUCE_APP_NAME) -z, --app_version STRING Initial version number (e.g. '1.0') (PRODUCE_VERSION) -y, --sku STRING SKU Number (e.g. '1234') (PRODUCE_SKU) -j, --platform STRING The platform to use (optional) (PRODUCE_PLATFORM) -m, --language STRING Primary Language (e.g. 'English', 'German') (PRODUCE_LANGUAGE) -c, --company_name STRING The name of your company. It's used to set company name on App Store Connect team's app pages. Only required if it's the first app you create (PRODUCE_COMPANY_NAME) -i, --skip_itc [VALUE] Skip the creation of the app on App Store Connect (PRODUCE_SKIP_ITC) -d, --skip_devcenter [VALUE] Skip the creation of the app on the Apple Developer Portal (PRODUCE_SKIP_DEVCENTER) -s, --itc_users ARRAY Array of App Store Connect users. If provided, you can limit access to this newly created app for users with the App Manager, Developer, Marketer or Sales roles (ITC_USERS) -b, --team_id STRING The ID of your Developer Portal team if you're in multiple teams (PRODUCE_TEAM_ID) -l, --team_name STRING The name of your Developer Portal team if you're in multiple teams (PRODUCE_TEAM_NAME) -k, --itc_team_id [VALUE] The ID of your App Store Connect team if you're in multiple teams (PRODUCE_ITC_TEAM_ID) -p, --itc_team_name STRING The name of your App Store Connect team if you're in multiple teams (PRODUCE_ITC_TEAM_NAME)","title":"Creating a new application"},{"location":"actions/produce/#enabling-disabling-application-services","text":"If you want to enable Application Services for an App ID (HomeKit and HealthKit in this example): fastlane produce enable_services --homekit --healthkit If you want to disable Application Services for an App ID (iCloud in this case): fastlane produce disable_services --icloud If you want to create a new App Group: fastlane produce group -g group.krausefx -n \"Example App Group\" If you want to associate an app with an App Group: fastlane produce associate_group -a com.krausefx.app group.krausefx If you want to create a new iCloud Container: fastlane produce cloud_container -g iCloud.com.krausefx.app -n \"Example iCloud Container\" If you want to associate an app with an iCloud Container: fastlane produce associate_cloud_container -a com.krausefx.app iCloud.com.krausefx.app If you want to associate an app with multiple iCloud Containers: fastlane produce associate_cloud_container -a com.krausefx.app iCloud.com.krausefx.app1 iCloud.com.krausefx.app2","title":"Enabling / Disabling Application Services"},{"location":"actions/produce/#parameters","text":"Get a list of all available options using fastlane produce enable_services --help --access-wifi Enable Access Wifi --app-attest Enable App Attest --app-group Enable App Group --apple-pay Enable Apple Pay --associated-domains Enable Associated Domains --auto-fill-credential Enable Auto Fill Credential --class-kit Enable Class Kit --icloud STRING Enable iCloud, suitable values are \"xcode5_compatible\" and \"xcode6_compatible\" --custom-network-protocol Enable Custom Network Protocol --data-protection STRING Enable Data Protection, suitable values are \"complete\", \"unlessopen\" and \"untilfirstauth\" --extended-virtual-address-space Enable Extended Virtual Address Space --game-center STRING Enable Game Center, suitable values are \"ios\" and \"macos --health-kit Enable Health Kit --hls-interstitial-preview Enable Hls Interstitial Preview --home-kit Enable Home Kit --hotspot Enable Hotspot --in-app-purchase Enable In App Purchase --inter-app-audio Enable Inter App Audio --low-latency-hls Enable Low Latency Hls --managed-associated-domains Enable Managed Associated Domains --maps Enable Maps --multipath Enable Multipath --network-extension Enable Network Extension --nfc-tag-reading Enable NFC Tag Reading --personal-vpn Enable Personal VPN --passbook Enable Passbook (deprecated) --push-notification Enable Push Notification --sign-in-with-apple Enable Sign In With Apple --siri-kit Enable Siri Kit --system-extension Enable System Extension --user-management Enable User Management --vpn-configuration Enable Vpn Configuration (deprecated) --wallet Enable Wallet --wireless-accessory Enable Wireless Accessory --car-play-audio-app Enable Car Play Audio App --car-play-messaging-app Enable Car Play Messaging App --car-play-navigation-app Enable Car Play Navigation App --car-play-voip-calling-app Enable Car Play Voip Calling App --critical-alerts Enable Critical Alerts --hotspot-helper Enable Hotspot Helper --driver-kit Enable DriverKit --driver-kit-endpoint-security Enable DriverKit Endpoint Security --driver-kit-family-hid-device Enable DriverKit Family HID Device --driver-kit-family-networking Enable DriverKit Family Networking --driver-kit-family-serial Enable DriverKit Family Serial --driver-kit-hid-event-service Enable DriverKit HID EventService --driver-kit-transport-hid Enable DriverKit Transport HID --multitasking-camera-access Enable Multitasking Camera Access --sf-universal-link-api Enable SFUniversalLink API --vp9-decoder Enable VP9 Decoder --music-kit Enable MusicKit --shazam-kit Enable ShazamKit --communication-notifications Enable Communication Notifications --group-activities Enable Group Activities --health-kit-estimate-recalibration Enable HealthKit Estimate Recalibration --time-sensitive-notifications Enable Time Sensitive Notifications fastlane produce disable_services --help --access-wifi Disable Access Wifi --app-attest Disable App Attest --app-group Disable App Group --apple-pay Disable Apple Pay --associated-domains Disable Associated Domains --auto-fill-credential Disable Auto Fill Credential --class-kit Disable Class Kit --icloud STRING Disable iCloud --custom-network-protocol Disable Custom Network Protocol --data-protection STRING Disable Data Protection --extended-virtual-address-space Disable Extended Virtual Address Space --game-center STRING Disable Game Center --health-kit Disable Health Kit --hls-interstitial-preview Disable Hls Interstitial Preview --home-kit Disable Home Kit --hotspot Disable Hotspot --in-app-purchase Disable In App Purchase --inter-app-audio Disable Inter App Audio --low-latency-hls Disable Low Latency Hls --managed-associated-domains Disable Managed Associated Domains --maps Disable Maps --multipath Disable Multipath --network-extension Disable Network Extension --nfc-tag-reading Disable NFC Tag Reading --personal-vpn Disable Personal VPN --passbook Disable Passbook (deprecated) --push-notification Disable Push Notification --sign-in-with-apple Disable Sign In With Apple --siri-kit Disable Siri Kit --system-extension Disable System Extension --user-management Disable User Management --vpn-configuration Disable Vpn Configuration (deprecated) --wallet Disable Wallet --wireless-accessory Disable Wireless Accessory --car-play-audio-app Disable Car Play Audio App --car-play-messaging-app Disable Car Play Messaging App --car-play-navigation-app Disable Car Play Navigation App --car-play-voip-calling-app Disable Car Play Voip Calling App --critical-alerts Disable Critical Alerts --hotspot-helper Disable Hotspot Helper --driver-kit Disable DriverKit --driver-kit-endpoint-security Disable DriverKit Endpoint Security --driver-kit-family-hid-device Disable DriverKit Family HID Device --driver-kit-family-networking Disable DriverKit Family Networking --driver-kit-family-serial Disable DriverKit Family Serial --driver-kit-hid-event-service Disable DriverKit HID EventService --driver-kit-transport-hid Disable DriverKit Transport HID --multitasking-camera-access Disable Multitasking Camera Access --sf-universal-link-api Disable SFUniversalLink API --vp9-decoder Disable VP9 Decoder --music-kit Disable MusicKit --shazam-kit Disable ShazamKit --communication-notifications Disable Communication Notifications --group-activities Disable Group Activities --health-kit-estimate-recalibration Disable HealthKit Estimate Recalibration --time-sensitive-notifications Disable Time Sensitive Notifications","title":"Parameters"},{"location":"actions/produce/#creating-apple-pay-merchants-and-associating-them-with-an-app-id","text":"If you want to create a new Apple Pay Merchant Identifier: fastlane produce merchant -o merchant.com.example.production -r \"Example Merchant Production\" Use --help for more information about all available parameters fastlane produce merchant --help If you want to associate an app with a Merchant Identifier: fastlane produce associate_merchant -a com.krausefx.app merchant.com.example.production If you want to associate an app with multiple Merchant Identifiers: fastlane produce associate_merchant -a com.krausefx.app merchant.com.example.production merchant.com.example.sandbox Use --help for more information about all available parameters fastlane produce associate_merchant --help","title":"Creating Apple Pay merchants and associating them with an App ID"},{"location":"actions/produce/#environment-variables","text":"All available values can also be passed using environment variables, run fastlane produce --help to get a list of all available parameters.","title":"Environment Variables"},{"location":"actions/produce/#fastlane-integration","text":"Your Fastfile should look like this lane :release do produce( username: 'felix@krausefx.com', app_identifier: 'com.krausefx.app', app_name: 'MyApp', language: 'English', app_version: '1.0', sku: '123', team_name: 'SunApps GmbH', # only necessary when in multiple teams # Optional # App services can be enabled during app creation enable_services: { access_wifi: \"on\", # Valid values: \"on\", \"off\" app_attest: \"on\", # Valid values: \"on\", \"off\" app_group: \"on\", # Valid values: \"on\", \"off\" apple_pay: \"on\", # Valid values: \"on\", \"off\" associated_domains: \"on\", # Valid values: \"on\", \"off\" auto_fill_credential: \"on\", # Valid values: \"on\", \"off\" car_play_audio_app: \"on\", # Valid values: \"on\", \"off\" car_play_messaging_app: \"on\", # Valid values: \"on\", \"off\" car_play_navigation_app: \"on\", # Valid values: \"on\", \"off\" car_play_voip_calling_app: \"on\", # Valid values: \"on\", \"off\" class_kit: \"on\", # Valid values: \"on\", \"off\" icloud: \"xcode5_compatible\", # Valid values: \"xcode5_compatible\", \"xcode6_compatible\", \"off\" critical_alerts: \"on\", # Valid values: \"on\", \"off\" custom_network_protocol: \"on\", # Valid values: \"on\", \"off\" data_protection: \"complete\", # Valid values: \"complete\", \"unlessopen\", \"untilfirstauth\", \"off\" extended_virtual_address_space: \"on\", # Valid values: \"on\", \"off\" file_provider_testing_mode: \"on\", # Valid values: \"on\", \"off\" fonts: \"on\", # Valid values: \"on\", \"off\" game_center: \"ios\", # Valid values: \"ios\", \"macos\", off\" health_kit: \"on\", # Valid values: \"on\", \"off\" hls_interstitial_preview: \"on\", # Valid values: \"on\", \"off\" home_kit: \"on\", # Valid values: \"on\", \"off\" hotspot: \"on\", # Valid values: \"on\", \"off\" hotspot_helper: \"on\", # Valid values: \"on\", \"off\" in_app_purchase: \"on\", # Valid values: \"on\", \"off\" inter_app_audio: \"on\", # Valid values: \"on\", \"off\" low_latency_hls: \"on\", # Valid values: \"on\", \"off\" managed_associated_domains: \"on\", # Valid values: \"on\", \"off\" maps: \"on\", # Valid values: \"on\", \"off\" multipath: \"on\", # Valid values: \"on\", \"off\" network_extension: \"on\", # Valid values: \"on\", \"off\" nfc_tag_reading: \"on\", # Valid values: \"on\", \"off\" passbook: \"on\", # Valid values: \"on\", \"off\" (deprecated) personal_vpn: \"on\", # Valid values: \"on\", \"off\" push_notification: \"on\", # Valid values: \"on\", \"off\" sign_in_with_apple: \"on\", # Valid values: \"on\", \"off\" siri_kit: \"on\", # Valid values: \"on\", \"off\" system_extension: \"on\", # Valid values: \"on\", \"off\" user_management: \"on\", # Valid values: \"on\", \"off\" vpn_configuration: \"on\", # Valid values: \"on\", \"off\" (deprecated) wallet: \"on\", # Valid values: \"on\", \"off\" wireless_accessory: \"on\", # Valid values: \"on\", \"off\" driver_kit: \"on\", # Valid values: \"on\", \"off\" driver_kit_endpoint_security: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_hid_device: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_networking: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_serial: \"on\", # Valid values: \"on\", \"off\" driver_kit_hid_event_service: \"on\", # Valid values: \"on\", \"off\" driver_kit_transport_hid: \"on\", # Valid values: \"on\", \"off\" multitasking_camera_access: \"on\", # Valid values: \"on\", \"off\" sf_universal_link_api: \"on\", # Valid values: \"on\", \"off\" vp9_decoder: \"on\", # Valid values: \"on\", \"off\" music_kit: \"on\", # Valid values: \"on\", \"off\" shazam_kit: \"on\", # Valid values: \"on\", \"off\" communication_notifications: \"on\", # Valid values: \"on\", \"off\" group_activities: \"on\", # Valid values: \"on\", \"off\" health_kit_estimate_recalibration: \"on\", # Valid values: \"on\", \"off\" time_sensitive_notifications: \"on\", # Valid values: \"on\", \"off\" } ) deliver end To use the newly generated app in deliver , you need to add this line to your Deliverfile : apple_id(ENV['PRODUCE_APPLE_ID']) This will tell deliver , which App ID to use, since the app is not yet available in the App Store. You'll still have to fill out the remaining information (like screenshots, app description and pricing). You can use deliver to upload your app metadata using a CLI","title":"fastlane Integration"},{"location":"actions/produce/#how-is-my-password-stored","text":"produce uses the password manager from fastlane . Take a look the CredentialsManager README for more information. produce Supported platforms ios Author @KrauseFx","title":"How is my password stored?"},{"location":"actions/produce/#2-examples","text":"create_app_online( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", app_name: \"MyApp\", language: \"English\", app_version: \"1.0\", sku: \"123\", team_name: \"SunApps GmbH\" # Only necessary when in multiple teams. ) produce # alias for \"create_app_online\"","title":"2 Examples"},{"location":"actions/produce/#parameters_1","text":"Key Description Default username Your Apple ID Username * app_identifier App Identifier (Bundle ID, e.g. com.krausefx.app) * bundle_identifier_suffix App Identifier Suffix (Ignored if App Identifier does not end with .*) app_name App Name app_version Initial version number (e.g. '1.0') sku SKU Number (e.g. '1234') * platform The platform to use (optional) ios platforms The platforms to use (optional) language Primary Language (e.g. 'en-US', 'fr-FR') English company_name The name of your company. It's used to set company name on App Store Connect team's app pages. Only required if it's the first app you create skip_itc Skip the creation of the app on App Store Connect false itc_users Array of App Store Connect users. If provided, you can limit access to this newly created app for users with the App Manager, Developer, Marketer or Sales roles enabled_features DEPRECATED! Please use enable_services instead - Array with Spaceship App Services {} enable_services Array with Spaceship App Services (e.g. access_wifi: (on|off), app_attest: (on|off), app_group: (on|off), apple_pay: (on|off), associated_domains: (on|off), auto_fill_credential: (on|off), class_kit: (on|off), icloud: (legacy|cloudkit), custom_network_protocol: (on|off), data_protection: (complete|unlessopen|untilfirstauth), extended_virtual_address_space: (on|off), family_controls: (on|off), file_provider_testing_mode: (on|off), fonts: (on|off), game_center: (ios|mac), health_kit: (on|off), hls_interstitial_preview: (on|off), home_kit: (on|off), hotspot: (on|off), in_app_purchase: (on|off), inter_app_audio: (on|off), low_latency_hls: (on|off), managed_associated_domains: (on|off), maps: (on|off), multipath: (on|off), network_extension: (on|off), nfc_tag_reading: (on|off), personal_vpn: (on|off), passbook: (on|off), push_notification: (on|off), sign_in_with_apple: (on), siri_kit: (on|off), system_extension: (on|off), user_management: (on|off), vpn_configuration: (on|off), wallet: (on|off), wireless_accessory: (on|off), car_play_audio_app: (on|off), car_play_messaging_app: (on|off), car_play_navigation_app: (on|off), car_play_voip_calling_app: (on|off), critical_alerts: (on|off), hotspot_helper: (on|off), driver_kit: (on|off), driver_kit_endpoint_security: (on|off), driver_kit_family_hid_device: (on|off), driver_kit_family_networking: (on|off), driver_kit_family_serial: (on|off), driver_kit_hid_event_service: (on|off), driver_kit_transport_hid: (on|off), multitasking_camera_access: (on|off), sf_universal_link_api: (on|off), vp9_decoder: (on|off), music_kit: (on|off), shazam_kit: (on|off), communication_notifications: (on|off), group_activities: (on|off), health_kit_estimate_recalibration: (on|off), time_sensitive_notifications: (on|off)) {} skip_devcenter Skip the creation of the app on the Apple Developer Portal false team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * itc_team_id The ID of your App Store Connect team if you're in multiple teams * itc_team_name The name of your App Store Connect team if you're in multiple teams * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/produce/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The produce action generates the following Lane Variables: SharedValue Description SharedValues::PRODUCE_APPLE_ID The Apple ID of the newly created app. You probably need it for deliver To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/produce/#documentation","text":"To show the documentation in your terminal, run fastlane action produce","title":"Documentation"},{"location":"actions/produce/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run produce To pass parameters, make use of the : symbol, for example fastlane run produce parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/produce/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/prompt/","text":"prompt Ask the user for a value or for confirmation You can use prompt to ask the user for a value or to just let the user confirm the next step. When this is executed on a CI service, the passed ci_input value will be returned. This action also supports multi-line inputs using the multi_line_end_keyword option. prompt Supported platforms ios, android, mac Author @KrauseFx 2 Examples changelog = prompt(text: \"Changelog: \") changelog = prompt( text: \"Changelog: \", multi_line_end_keyword: \"END\" ) pilot(changelog: changelog) Parameters Key Description Default text The text that will be displayed to the user Please enter some text: ci_input The default text that will be used when being executed on a CI service '' boolean Is that a boolean question (yes/no)? This will add (y/n) at the end false secure_text Is that a secure text (yes/no)? false multi_line_end_keyword Enable multi-line inputs by providing an end text (e.g. 'END') which will stop the user input * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action prompt CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run prompt To pass parameters, make use of the : symbol, for example fastlane run prompt parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"prompt"},{"location":"actions/prompt/#prompt","text":"Ask the user for a value or for confirmation You can use prompt to ask the user for a value or to just let the user confirm the next step. When this is executed on a CI service, the passed ci_input value will be returned. This action also supports multi-line inputs using the multi_line_end_keyword option. prompt Supported platforms ios, android, mac Author @KrauseFx","title":"prompt"},{"location":"actions/prompt/#2-examples","text":"changelog = prompt(text: \"Changelog: \") changelog = prompt( text: \"Changelog: \", multi_line_end_keyword: \"END\" ) pilot(changelog: changelog)","title":"2 Examples"},{"location":"actions/prompt/#parameters","text":"Key Description Default text The text that will be displayed to the user Please enter some text: ci_input The default text that will be used when being executed on a CI service '' boolean Is that a boolean question (yes/no)? This will add (y/n) at the end false secure_text Is that a secure text (yes/no)? false multi_line_end_keyword Enable multi-line inputs by providing an end text (e.g. 'END') which will stop the user input * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/prompt/#documentation","text":"To show the documentation in your terminal, run fastlane action prompt","title":"Documentation"},{"location":"actions/prompt/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run prompt To pass parameters, make use of the : symbol, for example fastlane run prompt parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/prompt/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/push_git_tags/","text":"push_git_tags Push local tags to the remote - this will only push tags If you only want to push the tags and nothing else, you can use the push_git_tags action push_git_tags Supported platforms ios, android, mac Author @vittoriom 1 Example push_git_tags Parameters Key Description Default force Force push to remote false remote The remote to push tags to origin tag The tag to push to remote * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action push_git_tags CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run push_git_tags To pass parameters, make use of the : symbol, for example fastlane run push_git_tags parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"push_git_tags"},{"location":"actions/push_git_tags/#push_git_tags","text":"Push local tags to the remote - this will only push tags If you only want to push the tags and nothing else, you can use the push_git_tags action push_git_tags Supported platforms ios, android, mac Author @vittoriom","title":"push_git_tags"},{"location":"actions/push_git_tags/#1-example","text":"push_git_tags","title":"1 Example"},{"location":"actions/push_git_tags/#parameters","text":"Key Description Default force Force push to remote false remote The remote to push tags to origin tag The tag to push to remote * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/push_git_tags/#documentation","text":"To show the documentation in your terminal, run fastlane action push_git_tags","title":"Documentation"},{"location":"actions/push_git_tags/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run push_git_tags To pass parameters, make use of the : symbol, for example fastlane run push_git_tags parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/push_git_tags/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/push_to_git_remote/","text":"push_to_git_remote Push local changes to the remote branch Lets you push your local commits to a remote git repo. Useful if you make local changes such as adding a version bump commit (using commit_version_bump ) or a git tag (using 'add_git_tag') on a CI server, and you want to push those changes back to your canonical/main repo. If this is a new branch, use the set_upstream option to set the remote branch as upstream. push_to_git_remote Supported platforms ios, android, mac Author @lmirosevic 2 Examples push_to_git_remote # simple version. pushes \"master\" branch to \"origin\" remote push_to_git_remote( remote: \"origin\", # optional, default: \"origin\" local_branch: \"develop\", # optional, aliased by \"branch\", default is set to current branch remote_branch: \"develop\", # optional, default is set to local_branch force: true, # optional, default: false force_with_lease: true, # optional, default: false tags: false, # optional, default: true no_verify: true,# optional, default: false set_upstream: true # optional, default: false ) Parameters Key Description Default local_branch The local branch to push from. Defaults to the current branch * remote_branch The remote branch to push to. Defaults to the local branch * force Force push to remote false force_with_lease Force push with lease to remote false tags Whether tags are pushed to remote true remote The remote to push to origin no_verify Whether or not to use --no-verify false set_upstream Whether or not to use --set-upstream false push_options Array of strings to be passed using the '--push-option' option [] * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action push_to_git_remote CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run push_to_git_remote To pass parameters, make use of the : symbol, for example fastlane run push_to_git_remote parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"push_to_git_remote"},{"location":"actions/push_to_git_remote/#push_to_git_remote","text":"Push local changes to the remote branch Lets you push your local commits to a remote git repo. Useful if you make local changes such as adding a version bump commit (using commit_version_bump ) or a git tag (using 'add_git_tag') on a CI server, and you want to push those changes back to your canonical/main repo. If this is a new branch, use the set_upstream option to set the remote branch as upstream. push_to_git_remote Supported platforms ios, android, mac Author @lmirosevic","title":"push_to_git_remote"},{"location":"actions/push_to_git_remote/#2-examples","text":"push_to_git_remote # simple version. pushes \"master\" branch to \"origin\" remote push_to_git_remote( remote: \"origin\", # optional, default: \"origin\" local_branch: \"develop\", # optional, aliased by \"branch\", default is set to current branch remote_branch: \"develop\", # optional, default is set to local_branch force: true, # optional, default: false force_with_lease: true, # optional, default: false tags: false, # optional, default: true no_verify: true,# optional, default: false set_upstream: true # optional, default: false )","title":"2 Examples"},{"location":"actions/push_to_git_remote/#parameters","text":"Key Description Default local_branch The local branch to push from. Defaults to the current branch * remote_branch The remote branch to push to. Defaults to the local branch * force Force push to remote false force_with_lease Force push with lease to remote false tags Whether tags are pushed to remote true remote The remote to push to origin no_verify Whether or not to use --no-verify false set_upstream Whether or not to use --set-upstream false push_options Array of strings to be passed using the '--push-option' option [] * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/push_to_git_remote/#documentation","text":"To show the documentation in your terminal, run fastlane action push_to_git_remote","title":"Documentation"},{"location":"actions/push_to_git_remote/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run push_to_git_remote To pass parameters, make use of the : symbol, for example fastlane run push_to_git_remote parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/push_to_git_remote/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/puts/","text":"puts Prints out the given text puts Supported platforms ios, android, mac Author @KrauseFx 1 Example puts \"Hi there\" Parameters Key Description Default message Message to be printed out * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action puts CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run puts To pass parameters, make use of the : symbol, for example fastlane run puts parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"puts"},{"location":"actions/puts/#puts","text":"Prints out the given text puts Supported platforms ios, android, mac Author @KrauseFx","title":"puts"},{"location":"actions/puts/#1-example","text":"puts \"Hi there\"","title":"1 Example"},{"location":"actions/puts/#parameters","text":"Key Description Default message Message to be printed out * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/puts/#documentation","text":"To show the documentation in your terminal, run fastlane action puts","title":"Documentation"},{"location":"actions/puts/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run puts To pass parameters, make use of the : symbol, for example fastlane run puts parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/puts/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/read_podspec/","text":"read_podspec Loads a CocoaPods spec as JSON This can be used for only specifying a version string in your podspec - and during your release process you'd read it from the podspec by running version = read_podspec['version'] at the beginning of your lane. Loads the specified (or the first found) podspec in the folder as JSON, so that you can inspect its version , files etc. This can be useful when basing your release process on the version string only stored in one place - in the podspec. As one of the first steps you'd read the podspec and its version and the rest of the workflow can use that version string (when e.g. creating a new git tag or a GitHub Release). read_podspec Supported platforms ios, mac Author @czechboy0 2 Examples spec = read_podspec version = spec[\"version\"] puts \"Using Version #{version}\" spec = read_podspec(path: \"./XcodeServerSDK.podspec\") Parameters Key Description Default path Path to the podspec to be read * * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The read_podspec action generates the following Lane Variables: SharedValue Description SharedValues::READ_PODSPEC_JSON Podspec JSON payload To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action read_podspec CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run read_podspec To pass parameters, make use of the : symbol, for example fastlane run read_podspec parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"read_podspec"},{"location":"actions/read_podspec/#read_podspec","text":"Loads a CocoaPods spec as JSON This can be used for only specifying a version string in your podspec - and during your release process you'd read it from the podspec by running version = read_podspec['version'] at the beginning of your lane. Loads the specified (or the first found) podspec in the folder as JSON, so that you can inspect its version , files etc. This can be useful when basing your release process on the version string only stored in one place - in the podspec. As one of the first steps you'd read the podspec and its version and the rest of the workflow can use that version string (when e.g. creating a new git tag or a GitHub Release). read_podspec Supported platforms ios, mac Author @czechboy0","title":"read_podspec"},{"location":"actions/read_podspec/#2-examples","text":"spec = read_podspec version = spec[\"version\"] puts \"Using Version #{version}\" spec = read_podspec(path: \"./XcodeServerSDK.podspec\")","title":"2 Examples"},{"location":"actions/read_podspec/#parameters","text":"Key Description Default path Path to the podspec to be read * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/read_podspec/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The read_podspec action generates the following Lane Variables: SharedValue Description SharedValues::READ_PODSPEC_JSON Podspec JSON payload To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/read_podspec/#documentation","text":"To show the documentation in your terminal, run fastlane action read_podspec","title":"Documentation"},{"location":"actions/read_podspec/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run read_podspec To pass parameters, make use of the : symbol, for example fastlane run read_podspec parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/read_podspec/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/recreate_schemes/","text":"recreate_schemes Recreate not shared Xcode project schemes recreate_schemes Supported platforms ios, mac Author @jerolimov 1 Example recreate_schemes(project: \"./path/to/MyApp.xcodeproj\") Parameters Key Description Default project The Xcode project * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action recreate_schemes CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run recreate_schemes To pass parameters, make use of the : symbol, for example fastlane run recreate_schemes parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"recreate_schemes"},{"location":"actions/recreate_schemes/#recreate_schemes","text":"Recreate not shared Xcode project schemes recreate_schemes Supported platforms ios, mac Author @jerolimov","title":"recreate_schemes"},{"location":"actions/recreate_schemes/#1-example","text":"recreate_schemes(project: \"./path/to/MyApp.xcodeproj\")","title":"1 Example"},{"location":"actions/recreate_schemes/#parameters","text":"Key Description Default project The Xcode project * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/recreate_schemes/#documentation","text":"To show the documentation in your terminal, run fastlane action recreate_schemes","title":"Documentation"},{"location":"actions/recreate_schemes/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run recreate_schemes To pass parameters, make use of the : symbol, for example fastlane run recreate_schemes parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/recreate_schemes/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/register_device/","text":"register_device Registers a new device to the Apple Dev Portal This will register an iOS device with the Developer Portal so that you can include it in your provisioning profiles. This is an optimistic action, in that it will only ever add a device to the member center. If the device has already been registered within the member center, it will be left alone in the member center. The action will connect to the Apple Developer Portal using the username you specified in your Appfile with apple_id , but you can override it using the :username option. register_device Supported platforms ios Author @pvinis 2 Examples register_device( name: \"Luka iPhone 6\", udid: \"1234567890123456789012345678901234567890\" ) # Simply provide the name and udid of the device register_device( name: \"Luka iPhone 6\", udid: \"1234567890123456789012345678901234567890\", team_id: \"XXXXXXXXXX\", # Optional, if you\"re a member of multiple teams, then you need to pass the team ID here. username: \"luka@goonbee.com\" # Optional, lets you override the Apple Member Center username. ) Parameters Key Description Default name Provide the name of the device to register as platform Provide the platform of the device to register as (ios, mac) ios udid Provide the UDID of the device to register as api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * username Optional: Your Apple ID * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action register_device CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run register_device To pass parameters, make use of the : symbol, for example fastlane run register_device parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"register_device"},{"location":"actions/register_device/#register_device","text":"Registers a new device to the Apple Dev Portal This will register an iOS device with the Developer Portal so that you can include it in your provisioning profiles. This is an optimistic action, in that it will only ever add a device to the member center. If the device has already been registered within the member center, it will be left alone in the member center. The action will connect to the Apple Developer Portal using the username you specified in your Appfile with apple_id , but you can override it using the :username option. register_device Supported platforms ios Author @pvinis","title":"register_device"},{"location":"actions/register_device/#2-examples","text":"register_device( name: \"Luka iPhone 6\", udid: \"1234567890123456789012345678901234567890\" ) # Simply provide the name and udid of the device register_device( name: \"Luka iPhone 6\", udid: \"1234567890123456789012345678901234567890\", team_id: \"XXXXXXXXXX\", # Optional, if you\"re a member of multiple teams, then you need to pass the team ID here. username: \"luka@goonbee.com\" # Optional, lets you override the Apple Member Center username. )","title":"2 Examples"},{"location":"actions/register_device/#parameters","text":"Key Description Default name Provide the name of the device to register as platform Provide the platform of the device to register as (ios, mac) ios udid Provide the UDID of the device to register as api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * username Optional: Your Apple ID * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/register_device/#documentation","text":"To show the documentation in your terminal, run fastlane action register_device","title":"Documentation"},{"location":"actions/register_device/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run register_device To pass parameters, make use of the : symbol, for example fastlane run register_device parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/register_device/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/register_devices/","text":"register_devices Registers new devices to the Apple Dev Portal This will register iOS/Mac devices with the Developer Portal so that you can include them in your provisioning profiles. This is an optimistic action, in that it will only ever add new devices to the member center, and never remove devices. If a device which has already been registered within the member center is not passed to this action, it will be left alone in the member center and continue to work. The action will connect to the Apple Developer Portal using the username you specified in your Appfile with apple_id , but you can override it using the username option, or by setting the env variable ENV['DELIVER_USER'] . register_devices Supported platforms ios, mac Author @lmirosevic 4 Examples register_devices( devices: { \"Luka iPhone 6\" => \"1234567890123456789012345678901234567890\", \"Felix iPad Air 2\" => \"abcdefghijklmnopqrstvuwxyzabcdefghijklmn\" } ) # Simply provide a list of devices as a Hash register_devices( devices_file: \"./devices.txt\" ) # Alternatively provide a standard UDID export .txt file, see the Apple Sample (http://devimages.apple.com/downloads/devices/Multiple-Upload-Samples.zip) register_devices( devices_file: \"./devices.txt\", # You must pass in either `devices_file` or `devices`. team_id: \"XXXXXXXXXX\", # Optional, if you\"re a member of multiple teams, then you need to pass the team ID here. username: \"luka@goonbee.com\" # Optional, lets you override the Apple Member Center username. ) register_devices( devices: { \"Luka MacBook\" => \"12345678-1234-1234-1234-123456789012\", \"Felix MacBook Pro\" => \"ABCDEFGH-ABCD-ABCD-ABCD-ABCDEFGHIJKL\" }, platform: \"mac\" ) # Register devices for Mac Parameters Key Description Default devices A hash of devices, with the name as key and the UDID as value devices_file Provide a path to a file with the devices to register. For the format of the file see the examples api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * username Optional: Your Apple ID * platform The platform to use (optional) ios * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action register_devices CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run register_devices To pass parameters, make use of the : symbol, for example fastlane run register_devices parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"register_devices"},{"location":"actions/register_devices/#register_devices","text":"Registers new devices to the Apple Dev Portal This will register iOS/Mac devices with the Developer Portal so that you can include them in your provisioning profiles. This is an optimistic action, in that it will only ever add new devices to the member center, and never remove devices. If a device which has already been registered within the member center is not passed to this action, it will be left alone in the member center and continue to work. The action will connect to the Apple Developer Portal using the username you specified in your Appfile with apple_id , but you can override it using the username option, or by setting the env variable ENV['DELIVER_USER'] . register_devices Supported platforms ios, mac Author @lmirosevic","title":"register_devices"},{"location":"actions/register_devices/#4-examples","text":"register_devices( devices: { \"Luka iPhone 6\" => \"1234567890123456789012345678901234567890\", \"Felix iPad Air 2\" => \"abcdefghijklmnopqrstvuwxyzabcdefghijklmn\" } ) # Simply provide a list of devices as a Hash register_devices( devices_file: \"./devices.txt\" ) # Alternatively provide a standard UDID export .txt file, see the Apple Sample (http://devimages.apple.com/downloads/devices/Multiple-Upload-Samples.zip) register_devices( devices_file: \"./devices.txt\", # You must pass in either `devices_file` or `devices`. team_id: \"XXXXXXXXXX\", # Optional, if you\"re a member of multiple teams, then you need to pass the team ID here. username: \"luka@goonbee.com\" # Optional, lets you override the Apple Member Center username. ) register_devices( devices: { \"Luka MacBook\" => \"12345678-1234-1234-1234-123456789012\", \"Felix MacBook Pro\" => \"ABCDEFGH-ABCD-ABCD-ABCD-ABCDEFGHIJKL\" }, platform: \"mac\" ) # Register devices for Mac","title":"4 Examples"},{"location":"actions/register_devices/#parameters","text":"Key Description Default devices A hash of devices, with the name as key and the UDID as value devices_file Provide a path to a file with the devices to register. For the format of the file see the examples api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * username Optional: Your Apple ID * platform The platform to use (optional) ios * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/register_devices/#documentation","text":"To show the documentation in your terminal, run fastlane action register_devices","title":"Documentation"},{"location":"actions/register_devices/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run register_devices To pass parameters, make use of the : symbol, for example fastlane run register_devices parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/register_devices/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/reset_git_repo/","text":"reset_git_repo Resets git repo to a clean state by discarding uncommitted changes This action will reset your git repo to a clean state, discarding any uncommitted and untracked changes. Useful in case you need to revert the repo back to a clean state, e.g. after running fastlane . Untracked files like .env will also be deleted, unless :skip_clean is true. It's a pretty drastic action so it comes with a sort of safety latch. It will only proceed with the reset if this condition is met: You have called the ensure_git_status_clean action prior to calling this action. This ensures that your repo started off in a clean state, so the only things that will get destroyed by this action are files that are created as a byproduct of the fastlane run. reset_git_repo Supported platforms ios, android, mac Author @lmirosevic 4 Examples reset_git_repo reset_git_repo(force: true) # If you don't care about warnings and are absolutely sure that you want to discard all changes. This will reset the repo even if you have valuable uncommitted changes, so use with care! reset_git_repo(skip_clean: true) # If you want \"git clean\" to be skipped, thus NOT deleting untracked files like \".env\". Optional, defaults to false. reset_git_repo( force: true, files: [ \"./file.txt\" ] ) Parameters Key Description Default files Array of files the changes should be discarded. If not given, all files will be discarded force Skip verifying of previously clean state of repo. Only recommended in combination with files option false skip_clean Skip 'git clean' to avoid removing untracked files like .env false disregard_gitignore Setting this to true will clean the whole repository, ignoring anything in your local .gitignore. Set this to true if you want the equivalent of a fresh clone, and for all untracked and ignore files to also be removed true exclude You can pass a string, or array of, file pattern(s) here which you want to have survive the cleaning process, and remain on disk, e.g. to leave the artifacts directory you would specify exclude: 'artifacts' . Make sure this pattern is also in your gitignore! See the gitignore documentation for info on patterns * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action reset_git_repo CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run reset_git_repo To pass parameters, make use of the : symbol, for example fastlane run reset_git_repo parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"reset_git_repo"},{"location":"actions/reset_git_repo/#reset_git_repo","text":"Resets git repo to a clean state by discarding uncommitted changes This action will reset your git repo to a clean state, discarding any uncommitted and untracked changes. Useful in case you need to revert the repo back to a clean state, e.g. after running fastlane . Untracked files like .env will also be deleted, unless :skip_clean is true. It's a pretty drastic action so it comes with a sort of safety latch. It will only proceed with the reset if this condition is met: You have called the ensure_git_status_clean action prior to calling this action. This ensures that your repo started off in a clean state, so the only things that will get destroyed by this action are files that are created as a byproduct of the fastlane run. reset_git_repo Supported platforms ios, android, mac Author @lmirosevic","title":"reset_git_repo"},{"location":"actions/reset_git_repo/#4-examples","text":"reset_git_repo reset_git_repo(force: true) # If you don't care about warnings and are absolutely sure that you want to discard all changes. This will reset the repo even if you have valuable uncommitted changes, so use with care! reset_git_repo(skip_clean: true) # If you want \"git clean\" to be skipped, thus NOT deleting untracked files like \".env\". Optional, defaults to false. reset_git_repo( force: true, files: [ \"./file.txt\" ] )","title":"4 Examples"},{"location":"actions/reset_git_repo/#parameters","text":"Key Description Default files Array of files the changes should be discarded. If not given, all files will be discarded force Skip verifying of previously clean state of repo. Only recommended in combination with files option false skip_clean Skip 'git clean' to avoid removing untracked files like .env false disregard_gitignore Setting this to true will clean the whole repository, ignoring anything in your local .gitignore. Set this to true if you want the equivalent of a fresh clone, and for all untracked and ignore files to also be removed true exclude You can pass a string, or array of, file pattern(s) here which you want to have survive the cleaning process, and remain on disk, e.g. to leave the artifacts directory you would specify exclude: 'artifacts' . Make sure this pattern is also in your gitignore! See the gitignore documentation for info on patterns * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/reset_git_repo/#documentation","text":"To show the documentation in your terminal, run fastlane action reset_git_repo","title":"Documentation"},{"location":"actions/reset_git_repo/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run reset_git_repo To pass parameters, make use of the : symbol, for example fastlane run reset_git_repo parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/reset_git_repo/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/reset_simulator_contents/","text":"reset_simulator_contents Shutdown and reset running simulators reset_simulator_contents Supported platforms ios Author @danramteke 2 Examples reset_simulator_contents reset_simulator_contents(os_versions: [\"10.3.1\",\"12.2\"]) Parameters Key Description Default ios DEPRECATED! Use :os_versions instead - Which OS versions of Simulators you want to reset content and settings, this does not remove/recreate the simulators os_versions Which OS versions of Simulators you want to reset content and settings, this does not remove/recreate the simulators * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action reset_simulator_contents CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run reset_simulator_contents To pass parameters, make use of the : symbol, for example fastlane run reset_simulator_contents parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"reset_simulator_contents"},{"location":"actions/reset_simulator_contents/#reset_simulator_contents","text":"Shutdown and reset running simulators reset_simulator_contents Supported platforms ios Author @danramteke","title":"reset_simulator_contents"},{"location":"actions/reset_simulator_contents/#2-examples","text":"reset_simulator_contents reset_simulator_contents(os_versions: [\"10.3.1\",\"12.2\"])","title":"2 Examples"},{"location":"actions/reset_simulator_contents/#parameters","text":"Key Description Default ios DEPRECATED! Use :os_versions instead - Which OS versions of Simulators you want to reset content and settings, this does not remove/recreate the simulators os_versions Which OS versions of Simulators you want to reset content and settings, this does not remove/recreate the simulators * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/reset_simulator_contents/#documentation","text":"To show the documentation in your terminal, run fastlane action reset_simulator_contents","title":"Documentation"},{"location":"actions/reset_simulator_contents/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run reset_simulator_contents To pass parameters, make use of the : symbol, for example fastlane run reset_simulator_contents parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/reset_simulator_contents/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/resign/","text":"resign Codesign an existing ipa file resign Supported platforms ios Author @lmirosevic 2 Examples resign( ipa: \"path/to/ipa\", # can omit if using the `ipa` action signing_identity: \"iPhone Distribution: Luka Mirosevic (0123456789)\", provisioning_profile: \"path/to/profile\", # can omit if using the _sigh_ action ) # You may provide multiple provisioning profiles if the application contains nested # applications or app extensions, which need their own provisioning profile. # You can do so by passing an array of provisioning profile strings or a hash # that associates provisioning profile values to bundle identifier keys. resign( ipa: \"path/to/ipa\", # can omit if using the `ipa` action signing_identity: \"iPhone Distribution: Luka Mirosevic (0123456789)\", provisioning_profile: { \"com.example.awesome-app\" => \"path/to/profile\", \"com.example.awesome-app.app-extension\" => \"path/to/app-extension/profile\" } ) Parameters Key Description Default ipa Path to the ipa file to resign. Optional if you use the gym or xcodebuild action * signing_identity Code signing identity to use. e.g. iPhone Distribution: Luka Mirosevic (0123456789) entitlements Path to the entitlement file to use, e.g. myApp/MyApp.entitlements provisioning_profile Path to your provisioning_profile. Optional if you use sigh * version Version number to force resigned ipa to use. Updates both CFBundleShortVersionString and CFBundleVersion values in Info.plist . Applies for main app and all nested apps or extensions display_name Display name to force resigned ipa to use short_version Short version string to force resigned ipa to use ( CFBundleShortVersionString ) bundle_version Bundle version to force resigned ipa to use ( CFBundleVersion ) bundle_id Set new bundle ID during resign ( CFBundleIdentifier ) use_app_entitlements Extract app bundle codesigning entitlements and combine with entitlements from new provisioning profile keychain_path Provide a path to a keychain file that should be used by /usr/bin/codesign * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action resign CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run resign To pass parameters, make use of the : symbol, for example fastlane run resign parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"resign"},{"location":"actions/resign/#resign","text":"Codesign an existing ipa file resign Supported platforms ios Author @lmirosevic","title":"resign"},{"location":"actions/resign/#2-examples","text":"resign( ipa: \"path/to/ipa\", # can omit if using the `ipa` action signing_identity: \"iPhone Distribution: Luka Mirosevic (0123456789)\", provisioning_profile: \"path/to/profile\", # can omit if using the _sigh_ action ) # You may provide multiple provisioning profiles if the application contains nested # applications or app extensions, which need their own provisioning profile. # You can do so by passing an array of provisioning profile strings or a hash # that associates provisioning profile values to bundle identifier keys. resign( ipa: \"path/to/ipa\", # can omit if using the `ipa` action signing_identity: \"iPhone Distribution: Luka Mirosevic (0123456789)\", provisioning_profile: { \"com.example.awesome-app\" => \"path/to/profile\", \"com.example.awesome-app.app-extension\" => \"path/to/app-extension/profile\" } )","title":"2 Examples"},{"location":"actions/resign/#parameters","text":"Key Description Default ipa Path to the ipa file to resign. Optional if you use the gym or xcodebuild action * signing_identity Code signing identity to use. e.g. iPhone Distribution: Luka Mirosevic (0123456789) entitlements Path to the entitlement file to use, e.g. myApp/MyApp.entitlements provisioning_profile Path to your provisioning_profile. Optional if you use sigh * version Version number to force resigned ipa to use. Updates both CFBundleShortVersionString and CFBundleVersion values in Info.plist . Applies for main app and all nested apps or extensions display_name Display name to force resigned ipa to use short_version Short version string to force resigned ipa to use ( CFBundleShortVersionString ) bundle_version Bundle version to force resigned ipa to use ( CFBundleVersion ) bundle_id Set new bundle ID during resign ( CFBundleIdentifier ) use_app_entitlements Extract app bundle codesigning entitlements and combine with entitlements from new provisioning profile keychain_path Provide a path to a keychain file that should be used by /usr/bin/codesign * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/resign/#documentation","text":"To show the documentation in your terminal, run fastlane action resign","title":"Documentation"},{"location":"actions/resign/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run resign To pass parameters, make use of the : symbol, for example fastlane run resign parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/resign/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/restore_file/","text":"restore_file This action restore your file that was backuped with the backup_file action restore_file Supported platforms ios, android, mac Author @gin0606 1 Example restore_file(path: \"/path/to/file\") Parameters Key Description Default path Original file name you want to restore * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action restore_file CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run restore_file To pass parameters, make use of the : symbol, for example fastlane run restore_file parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"restore_file"},{"location":"actions/restore_file/#restore_file","text":"This action restore your file that was backuped with the backup_file action restore_file Supported platforms ios, android, mac Author @gin0606","title":"restore_file"},{"location":"actions/restore_file/#1-example","text":"restore_file(path: \"/path/to/file\")","title":"1 Example"},{"location":"actions/restore_file/#parameters","text":"Key Description Default path Original file name you want to restore * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/restore_file/#documentation","text":"To show the documentation in your terminal, run fastlane action restore_file","title":"Documentation"},{"location":"actions/restore_file/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run restore_file To pass parameters, make use of the : symbol, for example fastlane run restore_file parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/restore_file/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/rocket/","text":"rocket Outputs ascii-art for a rocket \ud83d\ude80 Print an ascii Rocket :rocket:. Useful after using crashlytics or pilot to indicate that your new build has been shipped to outer-space. rocket Supported platforms ios, android, mac Author @JaviSoto, @radex 1 Example rocket Documentation To show the documentation in your terminal, run fastlane action rocket CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run rocket To pass parameters, make use of the : symbol, for example fastlane run rocket parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"rocket"},{"location":"actions/rocket/#rocket","text":"Outputs ascii-art for a rocket \ud83d\ude80 Print an ascii Rocket :rocket:. Useful after using crashlytics or pilot to indicate that your new build has been shipped to outer-space. rocket Supported platforms ios, android, mac Author @JaviSoto, @radex","title":"rocket"},{"location":"actions/rocket/#1-example","text":"rocket","title":"1 Example"},{"location":"actions/rocket/#documentation","text":"To show the documentation in your terminal, run fastlane action rocket","title":"Documentation"},{"location":"actions/rocket/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run rocket To pass parameters, make use of the : symbol, for example fastlane run rocket parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/rocket/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/rspec/","text":"rspec Run tests using rspec rspec | -----|---- Supported platforms | ios, android, mac Author | @KrauseFx To show the documentation in your terminal, run fastlane action rspec View source code Back to actions","title":"Rspec"},{"location":"actions/rspec/#rspec","text":"Run tests using rspec rspec | -----|---- Supported platforms | ios, android, mac Author | @KrauseFx To show the documentation in your terminal, run fastlane action rspec View source code Back to actions","title":"rspec"},{"location":"actions/rsync/","text":"rsync Rsync files from :source to :destination A wrapper around rsync , which is a tool that lets you synchronize files, including permissions and so on. For a more detailed information about rsync , please see rsync(1) man page . rsync Supported platforms ios, android, mac Author @hjanuschka 1 Example rsync( source: \"root@host:/tmp/1.txt\", destination: \"/tmp/local_file.txt\" ) Parameters Key Description Default extra Port -av source source file/folder destination destination file/folder * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action rsync CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run rsync To pass parameters, make use of the : symbol, for example fastlane run rsync parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"rsync"},{"location":"actions/rsync/#rsync","text":"Rsync files from :source to :destination A wrapper around rsync , which is a tool that lets you synchronize files, including permissions and so on. For a more detailed information about rsync , please see rsync(1) man page . rsync Supported platforms ios, android, mac Author @hjanuschka","title":"rsync"},{"location":"actions/rsync/#1-example","text":"rsync( source: \"root@host:/tmp/1.txt\", destination: \"/tmp/local_file.txt\" )","title":"1 Example"},{"location":"actions/rsync/#parameters","text":"Key Description Default extra Port -av source source file/folder destination destination file/folder * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/rsync/#documentation","text":"To show the documentation in your terminal, run fastlane action rsync","title":"Documentation"},{"location":"actions/rsync/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run rsync To pass parameters, make use of the : symbol, for example fastlane run rsync parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/rsync/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/rubocop/","text":"rubocop Runs the code style checks rubocop | -----|---- Supported platforms | ios, android, mac Author | @KrauseFx To show the documentation in your terminal, run fastlane action rubocop View source code Back to actions","title":"Rubocop"},{"location":"actions/rubocop/#rubocop","text":"Runs the code style checks rubocop | -----|---- Supported platforms | ios, android, mac Author | @KrauseFx To show the documentation in your terminal, run fastlane action rubocop View source code Back to actions","title":"rubocop"},{"location":"actions/ruby_version/","text":"ruby_version Verifies the minimum ruby version required Add this to your Fastfile to require a certain version of ruby . Put it at the top of your Fastfile to ensure that fastlane is executed appropriately. ruby_version Supported platforms ios, android, mac Author @sebastianvarela 1 Example ruby_version(\"2.4.0\") Documentation To show the documentation in your terminal, run fastlane action ruby_version CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ruby_version To pass parameters, make use of the : symbol, for example fastlane run ruby_version parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"ruby_version"},{"location":"actions/ruby_version/#ruby_version","text":"Verifies the minimum ruby version required Add this to your Fastfile to require a certain version of ruby . Put it at the top of your Fastfile to ensure that fastlane is executed appropriately. ruby_version Supported platforms ios, android, mac Author @sebastianvarela","title":"ruby_version"},{"location":"actions/ruby_version/#1-example","text":"ruby_version(\"2.4.0\")","title":"1 Example"},{"location":"actions/ruby_version/#documentation","text":"To show the documentation in your terminal, run fastlane action ruby_version","title":"Documentation"},{"location":"actions/ruby_version/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ruby_version To pass parameters, make use of the : symbol, for example fastlane run ruby_version parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/ruby_version/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/run_tests/","text":"run_tests Easily run tests of your iOS app (via scan ) The easiest way to run tests of your iOS and Mac app scan makes it easy to run tests of your iOS and Mac app on a simulator or connected device. Features \u2022 Usage \u2022 Scanfile What's scan? Before scan xcodebuild \\ -workspace MyApp.xcworkspace \\ -scheme \"MyApp\" \\ -sdk iphonesimulator \\ -destination 'platform=iOS Simulator,name=iPhone 6,OS=8.1' \\ test As the output will look like this /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/Objects-normal/arm64/main.o Example/main.m normal arm64 objective-c com.apple.compilers.llvm.clang.1_0.compiler cd /Users/felixkrause/Developer/fastlane/gym/example/cocoapods export LANG=en_US.US-ASCII export PATH=\"/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode-beta.app/Contents/Developer/usr/bin:/Users/felixkrause/.rvm/gems/ruby-2.2.0/bin:/Users/felixkrause/.rvm/gems/ruby-2.2.0@global/bin:/Users/felixkrause/.rvm/rubies/ruby-2.2.0/bin:/Users/felixkrause/.rvm/bin:/usr/local/heroku/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin\" /Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x objective-c -arch arm64 -fmessage-length=126 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -fcolor-diagnostics -std=gnu99 -fobjc-arc -fmodules -gmodules -fmodules-cache-path=/Users/felixkrause/Library/Developer/Xcode/DerivedData/ModuleCache -fmodules-prune-interval=86400 -fmodules-prune-after=345600 -fbuild-session-file=/Users/felixkrause/Library/Developer/Xcode/DerivedData/ModuleCache/Session.modulevalidation -fmodules-validate-once-per-build-session -Wnon-modular-include-in-framework-module -Werror=non-modular-include-in-framework-module -Wno-trigraphs -fpascal-strings -Os -fno-common -Wno-missing-field-initializers -Wno-missing-prototypes -Werror=return-type -Wunreachable-code -Wno-implicit-atomic-properties -Werror=deprecated-objc-isa-usage -Werror=objc-root-class -Wno-arc-repeated-use-of-weak -Wduplicate-method-match -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wconditional-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wshorten-64-to-32 -Wpointer-sign -Wno-newline-eof -Wno-selector -Wno-strict-selector-match -Wundeclared-selector -Wno-deprecated-implementations -DCOCOAPODS=1 -DNS_BLOCK_ASSERTIONS=1 -DOBJC_OLD_DISPATCH_PROTOTYPES=0 -isysroot /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk -fstrict-aliasing -Wprotocol -Wdeprecated-declarations -miphoneos-version-min=9.0 -g -fvisibility=hidden -Wno-sign-conversion -fembed-bitcode -iquote /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/ExampleProductName-generated-files.hmap -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/ExampleProductName-own-target-headers.hmap -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/ExampleProductName-all-target-headers.hmap -iquote /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/ExampleProductName-project-headers.hmap -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/BuildProductsPath/Release-iphoneos/include -I/Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Pods/Headers/Public -I/Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Pods/Headers/Public/HexColors -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/DerivedSources/arm64 -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/DerivedSources -F/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/BuildProductsPath/Release-iphoneos -isystem /Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Pods/Headers/Public -isystem /Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Pods/Headers/Public/HexColors -MMD -MT dependencies -MF /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/Objects-normal/arm64/main.d --serialize-diagnostics /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/Objects-normal/arm64/main.dia -c /Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Example/main.m -o /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/Objects-normal/arm64/main.o you'll probably want to use something like xcpretty , which will look like this: set -o pipefail && xcodebuild \\ -workspace MyApp.xcworkspace \\ -scheme \"MyApp\" \\ -sdk iphonesimulator \\ -destination 'platform=iOS Simulator,name=iPhone 6,OS=8.1' \\ test \\ | xcpretty \\ -r \"html\" \\ -o \"tests.html\" With scan fastlane scan Why scan ? scan uses the latest APIs and tools to make running tests plain simple and offer a great integration into your existing workflow, like fastlane or Jenkins. scan Features \ud83c\udfc1 Beautiful inline build output while running the tests \ud83d\udea0 Sensible defaults: Automatically detect the project, schemes and more \ud83d\udcca Support for HTML, JSON and JUnit reports \ud83d\udd0e Xcode duplicated your simulators again? scan will handle this for you \ud83d\udd17 Works perfectly with fastlane and other tools \ud83d\ude85 Don't remember any complicated build commands, just scan \ud83d\udd27 Easy and dynamic configuration using parameters and environment variables \ud83d\udce2 Beautiful slack notifications of the test results \ud83d\udcbe Store common build settings in a Scanfile \ud83d\udce4 The raw xcodebuild outputs are stored in ~/Library/Logs/scan \ud83d\udcbb Supports both iOS and Mac applications \ud83d\udc71 Automatically switches to the travis formatter when running on Travis \ud83d\udcd6 Helps you resolve common test errors like simulator not responding scan uses a plain xcodebuild command, therefore keeping 100% compatible with xcodebuild . To generate the nice output, scan uses xcpretty . You can always access the raw output in ~/Library/Logs/scan . Usage fastlane scan That's all you need to run your tests. If you want more control, here are some available parameters: fastlane scan --workspace \"Example.xcworkspace\" --scheme \"AppName\" --device \"iPhone 6\" --clean If you need to use a different Xcode install, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" scan To run scan on multiple devices via fastlane , add this to your Fastfile : scan( workspace: \"Example.xcworkspace\", devices: [\"iPhone 6s\", \"iPad Air\"] ) For a list of all available parameters use fastlane action scan To access the raw xcodebuild output open ~/Library/Logs/scan Scanfile Since you might want to manually trigger the tests but don't want to specify all the parameters every time, you can store your defaults in a so called Scanfile . Run fastlane scan init to create a new configuration file. Example: scheme(\"Example\") devices([\"iPhone 6s\", \"iPad Air\"]) clean(true) output_types(\"html\") Automating the whole process scan works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :test do scan(scheme: \"Example\") end run_tests Supported platforms ios, mac Author @KrauseFx Returns Outputs hash of results with the following keys: :number_of_tests, :number_of_failures, :number_of_retries, :number_of_tests_excluding_retries, :number_of_failures_excluding_retries 6 Examples run_tests scan # alias for \"run_tests\" run_tests( workspace: \"App.xcworkspace\", scheme: \"MyTests\", clean: false ) # Build For Testing run_tests( derived_data_path: \"my_folder\", build_for_testing: true ) # run tests using derived data from prev. build run_tests( derived_data_path: \"my_folder\", test_without_building: true ) # or run it from an existing xctestrun package run_tests( xctestrun: \"/path/to/mytests.xctestrun\" ) Parameters Key Description Default workspace Path to the workspace file project Path to the project file package_path Path to the Swift Package scheme The project's scheme. Make sure it's marked as Shared device The name of the simulator type you want to run tests on (e.g. 'iPhone 6' or 'iPhone SE (2nd generation) (14.5)') devices Array of devices to run the tests on (e.g. ['iPhone 6', 'iPad Air', 'iPhone SE (2nd generation) (14.5)']) skip_detect_devices Should skip auto detecting of devices if none were specified false ensure_devices_found Should fail if devices not found false force_quit_simulator Enabling this option will automatically killall Simulator processes before the run false reset_simulator Enabling this option will automatically erase the simulator before running the application false disable_slide_to_type Enabling this option will disable the simulator from showing the 'Slide to type' prompt true prelaunch_simulator Enabling this option will launch the first simulator prior to calling any xcodebuild command reinstall_app Enabling this option will automatically uninstall the application before running it false app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip testplan The testplan associated with the scheme that should be used for testing only_test_configurations Array of strings matching test plan configurations to run skip_test_configurations Array of strings matching test plan configurations to skip xctestrun Run tests using the provided .xctestrun file toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a ) clean Should the project be cleaned before building it? false code_coverage Should code coverage be generated? (Xcode 7 and up) address_sanitizer Should the address sanitizer be turned on? thread_sanitizer Should the thread sanitizer be turned on? open_report Should the HTML report be opened when tests are completed? false output_directory The directory in which all reports will be stored * output_style Define how the output should look like. Valid values are: standard, basic, rspec, or raw (disables xcpretty during xcodebuild) output_types Comma separated list of the output types (e.g. html, junit, json-compilation-database) html,junit output_files Comma separated list of the output files, corresponding to the types provided by :output_types (order should match). If specifying an output type of json-compilation-database with :use_clang_report_name enabled, that option will take precedence buildlog_path The directory where to store the raw log * include_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * output_remove_retry_attempts Remove retry attempts from test results table and the JUnit report (if not using xcpretty) false disable_xcpretty DEPRECATED! Use output_style: 'raw' instead - Disable xcpretty formatting of build, similar to output_style='raw' but this will also skip the test results table formatter DEPRECATED! Use 'xcpretty_formatter' instead - A custom xcpretty formatter to use xcpretty_formatter A custom xcpretty formatter to use xcpretty_args Pass in xcpretty additional command line arguments (e.g. '--test --no-color' or '--tap --no-utf') derived_data_path The directory where build products and other derived data will go should_zip_build_products Should zip the derived data build products and place in output path? false output_xctestrun Should provide additional copy of .xctestrun file (settings.xctestrun) and place in output path? false result_bundle_path Custom path for the result bundle, overrides result_bundle result_bundle Should an Xcode result bundle be generated in the output directory false use_clang_report_name Generate the json compilation database with clang naming convention (compile_commands.json) false parallel_testing Optionally override the per-target setting in the scheme for running tests in parallel. Equivalent to -parallel-testing-enabled concurrent_workers Specify the exact number of test runners that will be spawned during parallel testing. Equivalent to -parallel-testing-worker-count max_concurrent_simulators Constrain the number of simulator devices on which to test concurrently. Equivalent to -maximum-concurrent-test-simulator-destinations disable_concurrent_testing Do not run test bundles in parallel on the specified destinations. Testing will occur on each destination serially. Equivalent to -disable-concurrent-testing false skip_build Should debug build be skipped before test build? false test_without_building Test without building, requires a derived data path build_for_testing Build for testing only, does not run tests sdk The SDK that should be used for building the application configuration The configuration to use when building the app. Defaults to 'Release' * xcargs Pass additional arguments to xcodebuild. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app app_name App name to use in slack message and logfile name deployment_target_version Target version of the app being build or tested. Used to filter out simulator version slack_url Create an Incoming WebHook for your Slack group to post results there slack_channel #channel or @username slack_message The message included with each message posted to slack slack_use_webhook_configured_username_and_icon Use webhook's default username and icon settings? (true/false) false slack_username Overrides the webhook's username property if slack_use_webhook_configured_username_and_icon is false fastlane slack_icon_url Overrides the webhook's image property if slack_use_webhook_configured_username_and_icon is false https://fastlane.tools/assets/img/fastlane_icon.png skip_slack Don't publish to slack, even when an URL is given false slack_only_on_failure Only post on Slack if the tests fail false slack_default_payloads Specifies default payloads to include in Slack messages. For more info visit https://docs.fastlane.tools/actions/slack destination Use only if you're a pro, use the other options instead run_rosetta_simulator Adds arch=x86_64 to the xcodebuild 'destination' argument to run simulator in a Rosetta mode false catalyst_platform Platform to build when using a Catalyst enabled app. Valid values are: ios, macos custom_report_file_name DEPRECATED! Use --output_files instead - Sets custom full report file name when generating a single report xcodebuild_command Allows for override of the default xcodebuild command env NSUnbufferedIO=YES xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false number_of_retries The number of times a test can fail 0 fail_build Should this step stop the build if the tests fail? Set this to false if you're using trainer true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The run_tests action generates the following Lane Variables: SharedValue Description SharedValues::SCAN_DERIVED_DATA_PATH The path to the derived data SharedValues::SCAN_GENERATED_PLIST_FILE The generated plist file SharedValues::SCAN_GENERATED_PLIST_FILES The generated plist files SharedValues::SCAN_GENERATED_XCRESULT_PATH The path to the generated .xcresult SharedValues::SCAN_ZIP_BUILD_PRODUCTS_PATH The path to the zipped build products To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action run_tests CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run run_tests To pass parameters, make use of the : symbol, for example fastlane run run_tests parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"run_tests"},{"location":"actions/run_tests/#run_tests","text":"Easily run tests of your iOS app (via scan )","title":"run_tests"},{"location":"actions/run_tests/#whats-scan","text":"","title":"What's scan?"},{"location":"actions/run_tests/#usage","text":"fastlane scan That's all you need to run your tests. If you want more control, here are some available parameters: fastlane scan --workspace \"Example.xcworkspace\" --scheme \"AppName\" --device \"iPhone 6\" --clean If you need to use a different Xcode install, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" scan To run scan on multiple devices via fastlane , add this to your Fastfile : scan( workspace: \"Example.xcworkspace\", devices: [\"iPhone 6s\", \"iPad Air\"] ) For a list of all available parameters use fastlane action scan To access the raw xcodebuild output open ~/Library/Logs/scan","title":"Usage"},{"location":"actions/run_tests/#scanfile","text":"Since you might want to manually trigger the tests but don't want to specify all the parameters every time, you can store your defaults in a so called Scanfile . Run fastlane scan init to create a new configuration file. Example: scheme(\"Example\") devices([\"iPhone 6s\", \"iPad Air\"]) clean(true) output_types(\"html\")","title":"Scanfile"},{"location":"actions/run_tests/#automating-the-whole-process","text":"scan works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :test do scan(scheme: \"Example\") end run_tests Supported platforms ios, mac Author @KrauseFx Returns Outputs hash of results with the following keys: :number_of_tests, :number_of_failures, :number_of_retries, :number_of_tests_excluding_retries, :number_of_failures_excluding_retries","title":"Automating the whole process"},{"location":"actions/run_tests/#6-examples","text":"run_tests scan # alias for \"run_tests\" run_tests( workspace: \"App.xcworkspace\", scheme: \"MyTests\", clean: false ) # Build For Testing run_tests( derived_data_path: \"my_folder\", build_for_testing: true ) # run tests using derived data from prev. build run_tests( derived_data_path: \"my_folder\", test_without_building: true ) # or run it from an existing xctestrun package run_tests( xctestrun: \"/path/to/mytests.xctestrun\" )","title":"6 Examples"},{"location":"actions/run_tests/#parameters","text":"Key Description Default workspace Path to the workspace file project Path to the project file package_path Path to the Swift Package scheme The project's scheme. Make sure it's marked as Shared device The name of the simulator type you want to run tests on (e.g. 'iPhone 6' or 'iPhone SE (2nd generation) (14.5)') devices Array of devices to run the tests on (e.g. ['iPhone 6', 'iPad Air', 'iPhone SE (2nd generation) (14.5)']) skip_detect_devices Should skip auto detecting of devices if none were specified false ensure_devices_found Should fail if devices not found false force_quit_simulator Enabling this option will automatically killall Simulator processes before the run false reset_simulator Enabling this option will automatically erase the simulator before running the application false disable_slide_to_type Enabling this option will disable the simulator from showing the 'Slide to type' prompt true prelaunch_simulator Enabling this option will launch the first simulator prior to calling any xcodebuild command reinstall_app Enabling this option will automatically uninstall the application before running it false app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip testplan The testplan associated with the scheme that should be used for testing only_test_configurations Array of strings matching test plan configurations to run skip_test_configurations Array of strings matching test plan configurations to skip xctestrun Run tests using the provided .xctestrun file toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a ) clean Should the project be cleaned before building it? false code_coverage Should code coverage be generated? (Xcode 7 and up) address_sanitizer Should the address sanitizer be turned on? thread_sanitizer Should the thread sanitizer be turned on? open_report Should the HTML report be opened when tests are completed? false output_directory The directory in which all reports will be stored * output_style Define how the output should look like. Valid values are: standard, basic, rspec, or raw (disables xcpretty during xcodebuild) output_types Comma separated list of the output types (e.g. html, junit, json-compilation-database) html,junit output_files Comma separated list of the output files, corresponding to the types provided by :output_types (order should match). If specifying an output type of json-compilation-database with :use_clang_report_name enabled, that option will take precedence buildlog_path The directory where to store the raw log * include_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * output_remove_retry_attempts Remove retry attempts from test results table and the JUnit report (if not using xcpretty) false disable_xcpretty DEPRECATED! Use output_style: 'raw' instead - Disable xcpretty formatting of build, similar to output_style='raw' but this will also skip the test results table formatter DEPRECATED! Use 'xcpretty_formatter' instead - A custom xcpretty formatter to use xcpretty_formatter A custom xcpretty formatter to use xcpretty_args Pass in xcpretty additional command line arguments (e.g. '--test --no-color' or '--tap --no-utf') derived_data_path The directory where build products and other derived data will go should_zip_build_products Should zip the derived data build products and place in output path? false output_xctestrun Should provide additional copy of .xctestrun file (settings.xctestrun) and place in output path? false result_bundle_path Custom path for the result bundle, overrides result_bundle result_bundle Should an Xcode result bundle be generated in the output directory false use_clang_report_name Generate the json compilation database with clang naming convention (compile_commands.json) false parallel_testing Optionally override the per-target setting in the scheme for running tests in parallel. Equivalent to -parallel-testing-enabled concurrent_workers Specify the exact number of test runners that will be spawned during parallel testing. Equivalent to -parallel-testing-worker-count max_concurrent_simulators Constrain the number of simulator devices on which to test concurrently. Equivalent to -maximum-concurrent-test-simulator-destinations disable_concurrent_testing Do not run test bundles in parallel on the specified destinations. Testing will occur on each destination serially. Equivalent to -disable-concurrent-testing false skip_build Should debug build be skipped before test build? false test_without_building Test without building, requires a derived data path build_for_testing Build for testing only, does not run tests sdk The SDK that should be used for building the application configuration The configuration to use when building the app. Defaults to 'Release' * xcargs Pass additional arguments to xcodebuild. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app app_name App name to use in slack message and logfile name deployment_target_version Target version of the app being build or tested. Used to filter out simulator version slack_url Create an Incoming WebHook for your Slack group to post results there slack_channel #channel or @username slack_message The message included with each message posted to slack slack_use_webhook_configured_username_and_icon Use webhook's default username and icon settings? (true/false) false slack_username Overrides the webhook's username property if slack_use_webhook_configured_username_and_icon is false fastlane slack_icon_url Overrides the webhook's image property if slack_use_webhook_configured_username_and_icon is false https://fastlane.tools/assets/img/fastlane_icon.png skip_slack Don't publish to slack, even when an URL is given false slack_only_on_failure Only post on Slack if the tests fail false slack_default_payloads Specifies default payloads to include in Slack messages. For more info visit https://docs.fastlane.tools/actions/slack destination Use only if you're a pro, use the other options instead run_rosetta_simulator Adds arch=x86_64 to the xcodebuild 'destination' argument to run simulator in a Rosetta mode false catalyst_platform Platform to build when using a Catalyst enabled app. Valid values are: ios, macos custom_report_file_name DEPRECATED! Use --output_files instead - Sets custom full report file name when generating a single report xcodebuild_command Allows for override of the default xcodebuild command env NSUnbufferedIO=YES xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false number_of_retries The number of times a test can fail 0 fail_build Should this step stop the build if the tests fail? Set this to false if you're using trainer true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/run_tests/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The run_tests action generates the following Lane Variables: SharedValue Description SharedValues::SCAN_DERIVED_DATA_PATH The path to the derived data SharedValues::SCAN_GENERATED_PLIST_FILE The generated plist file SharedValues::SCAN_GENERATED_PLIST_FILES The generated plist files SharedValues::SCAN_GENERATED_XCRESULT_PATH The path to the generated .xcresult SharedValues::SCAN_ZIP_BUILD_PRODUCTS_PATH The path to the zipped build products To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/run_tests/#documentation","text":"To show the documentation in your terminal, run fastlane action run_tests","title":"Documentation"},{"location":"actions/run_tests/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run run_tests To pass parameters, make use of the : symbol, for example fastlane run run_tests parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/run_tests/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/s3/","text":"s3 Generates a plist file and uploads all to AWS S3 Please use the aws_s3 plugin instead. Install using fastlane add_plugin aws_s3 . Upload a new build to Amazon S3 to distribute the build to beta testers. Works for both Ad Hoc and Enterprise signed applications. This step will generate the necessary HTML, plist, and version files for you. It is recommended to not store the AWS access keys in the Fastfile . The uploaded version.json file provides an easy way for apps to poll if a new update is available. s3 Supported platforms Author @joshdholtz 2 Examples s3 s3( # All of these are used to make Shenzhen's `ipa distribute:s3` command access_key: ENV[\"S3_ACCESS_KEY\"], # Required from user. secret_access_key: ENV[\"S3_SECRET_ACCESS_KEY\"], # Required from user. bucket: ENV[\"S3_BUCKET\"], # Required from user. ipa: \"AppName.ipa\", # Optional if you use `ipa` to build dsym: \"AppName.app.dSYM.zip\", # Optional if you use `ipa` to build path: \"v{CFBundleShortVersionString}_b{CFBundleVersion}/\", # This is actually the default. upload_metadata: true, # Upload version.json, plist and HTML. Set to false to skip uploading of these files. version_file_name: \"app_version.json\",# Name of the file to upload to S3. Defaults to \"version.json\" version_template_path: \"path/to/erb\" # Path to an ERB to configure the structure of the version JSON file ) Parameters Key Description Default ipa .ipa file for the build * dsym zipped .dsym package for the build * upload_metadata Upload relevant metadata for this build true plist_template_path plist template path plist_file_name uploaded plist filename html_template_path html erb template path html_file_name uploaded html filename version_template_path version erb template path version_file_name uploaded version filename access_key AWS Access Key ID * secret_access_key AWS Secret Access Key * bucket AWS bucket name * region AWS region (for bucket creation) * path S3 'path'. Values from Info.plist will be substituted for keys wrapped in {} v{CFBundleShortVersionString}_b{CFBundleVersion}/ source Optional source directory e.g. ./build acl Uploaded object permissions e.g public_read (default), private, public_read_write, authenticated_read public_read * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The s3 action generates the following Lane Variables: SharedValue Description SharedValues::S3_IPA_OUTPUT_PATH Direct HTTP link to the uploaded ipa file SharedValues::S3_DSYM_OUTPUT_PATH Direct HTTP link to the uploaded dsym file SharedValues::S3_PLIST_OUTPUT_PATH Direct HTTP link to the uploaded plist file SharedValues::S3_HTML_OUTPUT_PATH Direct HTTP link to the uploaded HTML file SharedValues::S3_VERSION_OUTPUT_PATH Direct HTTP link to the uploaded Version file To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action s3 CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run s3 To pass parameters, make use of the : symbol, for example fastlane run s3 parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"s3"},{"location":"actions/s3/#s3","text":"Generates a plist file and uploads all to AWS S3 Please use the aws_s3 plugin instead. Install using fastlane add_plugin aws_s3 . Upload a new build to Amazon S3 to distribute the build to beta testers. Works for both Ad Hoc and Enterprise signed applications. This step will generate the necessary HTML, plist, and version files for you. It is recommended to not store the AWS access keys in the Fastfile . The uploaded version.json file provides an easy way for apps to poll if a new update is available. s3 Supported platforms Author @joshdholtz","title":"s3"},{"location":"actions/s3/#2-examples","text":"s3 s3( # All of these are used to make Shenzhen's `ipa distribute:s3` command access_key: ENV[\"S3_ACCESS_KEY\"], # Required from user. secret_access_key: ENV[\"S3_SECRET_ACCESS_KEY\"], # Required from user. bucket: ENV[\"S3_BUCKET\"], # Required from user. ipa: \"AppName.ipa\", # Optional if you use `ipa` to build dsym: \"AppName.app.dSYM.zip\", # Optional if you use `ipa` to build path: \"v{CFBundleShortVersionString}_b{CFBundleVersion}/\", # This is actually the default. upload_metadata: true, # Upload version.json, plist and HTML. Set to false to skip uploading of these files. version_file_name: \"app_version.json\",# Name of the file to upload to S3. Defaults to \"version.json\" version_template_path: \"path/to/erb\" # Path to an ERB to configure the structure of the version JSON file )","title":"2 Examples"},{"location":"actions/s3/#parameters","text":"Key Description Default ipa .ipa file for the build * dsym zipped .dsym package for the build * upload_metadata Upload relevant metadata for this build true plist_template_path plist template path plist_file_name uploaded plist filename html_template_path html erb template path html_file_name uploaded html filename version_template_path version erb template path version_file_name uploaded version filename access_key AWS Access Key ID * secret_access_key AWS Secret Access Key * bucket AWS bucket name * region AWS region (for bucket creation) * path S3 'path'. Values from Info.plist will be substituted for keys wrapped in {} v{CFBundleShortVersionString}_b{CFBundleVersion}/ source Optional source directory e.g. ./build acl Uploaded object permissions e.g public_read (default), private, public_read_write, authenticated_read public_read * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/s3/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The s3 action generates the following Lane Variables: SharedValue Description SharedValues::S3_IPA_OUTPUT_PATH Direct HTTP link to the uploaded ipa file SharedValues::S3_DSYM_OUTPUT_PATH Direct HTTP link to the uploaded dsym file SharedValues::S3_PLIST_OUTPUT_PATH Direct HTTP link to the uploaded plist file SharedValues::S3_HTML_OUTPUT_PATH Direct HTTP link to the uploaded HTML file SharedValues::S3_VERSION_OUTPUT_PATH Direct HTTP link to the uploaded Version file To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/s3/#documentation","text":"To show the documentation in your terminal, run fastlane action s3","title":"Documentation"},{"location":"actions/s3/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run s3 To pass parameters, make use of the : symbol, for example fastlane run s3 parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/s3/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/say/","text":"say This action speaks the given text out loud say Supported platforms ios, android, mac Author @KrauseFx 1 Example say(\"I can speak\") Parameters Key Description Default text Text to be spoken out loud (as string or array of strings) mute If say should be muted with text printed out false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action say CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run say To pass parameters, make use of the : symbol, for example fastlane run say parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"say"},{"location":"actions/say/#say","text":"This action speaks the given text out loud say Supported platforms ios, android, mac Author @KrauseFx","title":"say"},{"location":"actions/say/#1-example","text":"say(\"I can speak\")","title":"1 Example"},{"location":"actions/say/#parameters","text":"Key Description Default text Text to be spoken out loud (as string or array of strings) mute If say should be muted with text printed out false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/say/#documentation","text":"To show the documentation in your terminal, run fastlane action say","title":"Documentation"},{"location":"actions/say/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run say To pass parameters, make use of the : symbol, for example fastlane run say parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/say/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/scan/","text":"scan Alias for the run_tests action The easiest way to run tests of your iOS and Mac app scan makes it easy to run tests of your iOS and Mac app on a simulator or connected device. Features \u2022 Usage \u2022 Scanfile What's scan? Before scan xcodebuild \\ -workspace MyApp.xcworkspace \\ -scheme \"MyApp\" \\ -sdk iphonesimulator \\ -destination 'platform=iOS Simulator,name=iPhone 6,OS=8.1' \\ test As the output will look like this /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/Objects-normal/arm64/main.o Example/main.m normal arm64 objective-c com.apple.compilers.llvm.clang.1_0.compiler cd /Users/felixkrause/Developer/fastlane/gym/example/cocoapods export LANG=en_US.US-ASCII export PATH=\"/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode-beta.app/Contents/Developer/usr/bin:/Users/felixkrause/.rvm/gems/ruby-2.2.0/bin:/Users/felixkrause/.rvm/gems/ruby-2.2.0@global/bin:/Users/felixkrause/.rvm/rubies/ruby-2.2.0/bin:/Users/felixkrause/.rvm/bin:/usr/local/heroku/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin\" /Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x objective-c -arch arm64 -fmessage-length=126 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -fcolor-diagnostics -std=gnu99 -fobjc-arc -fmodules -gmodules -fmodules-cache-path=/Users/felixkrause/Library/Developer/Xcode/DerivedData/ModuleCache -fmodules-prune-interval=86400 -fmodules-prune-after=345600 -fbuild-session-file=/Users/felixkrause/Library/Developer/Xcode/DerivedData/ModuleCache/Session.modulevalidation -fmodules-validate-once-per-build-session -Wnon-modular-include-in-framework-module -Werror=non-modular-include-in-framework-module -Wno-trigraphs -fpascal-strings -Os -fno-common -Wno-missing-field-initializers -Wno-missing-prototypes -Werror=return-type -Wunreachable-code -Wno-implicit-atomic-properties -Werror=deprecated-objc-isa-usage -Werror=objc-root-class -Wno-arc-repeated-use-of-weak -Wduplicate-method-match -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wconditional-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wshorten-64-to-32 -Wpointer-sign -Wno-newline-eof -Wno-selector -Wno-strict-selector-match -Wundeclared-selector -Wno-deprecated-implementations -DCOCOAPODS=1 -DNS_BLOCK_ASSERTIONS=1 -DOBJC_OLD_DISPATCH_PROTOTYPES=0 -isysroot /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk -fstrict-aliasing -Wprotocol -Wdeprecated-declarations -miphoneos-version-min=9.0 -g -fvisibility=hidden -Wno-sign-conversion -fembed-bitcode -iquote /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/ExampleProductName-generated-files.hmap -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/ExampleProductName-own-target-headers.hmap -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/ExampleProductName-all-target-headers.hmap -iquote /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/ExampleProductName-project-headers.hmap -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/BuildProductsPath/Release-iphoneos/include -I/Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Pods/Headers/Public -I/Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Pods/Headers/Public/HexColors -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/DerivedSources/arm64 -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/DerivedSources -F/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/BuildProductsPath/Release-iphoneos -isystem /Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Pods/Headers/Public -isystem /Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Pods/Headers/Public/HexColors -MMD -MT dependencies -MF /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/Objects-normal/arm64/main.d --serialize-diagnostics /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/Objects-normal/arm64/main.dia -c /Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Example/main.m -o /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/Objects-normal/arm64/main.o you'll probably want to use something like xcpretty , which will look like this: set -o pipefail && xcodebuild \\ -workspace MyApp.xcworkspace \\ -scheme \"MyApp\" \\ -sdk iphonesimulator \\ -destination 'platform=iOS Simulator,name=iPhone 6,OS=8.1' \\ test \\ | xcpretty \\ -r \"html\" \\ -o \"tests.html\" With scan fastlane scan Why scan ? scan uses the latest APIs and tools to make running tests plain simple and offer a great integration into your existing workflow, like fastlane or Jenkins. scan Features \ud83c\udfc1 Beautiful inline build output while running the tests \ud83d\udea0 Sensible defaults: Automatically detect the project, schemes and more \ud83d\udcca Support for HTML, JSON and JUnit reports \ud83d\udd0e Xcode duplicated your simulators again? scan will handle this for you \ud83d\udd17 Works perfectly with fastlane and other tools \ud83d\ude85 Don't remember any complicated build commands, just scan \ud83d\udd27 Easy and dynamic configuration using parameters and environment variables \ud83d\udce2 Beautiful slack notifications of the test results \ud83d\udcbe Store common build settings in a Scanfile \ud83d\udce4 The raw xcodebuild outputs are stored in ~/Library/Logs/scan \ud83d\udcbb Supports both iOS and Mac applications \ud83d\udc71 Automatically switches to the travis formatter when running on Travis \ud83d\udcd6 Helps you resolve common test errors like simulator not responding scan uses a plain xcodebuild command, therefore keeping 100% compatible with xcodebuild . To generate the nice output, scan uses xcpretty . You can always access the raw output in ~/Library/Logs/scan . Usage fastlane scan That's all you need to run your tests. If you want more control, here are some available parameters: fastlane scan --workspace \"Example.xcworkspace\" --scheme \"AppName\" --device \"iPhone 6\" --clean If you need to use a different Xcode install, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" scan To run scan on multiple devices via fastlane , add this to your Fastfile : scan( workspace: \"Example.xcworkspace\", devices: [\"iPhone 6s\", \"iPad Air\"] ) For a list of all available parameters use fastlane action scan To access the raw xcodebuild output open ~/Library/Logs/scan Scanfile Since you might want to manually trigger the tests but don't want to specify all the parameters every time, you can store your defaults in a so called Scanfile . Run fastlane scan init to create a new configuration file. Example: scheme(\"Example\") devices([\"iPhone 6s\", \"iPad Air\"]) clean(true) output_types(\"html\") Automating the whole process scan works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :test do scan(scheme: \"Example\") end scan Supported platforms ios, mac Author @KrauseFx Returns Outputs hash of results with the following keys: :number_of_tests, :number_of_failures, :number_of_retries, :number_of_tests_excluding_retries, :number_of_failures_excluding_retries 6 Examples run_tests scan # alias for \"run_tests\" run_tests( workspace: \"App.xcworkspace\", scheme: \"MyTests\", clean: false ) # Build For Testing run_tests( derived_data_path: \"my_folder\", build_for_testing: true ) # run tests using derived data from prev. build run_tests( derived_data_path: \"my_folder\", test_without_building: true ) # or run it from an existing xctestrun package run_tests( xctestrun: \"/path/to/mytests.xctestrun\" ) Parameters Key Description Default workspace Path to the workspace file project Path to the project file package_path Path to the Swift Package scheme The project's scheme. Make sure it's marked as Shared device The name of the simulator type you want to run tests on (e.g. 'iPhone 6' or 'iPhone SE (2nd generation) (14.5)') devices Array of devices to run the tests on (e.g. ['iPhone 6', 'iPad Air', 'iPhone SE (2nd generation) (14.5)']) skip_detect_devices Should skip auto detecting of devices if none were specified false ensure_devices_found Should fail if devices not found false force_quit_simulator Enabling this option will automatically killall Simulator processes before the run false reset_simulator Enabling this option will automatically erase the simulator before running the application false disable_slide_to_type Enabling this option will disable the simulator from showing the 'Slide to type' prompt true prelaunch_simulator Enabling this option will launch the first simulator prior to calling any xcodebuild command reinstall_app Enabling this option will automatically uninstall the application before running it false app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip testplan The testplan associated with the scheme that should be used for testing only_test_configurations Array of strings matching test plan configurations to run skip_test_configurations Array of strings matching test plan configurations to skip xctestrun Run tests using the provided .xctestrun file toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a ) clean Should the project be cleaned before building it? false code_coverage Should code coverage be generated? (Xcode 7 and up) address_sanitizer Should the address sanitizer be turned on? thread_sanitizer Should the thread sanitizer be turned on? open_report Should the HTML report be opened when tests are completed? false output_directory The directory in which all reports will be stored * output_style Define how the output should look like. Valid values are: standard, basic, rspec, or raw (disables xcpretty during xcodebuild) output_types Comma separated list of the output types (e.g. html, junit, json-compilation-database) html,junit output_files Comma separated list of the output files, corresponding to the types provided by :output_types (order should match). If specifying an output type of json-compilation-database with :use_clang_report_name enabled, that option will take precedence buildlog_path The directory where to store the raw log * include_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * output_remove_retry_attempts Remove retry attempts from test results table and the JUnit report (if not using xcpretty) false disable_xcpretty DEPRECATED! Use output_style: 'raw' instead - Disable xcpretty formatting of build, similar to output_style='raw' but this will also skip the test results table formatter DEPRECATED! Use 'xcpretty_formatter' instead - A custom xcpretty formatter to use xcpretty_formatter A custom xcpretty formatter to use xcpretty_args Pass in xcpretty additional command line arguments (e.g. '--test --no-color' or '--tap --no-utf') derived_data_path The directory where build products and other derived data will go should_zip_build_products Should zip the derived data build products and place in output path? false output_xctestrun Should provide additional copy of .xctestrun file (settings.xctestrun) and place in output path? false result_bundle_path Custom path for the result bundle, overrides result_bundle result_bundle Should an Xcode result bundle be generated in the output directory false use_clang_report_name Generate the json compilation database with clang naming convention (compile_commands.json) false parallel_testing Optionally override the per-target setting in the scheme for running tests in parallel. Equivalent to -parallel-testing-enabled concurrent_workers Specify the exact number of test runners that will be spawned during parallel testing. Equivalent to -parallel-testing-worker-count max_concurrent_simulators Constrain the number of simulator devices on which to test concurrently. Equivalent to -maximum-concurrent-test-simulator-destinations disable_concurrent_testing Do not run test bundles in parallel on the specified destinations. Testing will occur on each destination serially. Equivalent to -disable-concurrent-testing false skip_build Should debug build be skipped before test build? false test_without_building Test without building, requires a derived data path build_for_testing Build for testing only, does not run tests sdk The SDK that should be used for building the application configuration The configuration to use when building the app. Defaults to 'Release' * xcargs Pass additional arguments to xcodebuild. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app app_name App name to use in slack message and logfile name deployment_target_version Target version of the app being build or tested. Used to filter out simulator version slack_url Create an Incoming WebHook for your Slack group to post results there slack_channel #channel or @username slack_message The message included with each message posted to slack slack_use_webhook_configured_username_and_icon Use webhook's default username and icon settings? (true/false) false slack_username Overrides the webhook's username property if slack_use_webhook_configured_username_and_icon is false fastlane slack_icon_url Overrides the webhook's image property if slack_use_webhook_configured_username_and_icon is false https://fastlane.tools/assets/img/fastlane_icon.png skip_slack Don't publish to slack, even when an URL is given false slack_only_on_failure Only post on Slack if the tests fail false slack_default_payloads Specifies default payloads to include in Slack messages. For more info visit https://docs.fastlane.tools/actions/slack destination Use only if you're a pro, use the other options instead run_rosetta_simulator Adds arch=x86_64 to the xcodebuild 'destination' argument to run simulator in a Rosetta mode false catalyst_platform Platform to build when using a Catalyst enabled app. Valid values are: ios, macos custom_report_file_name DEPRECATED! Use --output_files instead - Sets custom full report file name when generating a single report xcodebuild_command Allows for override of the default xcodebuild command env NSUnbufferedIO=YES xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false number_of_retries The number of times a test can fail 0 fail_build Should this step stop the build if the tests fail? Set this to false if you're using trainer true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The scan action generates the following Lane Variables: SharedValue Description SharedValues::SCAN_DERIVED_DATA_PATH The path to the derived data SharedValues::SCAN_GENERATED_PLIST_FILE The generated plist file SharedValues::SCAN_GENERATED_PLIST_FILES The generated plist files SharedValues::SCAN_GENERATED_XCRESULT_PATH The path to the generated .xcresult SharedValues::SCAN_ZIP_BUILD_PRODUCTS_PATH The path to the zipped build products To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action scan CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run scan To pass parameters, make use of the : symbol, for example fastlane run scan parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"scan"},{"location":"actions/scan/#scan","text":"Alias for the run_tests action","title":"scan"},{"location":"actions/scan/#whats-scan","text":"","title":"What's scan?"},{"location":"actions/scan/#usage","text":"fastlane scan That's all you need to run your tests. If you want more control, here are some available parameters: fastlane scan --workspace \"Example.xcworkspace\" --scheme \"AppName\" --device \"iPhone 6\" --clean If you need to use a different Xcode install, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" scan To run scan on multiple devices via fastlane , add this to your Fastfile : scan( workspace: \"Example.xcworkspace\", devices: [\"iPhone 6s\", \"iPad Air\"] ) For a list of all available parameters use fastlane action scan To access the raw xcodebuild output open ~/Library/Logs/scan","title":"Usage"},{"location":"actions/scan/#scanfile","text":"Since you might want to manually trigger the tests but don't want to specify all the parameters every time, you can store your defaults in a so called Scanfile . Run fastlane scan init to create a new configuration file. Example: scheme(\"Example\") devices([\"iPhone 6s\", \"iPad Air\"]) clean(true) output_types(\"html\")","title":"Scanfile"},{"location":"actions/scan/#automating-the-whole-process","text":"scan works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :test do scan(scheme: \"Example\") end scan Supported platforms ios, mac Author @KrauseFx Returns Outputs hash of results with the following keys: :number_of_tests, :number_of_failures, :number_of_retries, :number_of_tests_excluding_retries, :number_of_failures_excluding_retries","title":"Automating the whole process"},{"location":"actions/scan/#6-examples","text":"run_tests scan # alias for \"run_tests\" run_tests( workspace: \"App.xcworkspace\", scheme: \"MyTests\", clean: false ) # Build For Testing run_tests( derived_data_path: \"my_folder\", build_for_testing: true ) # run tests using derived data from prev. build run_tests( derived_data_path: \"my_folder\", test_without_building: true ) # or run it from an existing xctestrun package run_tests( xctestrun: \"/path/to/mytests.xctestrun\" )","title":"6 Examples"},{"location":"actions/scan/#parameters","text":"Key Description Default workspace Path to the workspace file project Path to the project file package_path Path to the Swift Package scheme The project's scheme. Make sure it's marked as Shared device The name of the simulator type you want to run tests on (e.g. 'iPhone 6' or 'iPhone SE (2nd generation) (14.5)') devices Array of devices to run the tests on (e.g. ['iPhone 6', 'iPad Air', 'iPhone SE (2nd generation) (14.5)']) skip_detect_devices Should skip auto detecting of devices if none were specified false ensure_devices_found Should fail if devices not found false force_quit_simulator Enabling this option will automatically killall Simulator processes before the run false reset_simulator Enabling this option will automatically erase the simulator before running the application false disable_slide_to_type Enabling this option will disable the simulator from showing the 'Slide to type' prompt true prelaunch_simulator Enabling this option will launch the first simulator prior to calling any xcodebuild command reinstall_app Enabling this option will automatically uninstall the application before running it false app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip testplan The testplan associated with the scheme that should be used for testing only_test_configurations Array of strings matching test plan configurations to run skip_test_configurations Array of strings matching test plan configurations to skip xctestrun Run tests using the provided .xctestrun file toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a ) clean Should the project be cleaned before building it? false code_coverage Should code coverage be generated? (Xcode 7 and up) address_sanitizer Should the address sanitizer be turned on? thread_sanitizer Should the thread sanitizer be turned on? open_report Should the HTML report be opened when tests are completed? false output_directory The directory in which all reports will be stored * output_style Define how the output should look like. Valid values are: standard, basic, rspec, or raw (disables xcpretty during xcodebuild) output_types Comma separated list of the output types (e.g. html, junit, json-compilation-database) html,junit output_files Comma separated list of the output files, corresponding to the types provided by :output_types (order should match). If specifying an output type of json-compilation-database with :use_clang_report_name enabled, that option will take precedence buildlog_path The directory where to store the raw log * include_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * output_remove_retry_attempts Remove retry attempts from test results table and the JUnit report (if not using xcpretty) false disable_xcpretty DEPRECATED! Use output_style: 'raw' instead - Disable xcpretty formatting of build, similar to output_style='raw' but this will also skip the test results table formatter DEPRECATED! Use 'xcpretty_formatter' instead - A custom xcpretty formatter to use xcpretty_formatter A custom xcpretty formatter to use xcpretty_args Pass in xcpretty additional command line arguments (e.g. '--test --no-color' or '--tap --no-utf') derived_data_path The directory where build products and other derived data will go should_zip_build_products Should zip the derived data build products and place in output path? false output_xctestrun Should provide additional copy of .xctestrun file (settings.xctestrun) and place in output path? false result_bundle_path Custom path for the result bundle, overrides result_bundle result_bundle Should an Xcode result bundle be generated in the output directory false use_clang_report_name Generate the json compilation database with clang naming convention (compile_commands.json) false parallel_testing Optionally override the per-target setting in the scheme for running tests in parallel. Equivalent to -parallel-testing-enabled concurrent_workers Specify the exact number of test runners that will be spawned during parallel testing. Equivalent to -parallel-testing-worker-count max_concurrent_simulators Constrain the number of simulator devices on which to test concurrently. Equivalent to -maximum-concurrent-test-simulator-destinations disable_concurrent_testing Do not run test bundles in parallel on the specified destinations. Testing will occur on each destination serially. Equivalent to -disable-concurrent-testing false skip_build Should debug build be skipped before test build? false test_without_building Test without building, requires a derived data path build_for_testing Build for testing only, does not run tests sdk The SDK that should be used for building the application configuration The configuration to use when building the app. Defaults to 'Release' * xcargs Pass additional arguments to xcodebuild. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app app_name App name to use in slack message and logfile name deployment_target_version Target version of the app being build or tested. Used to filter out simulator version slack_url Create an Incoming WebHook for your Slack group to post results there slack_channel #channel or @username slack_message The message included with each message posted to slack slack_use_webhook_configured_username_and_icon Use webhook's default username and icon settings? (true/false) false slack_username Overrides the webhook's username property if slack_use_webhook_configured_username_and_icon is false fastlane slack_icon_url Overrides the webhook's image property if slack_use_webhook_configured_username_and_icon is false https://fastlane.tools/assets/img/fastlane_icon.png skip_slack Don't publish to slack, even when an URL is given false slack_only_on_failure Only post on Slack if the tests fail false slack_default_payloads Specifies default payloads to include in Slack messages. For more info visit https://docs.fastlane.tools/actions/slack destination Use only if you're a pro, use the other options instead run_rosetta_simulator Adds arch=x86_64 to the xcodebuild 'destination' argument to run simulator in a Rosetta mode false catalyst_platform Platform to build when using a Catalyst enabled app. Valid values are: ios, macos custom_report_file_name DEPRECATED! Use --output_files instead - Sets custom full report file name when generating a single report xcodebuild_command Allows for override of the default xcodebuild command env NSUnbufferedIO=YES xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false number_of_retries The number of times a test can fail 0 fail_build Should this step stop the build if the tests fail? Set this to false if you're using trainer true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/scan/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The scan action generates the following Lane Variables: SharedValue Description SharedValues::SCAN_DERIVED_DATA_PATH The path to the derived data SharedValues::SCAN_GENERATED_PLIST_FILE The generated plist file SharedValues::SCAN_GENERATED_PLIST_FILES The generated plist files SharedValues::SCAN_GENERATED_XCRESULT_PATH The path to the generated .xcresult SharedValues::SCAN_ZIP_BUILD_PRODUCTS_PATH The path to the zipped build products To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/scan/#documentation","text":"To show the documentation in your terminal, run fastlane action scan","title":"Documentation"},{"location":"actions/scan/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run scan To pass parameters, make use of the : symbol, for example fastlane run scan parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/scan/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/scp/","text":"scp Transfer files via SCP scp Supported platforms ios, android, mac Author @hjanuschka 2 Examples scp( host: \"dev.januschka.com\", username: \"root\", upload: { src: \"/root/dir1\", dst: \"/tmp/new_dir\" } ) scp( host: \"dev.januschka.com\", username: \"root\", download: { src: \"/root/dir1\", dst: \"/tmp/new_dir\" } ) Parameters Key Description Default username Username password Password host Hostname port Port 22 upload Upload download Download * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action scp CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run scp To pass parameters, make use of the : symbol, for example fastlane run scp parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"scp"},{"location":"actions/scp/#scp","text":"Transfer files via SCP scp Supported platforms ios, android, mac Author @hjanuschka","title":"scp"},{"location":"actions/scp/#2-examples","text":"scp( host: \"dev.januschka.com\", username: \"root\", upload: { src: \"/root/dir1\", dst: \"/tmp/new_dir\" } ) scp( host: \"dev.januschka.com\", username: \"root\", download: { src: \"/root/dir1\", dst: \"/tmp/new_dir\" } )","title":"2 Examples"},{"location":"actions/scp/#parameters","text":"Key Description Default username Username password Password host Hostname port Port 22 upload Upload download Download * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/scp/#documentation","text":"To show the documentation in your terminal, run fastlane action scp","title":"Documentation"},{"location":"actions/scp/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run scp To pass parameters, make use of the : symbol, for example fastlane run scp parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/scp/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/screengrab/","text":"screengrab Alias for the capture_android_screenshots action Automated localized screenshots of your Android app on every device screengrab generates localized screenshots of your Android app for different device types and languages for Google Play and can be uploaded using supply . Why should I automate this process? Create hundreds of screenshots in multiple languages on emulators or real devices, saving you hours Easily verify that localizations fit into labels on all screen dimensions to find UI mistakes before you ship You only need to configure it once for anyone on your team to run it Keep your screenshots perfectly up-to-date with every app update. Your customers deserve it! Fully integrates with fastlane and supply Installation Install the gem gem install fastlane Gradle dependency androidTestImplementation 'tools.fastlane:screengrab:x.x.x' The latest version is As of screengrab version 2.0.0, all Android test dependencies are AndroidX dependencies. This means a device with API 18+, Android 4.3 or greater is required. If you wish to capture screenshots with an older Android OS, then you must use a 1.x.x version. Configuring your Manifest Permissions Ensure that the following permissions exist in your src/debug/AndroidManifest.xml Configuring your UI Tests for Screenshots Add LocaleTestRule to your tests class to handle automatic switching of locales. If you're using Java use: java @ClassRule public static final LocaleTestRule localeTestRule = new LocaleTestRule(); If you're using Kotlin use: kotlin @Rule @JvmField val localeTestRule = LocaleTestRule() The @JvmField annotation is important. It won't work like this: kotlin companion object { @get:ClassRule val localeTestRule = LocaleTestRule() } To capture screenshots, add the following to your tests Screengrab.screenshot(\"name_of_screenshot_here\"); on the appropriate screens Generating Screenshots with screengrab Then, before running fastlane screengrab you'll need a debug and test apk You can create your APKs manually with ./gradlew assembleDebug assembleAndroidTest You can also create a lane and use build_android_app : ruby desc \"Build debug and test APK for screenshots\" lane :build_and_screengrab do build_android_app( task: 'assemble', build_type: 'Debug' ) build_android_app( task: 'assemble', build_type: 'AndroidTest' ) screengrab() end - Once complete run fastlane screengrab in your app project directory to generate screenshots - You will be prompted to provide any required parameters which are not in your Screengrabfile or provided as command line arguments - Your screenshots will be saved to fastlane/metadata/android in the directory where you ran screengrab Improved screenshot capture with UI Automator As of screengrab 0.5.0, you can specify different strategies to control the way screengrab captures screenshots. The newer strategy delegates to UI Automator which fixes a number of problems compared to the original strategy: Shadows/elevation are correctly captured for Material UI Multi-window situations are correctly captured (dialogs, etc.) Works on Android N UI Automator is the default strategy. However, UI Automator requires a device with API level >= 18 . If you need to grab screenshots on an older Android version, use the latest 1.x.x version of this library and set the DecorView ScreenshotStrategy. Screengrab.setDefaultScreenshotStrategy(new DecorViewScreenshotStrategy()); Improved screenshot capture with Falcon As of screengrab 1.2.0, you can specify a new strategy to delegate to Falcon . Falcon may work better than UI Automator in some situations and also provides similar benefits as UI Automator: Multi-window situations are correctly captured (dialogs, etc.) Works on Android N Falcon requires a device with API level >= 10 . To enable it for all screenshots by default, make the following call before your tests run: Screengrab.setDefaultScreenshotStrategy(new FalconScreenshotStrategy(activityRule.getActivity())); Advanced Screengrabfile Configuration Running fastlane screengrab init generated a Screengrabfile which can store all of your configuration options. Since most values will not change often for your project, it is recommended to store them there. The Screengrabfile is written in Ruby, so you may find it helpful to use an editor that highlights Ruby syntax to modify this file. # remove the leading '#' to uncomment lines # app_package_name('your.app.package') # use_tests_in_packages(['your.screenshot.tests.package']) # app_apk_path('path/to/your/app.apk') # tests_apk_path('path/to/your/tests.apk') locales(['en-US', 'fr-FR', 'it-IT']) # clear all previously generated screenshots in your local output directory before creating new ones clear_previous_screenshots(true) For more information about all available options run fastlane action screengrab Tips UI Tests Check out Testing UI for a Single App for an introduction to using Espresso for UI testing. Example UI Test Class (Using JUnit4) Java: @RunWith(JUnit4.class) public class JUnit4StyleTests { @ClassRule public static final LocaleTestRule localeTestRule = new LocaleTestRule(); @Rule public ActivityScenarioRule activityRule = new ActivityScenarioRule<>(MainActivity.class); @Test public void testTakeScreenshot() { Screengrab.screenshot(\"before_button_click\"); onView(withId(R.id.fab)).perform(click()); Screengrab.screenshot(\"after_button_click\"); } } Kotlin: @RunWith(JUnit4.class) class JUnit4StyleTests { @get:Rule var activityRule = ActivityScenarioRule(MainActivity::class.java) @Rule @JvmField val localeTestRule = LocaleTestRule() @Test fun testTakeScreenshot() { Screengrab.screenshot(\"before_button_click\") onView(withId(R.id.fab)).perform(click()) Screengrab.screenshot(\"after_button_click\") } } There is an example project showing how to use JUnit 3 or 4 and Espresso with the screengrab Java library to capture screenshots during a UI test run. Using JUnit 4 is preferable because of its ability to perform actions before and after the entire test class is run. This means you will change the device's locale far fewer times when compared with JUnit 3 running those commands before and after each test method. When using JUnit 3 you'll need to add a bit more code: Use LocaleUtil.changeDeviceLocaleTo(LocaleUtil.getTestLocale()); in setUp() Use LocaleUtil.changeDeviceLocaleTo(LocaleUtil.getEndingLocale()); in tearDown() Use Screengrab.screenshot(\"name_of_screenshot_here\"); to capture screenshots at the appropriate points in your tests Clean Status Bar screengrab can clean your status bar to make your screenshots even more beautiful. It is simply a wrapper that allows configuring SystemUI DemoMode in your code. Note: the clean status bar feature is only supported on devices with API level >= 23 . You can enable and disable the clean status bar at any moment during your tests. In most cases you probably want to do this in the @BeforeClass and @AfterClass methods. @BeforeClass public static void beforeAll() { CleanStatusBar.enableWithDefaults(); } @AfterClass public static void afterAll() { CleanStatusBar.disable(); } Have a look at the methods of the CleanStatusBar class to customize the status bar even more. You could for example show the Bluetooth icon and the LTE text. new CleanStatusBar() .setBluetoothState(BluetoothState.DISCONNECTED) .setMobileNetworkDataType(MobileDataType.LTE) .enable(); Advanced screengrab Launch Arguments You can provide additional arguments to your test cases on launch. These strings will be available in your tests through InstrumentationRegistry.getArguments() . screengrab( launch_arguments: [ \"username hjanuschka\", \"build_number 201\" ] ) Bundle extras = InstrumentationRegistry.getArguments(); String peerID = null; if (extras != null) { if (extras.containsKey(\"username\")) { username = extras.getString(\"username\"); System.out.println(\"Username: \" + username); } else { System.out.println(\"No username in extras\"); } } else { System.out.println(\"No extras\"); } Detecting screengrab at runtime For some apps, it is helpful to know when screengrab is running so that you can display specific data for your screenshots. For iOS fastlane users, this is much like \"FASTLANE_SNAPSHOT\". In order to do this, you'll need to have at least two product flavors of your app. Add two product flavors to the app-level build.gradle file: android { ... flavorDimensions \"mode\" productFlavors { screengrab { dimension \"mode\" } regular { dimension \"mode\" } } ... } Check for the existence of that flavor (i.e screengrab) in your app code as follows in order to use mock data or customize data for screenshots: if (BuildConfig.FLAVOR == \"screengrab\") { System.out.println(\"screengrab is running!\"); } When running screengrab , do the following to build the flavor you want as well as the test apk. Note that you use \"assembleFlavor_name\" where Flavor_name is the flavor name, capitalized (i.e. Screengrab). ./gradlew assembleScreengrab assembleAndroidTest Run screengrab : fastlane screengrab screengrab will ask you to select the debug and test apps (which you can then add to your Screengrabfile to skip this step later). The debug apk should be somewhere like this: app/build/outputs/apk/screengrab/debug/app-screengrab-debug.apk The test apk should be somewhere like this: app/build/outputs/apk/androidTest/screengrab/debug/app-screengrab-debug-androidTest.apk Sit back and enjoy your new screenshots! Note: while this could also be done by creating a new build variant (i.e. debug, release and creating a new one called screengrab), Android only allows one build type to be tested which defaults to debug. That's why we use product flavors. screengrab Supported platforms android Author @asfalcone, @i2amsam, @mfurtak 3 Examples capture_android_screenshots screengrab # alias for \"capture_android_screenshots\" capture_android_screenshots( locales: [\"en-US\", \"fr-FR\", \"ja-JP\"], clear_previous_screenshots: true, app_apk_path: \"build/outputs/apk/example-debug.apk\", tests_apk_path: \"build/outputs/apk/example-debug-androidTest-unaligned.apk\" ) Parameters Key Description Default android_home Path to the root of your Android SDK installation, e.g. ~/tools/android-sdk-macosx * build_tools_version DEPRECATED! The Android build tools version to use, e.g. '23.0.2' locales A list of locales which should be used [\"en-US\"] clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running screengrab false output_directory The directory where to store the screenshots fastlane/metadata/android skip_open_summary Don't open the summary after running screengrab * app_package_name The package name of the app under test (e.g. com.yourcompany.yourapp) * tests_package_name The package name of the tests bundle (e.g. com.yourcompany.yourapp.test) use_tests_in_packages Only run tests in these Java packages use_tests_in_classes Only run tests in these Java classes launch_arguments Additional launch arguments test_instrumentation_runner The fully qualified class name of your test instrumentation runner androidx.test.runner.AndroidJUnitRunner ending_locale DEPRECATED! Return the device to this locale after running tests en-US use_adb_root DEPRECATED! Restarts the adb daemon using adb root to allow access to screenshots directories on device. Use if getting 'Permission denied' errors false app_apk_path The path to the APK for the app under test * tests_apk_path The path to the APK for the tests bundle * specific_device Use the device or emulator with the given serial number or qualifier device_type Type of device used for screenshots. Matches Google Play Types (phone, sevenInch, tenInch, tv, wear) phone exit_on_test_failure Whether or not to exit Screengrab on test failure. Exiting on failure will not copy screenshots to local machine nor open screenshots summary true reinstall_app Enabling this option will automatically uninstall the application before running it false use_timestamp_suffix Add timestamp suffix to screenshot filename true adb_host Configure the host used by adb to connect, allows running on remote devices farm * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The screengrab action generates the following Lane Variables: SharedValue Description SharedValues::SCREENGRAB_OUTPUT_DIRECTORY The path to the output directory To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action screengrab CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run screengrab To pass parameters, make use of the : symbol, for example fastlane run screengrab parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"screengrab"},{"location":"actions/screengrab/#screengrab","text":"Alias for the capture_android_screenshots action","title":"screengrab"},{"location":"actions/screengrab/#installation","text":"Install the gem gem install fastlane","title":"Installation"},{"location":"actions/screengrab/#generating-screenshots-with-screengrab","text":"Then, before running fastlane screengrab you'll need a debug and test apk You can create your APKs manually with ./gradlew assembleDebug assembleAndroidTest You can also create a lane and use build_android_app : ruby desc \"Build debug and test APK for screenshots\" lane :build_and_screengrab do build_android_app( task: 'assemble', build_type: 'Debug' ) build_android_app( task: 'assemble', build_type: 'AndroidTest' ) screengrab() end - Once complete run fastlane screengrab in your app project directory to generate screenshots - You will be prompted to provide any required parameters which are not in your Screengrabfile or provided as command line arguments - Your screenshots will be saved to fastlane/metadata/android in the directory where you ran screengrab","title":"Generating Screenshots with screengrab"},{"location":"actions/screengrab/#improved-screenshot-capture-with-ui-automator","text":"As of screengrab 0.5.0, you can specify different strategies to control the way screengrab captures screenshots. The newer strategy delegates to UI Automator which fixes a number of problems compared to the original strategy: Shadows/elevation are correctly captured for Material UI Multi-window situations are correctly captured (dialogs, etc.) Works on Android N UI Automator is the default strategy. However, UI Automator requires a device with API level >= 18 . If you need to grab screenshots on an older Android version, use the latest 1.x.x version of this library and set the DecorView ScreenshotStrategy. Screengrab.setDefaultScreenshotStrategy(new DecorViewScreenshotStrategy());","title":"Improved screenshot capture with UI Automator"},{"location":"actions/screengrab/#improved-screenshot-capture-with-falcon","text":"As of screengrab 1.2.0, you can specify a new strategy to delegate to Falcon . Falcon may work better than UI Automator in some situations and also provides similar benefits as UI Automator: Multi-window situations are correctly captured (dialogs, etc.) Works on Android N Falcon requires a device with API level >= 10 . To enable it for all screenshots by default, make the following call before your tests run: Screengrab.setDefaultScreenshotStrategy(new FalconScreenshotStrategy(activityRule.getActivity()));","title":"Improved screenshot capture with Falcon"},{"location":"actions/screengrab/#advanced-screengrabfile-configuration","text":"Running fastlane screengrab init generated a Screengrabfile which can store all of your configuration options. Since most values will not change often for your project, it is recommended to store them there. The Screengrabfile is written in Ruby, so you may find it helpful to use an editor that highlights Ruby syntax to modify this file. # remove the leading '#' to uncomment lines # app_package_name('your.app.package') # use_tests_in_packages(['your.screenshot.tests.package']) # app_apk_path('path/to/your/app.apk') # tests_apk_path('path/to/your/tests.apk') locales(['en-US', 'fr-FR', 'it-IT']) # clear all previously generated screenshots in your local output directory before creating new ones clear_previous_screenshots(true) For more information about all available options run fastlane action screengrab","title":"Advanced Screengrabfile Configuration"},{"location":"actions/screengrab/#tips","text":"","title":"Tips"},{"location":"actions/screengrab/#ui-tests","text":"Check out Testing UI for a Single App for an introduction to using Espresso for UI testing.","title":"UI Tests"},{"location":"actions/screengrab/#clean-status-bar","text":"screengrab can clean your status bar to make your screenshots even more beautiful. It is simply a wrapper that allows configuring SystemUI DemoMode in your code. Note: the clean status bar feature is only supported on devices with API level >= 23 . You can enable and disable the clean status bar at any moment during your tests. In most cases you probably want to do this in the @BeforeClass and @AfterClass methods. @BeforeClass public static void beforeAll() { CleanStatusBar.enableWithDefaults(); } @AfterClass public static void afterAll() { CleanStatusBar.disable(); } Have a look at the methods of the CleanStatusBar class to customize the status bar even more. You could for example show the Bluetooth icon and the LTE text. new CleanStatusBar() .setBluetoothState(BluetoothState.DISCONNECTED) .setMobileNetworkDataType(MobileDataType.LTE) .enable();","title":"Clean Status Bar"},{"location":"actions/screengrab/#advanced-screengrab","text":"Launch Arguments You can provide additional arguments to your test cases on launch. These strings will be available in your tests through InstrumentationRegistry.getArguments() . screengrab( launch_arguments: [ \"username hjanuschka\", \"build_number 201\" ] ) Bundle extras = InstrumentationRegistry.getArguments(); String peerID = null; if (extras != null) { if (extras.containsKey(\"username\")) { username = extras.getString(\"username\"); System.out.println(\"Username: \" + username); } else { System.out.println(\"No username in extras\"); } } else { System.out.println(\"No extras\"); } Detecting screengrab at runtime For some apps, it is helpful to know when screengrab is running so that you can display specific data for your screenshots. For iOS fastlane users, this is much like \"FASTLANE_SNAPSHOT\". In order to do this, you'll need to have at least two product flavors of your app. Add two product flavors to the app-level build.gradle file: android { ... flavorDimensions \"mode\" productFlavors { screengrab { dimension \"mode\" } regular { dimension \"mode\" } } ... } Check for the existence of that flavor (i.e screengrab) in your app code as follows in order to use mock data or customize data for screenshots: if (BuildConfig.FLAVOR == \"screengrab\") { System.out.println(\"screengrab is running!\"); } When running screengrab , do the following to build the flavor you want as well as the test apk. Note that you use \"assembleFlavor_name\" where Flavor_name is the flavor name, capitalized (i.e. Screengrab). ./gradlew assembleScreengrab assembleAndroidTest Run screengrab : fastlane screengrab screengrab will ask you to select the debug and test apps (which you can then add to your Screengrabfile to skip this step later). The debug apk should be somewhere like this: app/build/outputs/apk/screengrab/debug/app-screengrab-debug.apk The test apk should be somewhere like this: app/build/outputs/apk/androidTest/screengrab/debug/app-screengrab-debug-androidTest.apk Sit back and enjoy your new screenshots! Note: while this could also be done by creating a new build variant (i.e. debug, release and creating a new one called screengrab), Android only allows one build type to be tested which defaults to debug. That's why we use product flavors. screengrab Supported platforms android Author @asfalcone, @i2amsam, @mfurtak","title":"Advanced screengrab"},{"location":"actions/screengrab/#3-examples","text":"capture_android_screenshots screengrab # alias for \"capture_android_screenshots\" capture_android_screenshots( locales: [\"en-US\", \"fr-FR\", \"ja-JP\"], clear_previous_screenshots: true, app_apk_path: \"build/outputs/apk/example-debug.apk\", tests_apk_path: \"build/outputs/apk/example-debug-androidTest-unaligned.apk\" )","title":"3 Examples"},{"location":"actions/screengrab/#parameters","text":"Key Description Default android_home Path to the root of your Android SDK installation, e.g. ~/tools/android-sdk-macosx * build_tools_version DEPRECATED! The Android build tools version to use, e.g. '23.0.2' locales A list of locales which should be used [\"en-US\"] clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running screengrab false output_directory The directory where to store the screenshots fastlane/metadata/android skip_open_summary Don't open the summary after running screengrab * app_package_name The package name of the app under test (e.g. com.yourcompany.yourapp) * tests_package_name The package name of the tests bundle (e.g. com.yourcompany.yourapp.test) use_tests_in_packages Only run tests in these Java packages use_tests_in_classes Only run tests in these Java classes launch_arguments Additional launch arguments test_instrumentation_runner The fully qualified class name of your test instrumentation runner androidx.test.runner.AndroidJUnitRunner ending_locale DEPRECATED! Return the device to this locale after running tests en-US use_adb_root DEPRECATED! Restarts the adb daemon using adb root to allow access to screenshots directories on device. Use if getting 'Permission denied' errors false app_apk_path The path to the APK for the app under test * tests_apk_path The path to the APK for the tests bundle * specific_device Use the device or emulator with the given serial number or qualifier device_type Type of device used for screenshots. Matches Google Play Types (phone, sevenInch, tenInch, tv, wear) phone exit_on_test_failure Whether or not to exit Screengrab on test failure. Exiting on failure will not copy screenshots to local machine nor open screenshots summary true reinstall_app Enabling this option will automatically uninstall the application before running it false use_timestamp_suffix Add timestamp suffix to screenshot filename true adb_host Configure the host used by adb to connect, allows running on remote devices farm * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/screengrab/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The screengrab action generates the following Lane Variables: SharedValue Description SharedValues::SCREENGRAB_OUTPUT_DIRECTORY The path to the output directory To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/screengrab/#documentation","text":"To show the documentation in your terminal, run fastlane action screengrab","title":"Documentation"},{"location":"actions/screengrab/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run screengrab To pass parameters, make use of the : symbol, for example fastlane run screengrab parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/screengrab/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/set_build_number_repository/","text":"set_build_number_repository Set the build number from the current repository This action will set the build number according to what the SCM HEAD reports. Currently supported SCMs are svn (uses root revision), git-svn (uses svn revision) and git (uses short hash) and mercurial (uses short hash or revision number). There is an option, :use_hg_revision_number , which allows to use mercurial revision number instead of hash. set_build_number_repository Supported platforms ios, mac Author @pbrooks, @armadsen, @AndrewSB 2 Examples set_build_number_repository set_build_number_repository( xcodeproj: \"./path/to/MyApp.xcodeproj\" ) Parameters Key Description Default use_hg_revision_number Use hg revision number instead of hash (ignored for non-hg repos) false xcodeproj explicitly specify which xcodeproj to use * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action set_build_number_repository CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_build_number_repository To pass parameters, make use of the : symbol, for example fastlane run set_build_number_repository parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"set_build_number_repository"},{"location":"actions/set_build_number_repository/#set_build_number_repository","text":"Set the build number from the current repository This action will set the build number according to what the SCM HEAD reports. Currently supported SCMs are svn (uses root revision), git-svn (uses svn revision) and git (uses short hash) and mercurial (uses short hash or revision number). There is an option, :use_hg_revision_number , which allows to use mercurial revision number instead of hash. set_build_number_repository Supported platforms ios, mac Author @pbrooks, @armadsen, @AndrewSB","title":"set_build_number_repository"},{"location":"actions/set_build_number_repository/#2-examples","text":"set_build_number_repository set_build_number_repository( xcodeproj: \"./path/to/MyApp.xcodeproj\" )","title":"2 Examples"},{"location":"actions/set_build_number_repository/#parameters","text":"Key Description Default use_hg_revision_number Use hg revision number instead of hash (ignored for non-hg repos) false xcodeproj explicitly specify which xcodeproj to use * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/set_build_number_repository/#documentation","text":"To show the documentation in your terminal, run fastlane action set_build_number_repository","title":"Documentation"},{"location":"actions/set_build_number_repository/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_build_number_repository To pass parameters, make use of the : symbol, for example fastlane run set_build_number_repository parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/set_build_number_repository/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/set_changelog/","text":"set_changelog Set the changelog for all languages on App Store Connect This is useful if you have only one changelog for all languages. You can store the changelog in ./fastlane/changelog.txt and it will automatically get loaded from there. This integration is useful if you support e.g. 10 languages and want to use the same \"What's new\"-text for all languages. Defining the version is optional. fastlane will try to automatically detect it if you don't provide one. set_changelog Supported platforms ios, mac Author @KrauseFx 2 Examples set_changelog(changelog: \"Changelog for all Languages\") set_changelog(app_identifier: \"com.krausefx.app\", version: \"1.0\", changelog: \"Changelog for all Languages\") Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * app_identifier The bundle identifier of your app * username Your Apple ID Username * version The version number to create/update changelog Changelog text that should be uploaded to App Store Connect team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * platform The platform of the app (ios, appletvos, mac) ios * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action set_changelog CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_changelog To pass parameters, make use of the : symbol, for example fastlane run set_changelog parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"set_changelog"},{"location":"actions/set_changelog/#set_changelog","text":"Set the changelog for all languages on App Store Connect This is useful if you have only one changelog for all languages. You can store the changelog in ./fastlane/changelog.txt and it will automatically get loaded from there. This integration is useful if you support e.g. 10 languages and want to use the same \"What's new\"-text for all languages. Defining the version is optional. fastlane will try to automatically detect it if you don't provide one. set_changelog Supported platforms ios, mac Author @KrauseFx","title":"set_changelog"},{"location":"actions/set_changelog/#2-examples","text":"set_changelog(changelog: \"Changelog for all Languages\") set_changelog(app_identifier: \"com.krausefx.app\", version: \"1.0\", changelog: \"Changelog for all Languages\")","title":"2 Examples"},{"location":"actions/set_changelog/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * app_identifier The bundle identifier of your app * username Your Apple ID Username * version The version number to create/update changelog Changelog text that should be uploaded to App Store Connect team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * platform The platform of the app (ios, appletvos, mac) ios * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/set_changelog/#documentation","text":"To show the documentation in your terminal, run fastlane action set_changelog","title":"Documentation"},{"location":"actions/set_changelog/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_changelog To pass parameters, make use of the : symbol, for example fastlane run set_changelog parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/set_changelog/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/set_github_release/","text":"set_github_release This will create a new release on GitHub and upload assets for it Creates a new release on GitHub. You must provide your GitHub Personal token (get one from https://github.com/settings/tokens/new ), the repository name and tag name. By default, that's master . If the tag doesn't exist, one will be created on the commit or branch passed in as commitish. Out parameters provide the release's id, which can be used for later editing and the release HTML link to GitHub. You can also specify a list of assets to be uploaded to the release with the :upload_assets parameter. set_github_release Supported platforms ios, android, mac Author @czechboy0, @tommeier Returns A hash containing all relevant information of this release Access things like 'html_url', 'tag_name', 'name', 'body' 1 Example github_release = set_github_release( repository_name: \"fastlane/fastlane\", api_token: ENV[\"GITHUB_TOKEN\"], name: \"Super New actions\", tag_name: \"v1.22.0\", description: (File.read(\"changelog\") rescue \"No changelog provided\"), commitish: \"master\", upload_assets: [\"example_integration.ipa\", \"./pkg/built.gem\"] ) Parameters Key Description Default repository_name The path to your repo, e.g. 'fastlane/fastlane' server_url The server url. e.g. 'https://your.internal.github.host/api/v3' (Default: 'https://api.github.com') https://api.github.com api_token Personal API Token for GitHub - generate one at https://github.com/settings/tokens * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable tag_name Pass in the tag name name Name of this release commitish Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Unused if the Git tag already exists. Default: the repository's default branch (usually master) description Description of this release * is_draft Whether the release should be marked as draft false is_prerelease Whether the release should be marked as prerelease false is_generate_release_notes Whether the name and body of this release should be generated automatically false upload_assets Path to assets to be uploaded with the release * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The set_github_release action generates the following Lane Variables: SharedValue Description SharedValues::SET_GITHUB_RELEASE_HTML_LINK Link to your created release SharedValues::SET_GITHUB_RELEASE_RELEASE_ID Release id (useful for subsequent editing) SharedValues::SET_GITHUB_RELEASE_JSON The whole release JSON object To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action set_github_release CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_github_release To pass parameters, make use of the : symbol, for example fastlane run set_github_release parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"set_github_release"},{"location":"actions/set_github_release/#set_github_release","text":"This will create a new release on GitHub and upload assets for it Creates a new release on GitHub. You must provide your GitHub Personal token (get one from https://github.com/settings/tokens/new ), the repository name and tag name. By default, that's master . If the tag doesn't exist, one will be created on the commit or branch passed in as commitish. Out parameters provide the release's id, which can be used for later editing and the release HTML link to GitHub. You can also specify a list of assets to be uploaded to the release with the :upload_assets parameter. set_github_release Supported platforms ios, android, mac Author @czechboy0, @tommeier Returns A hash containing all relevant information of this release Access things like 'html_url', 'tag_name', 'name', 'body'","title":"set_github_release"},{"location":"actions/set_github_release/#1-example","text":"github_release = set_github_release( repository_name: \"fastlane/fastlane\", api_token: ENV[\"GITHUB_TOKEN\"], name: \"Super New actions\", tag_name: \"v1.22.0\", description: (File.read(\"changelog\") rescue \"No changelog provided\"), commitish: \"master\", upload_assets: [\"example_integration.ipa\", \"./pkg/built.gem\"] )","title":"1 Example"},{"location":"actions/set_github_release/#parameters","text":"Key Description Default repository_name The path to your repo, e.g. 'fastlane/fastlane' server_url The server url. e.g. 'https://your.internal.github.host/api/v3' (Default: 'https://api.github.com') https://api.github.com api_token Personal API Token for GitHub - generate one at https://github.com/settings/tokens * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable tag_name Pass in the tag name name Name of this release commitish Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Unused if the Git tag already exists. Default: the repository's default branch (usually master) description Description of this release * is_draft Whether the release should be marked as draft false is_prerelease Whether the release should be marked as prerelease false is_generate_release_notes Whether the name and body of this release should be generated automatically false upload_assets Path to assets to be uploaded with the release * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/set_github_release/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The set_github_release action generates the following Lane Variables: SharedValue Description SharedValues::SET_GITHUB_RELEASE_HTML_LINK Link to your created release SharedValues::SET_GITHUB_RELEASE_RELEASE_ID Release id (useful for subsequent editing) SharedValues::SET_GITHUB_RELEASE_JSON The whole release JSON object To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/set_github_release/#documentation","text":"To show the documentation in your terminal, run fastlane action set_github_release","title":"Documentation"},{"location":"actions/set_github_release/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_github_release To pass parameters, make use of the : symbol, for example fastlane run set_github_release parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/set_github_release/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/set_info_plist_value/","text":"set_info_plist_value Sets value to Info.plist of your project as native Ruby data structures set_info_plist_value Supported platforms ios, mac Author @kohtenko, @uwehollatz 2 Examples set_info_plist_value(path: \"./Info.plist\", key: \"CFBundleIdentifier\", value: \"com.krausefx.app.beta\") set_info_plist_value(path: \"./MyApp-Info.plist\", key: \"NSAppTransportSecurity\", subkey: \"NSAllowsArbitraryLoads\", value: true, output_file_name: \"./Info.plist\") Parameters Key Description Default key Name of key in plist subkey Name of subkey in plist value Value to setup path Path to plist file you want to update output_file_name Path to the output file you want to generate * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action set_info_plist_value CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_info_plist_value To pass parameters, make use of the : symbol, for example fastlane run set_info_plist_value parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"set_info_plist_value"},{"location":"actions/set_info_plist_value/#set_info_plist_value","text":"Sets value to Info.plist of your project as native Ruby data structures set_info_plist_value Supported platforms ios, mac Author @kohtenko, @uwehollatz","title":"set_info_plist_value"},{"location":"actions/set_info_plist_value/#2-examples","text":"set_info_plist_value(path: \"./Info.plist\", key: \"CFBundleIdentifier\", value: \"com.krausefx.app.beta\") set_info_plist_value(path: \"./MyApp-Info.plist\", key: \"NSAppTransportSecurity\", subkey: \"NSAllowsArbitraryLoads\", value: true, output_file_name: \"./Info.plist\")","title":"2 Examples"},{"location":"actions/set_info_plist_value/#parameters","text":"Key Description Default key Name of key in plist subkey Name of subkey in plist value Value to setup path Path to plist file you want to update output_file_name Path to the output file you want to generate * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/set_info_plist_value/#documentation","text":"To show the documentation in your terminal, run fastlane action set_info_plist_value","title":"Documentation"},{"location":"actions/set_info_plist_value/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_info_plist_value To pass parameters, make use of the : symbol, for example fastlane run set_info_plist_value parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/set_info_plist_value/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/set_pod_key/","text":"set_pod_key Sets a value for a key with cocoapods-keys Adds a key to cocoapods-keys set_pod_key Supported platforms ios, mac Author @marcelofabri 1 Example set_pod_key( key: \"APIToken\", value: \"1234\", project: \"MyProject\" ) Parameters Key Description Default use_bundle_exec Use bundle exec when there is a Gemfile presented true key The key to be saved with cocoapods-keys value The value to be saved with cocoapods-keys project The project name * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action set_pod_key CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_pod_key To pass parameters, make use of the : symbol, for example fastlane run set_pod_key parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"set_pod_key"},{"location":"actions/set_pod_key/#set_pod_key","text":"Sets a value for a key with cocoapods-keys Adds a key to cocoapods-keys set_pod_key Supported platforms ios, mac Author @marcelofabri","title":"set_pod_key"},{"location":"actions/set_pod_key/#1-example","text":"set_pod_key( key: \"APIToken\", value: \"1234\", project: \"MyProject\" )","title":"1 Example"},{"location":"actions/set_pod_key/#parameters","text":"Key Description Default use_bundle_exec Use bundle exec when there is a Gemfile presented true key The key to be saved with cocoapods-keys value The value to be saved with cocoapods-keys project The project name * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/set_pod_key/#documentation","text":"To show the documentation in your terminal, run fastlane action set_pod_key","title":"Documentation"},{"location":"actions/set_pod_key/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_pod_key To pass parameters, make use of the : symbol, for example fastlane run set_pod_key parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/set_pod_key/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/setup_ci/","text":"setup_ci Setup the keychain and match to work with CI Creates a new temporary keychain for use with match Switches match to readonly mode to not create new profiles/cert on CI Sets up log and test result paths to be easily collectible This action helps with CI integration. Add this to the top of your Fastfile if you use CI. setup_ci Supported platforms ios, mac Author @mollyIV, @svenmuennich 2 Examples setup_ci( provider: \"circleci\" ) setup_ci( provider: \"circleci\", timeout: 0 ) Parameters Key Description Default force Force setup, even if not executed by CI false provider CI provider. If none is set, the provider is detected automatically timeout Set a custom timeout in seconds for keychain. Set 0 if you want to specify 'no time-out' 3600 * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action setup_ci CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run setup_ci To pass parameters, make use of the : symbol, for example fastlane run setup_ci parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"setup_ci"},{"location":"actions/setup_ci/#setup_ci","text":"Setup the keychain and match to work with CI Creates a new temporary keychain for use with match Switches match to readonly mode to not create new profiles/cert on CI Sets up log and test result paths to be easily collectible This action helps with CI integration. Add this to the top of your Fastfile if you use CI. setup_ci Supported platforms ios, mac Author @mollyIV, @svenmuennich","title":"setup_ci"},{"location":"actions/setup_ci/#2-examples","text":"setup_ci( provider: \"circleci\" ) setup_ci( provider: \"circleci\", timeout: 0 )","title":"2 Examples"},{"location":"actions/setup_ci/#parameters","text":"Key Description Default force Force setup, even if not executed by CI false provider CI provider. If none is set, the provider is detected automatically timeout Set a custom timeout in seconds for keychain. Set 0 if you want to specify 'no time-out' 3600 * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/setup_ci/#documentation","text":"To show the documentation in your terminal, run fastlane action setup_ci","title":"Documentation"},{"location":"actions/setup_ci/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run setup_ci To pass parameters, make use of the : symbol, for example fastlane run setup_ci parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/setup_ci/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/setup_circle_ci/","text":"setup_circle_ci Setup the keychain and match to work with CircleCI Creates a new temporary keychain for use with match Switches match to readonly mode to not create new profiles/cert on CI Sets up log and test result paths to be easily collectible This action helps with CircleCI integration. Add this to the top of your Fastfile if you use CircleCI. setup_circle_ci Supported platforms ios, android, mac Author @dantoml 1 Example setup_circle_ci Parameters Key Description Default force Force setup, even if not executed by CircleCI false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action setup_circle_ci CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run setup_circle_ci To pass parameters, make use of the : symbol, for example fastlane run setup_circle_ci parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"setup_circle_ci"},{"location":"actions/setup_circle_ci/#setup_circle_ci","text":"Setup the keychain and match to work with CircleCI Creates a new temporary keychain for use with match Switches match to readonly mode to not create new profiles/cert on CI Sets up log and test result paths to be easily collectible This action helps with CircleCI integration. Add this to the top of your Fastfile if you use CircleCI. setup_circle_ci Supported platforms ios, android, mac Author @dantoml","title":"setup_circle_ci"},{"location":"actions/setup_circle_ci/#1-example","text":"setup_circle_ci","title":"1 Example"},{"location":"actions/setup_circle_ci/#parameters","text":"Key Description Default force Force setup, even if not executed by CircleCI false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/setup_circle_ci/#documentation","text":"To show the documentation in your terminal, run fastlane action setup_circle_ci","title":"Documentation"},{"location":"actions/setup_circle_ci/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run setup_circle_ci To pass parameters, make use of the : symbol, for example fastlane run setup_circle_ci parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/setup_circle_ci/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/setup_jenkins/","text":"setup_jenkins Setup xcodebuild, gym and scan for easier Jenkins integration Adds and unlocks keychains from Jenkins 'Keychains and Provisioning Profiles Plugin' Sets unlocked keychain to be used by Match Sets code signing identity from Jenkins 'Keychains and Provisioning Profiles Plugin' Sets output directory to './output' (gym, scan and backup_xcarchive) Sets derived data path to './derivedData' (xcodebuild, gym, scan and clear_derived_data, carthage) Produce result bundle (gym and scan) This action helps with Jenkins integration. Creates own derived data for each job. All build results like IPA files and archives will be stored in the ./output directory. The action also works with Keychains and Provisioning Profiles Plugin , the selected keychain will be automatically unlocked and the selected code signing identity will be used. Match will be also set up to use the unlocked keychain and set in read-only mode, if its environment variables were not yet defined. By default this action will only work when fastlane is executed on a CI system. setup_jenkins Supported platforms ios, mac Author @bartoszj 1 Example setup_jenkins Parameters Key Description Default force Force setup, even if not executed by Jenkins false unlock_keychain Unlocks keychain true add_keychain_to_search_list Add to keychain search list, valid values are true, false, :add, and :replace :replace set_default_keychain Set keychain as default true keychain_path Path to keychain keychain_password Keychain password '' set_code_signing_identity Set code signing identity from CODE_SIGNING_IDENTITY environment true code_signing_identity Code signing identity output_directory The directory in which the ipa file should be stored in ./output derived_data_path The directory where built products and other derived data will go ./derivedData result_bundle Produce the result bundle describing what occurred will be placed true * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action setup_jenkins CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run setup_jenkins To pass parameters, make use of the : symbol, for example fastlane run setup_jenkins parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"setup_jenkins"},{"location":"actions/setup_jenkins/#setup_jenkins","text":"Setup xcodebuild, gym and scan for easier Jenkins integration Adds and unlocks keychains from Jenkins 'Keychains and Provisioning Profiles Plugin' Sets unlocked keychain to be used by Match Sets code signing identity from Jenkins 'Keychains and Provisioning Profiles Plugin' Sets output directory to './output' (gym, scan and backup_xcarchive) Sets derived data path to './derivedData' (xcodebuild, gym, scan and clear_derived_data, carthage) Produce result bundle (gym and scan) This action helps with Jenkins integration. Creates own derived data for each job. All build results like IPA files and archives will be stored in the ./output directory. The action also works with Keychains and Provisioning Profiles Plugin , the selected keychain will be automatically unlocked and the selected code signing identity will be used. Match will be also set up to use the unlocked keychain and set in read-only mode, if its environment variables were not yet defined. By default this action will only work when fastlane is executed on a CI system. setup_jenkins Supported platforms ios, mac Author @bartoszj","title":"setup_jenkins"},{"location":"actions/setup_jenkins/#1-example","text":"setup_jenkins","title":"1 Example"},{"location":"actions/setup_jenkins/#parameters","text":"Key Description Default force Force setup, even if not executed by Jenkins false unlock_keychain Unlocks keychain true add_keychain_to_search_list Add to keychain search list, valid values are true, false, :add, and :replace :replace set_default_keychain Set keychain as default true keychain_path Path to keychain keychain_password Keychain password '' set_code_signing_identity Set code signing identity from CODE_SIGNING_IDENTITY environment true code_signing_identity Code signing identity output_directory The directory in which the ipa file should be stored in ./output derived_data_path The directory where built products and other derived data will go ./derivedData result_bundle Produce the result bundle describing what occurred will be placed true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/setup_jenkins/#documentation","text":"To show the documentation in your terminal, run fastlane action setup_jenkins","title":"Documentation"},{"location":"actions/setup_jenkins/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run setup_jenkins To pass parameters, make use of the : symbol, for example fastlane run setup_jenkins parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/setup_jenkins/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/setup_travis/","text":"setup_travis Setup the keychain and match to work with Travis CI Creates a new temporary keychain for use with match Switches match to readonly mode to not create new profiles/cert on CI This action helps with Travis integration. Add this to the top of your Fastfile if you use Travis. setup_travis Supported platforms ios, android, mac Author @KrauseFx 1 Example setup_travis Parameters Key Description Default force Force setup, even if not executed by travis false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action setup_travis CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run setup_travis To pass parameters, make use of the : symbol, for example fastlane run setup_travis parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"setup_travis"},{"location":"actions/setup_travis/#setup_travis","text":"Setup the keychain and match to work with Travis CI Creates a new temporary keychain for use with match Switches match to readonly mode to not create new profiles/cert on CI This action helps with Travis integration. Add this to the top of your Fastfile if you use Travis. setup_travis Supported platforms ios, android, mac Author @KrauseFx","title":"setup_travis"},{"location":"actions/setup_travis/#1-example","text":"setup_travis","title":"1 Example"},{"location":"actions/setup_travis/#parameters","text":"Key Description Default force Force setup, even if not executed by travis false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/setup_travis/#documentation","text":"To show the documentation in your terminal, run fastlane action setup_travis","title":"Documentation"},{"location":"actions/setup_travis/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run setup_travis To pass parameters, make use of the : symbol, for example fastlane run setup_travis parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/setup_travis/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/sh/","text":"sh Runs a shell command Allows running an arbitrary shell command. Be aware of a specific behavior of sh action with regard to the working directory. For details, refer to Advanced . sh Supported platforms ios, android, mac Author @KrauseFx Returns Outputs the string and executes it. When running in tests, it returns the actual command instead of executing it 2 Examples sh(\"ls\") sh(\"git\", \"commit\", \"-m\", \"My message\") Parameters Key Description Default command Shell command to be executed log Determines whether fastlane should print out the executed command itself and output of the executed command. If command line option --troubleshoot is used, then it overrides this option to true true error_callback A callback invoked with the command output if there is a non-zero exit status * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action sh CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sh To pass parameters, make use of the : symbol, for example fastlane run sh parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"sh"},{"location":"actions/sh/#sh","text":"Runs a shell command Allows running an arbitrary shell command. Be aware of a specific behavior of sh action with regard to the working directory. For details, refer to Advanced . sh Supported platforms ios, android, mac Author @KrauseFx Returns Outputs the string and executes it. When running in tests, it returns the actual command instead of executing it","title":"sh"},{"location":"actions/sh/#2-examples","text":"sh(\"ls\") sh(\"git\", \"commit\", \"-m\", \"My message\")","title":"2 Examples"},{"location":"actions/sh/#parameters","text":"Key Description Default command Shell command to be executed log Determines whether fastlane should print out the executed command itself and output of the executed command. If command line option --troubleshoot is used, then it overrides this option to true true error_callback A callback invoked with the command output if there is a non-zero exit status * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/sh/#documentation","text":"To show the documentation in your terminal, run fastlane action sh","title":"Documentation"},{"location":"actions/sh/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sh To pass parameters, make use of the : symbol, for example fastlane run sh parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/sh/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/sigh/","text":"sigh Alias for the get_provisioning_profile action Because you would rather spend your time building stuff than fighting provisioning sigh can create, renew, download and repair provisioning profiles (with one command). It supports App Store, Ad Hoc, Development and Enterprise profiles and supports nice features, like auto-adding all test devices. Features \u2022 Usage \u2022 Resign \u2022 How does it work? Features Download the latest provisioning profile for your app Renew a provisioning profile, when it has expired Repair a provisioning profile, when it is broken Create a new provisioning profile, if it doesn't exist already Supports App Store , Ad Hoc and Development profiles Support for multiple Apple accounts , storing your credentials securely in the Keychain Support for multiple Teams Support for Enterprise Profiles To automate iOS Push profiles you can use pem . Why not let Xcode do the work? sigh can easily be integrated into your CI-server (e.g. Jenkins) Xcode sometimes invalidates all existing profiles You have control over what happens You still get to have the signing files, which you can then use for your build scripts or store in git See sigh in action: Usage Note : It is recommended to use match according to the codesigning.guide for generating and maintaining your provisioning profiles. Use sigh directly only if you want full control over what's going on and know more about codesigning. fastlane sigh Yes, that's the whole command! sigh will create, repair and download profiles for the App Store by default. You can pass your bundle identifier and username like this: fastlane sigh -a com.krausefx.app -u username If you want to generate an Ad Hoc profile instead of an App Store profile: fastlane sigh --adhoc If you want to generate a Development profile: fastlane sigh --development To generate the profile in a specific directory: fastlane sigh -o \"~/Certificates/\" To download all your provisioning profiles use fastlane sigh download_all Optionally, use fastlane sigh download_all --download_xcode_profiles to also include the Xcode managed provisioning profiles For a list of available parameters and commands run fastlane action sigh Advanced By default, sigh will install the downloaded profile on your machine. If you just want to generate the profile and skip the installation, use the following flag: fastlane sigh --skip_install To save the provisioning profile under a specific name, use the -q option: fastlane sigh -a com.krausefx.app -u username -q \"myProfile.mobileprovision\" If for some reason you don't want sigh to verify that the code signing identity is installed on your local machine: fastlane sigh --skip_certificate_verification If you need the provisioning profile to be renewed regardless of its state use the --force option. This gives you a profile with the maximum lifetime. --force will also add all available devices to this profile. fastlane sigh --force By default, sigh will include all certificates on development profiles, and first certificate on other types. If you need to specify which certificate to use you can either use the environment variable SIGH_CERTIFICATE , or pass the name or expiry date of the certificate as argument: fastlane sigh -c \"SunApps GmbH\" For a list of available parameters and commands run fastlane action sigh Use with fastlane sigh becomes really interesting when used in fastlane in combination with cert . Update your Fastfile to contain the following code: lane :beta do cert sigh(force: true) end force: true will make sure to re-generate the provisioning profile on each run. This will result in sigh always using the correct signing certificate, which is installed on the local machine. Repair sigh can automatically repair all your existing provisioning profiles which are expired or just invalid. fastlane sigh repair Resign If you generated your ipa file but want to apply a different code signing onto the ipa file, you can use sigh resign : fastlane sigh resign sigh will find the ipa file and the provisioning profile for you if they are located in the current folder. You can pass more information using the command line: fastlane sigh resign ./path/app.ipa --signing_identity \"iPhone Distribution: Felix Krause\" -p \"my.mobileprovision\" Manage With sigh manage you can list all provisioning profiles installed locally. fastlane sigh manage Delete all expired provisioning profiles fastlane sigh manage -e Or delete all iOS Team Provisioning Profile by using a regular expression fastlane sigh manage -p \"iOS\\ ?Team Provisioning Profile:\" Environment Variables Run fastlane action sigh to get a list of all available environment variables. If you're using cert in combination with fastlane the signing certificate will automatically be selected for you. (make sure to run cert before sigh ) How does it work? sigh will access the iOS Dev Center to download, renew or generate the .mobileprovision file. It uses spaceship to communicate with Apple's web services. How is my password stored? sigh uses the CredentialsManager from fastlane . Tips Use 'ProvisionQL' for advanced Quick Look in Finder Install ProvisionQL . It will show you mobileprovision files like this: App Identifier couldn't be found If you also want to create a new App Identifier on the Apple Developer Portal, check out produce , which does exactly that. What happens to my Xcode managed profiles? sigh will never touch or use the profiles which are created and managed by Xcode. Instead sigh will manage its own set of provisioning profiles. sigh Supported platforms ios, mac Author @KrauseFx Returns The UUID of the profile sigh just fetched/generated 3 Examples get_provisioning_profile sigh # alias for \"get_provisioning_profile\" get_provisioning_profile( adhoc: true, force: true, filename: \"myFile.mobileprovision\" ) Parameters Key Description Default adhoc Setting this flag will generate AdHoc profiles instead of App Store Profiles false developer_id Setting this flag will generate Developer ID profiles instead of App Store Profiles false development Renew the development certificate instead of the production one false skip_install By default, the certificate will be added to your local machine. Setting this flag will skip this action false force Renew provisioning profiles regardless of its state - to automatically add all devices for ad hoc profiles false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false app_identifier The bundle identifier of your app * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * provisioning_name The name of the profile that is used on the Apple Developer Portal ignore_profiles_with_different_name Use in combination with :provisioning_name - when true only profiles matching this exact name will be downloaded false output_path Directory in which the profile should be stored . cert_id The ID of the code signing certificate to use (e.g. 78ADL6LVAA) cert_owner_name The certificate name to use for new profiles, or to renew with. (e.g. \"Felix Krause\") filename Filename to use for the generated provisioning profile (must include .mobileprovision) skip_fetch_profiles Skips the verification of existing profiles which is useful if you have thousands of profiles false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false skip_certificate_verification Skips the verification of the certificates for every existing profiles. This will make sure the provisioning profile can be used on the local machine * platform Set the provisioning profile's platform (i.e. ios, tvos, macos, catalyst) ios readonly Only fetch existing profile, don't generate new ones false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The sigh action generates the following Lane Variables: SharedValue Description SharedValues::SIGH_PROFILE_PATH A path in which certificates, key and profile are exported SharedValues::SIGH_PROFILE_PATHS Paths in which certificates, key and profile are exported SharedValues::SIGH_UUID UUID (Universally Unique IDentifier) of a provisioning profile SharedValues::SIGH_NAME The name of the profile SharedValues::SIGH_PROFILE_TYPE The profile type, can be app-store, ad-hoc, development, enterprise, developer-id, can be used in build_app as a default value for export_method To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action sigh CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sigh To pass parameters, make use of the : symbol, for example fastlane run sigh parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"sigh"},{"location":"actions/sigh/#sigh","text":"Alias for the get_provisioning_profile action","title":"sigh"},{"location":"actions/sigh/#features","text":"Download the latest provisioning profile for your app Renew a provisioning profile, when it has expired Repair a provisioning profile, when it is broken Create a new provisioning profile, if it doesn't exist already Supports App Store , Ad Hoc and Development profiles Support for multiple Apple accounts , storing your credentials securely in the Keychain Support for multiple Teams Support for Enterprise Profiles To automate iOS Push profiles you can use pem .","title":"Features"},{"location":"actions/sigh/#usage","text":"Note : It is recommended to use match according to the codesigning.guide for generating and maintaining your provisioning profiles. Use sigh directly only if you want full control over what's going on and know more about codesigning. fastlane sigh Yes, that's the whole command! sigh will create, repair and download profiles for the App Store by default. You can pass your bundle identifier and username like this: fastlane sigh -a com.krausefx.app -u username If you want to generate an Ad Hoc profile instead of an App Store profile: fastlane sigh --adhoc If you want to generate a Development profile: fastlane sigh --development To generate the profile in a specific directory: fastlane sigh -o \"~/Certificates/\" To download all your provisioning profiles use fastlane sigh download_all Optionally, use fastlane sigh download_all --download_xcode_profiles to also include the Xcode managed provisioning profiles For a list of available parameters and commands run fastlane action sigh","title":"Usage"},{"location":"actions/sigh/#repair","text":"sigh can automatically repair all your existing provisioning profiles which are expired or just invalid. fastlane sigh repair","title":"Repair"},{"location":"actions/sigh/#resign","text":"If you generated your ipa file but want to apply a different code signing onto the ipa file, you can use sigh resign : fastlane sigh resign sigh will find the ipa file and the provisioning profile for you if they are located in the current folder. You can pass more information using the command line: fastlane sigh resign ./path/app.ipa --signing_identity \"iPhone Distribution: Felix Krause\" -p \"my.mobileprovision\"","title":"Resign"},{"location":"actions/sigh/#manage","text":"With sigh manage you can list all provisioning profiles installed locally. fastlane sigh manage Delete all expired provisioning profiles fastlane sigh manage -e Or delete all iOS Team Provisioning Profile by using a regular expression fastlane sigh manage -p \"iOS\\ ?Team Provisioning Profile:\"","title":"Manage"},{"location":"actions/sigh/#environment-variables","text":"Run fastlane action sigh to get a list of all available environment variables. If you're using cert in combination with fastlane the signing certificate will automatically be selected for you. (make sure to run cert before sigh )","title":"Environment Variables"},{"location":"actions/sigh/#how-does-it-work","text":"sigh will access the iOS Dev Center to download, renew or generate the .mobileprovision file. It uses spaceship to communicate with Apple's web services.","title":"How does it work?"},{"location":"actions/sigh/#how-is-my-password-stored","text":"sigh uses the CredentialsManager from fastlane .","title":"How is my password stored?"},{"location":"actions/sigh/#tips","text":"","title":"Tips"},{"location":"actions/sigh/#use-provisionql-for-advanced-quick-look-in-finder","text":"Install ProvisionQL . It will show you mobileprovision files like this:","title":"Use 'ProvisionQL' for advanced Quick Look in Finder"},{"location":"actions/sigh/#app-identifier-couldnt-be-found","text":"If you also want to create a new App Identifier on the Apple Developer Portal, check out produce , which does exactly that.","title":"App Identifier couldn't be found"},{"location":"actions/sigh/#what-happens-to-my-xcode-managed-profiles","text":"sigh will never touch or use the profiles which are created and managed by Xcode. Instead sigh will manage its own set of provisioning profiles. sigh Supported platforms ios, mac Author @KrauseFx Returns The UUID of the profile sigh just fetched/generated","title":"What happens to my Xcode managed profiles?"},{"location":"actions/sigh/#3-examples","text":"get_provisioning_profile sigh # alias for \"get_provisioning_profile\" get_provisioning_profile( adhoc: true, force: true, filename: \"myFile.mobileprovision\" )","title":"3 Examples"},{"location":"actions/sigh/#parameters","text":"Key Description Default adhoc Setting this flag will generate AdHoc profiles instead of App Store Profiles false developer_id Setting this flag will generate Developer ID profiles instead of App Store Profiles false development Renew the development certificate instead of the production one false skip_install By default, the certificate will be added to your local machine. Setting this flag will skip this action false force Renew provisioning profiles regardless of its state - to automatically add all devices for ad hoc profiles false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false app_identifier The bundle identifier of your app * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * provisioning_name The name of the profile that is used on the Apple Developer Portal ignore_profiles_with_different_name Use in combination with :provisioning_name - when true only profiles matching this exact name will be downloaded false output_path Directory in which the profile should be stored . cert_id The ID of the code signing certificate to use (e.g. 78ADL6LVAA) cert_owner_name The certificate name to use for new profiles, or to renew with. (e.g. \"Felix Krause\") filename Filename to use for the generated provisioning profile (must include .mobileprovision) skip_fetch_profiles Skips the verification of existing profiles which is useful if you have thousands of profiles false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false skip_certificate_verification Skips the verification of the certificates for every existing profiles. This will make sure the provisioning profile can be used on the local machine * platform Set the provisioning profile's platform (i.e. ios, tvos, macos, catalyst) ios readonly Only fetch existing profile, don't generate new ones false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/sigh/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The sigh action generates the following Lane Variables: SharedValue Description SharedValues::SIGH_PROFILE_PATH A path in which certificates, key and profile are exported SharedValues::SIGH_PROFILE_PATHS Paths in which certificates, key and profile are exported SharedValues::SIGH_UUID UUID (Universally Unique IDentifier) of a provisioning profile SharedValues::SIGH_NAME The name of the profile SharedValues::SIGH_PROFILE_TYPE The profile type, can be app-store, ad-hoc, development, enterprise, developer-id, can be used in build_app as a default value for export_method To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/sigh/#documentation","text":"To show the documentation in your terminal, run fastlane action sigh","title":"Documentation"},{"location":"actions/sigh/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sigh To pass parameters, make use of the : symbol, for example fastlane run sigh parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/sigh/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/skip_docs/","text":"skip_docs Skip the creation of the fastlane/README.md file when running fastlane Tell fastlane to not automatically create a fastlane/README.md when running fastlane . You can always trigger the creation of this file manually by running fastlane docs . skip_docs Supported platforms ios, android, mac Author @KrauseFx 1 Example skip_docs Documentation To show the documentation in your terminal, run fastlane action skip_docs CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run skip_docs To pass parameters, make use of the : symbol, for example fastlane run skip_docs parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"skip_docs"},{"location":"actions/skip_docs/#skip_docs","text":"Skip the creation of the fastlane/README.md file when running fastlane Tell fastlane to not automatically create a fastlane/README.md when running fastlane . You can always trigger the creation of this file manually by running fastlane docs . skip_docs Supported platforms ios, android, mac Author @KrauseFx","title":"skip_docs"},{"location":"actions/skip_docs/#1-example","text":"skip_docs","title":"1 Example"},{"location":"actions/skip_docs/#documentation","text":"To show the documentation in your terminal, run fastlane action skip_docs","title":"Documentation"},{"location":"actions/skip_docs/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run skip_docs To pass parameters, make use of the : symbol, for example fastlane run skip_docs parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/skip_docs/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/slack/","text":"slack Send a success/error message to your Slack group Create an Incoming WebHook and export this as SLACK_URL . Can send a message to #channel (by default), a direct message to @username or a message to a private group group with success (green) or failure (red) status. slack Supported platforms ios, android, mac Author @KrauseFx 2 Examples slack(message: \"App successfully released!\") slack( message: \"App successfully released!\", channel: \"#channel\", # Optional, by default will post to the default channel configured for the POST URL. success: true, # Optional, defaults to true. payload: { # Optional, lets you specify any number of your own Slack attachments. \"Build Date\" => Time.new.to_s, \"Built by\" => \"Jenkins\", }, default_payloads: [:git_branch, :git_author], # Optional, lets you specify default payloads to include. Pass an empty array to suppress all the default payloads. attachment_properties: { # Optional, lets you specify any other properties available for attachments in the slack API (see https://api.slack.com/docs/attachments). # This hash is deep merged with the existing properties set using the other properties above. This allows your own fields properties to be appended to the existing fields that were created using the `payload` property for instance. thumb_url: \"http://example.com/path/to/thumb.png\", fields: [{ title: \"My Field\", value: \"My Value\", short: true }] } ) Parameters Key Description Default message The message that should be displayed on Slack. This supports the standard Slack markup language pretext This is optional text that appears above the message attachment block. This supports the standard Slack markup language channel #channel or @username use_webhook_configured_username_and_icon Use webhook's default username and icon settings? (true/false) false slack_url Create an Incoming WebHook for your Slack group username Overrides the webhook's username property if use_webhook_configured_username_and_icon is false fastlane icon_url Overrides the webhook's image property if use_webhook_configured_username_and_icon is false https://fastlane.tools/assets/img/fastlane_icon.png payload Add additional information to this post. payload must be a hash containing any key with any value {} default_payloads Specifies default payloads to include. Pass an empty array to suppress all the default payloads [\"lane\", \"test_result\", \"git_branch\", \"git_author\", \"last_git_commit\", \"last_git_commit_hash\"] attachment_properties Merge additional properties in the slack attachment, see https://api.slack.com/docs/attachments {} success Was this build successful? (true/false) true fail_on_error Should an error sending the slack notification cause a failure? (true/false) true link_names Find and link channel names and usernames (true/false) false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action slack CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run slack To pass parameters, make use of the : symbol, for example fastlane run slack parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"slack"},{"location":"actions/slack/#slack","text":"Send a success/error message to your Slack group Create an Incoming WebHook and export this as SLACK_URL . Can send a message to #channel (by default), a direct message to @username or a message to a private group group with success (green) or failure (red) status. slack Supported platforms ios, android, mac Author @KrauseFx","title":"slack"},{"location":"actions/slack/#2-examples","text":"slack(message: \"App successfully released!\") slack( message: \"App successfully released!\", channel: \"#channel\", # Optional, by default will post to the default channel configured for the POST URL. success: true, # Optional, defaults to true. payload: { # Optional, lets you specify any number of your own Slack attachments. \"Build Date\" => Time.new.to_s, \"Built by\" => \"Jenkins\", }, default_payloads: [:git_branch, :git_author], # Optional, lets you specify default payloads to include. Pass an empty array to suppress all the default payloads. attachment_properties: { # Optional, lets you specify any other properties available for attachments in the slack API (see https://api.slack.com/docs/attachments). # This hash is deep merged with the existing properties set using the other properties above. This allows your own fields properties to be appended to the existing fields that were created using the `payload` property for instance. thumb_url: \"http://example.com/path/to/thumb.png\", fields: [{ title: \"My Field\", value: \"My Value\", short: true }] } )","title":"2 Examples"},{"location":"actions/slack/#parameters","text":"Key Description Default message The message that should be displayed on Slack. This supports the standard Slack markup language pretext This is optional text that appears above the message attachment block. This supports the standard Slack markup language channel #channel or @username use_webhook_configured_username_and_icon Use webhook's default username and icon settings? (true/false) false slack_url Create an Incoming WebHook for your Slack group username Overrides the webhook's username property if use_webhook_configured_username_and_icon is false fastlane icon_url Overrides the webhook's image property if use_webhook_configured_username_and_icon is false https://fastlane.tools/assets/img/fastlane_icon.png payload Add additional information to this post. payload must be a hash containing any key with any value {} default_payloads Specifies default payloads to include. Pass an empty array to suppress all the default payloads [\"lane\", \"test_result\", \"git_branch\", \"git_author\", \"last_git_commit\", \"last_git_commit_hash\"] attachment_properties Merge additional properties in the slack attachment, see https://api.slack.com/docs/attachments {} success Was this build successful? (true/false) true fail_on_error Should an error sending the slack notification cause a failure? (true/false) true link_names Find and link channel names and usernames (true/false) false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/slack/#documentation","text":"To show the documentation in your terminal, run fastlane action slack","title":"Documentation"},{"location":"actions/slack/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run slack To pass parameters, make use of the : symbol, for example fastlane run slack parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/slack/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/slack_train/","text":"slack_train Show a train of the fastlane progress slack_train | -----|---- Supported platforms | ios, android, mac Author | @@KrauseFx Returns | A string that is being sent to slack To show the documentation in your terminal, run fastlane action slack_train View source code Back to actions","title":"Slack train"},{"location":"actions/slack_train/#slack_train","text":"Show a train of the fastlane progress slack_train | -----|---- Supported platforms | ios, android, mac Author | @@KrauseFx Returns | A string that is being sent to slack To show the documentation in your terminal, run fastlane action slack_train View source code Back to actions","title":"slack_train"},{"location":"actions/slack_train_crash/","text":"slack_train_crash slack_train_crash | -----|---- Supported platforms | ios, android, mac Author | @@KrauseFx To show the documentation in your terminal, run fastlane action slack_train_crash View source code Back to actions","title":"Slack train crash"},{"location":"actions/slack_train_crash/#slack_train_crash","text":"slack_train_crash | -----|---- Supported platforms | ios, android, mac Author | @@KrauseFx To show the documentation in your terminal, run fastlane action slack_train_crash View source code Back to actions","title":"slack_train_crash"},{"location":"actions/slack_train_start/","text":"slack_train_start Show a train of the fastlane progress slack_train_start | -----|---- Supported platforms | ios, android, mac Author | @@KrauseFx Parameters Key Description Default distance How many rails do we need? 5 train Train emoji \ud83d\ude9d rail Character or emoji for the rail = reverse_direction Pass true if you want the train to go from left to right false * = default value is dependent on the user's system To show the documentation in your terminal, run fastlane action slack_train_start View source code Back to actions","title":"Slack train start"},{"location":"actions/slack_train_start/#slack_train_start","text":"Show a train of the fastlane progress slack_train_start | -----|---- Supported platforms | ios, android, mac Author | @@KrauseFx","title":"slack_train_start"},{"location":"actions/slack_train_start/#parameters","text":"Key Description Default distance How many rails do we need? 5 train Train emoji \ud83d\ude9d rail Character or emoji for the rail = reverse_direction Pass true if you want the train to go from left to right false * = default value is dependent on the user's system To show the documentation in your terminal, run fastlane action slack_train_start View source code Back to actions","title":"Parameters"},{"location":"actions/slather/","text":"slather Use slather to generate a code coverage report Slather works with multiple code coverage formats, including Xcode 7 code coverage. Slather is available at https://github.com/SlatherOrg/slather . slather Supported platforms ios, mac Author @mattdelves 1 Example slather( build_directory: \"foo\", input_format: \"bah\", scheme: \"MyScheme\", proj: \"MyProject.xcodeproj\" ) Parameters Key Description Default build_directory The location of the build output proj The project file that slather looks at workspace The workspace that slather looks at scheme Scheme to use when calling slather configuration Configuration to use when calling slather (since slather-2.4.1) input_format The input format that slather should look for github Tell slather that it is running on Github Actions buildkite Tell slather that it is running on Buildkite teamcity Tell slather that it is running on TeamCity jenkins Tell slather that it is running on Jenkins travis Tell slather that it is running on TravisCI travis_pro Tell slather that it is running on TravisCI Pro circleci Tell slather that it is running on CircleCI coveralls Tell slather that it should post data to Coveralls simple_output Tell slather that it should output results to the terminal gutter_json Tell slather that it should output results as Gutter JSON format cobertura_xml Tell slather that it should output results as Cobertura XML format sonarqube_xml Tell slather that it should output results as SonarQube Generic XML format llvm_cov Tell slather that it should output results as llvm-cov show format json Tell slather that it should output results as static JSON report html Tell slather that it should output results as static HTML pages show Tell slather that it should open static html pages automatically false source_directory Tell slather the location of your source files output_directory Tell slather the location of for your output files ignore Tell slather to ignore files matching a path or any path from an array of paths verbose Tell slather to enable verbose mode use_bundle_exec Use bundle exec to execute slather. Make sure it is in the Gemfile false binary_basename Basename of the binary file, this should match the name of your bundle excluding its extension (i.e. YourApp [for YourApp.app bundle]) binary_file Binary file name to be used for code coverage arch Specify which architecture the binary file is in. Needed for universal binaries source_files A Dir.glob compatible pattern used to limit the lookup to specific source files. Ignored in gcov mode false decimals The amount of decimals to use for % coverage reporting false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action slather CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run slather To pass parameters, make use of the : symbol, for example fastlane run slather parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"slather"},{"location":"actions/slather/#slather","text":"Use slather to generate a code coverage report Slather works with multiple code coverage formats, including Xcode 7 code coverage. Slather is available at https://github.com/SlatherOrg/slather . slather Supported platforms ios, mac Author @mattdelves","title":"slather"},{"location":"actions/slather/#1-example","text":"slather( build_directory: \"foo\", input_format: \"bah\", scheme: \"MyScheme\", proj: \"MyProject.xcodeproj\" )","title":"1 Example"},{"location":"actions/slather/#parameters","text":"Key Description Default build_directory The location of the build output proj The project file that slather looks at workspace The workspace that slather looks at scheme Scheme to use when calling slather configuration Configuration to use when calling slather (since slather-2.4.1) input_format The input format that slather should look for github Tell slather that it is running on Github Actions buildkite Tell slather that it is running on Buildkite teamcity Tell slather that it is running on TeamCity jenkins Tell slather that it is running on Jenkins travis Tell slather that it is running on TravisCI travis_pro Tell slather that it is running on TravisCI Pro circleci Tell slather that it is running on CircleCI coveralls Tell slather that it should post data to Coveralls simple_output Tell slather that it should output results to the terminal gutter_json Tell slather that it should output results as Gutter JSON format cobertura_xml Tell slather that it should output results as Cobertura XML format sonarqube_xml Tell slather that it should output results as SonarQube Generic XML format llvm_cov Tell slather that it should output results as llvm-cov show format json Tell slather that it should output results as static JSON report html Tell slather that it should output results as static HTML pages show Tell slather that it should open static html pages automatically false source_directory Tell slather the location of your source files output_directory Tell slather the location of for your output files ignore Tell slather to ignore files matching a path or any path from an array of paths verbose Tell slather to enable verbose mode use_bundle_exec Use bundle exec to execute slather. Make sure it is in the Gemfile false binary_basename Basename of the binary file, this should match the name of your bundle excluding its extension (i.e. YourApp [for YourApp.app bundle]) binary_file Binary file name to be used for code coverage arch Specify which architecture the binary file is in. Needed for universal binaries source_files A Dir.glob compatible pattern used to limit the lookup to specific source files. Ignored in gcov mode false decimals The amount of decimals to use for % coverage reporting false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/slather/#documentation","text":"To show the documentation in your terminal, run fastlane action slather","title":"Documentation"},{"location":"actions/slather/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run slather To pass parameters, make use of the : symbol, for example fastlane run slather parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/slather/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/snapshot/","text":"snapshot Alias for the capture_ios_screenshots action Automate taking localized screenshots of your iOS, tvOS, and watchOS apps on every device Check out the new fastlane documentation on how to generate screenshots snapshot generates localized iOS, tvOS, and watchOS screenshots for different device types and languages for the App Store and can be uploaded using ( deliver ). You have to manually create 20 (languages) x 6 (devices) x 5 (screenshots) = 600 screenshots . It's hard to get everything right! New screenshots with every (design) update No loading indicators Same content / screens Clean Status Bar Uploading screenshots ( deliver is your friend) More information about creating perfect screenshots . snapshot runs completely in the background - you can do something else, while your computer takes the screenshots for you. Features \u2022 UI Tests \u2022 Quick Start \u2022 Usage \u2022 Tips \u2022 How? Features Create hundreds of screenshots in multiple languages on all simulators Take screenshots in multiple device simulators concurrently to cut down execution time (Xcode 9 only) Configure it once, store the configuration in git Do something else, while the computer takes the screenshots for you Integrates with fastlane and deliver Generates a beautiful web page, which shows all screenshots on all devices. This is perfect to send to QA or the marketing team snapshot automatically waits for network requests to be finished before taking a screenshot (we don't want loading images in the App Store screenshots) After snapshot successfully created new screenshots, it will generate a beautiful HTML file to get a quick overview of all screens: Why? This tool automatically switches the language and device type and runs UI Tests for every combination. Why should I automate this process? It takes hours to take screenshots You get a great overview of all your screens, running on all available simulators without the need to manually start it hundreds of times Easy verification for translators (without an iDevice) that translations do make sense in real App context Easy verification that localizations fit into labels on all screen dimensions It is an integration test: You can test for UI elements and other things inside your scripts Be so nice, and provide new screenshots with every App Store update. Your customers deserve it You realize, there is a spelling mistake in one of the screens? Well, just correct it and re-run the script UI Tests Getting started This project uses Apple's newly announced UI Tests. We will not go into detail on how to write scripts. Here a few links to get started: WWDC 2015 Introduction to UI Tests A first look into UI Tests UI Testing in Xcode 7 HSTestingBackchannel : \u2018Cheat\u2019 by communicating directly with your app Automating App Store screenshots using fastlane snapshot and frameit Quick Start Create a new UI Test target in your Xcode project ( top part of this article ) Run fastlane snapshot init in your project folder Add the ./SnapshotHelper.swift to your UI Test target (You can move the file anywhere you want) (Xcode 8 only) add the ./SnapshotHelperXcode8.swift to your UI Test target (Objective C only) add the bridging header to your test class: #import \"MYUITests-Swift.h\" (The bridging header is named after your test target with -Swift.h appended.) In your UI Test class, click the Record button on the bottom left and record your interaction To take a snapshot, call the following between interactions Swift: snapshot(\"01LoginScreen\") Objective C: [Snapshot snapshot:@\"01LoginScreen\" timeWaitingForIdle:10]; Add the following code to your setUp() method: Swift: let app = XCUIApplication() setupSnapshot(app) app.launch() Objective C: XCUIApplication *app = [[XCUIApplication alloc] init]; [Snapshot setupSnapshot:app waitForAnimations:NO]; [app launch]; Make sure you only have one launch call in your test class, as Xcode adds one automatically on new test files. You can try the snapshot example project by cloning this repo. To quick start your UI tests, you can use the UI Test recorder. You only have to interact with the simulator, and Xcode will generate the UI Test code for you. You can find the red record button on the bottom of the screen (more information in this blog post ) Usage fastlane snapshot Your screenshots will be stored in the ./screenshots/ folder by default (or ./fastlane/screenshots if you're using fastlane ) New with Xcode 9, snapshot can run multiple simulators concurrently. This is the default behavior in order to take your screenshots as quickly as possible. This can be disabled to run each device, one at a time, by setting the :concurrent_simulators option to false . Note: While running snapshot with Xcode 9, the simulators will not be visibly spawned. So, while you won't see the simulators running your tests, they will, in fact, be taking your screenshots. If any error occurs while running the snapshot script on a device, that device will not have any screenshots, and snapshot will continue with the next device or language. To stop the flow after the first error, run fastlane snapshot --stop_after_first_error Also by default, snapshot will open the HTML after all is done. This can be skipped with the following command fastlane snapshot --stop_after_first_error --skip_open_summary There are a lot of options available that define how to build your app, for example fastlane snapshot --scheme \"UITests\" --configuration \"Release\" --sdk \"iphonesimulator\" Reinstall the app before running snapshot fastlane snapshot --reinstall_app --app_identifier \"tools.fastlane.app\" By default snapshot automatically retries running UI Tests if they fail. This is due to randomly failing UI Tests (e.g. #2517 ). You can adapt this number using fastlane snapshot --number_of_retries 3 Add photos and/or videos to the simulator before running snapshot fastlane snapshot --add_photos MyTestApp/Assets/demo.jpg --add_videos MyTestApp/Assets/demo.mp4 For a list for all available options run fastlane action snapshot After running snapshot you will get a nice summary: Snapfile All of the available options can also be stored in a configuration file called the Snapfile . Since most values will not change often for your project, it is recommended to store them there: First make sure to have a Snapfile (you get it for free when running fastlane snapshot init ) The Snapfile can contain all the options that are also available on fastlane action snapshot scheme(\"UITests\") devices([ \"iPad (7th generation)\", \"iPad Air (3rd generation)\", \"iPad Pro (11-inch)\", \"iPad Pro (12.9-inch) (3rd generation)\", \"iPad Pro (9.7-inch)\", \"iPhone 11\", \"iPhone 11 Pro\", \"iPhone 11 Pro Max\", \"iPhone 8\", \"iPhone 8 Plus\" ]) languages([ \"en-US\", \"de-DE\", \"es-ES\", [\"pt\", \"pt_BR\"] # Portuguese with Brazilian locale ]) launch_arguments([\"-username Felix\"]) # The directory in which the screenshots should be stored output_directory('./screenshots') clear_previous_screenshots(true) override_status_bar(true) add_photos([\"MyTestApp/Assets/demo.jpg\"]) Completely reset all simulators You can run this command in the terminal to delete and re-create all iOS and tvOS simulators: fastlane snapshot reset_simulators Warning : This will delete all your simulators and replace by new ones! This is useful, if you run into weird problems when running snapshot . You can use the environment variable SNAPSHOT_FORCE_DELETE to stop asking for confirmation before deleting. SNAPSHOT_FORCE_DELETE=1 fastlane snapshot reset_simulators Update snapshot helpers Some updates require the helper files to be updated. snapshot will automatically warn you and tell you how to update. Basically you can run fastlane snapshot update to update your SnapshotHelper.swift files. In case you modified your SnapshotHelper.swift and want to manually update the file, check out SnapshotHelper.swift . Launch Arguments You can provide additional arguments to your app on launch. These strings will be available in your app (e.g. not in the testing target) through ProcessInfo.processInfo.arguments . Alternatively, use user-default syntax ( -key value ) and they will be available as key-value pairs in UserDefaults.standard . launch_arguments([ \"-firstName Felix -lastName Krause\" ]) name.text = UserDefaults.standard.string(forKey: \"firstName\") // name.text = \"Felix\" snapshot includes -FASTLANE_SNAPSHOT YES , which will set a temporary user default for the key FASTLANE_SNAPSHOT , you may use this to detect when the app is run by snapshot . if UserDefaults.standard.bool(forKey: \"FASTLANE_SNAPSHOT\") { // runtime check that we are in snapshot mode } Specify multiple argument strings and snapshot will generate screenshots for each combination of arguments, devices, and languages. This is useful for comparing the same screenshots with different feature flags, dynamic text sizes, and different data sets. # Snapfile for A/B Test Comparison launch_arguments([ \"-secretFeatureEnabled YES\", \"-secretFeatureEnabled NO\" ]) Xcode Environment Variables snapshot includes FASTLANE_SNAPSHOT=YES and FASTLANE_LANGUAGE= as arguments when executing xcodebuild . This means you may use these environment variables in a custom build phase run script to do any additional configuration. How does it work? The easiest solution would be to just render the UIWindow into a file. That's not possible because UI Tests don't run on a main thread. So snapshot uses a different approach: When you run unit tests in Xcode, the reporter generates a plist file, documenting all events that occurred during the tests ( More Information ). Additionally, Xcode generates screenshots before, during and after each of these events. There is no way to manually trigger a screenshot event. The screenshots and the plist files are stored in the DerivedData directory, which snapshot stores in a temporary folder. When the user calls snapshot(...) in the UI Tests (Swift or Objective C) the script actually does a rotation to .Unknown which doesn't have any effect on the actual app, but is enough to trigger a screenshot. It has no effect to the application and is not something you would do in your tests. The goal was to find some event that a user would never trigger, so that we know it's from snapshot . On tvOS, there is no orientation so we ask for a count of app views with type \"Browser\" (which should never exist on tvOS). snapshot then iterates through all test events and check where we either did this weird rotation (on iOS) or searched for browsers (on tvOS). Once snapshot has all events triggered by snapshot it collects a ordered list of all the file names of the actual screenshots of the application. In the test output, the Swift snapshot function will print out something like this snapshot: [some random text here] snapshot finds all these entries using a regex. The number of snapshot outputs in the terminal and the number of snapshot events in the plist file should be the same. Knowing that, snapshot automatically matches these 2 lists to identify the name of each of these screenshots. They are then copied over to the output directory and separated by language and device. 2 thing have to be passed on from snapshot to the xcodebuild command line tool: The device type is passed via the destination parameter of the xcodebuild parameter The language is passed via a temporary file which is written by snapshot before running the tests and read by the UI Tests when launching the application If you find a better way to do any of this, please submit an issue on GitHub or even a pull request :+1: Radar 23062925 has been resolved with Xcode 8.3, so it's now possible to actually take screenshots from the simulator. We'll keep using the old approach for now, since many of you still want to use older versions of Xcode. Tips Check out the new fastlane documentation on how to generate screenshots Frame the screenshots If you want to add frames around the screenshots and even put a title on top, check out frameit . Available language codes ALL_LANGUAGES = [\"da\", \"de-DE\", \"el\", \"en-AU\", \"en-CA\", \"en-GB\", \"en-US\", \"es-ES\", \"es-MX\", \"fi\", \"fr-CA\", \"fr-FR\", \"id\", \"it\", \"ja\", \"ko\", \"ms\", \"nl-NL\", \"no\", \"pt-BR\", \"pt-PT\", \"ru\", \"sv\", \"th\", \"tr\", \"vi\", \"zh-Hans\", \"zh-Hant\"] To get more information about language and locale codes please read Internationalization and Localization Guide . Use a clean status bar You can set override_status_bar to true to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available. Editing the Snapfile Change syntax highlighting to Ruby . Simulator doesn't launch the application When the app dies directly after the application is launched there might be 2 problems The simulator is somehow in a broken state and you need to re-create it. You can use snapshot reset_simulators to reset all simulators (this will remove all installed apps) A restart helps very often Determine language To detect the currently used localization in your tests, access the deviceLanguage variable from SnapshotHelper.swift . Speed up snapshots A lot of time in UI tests is spent waiting for animations. You can disable UIView animations in your app to make the tests faster: if ProcessInfo().arguments.contains(\"SKIP_ANIMATIONS\") { UIView.setAnimationsEnabled(false) } This requires you to pass the launch argument like so: snapshot(launch_arguments: [\"SKIP_ANIMATIONS\"]) By default, snapshot will wait for a short time for the animations to finish. If you're skipping the animations, this wait time is unnecessary and can be skipped: setupSnapshot(app, waitForAnimations: false) snapshot Supported platforms ios, mac Author @KrauseFx 3 Examples capture_ios_screenshots snapshot # alias for \"capture_ios_screenshots\" capture_ios_screenshots( skip_open_summary: true, clean: true ) Parameters Key Description Default workspace Path the workspace file project Path the project file xcargs Pass additional arguments to xcodebuild for the test phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app devices A list of devices you want to take the screenshots from languages A list of languages which should be used [\"en-US\"] launch_arguments A list of launch arguments which should be used [\"\"] output_directory The directory where to store the screenshots * output_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false ios_version By default, the latest version should be used automatically. If you want to change it, do it here skip_open_summary Don't open the HTML summary after running snapshot false skip_helper_version_check Do not check for most recent SnapshotHelper code false clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running snapshot false reinstall_app Enabling this option will automatically uninstall the application before running it false erase_simulator Enabling this option will automatically erase the simulator before running the application false headless Enabling this option will prevent displaying the simulator window true override_status_bar Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception (Adjust 'SNAPSHOT_SIMULATOR_WAIT_FOR_BOOT_TIMEOUT' environment variable if override status bar is not working. Might be because simulator is not fully booted. Defaults to 10 seconds) false override_status_bar_arguments Fully customize the status bar by setting each option here. Requires override_status_bar to be set to true . See xcrun simctl status_bar --help localize_simulator Enabling this option will configure the Simulator's system language false dark_mode Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark) app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * add_photos A list of photos that should be added to the simulator before running the application add_videos A list of videos that should be added to the simulator before running the application html_template A path to screenshots.html template buildlog_path The directory where to store the build log * clean Should the project be cleaned before building it? false test_without_building Test without building, requires a derived data path configuration The configuration to use when building the app. Defaults to 'Release' * sdk The SDK that should be used for building the application scheme The scheme you want to use, this must be the scheme for the UI Tests number_of_retries The number of times a test can fail before snapshot should stop retrying 1 stop_after_first_error Should snapshot stop immediately after the tests completely failed on one device? false derived_data_path The directory where build products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false test_target_name The name of the target you want to test (if you desire to override the Target Application from Xcode) namespace_log_files Separate the log files per device and per language concurrent_simulators Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9 true disable_slide_to_type Disable the simulator from showing the 'Slide to type' prompt false cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false testplan The testplan associated with the scheme that should be used for testing only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * xcpretty_args DEPRECATED! Use xcodebuild_formatter: '' instead - Additional xcpretty arguments disable_xcpretty Disable xcpretty formatting of build suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The snapshot action generates the following Lane Variables: SharedValue Description SharedValues::SNAPSHOT_SCREENSHOTS_PATH The path to the screenshots To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action snapshot CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run snapshot To pass parameters, make use of the : symbol, for example fastlane run snapshot parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"snapshot"},{"location":"actions/snapshot/#snapshot","text":"Alias for the capture_ios_screenshots action","title":"snapshot"},{"location":"actions/snapshot/#features","text":"Create hundreds of screenshots in multiple languages on all simulators Take screenshots in multiple device simulators concurrently to cut down execution time (Xcode 9 only) Configure it once, store the configuration in git Do something else, while the computer takes the screenshots for you Integrates with fastlane and deliver Generates a beautiful web page, which shows all screenshots on all devices. This is perfect to send to QA or the marketing team snapshot automatically waits for network requests to be finished before taking a screenshot (we don't want loading images in the App Store screenshots) After snapshot successfully created new screenshots, it will generate a beautiful HTML file to get a quick overview of all screens:","title":"Features"},{"location":"actions/snapshot/#why","text":"This tool automatically switches the language and device type and runs UI Tests for every combination.","title":"Why?"},{"location":"actions/snapshot/#ui-tests","text":"","title":"UI Tests"},{"location":"actions/snapshot/#getting-started","text":"This project uses Apple's newly announced UI Tests. We will not go into detail on how to write scripts. Here a few links to get started: WWDC 2015 Introduction to UI Tests A first look into UI Tests UI Testing in Xcode 7 HSTestingBackchannel : \u2018Cheat\u2019 by communicating directly with your app Automating App Store screenshots using fastlane snapshot and frameit","title":"Getting started"},{"location":"actions/snapshot/#quick-start","text":"Create a new UI Test target in your Xcode project ( top part of this article ) Run fastlane snapshot init in your project folder Add the ./SnapshotHelper.swift to your UI Test target (You can move the file anywhere you want) (Xcode 8 only) add the ./SnapshotHelperXcode8.swift to your UI Test target (Objective C only) add the bridging header to your test class: #import \"MYUITests-Swift.h\" (The bridging header is named after your test target with -Swift.h appended.) In your UI Test class, click the Record button on the bottom left and record your interaction To take a snapshot, call the following between interactions Swift: snapshot(\"01LoginScreen\") Objective C: [Snapshot snapshot:@\"01LoginScreen\" timeWaitingForIdle:10]; Add the following code to your setUp() method: Swift: let app = XCUIApplication() setupSnapshot(app) app.launch() Objective C: XCUIApplication *app = [[XCUIApplication alloc] init]; [Snapshot setupSnapshot:app waitForAnimations:NO]; [app launch]; Make sure you only have one launch call in your test class, as Xcode adds one automatically on new test files. You can try the snapshot example project by cloning this repo. To quick start your UI tests, you can use the UI Test recorder. You only have to interact with the simulator, and Xcode will generate the UI Test code for you. You can find the red record button on the bottom of the screen (more information in this blog post )","title":"Quick Start"},{"location":"actions/snapshot/#usage","text":"fastlane snapshot Your screenshots will be stored in the ./screenshots/ folder by default (or ./fastlane/screenshots if you're using fastlane ) New with Xcode 9, snapshot can run multiple simulators concurrently. This is the default behavior in order to take your screenshots as quickly as possible. This can be disabled to run each device, one at a time, by setting the :concurrent_simulators option to false . Note: While running snapshot with Xcode 9, the simulators will not be visibly spawned. So, while you won't see the simulators running your tests, they will, in fact, be taking your screenshots. If any error occurs while running the snapshot script on a device, that device will not have any screenshots, and snapshot will continue with the next device or language. To stop the flow after the first error, run fastlane snapshot --stop_after_first_error Also by default, snapshot will open the HTML after all is done. This can be skipped with the following command fastlane snapshot --stop_after_first_error --skip_open_summary There are a lot of options available that define how to build your app, for example fastlane snapshot --scheme \"UITests\" --configuration \"Release\" --sdk \"iphonesimulator\" Reinstall the app before running snapshot fastlane snapshot --reinstall_app --app_identifier \"tools.fastlane.app\" By default snapshot automatically retries running UI Tests if they fail. This is due to randomly failing UI Tests (e.g. #2517 ). You can adapt this number using fastlane snapshot --number_of_retries 3 Add photos and/or videos to the simulator before running snapshot fastlane snapshot --add_photos MyTestApp/Assets/demo.jpg --add_videos MyTestApp/Assets/demo.mp4 For a list for all available options run fastlane action snapshot After running snapshot you will get a nice summary:","title":"Usage"},{"location":"actions/snapshot/#snapfile","text":"All of the available options can also be stored in a configuration file called the Snapfile . Since most values will not change often for your project, it is recommended to store them there: First make sure to have a Snapfile (you get it for free when running fastlane snapshot init ) The Snapfile can contain all the options that are also available on fastlane action snapshot scheme(\"UITests\") devices([ \"iPad (7th generation)\", \"iPad Air (3rd generation)\", \"iPad Pro (11-inch)\", \"iPad Pro (12.9-inch) (3rd generation)\", \"iPad Pro (9.7-inch)\", \"iPhone 11\", \"iPhone 11 Pro\", \"iPhone 11 Pro Max\", \"iPhone 8\", \"iPhone 8 Plus\" ]) languages([ \"en-US\", \"de-DE\", \"es-ES\", [\"pt\", \"pt_BR\"] # Portuguese with Brazilian locale ]) launch_arguments([\"-username Felix\"]) # The directory in which the screenshots should be stored output_directory('./screenshots') clear_previous_screenshots(true) override_status_bar(true) add_photos([\"MyTestApp/Assets/demo.jpg\"])","title":"Snapfile"},{"location":"actions/snapshot/#update-snapshot-helpers","text":"Some updates require the helper files to be updated. snapshot will automatically warn you and tell you how to update. Basically you can run fastlane snapshot update to update your SnapshotHelper.swift files. In case you modified your SnapshotHelper.swift and want to manually update the file, check out SnapshotHelper.swift .","title":"Update snapshot helpers"},{"location":"actions/snapshot/#launch-arguments","text":"You can provide additional arguments to your app on launch. These strings will be available in your app (e.g. not in the testing target) through ProcessInfo.processInfo.arguments . Alternatively, use user-default syntax ( -key value ) and they will be available as key-value pairs in UserDefaults.standard . launch_arguments([ \"-firstName Felix -lastName Krause\" ]) name.text = UserDefaults.standard.string(forKey: \"firstName\") // name.text = \"Felix\" snapshot includes -FASTLANE_SNAPSHOT YES , which will set a temporary user default for the key FASTLANE_SNAPSHOT , you may use this to detect when the app is run by snapshot . if UserDefaults.standard.bool(forKey: \"FASTLANE_SNAPSHOT\") { // runtime check that we are in snapshot mode } Specify multiple argument strings and snapshot will generate screenshots for each combination of arguments, devices, and languages. This is useful for comparing the same screenshots with different feature flags, dynamic text sizes, and different data sets. # Snapfile for A/B Test Comparison launch_arguments([ \"-secretFeatureEnabled YES\", \"-secretFeatureEnabled NO\" ])","title":"Launch Arguments"},{"location":"actions/snapshot/#xcode-environment-variables","text":"snapshot includes FASTLANE_SNAPSHOT=YES and FASTLANE_LANGUAGE= as arguments when executing xcodebuild . This means you may use these environment variables in a custom build phase run script to do any additional configuration.","title":"Xcode Environment Variables"},{"location":"actions/snapshot/#how-does-it-work","text":"The easiest solution would be to just render the UIWindow into a file. That's not possible because UI Tests don't run on a main thread. So snapshot uses a different approach: When you run unit tests in Xcode, the reporter generates a plist file, documenting all events that occurred during the tests ( More Information ). Additionally, Xcode generates screenshots before, during and after each of these events. There is no way to manually trigger a screenshot event. The screenshots and the plist files are stored in the DerivedData directory, which snapshot stores in a temporary folder. When the user calls snapshot(...) in the UI Tests (Swift or Objective C) the script actually does a rotation to .Unknown which doesn't have any effect on the actual app, but is enough to trigger a screenshot. It has no effect to the application and is not something you would do in your tests. The goal was to find some event that a user would never trigger, so that we know it's from snapshot . On tvOS, there is no orientation so we ask for a count of app views with type \"Browser\" (which should never exist on tvOS). snapshot then iterates through all test events and check where we either did this weird rotation (on iOS) or searched for browsers (on tvOS). Once snapshot has all events triggered by snapshot it collects a ordered list of all the file names of the actual screenshots of the application. In the test output, the Swift snapshot function will print out something like this snapshot: [some random text here] snapshot finds all these entries using a regex. The number of snapshot outputs in the terminal and the number of snapshot events in the plist file should be the same. Knowing that, snapshot automatically matches these 2 lists to identify the name of each of these screenshots. They are then copied over to the output directory and separated by language and device. 2 thing have to be passed on from snapshot to the xcodebuild command line tool: The device type is passed via the destination parameter of the xcodebuild parameter The language is passed via a temporary file which is written by snapshot before running the tests and read by the UI Tests when launching the application If you find a better way to do any of this, please submit an issue on GitHub or even a pull request :+1: Radar 23062925 has been resolved with Xcode 8.3, so it's now possible to actually take screenshots from the simulator. We'll keep using the old approach for now, since many of you still want to use older versions of Xcode.","title":"How does it work?"},{"location":"actions/snapshot/#tips","text":"","title":"Tips"},{"location":"actions/snapshot/#frame-the-screenshots","text":"If you want to add frames around the screenshots and even put a title on top, check out frameit .","title":"Frame the screenshots"},{"location":"actions/snapshot/#available-language-codes","text":"ALL_LANGUAGES = [\"da\", \"de-DE\", \"el\", \"en-AU\", \"en-CA\", \"en-GB\", \"en-US\", \"es-ES\", \"es-MX\", \"fi\", \"fr-CA\", \"fr-FR\", \"id\", \"it\", \"ja\", \"ko\", \"ms\", \"nl-NL\", \"no\", \"pt-BR\", \"pt-PT\", \"ru\", \"sv\", \"th\", \"tr\", \"vi\", \"zh-Hans\", \"zh-Hant\"] To get more information about language and locale codes please read Internationalization and Localization Guide .","title":"Available language codes"},{"location":"actions/snapshot/#use-a-clean-status-bar","text":"You can set override_status_bar to true to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available.","title":"Use a clean status bar"},{"location":"actions/snapshot/#editing-the-snapfile","text":"Change syntax highlighting to Ruby .","title":"Editing the Snapfile"},{"location":"actions/snapshot/#determine-language","text":"To detect the currently used localization in your tests, access the deviceLanguage variable from SnapshotHelper.swift .","title":"Determine language"},{"location":"actions/snapshot/#speed-up-snapshots","text":"A lot of time in UI tests is spent waiting for animations. You can disable UIView animations in your app to make the tests faster: if ProcessInfo().arguments.contains(\"SKIP_ANIMATIONS\") { UIView.setAnimationsEnabled(false) } This requires you to pass the launch argument like so: snapshot(launch_arguments: [\"SKIP_ANIMATIONS\"]) By default, snapshot will wait for a short time for the animations to finish. If you're skipping the animations, this wait time is unnecessary and can be skipped: setupSnapshot(app, waitForAnimations: false) snapshot Supported platforms ios, mac Author @KrauseFx","title":"Speed up snapshots"},{"location":"actions/snapshot/#3-examples","text":"capture_ios_screenshots snapshot # alias for \"capture_ios_screenshots\" capture_ios_screenshots( skip_open_summary: true, clean: true )","title":"3 Examples"},{"location":"actions/snapshot/#parameters","text":"Key Description Default workspace Path the workspace file project Path the project file xcargs Pass additional arguments to xcodebuild for the test phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app devices A list of devices you want to take the screenshots from languages A list of languages which should be used [\"en-US\"] launch_arguments A list of launch arguments which should be used [\"\"] output_directory The directory where to store the screenshots * output_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false ios_version By default, the latest version should be used automatically. If you want to change it, do it here skip_open_summary Don't open the HTML summary after running snapshot false skip_helper_version_check Do not check for most recent SnapshotHelper code false clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running snapshot false reinstall_app Enabling this option will automatically uninstall the application before running it false erase_simulator Enabling this option will automatically erase the simulator before running the application false headless Enabling this option will prevent displaying the simulator window true override_status_bar Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception (Adjust 'SNAPSHOT_SIMULATOR_WAIT_FOR_BOOT_TIMEOUT' environment variable if override status bar is not working. Might be because simulator is not fully booted. Defaults to 10 seconds) false override_status_bar_arguments Fully customize the status bar by setting each option here. Requires override_status_bar to be set to true . See xcrun simctl status_bar --help localize_simulator Enabling this option will configure the Simulator's system language false dark_mode Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark) app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * add_photos A list of photos that should be added to the simulator before running the application add_videos A list of videos that should be added to the simulator before running the application html_template A path to screenshots.html template buildlog_path The directory where to store the build log * clean Should the project be cleaned before building it? false test_without_building Test without building, requires a derived data path configuration The configuration to use when building the app. Defaults to 'Release' * sdk The SDK that should be used for building the application scheme The scheme you want to use, this must be the scheme for the UI Tests number_of_retries The number of times a test can fail before snapshot should stop retrying 1 stop_after_first_error Should snapshot stop immediately after the tests completely failed on one device? false derived_data_path The directory where build products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false test_target_name The name of the target you want to test (if you desire to override the Target Application from Xcode) namespace_log_files Separate the log files per device and per language concurrent_simulators Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9 true disable_slide_to_type Disable the simulator from showing the 'Slide to type' prompt false cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false testplan The testplan associated with the scheme that should be used for testing only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * xcpretty_args DEPRECATED! Use xcodebuild_formatter: '' instead - Additional xcpretty arguments disable_xcpretty Disable xcpretty formatting of build suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/snapshot/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The snapshot action generates the following Lane Variables: SharedValue Description SharedValues::SNAPSHOT_SCREENSHOTS_PATH The path to the screenshots To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/snapshot/#documentation","text":"To show the documentation in your terminal, run fastlane action snapshot","title":"Documentation"},{"location":"actions/snapshot/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run snapshot To pass parameters, make use of the : symbol, for example fastlane run snapshot parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/snapshot/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/sonar/","text":"sonar Invokes sonar-scanner to programmatically run SonarQube analysis See http://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner for details. It can process unit test results if formatted as junit report as shown in xctest action. It can also integrate coverage reports in Cobertura format, which can be transformed into by the slather action. sonar Supported platforms ios, android, mac Author @c_gretzki Returns The exit code of the sonar-scanner binary 2 Examples sonar( project_key: \"name.gretzki.awesomeApp\", project_version: \"1.0\", project_name: \"iOS - AwesomeApp\", sources_path: File.expand_path(\"../AwesomeApp\") ) sonar( project_key: \"name.gretzki.awesomeApp\", project_version: \"1.0\", project_name: \"iOS - AwesomeApp\", sources_path: File.expand_path(\"../AwesomeApp\"), sonar_organization: \"myOrg\", sonar_login: \"123456abcdef\", sonar_url: \"https://sonarcloud.io\" ) Parameters Key Description Default project_configuration_path The path to your sonar project configuration file; defaults to sonar-project.properties project_key The key sonar uses to identify the project, e.g. name.gretzki.awesomeApp . Must either be specified here or inside the sonar project configuration file project_name The name of the project that gets displayed on the sonar report page. Must either be specified here or inside the sonar project configuration file project_version The project's version that gets displayed on the sonar report page. Must either be specified here or inside the sonar project configuration file sources_path Comma-separated paths to directories containing source files. Must either be specified here or inside the sonar project configuration file exclusions Comma-separated paths to directories to be excluded from the analysis project_language Language key, e.g. objc source_encoding Used encoding of source files, e.g., UTF-8 sonar_runner_args Pass additional arguments to sonar-scanner. Be sure to provide the arguments with a leading -D e.g. FL_SONAR_RUNNER_ARGS=\"-Dsonar.verbose=true\" sonar_login Pass the Sonar Login token (e.g: xxxxxxprivate_token_XXXXbXX7e) sonar_url Pass the url of the Sonar server sonar_organization Key of the organization on SonarCloud branch_name Pass the branch name which is getting scanned pull_request_branch The name of the branch that contains the changes to be merged pull_request_base The long-lived branch into which the PR will be merged pull_request_key Unique identifier of your PR. Must correspond to the key of the PR in GitHub or TFS * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action sonar CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sonar To pass parameters, make use of the : symbol, for example fastlane run sonar parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"sonar"},{"location":"actions/sonar/#sonar","text":"Invokes sonar-scanner to programmatically run SonarQube analysis See http://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner for details. It can process unit test results if formatted as junit report as shown in xctest action. It can also integrate coverage reports in Cobertura format, which can be transformed into by the slather action. sonar Supported platforms ios, android, mac Author @c_gretzki Returns The exit code of the sonar-scanner binary","title":"sonar"},{"location":"actions/sonar/#2-examples","text":"sonar( project_key: \"name.gretzki.awesomeApp\", project_version: \"1.0\", project_name: \"iOS - AwesomeApp\", sources_path: File.expand_path(\"../AwesomeApp\") ) sonar( project_key: \"name.gretzki.awesomeApp\", project_version: \"1.0\", project_name: \"iOS - AwesomeApp\", sources_path: File.expand_path(\"../AwesomeApp\"), sonar_organization: \"myOrg\", sonar_login: \"123456abcdef\", sonar_url: \"https://sonarcloud.io\" )","title":"2 Examples"},{"location":"actions/sonar/#parameters","text":"Key Description Default project_configuration_path The path to your sonar project configuration file; defaults to sonar-project.properties project_key The key sonar uses to identify the project, e.g. name.gretzki.awesomeApp . Must either be specified here or inside the sonar project configuration file project_name The name of the project that gets displayed on the sonar report page. Must either be specified here or inside the sonar project configuration file project_version The project's version that gets displayed on the sonar report page. Must either be specified here or inside the sonar project configuration file sources_path Comma-separated paths to directories containing source files. Must either be specified here or inside the sonar project configuration file exclusions Comma-separated paths to directories to be excluded from the analysis project_language Language key, e.g. objc source_encoding Used encoding of source files, e.g., UTF-8 sonar_runner_args Pass additional arguments to sonar-scanner. Be sure to provide the arguments with a leading -D e.g. FL_SONAR_RUNNER_ARGS=\"-Dsonar.verbose=true\" sonar_login Pass the Sonar Login token (e.g: xxxxxxprivate_token_XXXXbXX7e) sonar_url Pass the url of the Sonar server sonar_organization Key of the organization on SonarCloud branch_name Pass the branch name which is getting scanned pull_request_branch The name of the branch that contains the changes to be merged pull_request_base The long-lived branch into which the PR will be merged pull_request_key Unique identifier of your PR. Must correspond to the key of the PR in GitHub or TFS * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/sonar/#documentation","text":"To show the documentation in your terminal, run fastlane action sonar","title":"Documentation"},{"location":"actions/sonar/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sonar To pass parameters, make use of the : symbol, for example fastlane run sonar parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/sonar/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/sourcedocs/","text":"sourcedocs Generate docs using SourceDocs sourcedocs Supported platforms ios, mac Author @Kukurijek 2 Examples sourcedocs(output_folder: 'docs') sourcedocs(output_folder: 'docs', clean: true, reproducible: true, scheme: 'MyApp') Parameters Key Description Default all_modules Generate documentation for all modules in a Swift package spm_module Generate documentation for Swift Package Manager module module_name Generate documentation for a Swift module link_beginning The text to begin links with link_ending The text to end links with (default: .md) output_folder Output directory to clean (default: Documentation/Reference) min_acl Access level to include in documentation [private, fileprivate, internal, public, open] (default: public) module_name_path Include the module name as part of the output folder path clean Delete output folder before generating documentation collapsible Put methods, properties and enum cases inside collapsible blocks table_of_contents Generate a table of contents with properties and methods for each type reproducible Generate documentation that is reproducible: only depends on the sources scheme Create documentation for specific scheme sdk_platform Create documentation for specific sdk platform * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action sourcedocs CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sourcedocs To pass parameters, make use of the : symbol, for example fastlane run sourcedocs parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"sourcedocs"},{"location":"actions/sourcedocs/#sourcedocs","text":"Generate docs using SourceDocs sourcedocs Supported platforms ios, mac Author @Kukurijek","title":"sourcedocs"},{"location":"actions/sourcedocs/#2-examples","text":"sourcedocs(output_folder: 'docs') sourcedocs(output_folder: 'docs', clean: true, reproducible: true, scheme: 'MyApp')","title":"2 Examples"},{"location":"actions/sourcedocs/#parameters","text":"Key Description Default all_modules Generate documentation for all modules in a Swift package spm_module Generate documentation for Swift Package Manager module module_name Generate documentation for a Swift module link_beginning The text to begin links with link_ending The text to end links with (default: .md) output_folder Output directory to clean (default: Documentation/Reference) min_acl Access level to include in documentation [private, fileprivate, internal, public, open] (default: public) module_name_path Include the module name as part of the output folder path clean Delete output folder before generating documentation collapsible Put methods, properties and enum cases inside collapsible blocks table_of_contents Generate a table of contents with properties and methods for each type reproducible Generate documentation that is reproducible: only depends on the sources scheme Create documentation for specific scheme sdk_platform Create documentation for specific sdk platform * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/sourcedocs/#documentation","text":"To show the documentation in your terminal, run fastlane action sourcedocs","title":"Documentation"},{"location":"actions/sourcedocs/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sourcedocs To pass parameters, make use of the : symbol, for example fastlane run sourcedocs parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/sourcedocs/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/spaceship_logs/","text":"spaceship_logs Find, print, and copy Spaceship logs spaceship_logs Supported platforms ios, android, mac Author @joshdholtz Returns The array of Spaceship logs 5 Examples spaceship_logs spaceship_logs( copy_to_path: \"/tmp/artifacts\" ) spaceship_logs( copy_to_clipboard: true ) spaceship_logs( print_contents: true, print_paths: true ) spaceship_logs( latest: false, print_contents: true, print_paths: true ) Parameters Key Description Default latest Finds only the latest Spaceshop log file if set to true, otherwise returns all true print_contents Prints the contents of the found Spaceship log file(s) false print_paths Prints the paths of the found Spaceship log file(s) false copy_to_path Copies the found Spaceship log file(s) to a directory copy_to_clipboard Copies the contents of the found Spaceship log file(s) to the clipboard false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action spaceship_logs CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run spaceship_logs To pass parameters, make use of the : symbol, for example fastlane run spaceship_logs parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"spaceship_logs"},{"location":"actions/spaceship_logs/#spaceship_logs","text":"Find, print, and copy Spaceship logs spaceship_logs Supported platforms ios, android, mac Author @joshdholtz Returns The array of Spaceship logs","title":"spaceship_logs"},{"location":"actions/spaceship_logs/#5-examples","text":"spaceship_logs spaceship_logs( copy_to_path: \"/tmp/artifacts\" ) spaceship_logs( copy_to_clipboard: true ) spaceship_logs( print_contents: true, print_paths: true ) spaceship_logs( latest: false, print_contents: true, print_paths: true )","title":"5 Examples"},{"location":"actions/spaceship_logs/#parameters","text":"Key Description Default latest Finds only the latest Spaceshop log file if set to true, otherwise returns all true print_contents Prints the contents of the found Spaceship log file(s) false print_paths Prints the paths of the found Spaceship log file(s) false copy_to_path Copies the found Spaceship log file(s) to a directory copy_to_clipboard Copies the contents of the found Spaceship log file(s) to the clipboard false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/spaceship_logs/#documentation","text":"To show the documentation in your terminal, run fastlane action spaceship_logs","title":"Documentation"},{"location":"actions/spaceship_logs/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run spaceship_logs To pass parameters, make use of the : symbol, for example fastlane run spaceship_logs parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/spaceship_logs/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/spaceship_stats/","text":"spaceship_stats Print out Spaceship stats from this session (number of request to each domain) spaceship_stats Supported platforms ios, android, mac Author @joshdholtz 1 Example spaceship_stats Parameters Key Description Default print_request_logs Print all URLs requested false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action spaceship_stats CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run spaceship_stats To pass parameters, make use of the : symbol, for example fastlane run spaceship_stats parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"spaceship_stats"},{"location":"actions/spaceship_stats/#spaceship_stats","text":"Print out Spaceship stats from this session (number of request to each domain) spaceship_stats Supported platforms ios, android, mac Author @joshdholtz","title":"spaceship_stats"},{"location":"actions/spaceship_stats/#1-example","text":"spaceship_stats","title":"1 Example"},{"location":"actions/spaceship_stats/#parameters","text":"Key Description Default print_request_logs Print all URLs requested false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/spaceship_stats/#documentation","text":"To show the documentation in your terminal, run fastlane action spaceship_stats","title":"Documentation"},{"location":"actions/spaceship_stats/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run spaceship_stats To pass parameters, make use of the : symbol, for example fastlane run spaceship_stats parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/spaceship_stats/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/splunkmint/","text":"splunkmint Upload dSYM file to Splunk MINT splunkmint Supported platforms ios Author @xfreebird 1 Example splunkmint( dsym: \"My.app.dSYM.zip\", api_key: \"43564d3a\", api_token: \"e05456234c4869fb7e0b61\" ) Parameters Key Description Default dsym dSYM.zip file to upload to Splunk MINT api_key Splunk MINT App API key e.g. f57a57ca api_token Splunk MINT API token e.g. e05ba40754c4869fb7e0b61 verbose Make detailed output false upload_progress Show upload progress false proxy_username Proxy username proxy_password Proxy password proxy_address Proxy address proxy_port Proxy port * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action splunkmint CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run splunkmint To pass parameters, make use of the : symbol, for example fastlane run splunkmint parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"splunkmint"},{"location":"actions/splunkmint/#splunkmint","text":"Upload dSYM file to Splunk MINT splunkmint Supported platforms ios Author @xfreebird","title":"splunkmint"},{"location":"actions/splunkmint/#1-example","text":"splunkmint( dsym: \"My.app.dSYM.zip\", api_key: \"43564d3a\", api_token: \"e05456234c4869fb7e0b61\" )","title":"1 Example"},{"location":"actions/splunkmint/#parameters","text":"Key Description Default dsym dSYM.zip file to upload to Splunk MINT api_key Splunk MINT App API key e.g. f57a57ca api_token Splunk MINT API token e.g. e05ba40754c4869fb7e0b61 verbose Make detailed output false upload_progress Show upload progress false proxy_username Proxy username proxy_password Proxy password proxy_address Proxy address proxy_port Proxy port * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/splunkmint/#documentation","text":"To show the documentation in your terminal, run fastlane action splunkmint","title":"Documentation"},{"location":"actions/splunkmint/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run splunkmint To pass parameters, make use of the : symbol, for example fastlane run splunkmint parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/splunkmint/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/spm/","text":"spm Runs Swift Package Manager on your project spm Supported platforms ios, android, mac Author @fjcaetano, @nxtstep 3 Examples spm spm( command: \"build\", build_path: \"./build\", configuration: \"release\" ) spm( command: \"generate-xcodeproj\", xcconfig: \"Package.xcconfig\" ) Parameters Key Description Default command The swift command (one of: build, test, clean, reset, update, resolve, generate-xcodeproj, init) build enable_code_coverage Enables code coverage for the generated Xcode project when using the 'generate-xcodeproj' and the 'test' command build_path Specify build/cache directory [default: ./.build] package_path Change working directory before any other operation xcconfig Use xcconfig file to override swift package generate-xcodeproj defaults configuration Build with configuration (debug|release) [default: debug] disable_sandbox Disable using the sandbox when executing subprocesses false xcpretty_output Specifies the output type for xcpretty. eg. 'test', or 'simple' xcpretty_args Pass in xcpretty additional command line arguments (e.g. '--test --no-color' or '--tap --no-utf'), requires xcpretty_output to be specified also verbose Increase verbosity of informational output false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action spm CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run spm To pass parameters, make use of the : symbol, for example fastlane run spm parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"spm"},{"location":"actions/spm/#spm","text":"Runs Swift Package Manager on your project spm Supported platforms ios, android, mac Author @fjcaetano, @nxtstep","title":"spm"},{"location":"actions/spm/#3-examples","text":"spm spm( command: \"build\", build_path: \"./build\", configuration: \"release\" ) spm( command: \"generate-xcodeproj\", xcconfig: \"Package.xcconfig\" )","title":"3 Examples"},{"location":"actions/spm/#parameters","text":"Key Description Default command The swift command (one of: build, test, clean, reset, update, resolve, generate-xcodeproj, init) build enable_code_coverage Enables code coverage for the generated Xcode project when using the 'generate-xcodeproj' and the 'test' command build_path Specify build/cache directory [default: ./.build] package_path Change working directory before any other operation xcconfig Use xcconfig file to override swift package generate-xcodeproj defaults configuration Build with configuration (debug|release) [default: debug] disable_sandbox Disable using the sandbox when executing subprocesses false xcpretty_output Specifies the output type for xcpretty. eg. 'test', or 'simple' xcpretty_args Pass in xcpretty additional command line arguments (e.g. '--test --no-color' or '--tap --no-utf'), requires xcpretty_output to be specified also verbose Increase verbosity of informational output false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/spm/#documentation","text":"To show the documentation in your terminal, run fastlane action spm","title":"Documentation"},{"location":"actions/spm/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run spm To pass parameters, make use of the : symbol, for example fastlane run spm parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/spm/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/ssh/","text":"ssh Allows remote command execution using ssh Lets you execute remote commands via ssh using username/password or ssh-agent. If one of the commands in command-array returns non 0, it fails. ssh Supported platforms ios, android, mac Author @hjanuschka 1 Example ssh( host: \"dev.januschka.com\", username: \"root\", commands: [ \"date\", \"echo 1 > /tmp/file1\" ] ) Parameters Key Description Default username Username password Password host Hostname port Port 22 commands Commands log Log commands and output true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The ssh action generates the following Lane Variables: SharedValue Description SharedValues::SSH_STDOUT_VALUE Holds the standard output of all commands SharedValues::SSH_STDERR_VALUE Holds the standard error of all commands To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action ssh CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ssh To pass parameters, make use of the : symbol, for example fastlane run ssh parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"ssh"},{"location":"actions/ssh/#ssh","text":"Allows remote command execution using ssh Lets you execute remote commands via ssh using username/password or ssh-agent. If one of the commands in command-array returns non 0, it fails. ssh Supported platforms ios, android, mac Author @hjanuschka","title":"ssh"},{"location":"actions/ssh/#1-example","text":"ssh( host: \"dev.januschka.com\", username: \"root\", commands: [ \"date\", \"echo 1 > /tmp/file1\" ] )","title":"1 Example"},{"location":"actions/ssh/#parameters","text":"Key Description Default username Username password Password host Hostname port Port 22 commands Commands log Log commands and output true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/ssh/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The ssh action generates the following Lane Variables: SharedValue Description SharedValues::SSH_STDOUT_VALUE Holds the standard output of all commands SharedValues::SSH_STDERR_VALUE Holds the standard error of all commands To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/ssh/#documentation","text":"To show the documentation in your terminal, run fastlane action ssh","title":"Documentation"},{"location":"actions/ssh/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ssh To pass parameters, make use of the : symbol, for example fastlane run ssh parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/ssh/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/supply/","text":"supply Alias for the upload_to_play_store action Command line tool for updating Android apps and their metadata on the Google Play Store supply uploads app metadata, screenshots, binaries, and app bundles to Google Play. You can also select tracks for builds and promote builds to production. Features \u2022 Setup \u2022 Quick Start \u2022 Commands \u2022 Uploading an APK \u2022 Uploading an AAB \u2022 Images Features Update existing Android applications on Google Play via the command line Upload new builds (APKs and AABs) Retrieve and edit metadata, such as title and description, for multiple languages Upload the app icon, promo graphics and screenshots for multiple languages Have a local copy of the metadata in your git repository Retrieve version code numbers from existing Google Play tracks Setup Setup consists of setting up your Google Developers Service Account Tip: If you see Google Play Console or Google Developer Console in your local language, add &hl=en at the end of the URL (before any #... ) to switch to English. All the links below already have this to make it easier to find the correct buttons. Note: if you face issues when following these instructions, you might want to refer to the official documentation by Google . Open the Google Play Console Click Account Details , and note the Developer Account ID listed there Enable the Google Play Developer API by selecting an existing Google Cloud Project that fits your needs and pushing ENABLE If you don't have an existing project or prefer to have a dedicated one for fastlane , create a new one here and follow the instructions Open Service Accounts on Google Cloud and select the project you'd like to use Click the CREATE SERVICE ACCOUNT button at the top of the Google Cloud Platform Console page Verify that you are on the correct Google Cloud Platform Project by looking for the Developer Account ID from earlier within the light gray text in the second input, preceding .iam.gserviceaccount.com , or by checking the project name in the navigaton bar. If not, open the picker in the top navigation bar, and find the right one. Provide a Service account name (e.g. fastlane-supply) Copy the generated email address that is noted below the Service account-ID field for later use Click DONE (don't click CREATE AND CONTINUE as the optional steps such as granting access are not needed): Click on the Actions vertical three-dot icon of the service account you just created Select Manage keys on the menu Click ADD KEY \u2192 Create New Key Make sure JSON is selected as the Key type , and click CREATE Save the file on your computer when prompted and remember where it was saved at Open the Google Play Console and select Users and Permissions Click Invite new users Paste the email address you saved for later use into the email address field Click on Account Permissions Choose the permissions you'd like this account to have. We recommend Admin (all permissions) , but you may want to manually select all checkboxes and leave out some of the Releases permissions such as Release to production, exclude devices, and use Play App Signing Click on Invite User You can use fastlane run validate_play_store_json_key json_key:/path/to/your/downloaded/file.json to test the connection to Google Play Store with the downloaded private key. Once that works, add the path to the JSON file to your Appfile : json_key_file(\"path/to/your/play-store-credentials.json\") package_name(\"my.package.name\") The path is relative to where you normally run fastlane . Migrating Google credential format (from .p12 key file to .json) In previous versions of supply, credentials to your Play Console were stored as .p12 files. Since version 0.4.0, supply now supports the recommended .json key Service Account credential files. If you wish to upgrade: follow the Setup procedure once again to make sure you create the appropriate JSON file update your fastlane configuration or your command line invocation to use the appropriate argument if necessary. Note that you don't need to take note nor pass the issuer argument anymore. The previous p12 configuration is still currently supported. Quick Start Before using supply to connect to Google Play Store, you'll need to set up your app manually first by uploading at least one build to Google Play Store. See fastlane/fastlane#14686 for more info. cd [your_project_folder] fastlane supply init Make changes to the downloaded metadata, add images, screenshots and/or an APK fastlane supply Available Commands fastlane supply : update an app with metadata, a build, images and screenshots fastlane supply init : download metadata for an existing app to a local directory fastlane action supply : show information on available commands, arguments and environment variables You can either run supply on its own and use it interactively, or you can pass arguments or specify environment variables for all the options to skip the questions. Uploading an APK To upload a new binary to Google Play, simply run fastlane supply --apk path/to/app.apk This will also upload app metadata if you previously ran fastlane supply init . To gradually roll out a new build use fastlane supply --apk path/app.apk --track beta --rollout 0.5 To set the in-app update priority level for a release, set a valid update priority (an integer value from 0 to 5) using option in_app_update_priority fastlane supply --apk path/app.apk --track beta --in_app_update_priority 3 Expansion files ( .obb ) Expansion files (obbs) found under the same directory as your APK will also be uploaded together with your APK as long as: they are identified as type 'main' or 'patch' (by containing 'main' or 'patch' in their file name) you have at most one of each type If you only want to update the APK, but keep the expansion files from the previous version on Google Play use fastlane supply --apk path/app.apk --obb_main_references_version 21 --obb_main_file_size 666154207 or fastlane supply --apk path/app.apk --obb_patch_references_version 21 --obb_patch_file_size 666154207 Uploading an AAB To upload a new Android application bundle to Google Play, simply run fastlane supply --aab path/to/app.aab This will also upload app metadata if you previously ran fastlane supply init . To gradually roll out a new build use fastlane supply --aab path/app.aab --track beta --rollout 0.5 To set the in-app update priority level for a release, set a valid update priority (an integer value from 0 to 5) using option in_app_update_priority fastlane supply --aab path/app.aab --track beta --in_app_update_priority 3 Images and Screenshots After running fastlane supply init , you will have a metadata directory. This directory contains one or more locale directories (e.g. en-US, en-GB, etc.), and inside this directory are text files such as title.txt and short_description.txt . Inside of a given locale directory is a folder called images . Here you can supply images with the following file names (extension can be png, jpg or jpeg): featureGraphic icon promoGraphic tvBanner You can also supply screenshots by creating directories within the images directory with the following names, containing PNGs or JPEGs: phoneScreenshots/ sevenInchScreenshots/ (7-inch tablets) tenInchScreenshots/ (10-inch tablets) tvScreenshots/ wearScreenshots/ You may name images anything you like, but screenshots will appear in the Play Store in alphanumerical filename order. Note that these will replace the current images and screenshots on the play store listing, not add to them. Changelogs (What's new) You can add changelog files under the changelogs/ directory for each locale. The filename should exactly match the version code of the APK that it represents. You can also provide default notes that will be used if no files match the version code by adding a default.txt file. fastlane supply init will populate changelog files from existing data on Google Play if no metadata/ directory exists when it is run. \u2514\u2500\u2500 fastlane \u2514\u2500\u2500 metadata \u2514\u2500\u2500 android \u251c\u2500\u2500 en-US \u2502 \u2514\u2500\u2500 changelogs \u2502 \u251c\u2500\u2500 default.txt \u2502 \u251c\u2500\u2500 100000.txt \u2502 \u2514\u2500\u2500 100100.txt \u2514\u2500\u2500 fr-FR \u2514\u2500\u2500 changelogs \u251c\u2500\u2500 default.txt \u2514\u2500\u2500 100100.txt Track Promotion A common Play publishing scenario might involve uploading an APK version to a test track, testing it, and finally promoting that version to production. This can be done using the --track_promote_to parameter. The --track_promote_to parameter works with the --track parameter to command the Play API to promote existing Play track APK version(s) (those active on the track identified by the --track param value) to a new track ( --track_promote_to value). Retrieve Track Release Names & Version Codes Before performing a new APK upload you may want to check existing track version codes or release names, or you may simply want to provide an informational lane that displays the currently promoted version codes or release name for the production track. You can use the google_play_track_version_codes action to retrieve existing version codes for a package and track. You can use the google_play_track_release_names action to retrieve existing release names for a package and track. For more information, see the fastlane action google_play_track_version_codes and fastlane action google_play_track_release_names help output. Migration from AndroidPublisherV2 to AndroidPublisherV3 in fastlane 2.135.0 New Options :version_name Used when uploading with :apk_path , :apk_paths , :aab_path , and :aab_paths Can be any string such (example: \"October Release\" or \"Awesome New Feature\") Defaults to the version name in app/build.gradle or AndroidManifest.xml :release_status Used when uploading with :apk_path , :apk_paths , :aab_path , and :aab_paths Can set as \"draft\" to complete the release at some other time Defaults to \"completed\" :version_code Used for :update_rollout , :track_promote_to , and uploading of meta data and screenshots :skip_upload_changelogs Changelogs were previously included with the :skip_upload_metadata but is now its own option Deprecated Options :check_superseded_tracks Google Play will automatically remove releases that are superseded now :deactivate_on_promote Google Play will automatically deactivate a release from its previous track on promote : supply Supported platforms android Author @KrauseFx 2 Examples upload_to_play_store supply # alias for \"upload_to_play_store\" Parameters Key Description Default package_name The package name of the application to use * version_name Version name (used when uploading new apks/aabs) - defaults to 'versionName' in build.gradle or AndroidManifest.xml * version_code The versionCode for which to download the generated APK * release_status Release status (used when uploading new apks/aabs) - valid values are completed, draft, halted, inProgress * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production rollout The percentage of the user fraction when uploading to the rollout track (setting to 1 will complete the rollout) metadata_path Path to the directory containing the metadata files * key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * apk Path to the APK file to upload * apk_paths An array of paths to APK files to upload aab Path to the AAB file to upload * aab_paths An array of paths to AAB files to upload skip_upload_apk Whether to skip uploading APK false skip_upload_aab Whether to skip uploading AAB false skip_upload_metadata Whether to skip uploading metadata, changelogs not included false skip_upload_changelogs Whether to skip uploading changelogs false skip_upload_images Whether to skip uploading images, screenshots not included false skip_upload_screenshots Whether to skip uploading SCREENSHOTS false sync_image_upload Whether to use sha256 comparison to skip upload of images and screenshots that are already in Play Store false track_promote_to The track to promote to. The default available tracks are: production, beta, alpha, internal track_promote_release_status Promoted track release status (used when promoting a track) - valid values are completed, draft, halted, inProgress completed validate_only Only validate changes with Google Play rather than actually publish false mapping Path to the mapping file to upload (mapping.txt or native-debug-symbols.zip alike) mapping_paths An array of paths to mapping files to upload (mapping.txt or native-debug-symbols.zip alike) root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ check_superseded_tracks DEPRECATED! Google Play does this automatically now - Check the other tracks for superseded versions and disable them false timeout Timeout for read, open, and send (in seconds) 300 deactivate_on_promote DEPRECATED! Google Play does this automatically now - When promoting to a new track, deactivate the binary in the origin track true version_codes_to_retain An array of version codes to retain when publishing a new APK changes_not_sent_for_review Indicates that the changes in this edit will not be reviewed until they are explicitly sent for review from the Google Play Console UI false rescue_changes_not_sent_for_review Catches changes_not_sent_for_review errors when an edit is committed and retries with the configuration that the error message recommended true in_app_update_priority In-app update priority for all the newly added apks in the release. Can take values between [0,5] obb_main_references_version References version of 'main' expansion file obb_main_file_size Size of 'main' expansion file in bytes obb_patch_references_version References version of 'patch' expansion file obb_patch_file_size Size of 'patch' expansion file in bytes ack_bundle_installation_warning Must be set to true if the bundle installation may trigger a warning on user devices (e.g can only be downloaded over wifi). Typically this is required for bundles over 150MB false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action supply CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run supply To pass parameters, make use of the : symbol, for example fastlane run supply parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"supply"},{"location":"actions/supply/#supply","text":"Alias for the upload_to_play_store action","title":"supply"},{"location":"actions/supply/#features","text":"Update existing Android applications on Google Play via the command line Upload new builds (APKs and AABs) Retrieve and edit metadata, such as title and description, for multiple languages Upload the app icon, promo graphics and screenshots for multiple languages Have a local copy of the metadata in your git repository Retrieve version code numbers from existing Google Play tracks","title":"Features"},{"location":"actions/supply/#setup","text":"Setup consists of setting up your Google Developers Service Account Tip: If you see Google Play Console or Google Developer Console in your local language, add &hl=en at the end of the URL (before any #... ) to switch to English. All the links below already have this to make it easier to find the correct buttons. Note: if you face issues when following these instructions, you might want to refer to the official documentation by Google . Open the Google Play Console Click Account Details , and note the Developer Account ID listed there Enable the Google Play Developer API by selecting an existing Google Cloud Project that fits your needs and pushing ENABLE If you don't have an existing project or prefer to have a dedicated one for fastlane , create a new one here and follow the instructions Open Service Accounts on Google Cloud and select the project you'd like to use Click the CREATE SERVICE ACCOUNT button at the top of the Google Cloud Platform Console page Verify that you are on the correct Google Cloud Platform Project by looking for the Developer Account ID from earlier within the light gray text in the second input, preceding .iam.gserviceaccount.com , or by checking the project name in the navigaton bar. If not, open the picker in the top navigation bar, and find the right one. Provide a Service account name (e.g. fastlane-supply) Copy the generated email address that is noted below the Service account-ID field for later use Click DONE (don't click CREATE AND CONTINUE as the optional steps such as granting access are not needed): Click on the Actions vertical three-dot icon of the service account you just created Select Manage keys on the menu Click ADD KEY \u2192 Create New Key Make sure JSON is selected as the Key type , and click CREATE Save the file on your computer when prompted and remember where it was saved at Open the Google Play Console and select Users and Permissions Click Invite new users Paste the email address you saved for later use into the email address field Click on Account Permissions Choose the permissions you'd like this account to have. We recommend Admin (all permissions) , but you may want to manually select all checkboxes and leave out some of the Releases permissions such as Release to production, exclude devices, and use Play App Signing Click on Invite User You can use fastlane run validate_play_store_json_key json_key:/path/to/your/downloaded/file.json to test the connection to Google Play Store with the downloaded private key. Once that works, add the path to the JSON file to your Appfile : json_key_file(\"path/to/your/play-store-credentials.json\") package_name(\"my.package.name\") The path is relative to where you normally run fastlane .","title":"Setup"},{"location":"actions/supply/#quick-start","text":"Before using supply to connect to Google Play Store, you'll need to set up your app manually first by uploading at least one build to Google Play Store. See fastlane/fastlane#14686 for more info. cd [your_project_folder] fastlane supply init Make changes to the downloaded metadata, add images, screenshots and/or an APK fastlane supply","title":"Quick Start"},{"location":"actions/supply/#available-commands","text":"fastlane supply : update an app with metadata, a build, images and screenshots fastlane supply init : download metadata for an existing app to a local directory fastlane action supply : show information on available commands, arguments and environment variables You can either run supply on its own and use it interactively, or you can pass arguments or specify environment variables for all the options to skip the questions.","title":"Available Commands"},{"location":"actions/supply/#uploading-an-apk","text":"To upload a new binary to Google Play, simply run fastlane supply --apk path/to/app.apk This will also upload app metadata if you previously ran fastlane supply init . To gradually roll out a new build use fastlane supply --apk path/app.apk --track beta --rollout 0.5 To set the in-app update priority level for a release, set a valid update priority (an integer value from 0 to 5) using option in_app_update_priority fastlane supply --apk path/app.apk --track beta --in_app_update_priority 3","title":"Uploading an APK"},{"location":"actions/supply/#uploading-an-aab","text":"To upload a new Android application bundle to Google Play, simply run fastlane supply --aab path/to/app.aab This will also upload app metadata if you previously ran fastlane supply init . To gradually roll out a new build use fastlane supply --aab path/app.aab --track beta --rollout 0.5 To set the in-app update priority level for a release, set a valid update priority (an integer value from 0 to 5) using option in_app_update_priority fastlane supply --aab path/app.aab --track beta --in_app_update_priority 3","title":"Uploading an AAB"},{"location":"actions/supply/#images-and-screenshots","text":"After running fastlane supply init , you will have a metadata directory. This directory contains one or more locale directories (e.g. en-US, en-GB, etc.), and inside this directory are text files such as title.txt and short_description.txt . Inside of a given locale directory is a folder called images . Here you can supply images with the following file names (extension can be png, jpg or jpeg): featureGraphic icon promoGraphic tvBanner You can also supply screenshots by creating directories within the images directory with the following names, containing PNGs or JPEGs: phoneScreenshots/ sevenInchScreenshots/ (7-inch tablets) tenInchScreenshots/ (10-inch tablets) tvScreenshots/ wearScreenshots/ You may name images anything you like, but screenshots will appear in the Play Store in alphanumerical filename order. Note that these will replace the current images and screenshots on the play store listing, not add to them.","title":"Images and Screenshots"},{"location":"actions/supply/#changelogs-whats-new","text":"You can add changelog files under the changelogs/ directory for each locale. The filename should exactly match the version code of the APK that it represents. You can also provide default notes that will be used if no files match the version code by adding a default.txt file. fastlane supply init will populate changelog files from existing data on Google Play if no metadata/ directory exists when it is run. \u2514\u2500\u2500 fastlane \u2514\u2500\u2500 metadata \u2514\u2500\u2500 android \u251c\u2500\u2500 en-US \u2502 \u2514\u2500\u2500 changelogs \u2502 \u251c\u2500\u2500 default.txt \u2502 \u251c\u2500\u2500 100000.txt \u2502 \u2514\u2500\u2500 100100.txt \u2514\u2500\u2500 fr-FR \u2514\u2500\u2500 changelogs \u251c\u2500\u2500 default.txt \u2514\u2500\u2500 100100.txt","title":"Changelogs (What's new)"},{"location":"actions/supply/#track-promotion","text":"A common Play publishing scenario might involve uploading an APK version to a test track, testing it, and finally promoting that version to production. This can be done using the --track_promote_to parameter. The --track_promote_to parameter works with the --track parameter to command the Play API to promote existing Play track APK version(s) (those active on the track identified by the --track param value) to a new track ( --track_promote_to value).","title":"Track Promotion"},{"location":"actions/supply/#retrieve-track-release-names-version-codes","text":"Before performing a new APK upload you may want to check existing track version codes or release names, or you may simply want to provide an informational lane that displays the currently promoted version codes or release name for the production track. You can use the google_play_track_version_codes action to retrieve existing version codes for a package and track. You can use the google_play_track_release_names action to retrieve existing release names for a package and track. For more information, see the fastlane action google_play_track_version_codes and fastlane action google_play_track_release_names help output.","title":"Retrieve Track Release Names & Version Codes"},{"location":"actions/supply/#migration-from-androidpublisherv2-to-androidpublisherv3-in-fastlane-21350","text":"","title":"Migration from AndroidPublisherV2 to AndroidPublisherV3 in fastlane 2.135.0"},{"location":"actions/supply/#2-examples","text":"upload_to_play_store supply # alias for \"upload_to_play_store\"","title":"2 Examples"},{"location":"actions/supply/#parameters","text":"Key Description Default package_name The package name of the application to use * version_name Version name (used when uploading new apks/aabs) - defaults to 'versionName' in build.gradle or AndroidManifest.xml * version_code The versionCode for which to download the generated APK * release_status Release status (used when uploading new apks/aabs) - valid values are completed, draft, halted, inProgress * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production rollout The percentage of the user fraction when uploading to the rollout track (setting to 1 will complete the rollout) metadata_path Path to the directory containing the metadata files * key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * apk Path to the APK file to upload * apk_paths An array of paths to APK files to upload aab Path to the AAB file to upload * aab_paths An array of paths to AAB files to upload skip_upload_apk Whether to skip uploading APK false skip_upload_aab Whether to skip uploading AAB false skip_upload_metadata Whether to skip uploading metadata, changelogs not included false skip_upload_changelogs Whether to skip uploading changelogs false skip_upload_images Whether to skip uploading images, screenshots not included false skip_upload_screenshots Whether to skip uploading SCREENSHOTS false sync_image_upload Whether to use sha256 comparison to skip upload of images and screenshots that are already in Play Store false track_promote_to The track to promote to. The default available tracks are: production, beta, alpha, internal track_promote_release_status Promoted track release status (used when promoting a track) - valid values are completed, draft, halted, inProgress completed validate_only Only validate changes with Google Play rather than actually publish false mapping Path to the mapping file to upload (mapping.txt or native-debug-symbols.zip alike) mapping_paths An array of paths to mapping files to upload (mapping.txt or native-debug-symbols.zip alike) root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ check_superseded_tracks DEPRECATED! Google Play does this automatically now - Check the other tracks for superseded versions and disable them false timeout Timeout for read, open, and send (in seconds) 300 deactivate_on_promote DEPRECATED! Google Play does this automatically now - When promoting to a new track, deactivate the binary in the origin track true version_codes_to_retain An array of version codes to retain when publishing a new APK changes_not_sent_for_review Indicates that the changes in this edit will not be reviewed until they are explicitly sent for review from the Google Play Console UI false rescue_changes_not_sent_for_review Catches changes_not_sent_for_review errors when an edit is committed and retries with the configuration that the error message recommended true in_app_update_priority In-app update priority for all the newly added apks in the release. Can take values between [0,5] obb_main_references_version References version of 'main' expansion file obb_main_file_size Size of 'main' expansion file in bytes obb_patch_references_version References version of 'patch' expansion file obb_patch_file_size Size of 'patch' expansion file in bytes ack_bundle_installation_warning Must be set to true if the bundle installation may trigger a warning on user devices (e.g can only be downloaded over wifi). Typically this is required for bundles over 150MB false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/supply/#documentation","text":"To show the documentation in your terminal, run fastlane action supply","title":"Documentation"},{"location":"actions/supply/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run supply To pass parameters, make use of the : symbol, for example fastlane run supply parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/supply/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/swiftlint/","text":"swiftlint Run swift code validation using SwiftLint swiftlint Supported platforms ios, mac Author @KrauseFx 1 Example swiftlint( mode: :lint, # SwiftLint mode: :lint (default) or :autocorrect path: \"/path/to/lint\", # Specify path to lint (optional) output_file: \"swiftlint.result.json\", # The path of the output file (optional) config_file: \".swiftlint-ci.yml\", # The path of the configuration file (optional) files: [# List of files to process (optional) \"AppDelegate.swift\", \"path/to/project/Model.swift\" ], raise_if_swiftlint_error: true, # Allow fastlane to raise an error if swiftlint fails ignore_exit_status: true # Allow fastlane to continue even if SwiftLint returns a non-zero exit status ) Parameters Key Description Default mode SwiftLint mode: :lint, :fix, :autocorrect or :analyze :lint path Specify path to lint output_file Path to output SwiftLint result config_file Custom configuration file of SwiftLint strict Fail on warnings? (true/false) false files List of files to process ignore_exit_status Ignore the exit status of the SwiftLint command, so that serious violations don't fail the build (true/false) false raise_if_swiftlint_error Raises an error if swiftlint fails, so you can fail CI/CD jobs if necessary (true/false) false reporter Choose output reporter. Available: xcode, json, csv, checkstyle, codeclimate, junit, html, emoji, sonarqube, markdown, github-actions-logging quiet Don't print status logs like 'Linting ' & 'Done linting' false executable Path to the swiftlint executable on your machine format Format code when mode is :autocorrect false no_cache Ignore the cache when mode is :autocorrect or :lint false compiler_log_path Compiler log path when mode is :analyze * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action swiftlint CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run swiftlint To pass parameters, make use of the : symbol, for example fastlane run swiftlint parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"swiftlint"},{"location":"actions/swiftlint/#swiftlint","text":"Run swift code validation using SwiftLint swiftlint Supported platforms ios, mac Author @KrauseFx","title":"swiftlint"},{"location":"actions/swiftlint/#1-example","text":"swiftlint( mode: :lint, # SwiftLint mode: :lint (default) or :autocorrect path: \"/path/to/lint\", # Specify path to lint (optional) output_file: \"swiftlint.result.json\", # The path of the output file (optional) config_file: \".swiftlint-ci.yml\", # The path of the configuration file (optional) files: [# List of files to process (optional) \"AppDelegate.swift\", \"path/to/project/Model.swift\" ], raise_if_swiftlint_error: true, # Allow fastlane to raise an error if swiftlint fails ignore_exit_status: true # Allow fastlane to continue even if SwiftLint returns a non-zero exit status )","title":"1 Example"},{"location":"actions/swiftlint/#parameters","text":"Key Description Default mode SwiftLint mode: :lint, :fix, :autocorrect or :analyze :lint path Specify path to lint output_file Path to output SwiftLint result config_file Custom configuration file of SwiftLint strict Fail on warnings? (true/false) false files List of files to process ignore_exit_status Ignore the exit status of the SwiftLint command, so that serious violations don't fail the build (true/false) false raise_if_swiftlint_error Raises an error if swiftlint fails, so you can fail CI/CD jobs if necessary (true/false) false reporter Choose output reporter. Available: xcode, json, csv, checkstyle, codeclimate, junit, html, emoji, sonarqube, markdown, github-actions-logging quiet Don't print status logs like 'Linting ' & 'Done linting' false executable Path to the swiftlint executable on your machine format Format code when mode is :autocorrect false no_cache Ignore the cache when mode is :autocorrect or :lint false compiler_log_path Compiler log path when mode is :analyze * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/swiftlint/#documentation","text":"To show the documentation in your terminal, run fastlane action swiftlint","title":"Documentation"},{"location":"actions/swiftlint/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run swiftlint To pass parameters, make use of the : symbol, for example fastlane run swiftlint parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/swiftlint/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/sync_code_signing/","text":"sync_code_signing Easily sync your certificates and profiles across your team (via match ) Easily sync your certificates and profiles across your team A new approach to iOS and macOS code signing: Share one code signing identity across your development team to simplify your codesigning setup and prevent code signing issues. match is the implementation of the codesigning.guide concept . match creates all required certificates & provisioning profiles and stores them in a separate git repository, Google Cloud, or Amazon S3. Every team member with access to the selected storage can use those credentials for code signing. match also automatically repairs broken and expired credentials. It's the easiest way to share signing credentials across teams More information on how to get started with codesigning Why? \u2022 Usage \u2022 Is this secure? match is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Why match? Before starting to use match , make sure to read the codesigning.guide : When deploying an app to the App Store, beta testing service or even installing it on a device, most development teams have separate code signing identities for every member. This results in dozens of profiles including a lot of duplicates. You have to manually renew and download the latest set of provisioning profiles every time you add a new device or a certificate expires. Additionally this requires spending a lot of time when setting up a new machine that will build your app. A new approach Share one code signing identity across your development team to simplify your setup and prevent code signing issues. What if there was a central place where your code signing identity and profiles are kept, so anyone in the team can access them during the build process? For more information about the concept, visit codesigning.guide . Why not let Xcode handle all this? You have full control over what happens You have access to all the certificates and profiles, which are all securely stored in git You share one code signing identity across the team to have fewer certificates and profiles Xcode sometimes revokes certificates which breaks your setup causing failed builds More predictable builds by settings profiles in an explicit way instead of using the Automatic setting It just works\u2122 What does match do for you? match \ud83d\udd04 Automatically sync your iOS and macOS keys and profiles across all your team members using git \ud83d\udce6 Handle all the heavy lifting of creating and storing your certificates and profiles \ud83d\udcbb Setup codesigning on a new machine in under a minute \ud83c\udfaf Designed to work with apps with multiple targets and bundle identifiers \ud83d\udd12 You have full control over your files and Git repo, no third party service involved \u2728 Provisioning profile will always match the correct certificate \ud83d\udca5 Easily reset your existing profiles and certificates if your current account has expired or invalid profiles \u267b\ufe0f Automatically renew your provisioning profiles to include all your devices using the --force option \ud83d\udc65 Support for multiple Apple accounts and multiple teams \u2728 Tightly integrated with fastlane to work seamlessly with gym and other build tools Usage Setup Optional: Create a new, shared Apple Developer Portal account , something like office@company.com , that will be shared across your team from now on (for more information visit codesigning.guide ) Run the following in your project folder to start using match : fastlane match init You'll be asked if you want to store your code signing identities inside a Git repo , Google Cloud or Amazon S3 . Git Storage Use Git Storage to store all code signing identities in a private git repo, owned and operated by you. The files will be encrypted using OpenSSL. First, enter the URL to your private (!) Git repo (You can create one for free on e.g. GitHub or BitBucket ). The URL you enter can be either a https:// or a git URL. fastlane match init won't read or modify your certificates or profiles yet, and also won't validate your git URL. This will create a Matchfile in your current directory (or in your ./fastlane/ folder). Example content (for more advanced setups check out the fastlane section ): git_url(\"https://github.com/fastlane/certificates\") app_identifier(\"tools.fastlane.app\") username(\"user@fastlane.tools\") Git Storage on GitHub If your machine is currently using SSH to authenticate with GitHub, you'll want to use a git URL, otherwise, you may see an authentication error when you attempt to use match. Alternatively, you can set a basic authorization for match : Using parameter: match(git_basic_authorization: '') Using environment variable: ENV['MATCH_GIT_BASIC_AUTHORIZATION'] = '' match To generate your base64 key according to RFC 7617 , run this: echo -n your_github_username:your_personal_access_token | base64 You can find more information about GitHub basic authentication and personal token generation here: https://developer.github.com/v3/auth/#basic-authentication Git Storage on GitHub - Deploy keys If your machine does not have a private key set up for your certificates repository, you can give match a path for one: Using parameter: match(git_private_key: '') Using environment variable: ENV['MATCH_GIT_PRIVATE_KEY'] = '' match You can find more information about GitHub basic authentication and personal token generation here: https://developer.github.com/v3/auth/#basic-authentication Git Storage on Azure DevOps If you're running a pipeline on Azure DevOps and using git storage in a another repository on the same project, you might want to use bearer token authentication. Using parameter: match(git_bearer_authorization: '') Using environment variable: ENV['MATCH_GIT_BEARER_AUTHORIZATION'] = '' match You can find more information about this use case here: https://docs.microsoft.com/en-us/azure/devops/pipelines/repos/azure-repos-git?view=azure-devops&tabs=yaml#authorize-access-to-your-repositories Google Cloud Storage Use Google Cloud Storage for a fully hosted solution for your code signing identities. Certificates are stored on Google Cloud, encrypted using Google managed keys. Everything will be stored on your Google account, inside a storage bucket you provide. You can also directly access the files using the web console. This will create a Matchfile in your current directory (or in your ./fastlane/ folder). Example content (for more advanced setups check out the fastlane section ): google_cloud_bucket_name(\"major-key-certificates\") Amazon S3 Use Amazon S3 for a fully hosted solution for your code signing identities. Certificates are stored on S3, inside a storage bucket you provide. You can also directly access the files using the web console. This will create a Matchfile in your current directory (or in your ./fastlane/ folder). Example content (for more advanced setups check out the fastlane section ): s3_bucket(\"ios-certificates\") Multiple teams match can store the codesigning files for multiple development teams: Git Storage Use one git branch per team. match also supports storing certificates of multiple teams in one repo, by using separate git branches. If you work in multiple teams, make sure to set the git_branch parameter to a unique value per team. From there, match will automatically create and use the specified branch for you. match(git_branch: \"team1\", username: \"user@team1.com\") match(git_branch: \"team2\", username: \"user@team2.com\") Google Cloud or Amazon S3 Storage If you use Google Cloud or Amazon S3 Storage, you don't need to do anything manually. Just use Google Cloud or Amazon S3 Storage, and the top level folder will be the team ID. Run Before running match for the first time, you should consider clearing your existing profiles and certificates using the match nuke command . After running fastlane match init you can run the following to generate new certificates and profiles: fastlane match appstore fastlane match development This will create a new certificate and provisioning profile (if required) and store them in your selected storage. If you previously ran match with the configured storage it will automatically install the existing profiles from your storage. The provisioning profiles are installed in ~/Library/MobileDevice/Provisioning Profiles while the certificates and private keys are installed in your Keychain. To get a more detailed output of what match is doing use fastlane match --verbose For a list of all available options run fastlane action match Handle multiple targets match can use the same one Git repository, Google Cloud, or Amazon S3 Storage for all bundle identifiers. If you have several targets with different bundle identifiers, supply them as a comma-separated list: fastlane match appstore -a tools.fastlane.app,tools.fastlane.app.watchkitapp You can make this even easier using fastlane by creating a certificates lane like this: lane :certificates do match(app_identifier: [\"tools.fastlane.app\", \"tools.fastlane.app.watchkitapp\"]) end Then all your team has to do is run fastlane certificates and the keys, certificates and profiles for all targets will be synced. Handle multiple apps per developer/distribution certificate If you want to use a single developer and/or distribution certificate for multiple apps belonging to the same development team, you may use the same signing identities repository and branch to store the signing identities for your apps: Matchfile example for both App #1 and #2: git_url(\"https://github.com/example/example-repo.git\") git_branch(\"master\") match will reuse certificates and will create separate provisioning profiles for each app. Passphrase Git Repo storage only When running match for the first time on a new machine, it will ask you for the passphrase for the Git repository. This is an additional layer of security: each of the files will be encrypted using openssl . Make sure to remember the password, as you'll need it when you run match on a different machine. To set the passphrase to decrypt your profiles using an environment variable (and avoid the prompt) use MATCH_PASSWORD . Migrate from Git Repo to Google Cloud If you're already using a Git Repo, but would like to switch to using Google Cloud Storage, run the following command to automatically migrate all your existing code signing identities and provisioning profiles fastlane match migrate After a successful migration you can safely delete your Git repo. Google Cloud access control Google Cloud Storage only There are two cases for reading and writing certificates stored in a Google Cloud storage bucket: Continuous integration jobs. These will authenticate to your Google Cloud project via a service account, and use a gc_keys.json file as credentials. Developers on a local workstation. In this case, you should choose whether everyone on your team will create their own gc_keys.json file, or whether you want to manage access to the bucket directly using your developers' Google accounts. When running fastlane match init the first time, the setup process will give you the option to create your gc_keys.json file. This file contains the authentication credentials needed to access your Google Cloud storage bucket. Make sure to keep that file secret and never add it to version control. We recommend adding gc_keys.json to your .gitignore Managing developer access via keys If you want to manage developer access to your certificates via authentication keys, every developer should create their own gc_keys.json and add the file to all their work machines. This will give the admin full control over who has read/write access to the given Storage bucket. At the same time it allows your team to revoke a single key if a file gets compromised. Managing developer access via Google accounts If your developers already have Google accounts and access to your Google Cloud project, you can also manage access to the storage bucket via Cloud Identity and Access Management (IAM) . Just set up individual developer accounts or an entire Google Group containing your team as readers and writers on your storage bucket. You can then specify the Google Cloud project id containing your storage bucket in your Matchfile : storage_mode(\"google_cloud\") google_cloud_bucket_name(\"my-app-certificates\") google_cloud_project_id(\"my-app-project\") This lets developers on your team use Application Default Credentials when accessing your storage bucket. After installing the Google Cloud SDK , they only need to run the following command once: gcloud auth application-default login ... and log in with their Google account. Then, when they run fastlane match , match will use these credentials to read from and write to the storage bucket. New machine To set up the certificates and provisioning profiles on a new machine, you just run the same command using: fastlane match development You can also run match in a readonly mode to be sure it won't create any new certificates or profiles. fastlane match development --readonly We recommend to always use readonly mode when running fastlane on CI systems. This can be done using lane :beta do match(type: \"appstore\", readonly: is_ci) gym(scheme: \"Release\") end Access Control A benefit of using match is that it enables you to give the developers of your team access to the code signing certificates without having to give everyone access to the Developer Portal: Run match to store the certificates in a Git repo or Google Cloud Storage Grant access to the Git repo / Google Cloud Storage Bucket to your developers and give them the passphrase (for git storage) The developers can now run match which will install the latest code signing profiles so they can build and sign the application without having to have access to the Apple Developer Portal Every time you run match to update the profiles (e.g. add a new device), all your developers will automatically get the latest profiles when running match If you decide to run match without access to the Developer Portal, make sure to use the --readonly option so that the commands don't ask you for the password to the Developer Portal. The advantage of this approach is that no one in your team will revoke a certificate by mistake, while having all code signing secrets in one location. Folder structure After running match for the first time, your Git repo or Google Cloud bucket will contain 2 directories: The certs folder contains all certificates with their private keys The profiles folder contains all provisioning profiles Additionally, match creates a nice repo README.md for you, making it easy to onboard new team members: In the case of Google Cloud, the top level folder will be the team ID. fastlane Add match to your Fastfile to automatically fetch the latest code signing certificates with fastlane . match(type: \"appstore\") match(type: \"development\") match(type: \"adhoc\", app_identifier: \"tools.fastlane.app\") match(type: \"enterprise\", app_identifier: \"tools.fastlane.app\") # _match_ should be called before building the app with _gym_ gym # ... Registering new devices By using match , you'll save a lot of time every time you add new device to your Ad Hoc or Development profiles. Use match in combination with the register_devices action. lane :beta do register_devices(devices_file: \"./devices.txt\") match(type: \"adhoc\", force_for_new_devices: true) end By using the force_for_new_devices parameter, match will check if the (enabled) device count has changed since the last time you ran match , and automatically re-generate the provisioning profile if necessary. You can also use force: true to re-generate the provisioning profile on each run. Important: The force_for_new_devices parameter is ignored for App Store provisioning profiles since they don't contain any device information. If you're not using Fastfile , you can also use the force_for_new_devices option from the command line: fastlane match adhoc --force_for_new_devices Templates (aka: custom entitlements) match can generate profiles that contain custom entitlements by passing in the entitlement's name with the template_name parameter. match(type: \"development\", template_name: \"Apple Pay Pass Suppression Development\") Setup Xcode project Docs on how to set up your Xcode project To build from the command line using fastlane match automatically pre-fills environment variables with the UUIDs of the correct provisioning profiles, ready to be used in your Xcode project. More information about how to setup your Xcode project can be found here To build from Xcode manually This is useful when installing your application on your device using the Development profile. You can statically select the right provisioning profile in your Xcode project (the name will be match Development tools.fastlane.app ). Docs on how to set up your Xcode project Continuous Integration Git repo access There is one tricky part of setting up a CI system to work with match , which is enabling the CI to access the repo. Usually you'd just add your CI's public ssh key as a deploy key to your match repo, but since your CI will already likely be using its public ssh key to access the codebase repo, you won't be able to do that . Some repo hosts might allow you to use the same deploy key for different repos, but GitHub will not. If your host does, you don't need to worry about this, just add your CI's public ssh key as a deploy key for your match repo and scroll down to \" Encryption password \". There are a few ways around this: Create a new account on your repo host with read-only access to your match repo. Bitrise have a good description of this here . Some CIs allow you to upload your signing credentials manually, but obviously this means that you'll have to re-upload the profiles/keys/certs each time they change. Neither solution is pretty. It's one of those trade-off things. Do you care more about not having an extra account sitting around, or do you care more about having the :sparkles: of auto-syncing of credentials. Git repo encryption password Once you've decided which approach to take, all that's left to do is to set your encryption password as secret environment variable named MATCH_PASSWORD . match will pick this up when it's run. Google Cloud Storage access Accessing Google Cloud Storage from your CI system requires you to provide the gc_keys.json file as part of your build. How you implement this is your decision. You can inject that file during build time. Amazon S3 Storage access Accessing Amazon S3 Storage from your CI system requires you to provide the s3_region , s3_access_key , s3_secret_access_key and s3_bucket options (or environment variables), with keys that has read access to the bucket. Nuke If you never really cared about code signing and have a messy Apple Developer account with a lot of invalid, expired or Xcode managed profiles/certificates, you can use the match nuke command to revoke your certificates and provisioning profiles. Don't worry, apps that are already available in the App Store / TestFlight will still work. Builds distributed via Ad Hoc or Enterprise will be disabled after nuking your account, so you'll have to re-upload a new build. After clearing your account you'll start from a clean state, and you can run match to generate your certificates and profiles again. To revoke all certificates and provisioning profiles for a specific environment: fastlane match nuke development fastlane match nuke distribution fastlane match nuke enterprise You'll have to confirm a list of profiles / certificates that will be deleted. Advanced Git Storage features Change Password To change the password of your repo and therefore decrypting and encrypting all files run: fastlane match change_password You'll be asked for the new password on all your machines on the next run. Import To import and encrypt a certificate ( .cer ), the private key ( .p12 ) and the provisioning profiles ( .mobileprovision or .provisionprofile ) into the match repo run: fastlane match import You'll be prompted for the certificate ( .cer ), the private key ( .p12 ) and the provisioning profiles ( .mobileprovision or .provisionprofile ) paths. match will first validate the certificate ( .cer ) against the Developer Portal before importing the certificate, the private key and the provisioning profiles into the specified match repository. However if there is no access to the developer portal but there are certificates, private keys and profiles provided, you can use the skip_certificate_matching option to tell match not to verify the certificates. Like this: fastlane match import --skip_certificate_matching true This will skip login to Apple Developer Portal and will import the provided certificate, private key and profile directly to the certificates repo. Please be careful when using this option and ensure the certificates and profiles match the type (development, adhoc, appstore, enterprise, developer_id) and are not revoked or expired. Manual Decrypt If you want to manually decrypt a file you can. openssl aes-256-cbc -k \"\" -in \"\" -out \"\" -a -d -md [md5|sha256] Note: You may need to swap double quotes \" for single quotes ' if your match password contains an exclamation mark ! . Export Distribution Certificate and Private Key as Single .p12 File match stores the certificate ( .cer ) and the private key ( .p12 ) files separately. The following steps will repackage the separate certificate and private key into a single .p12 file. Decrypt your cert found in certs//.cer as a pem file: openssl aes-256-cbc -k \"\" -in \"certs//.cer\" -out \"cert.der\" -a -d -md [md5|sha256] openssl x509 -inform der -in cert.der -out cert.pem Decrypt your private key found in certs//.p12 as a pem file: openssl aes-256-cbc -k \"\" -in \"certs/distribution/.p12\" -out \"key.pem\" -a -d -md [md5|sha256] Generate an encrypted p12 file with the same or new password: openssl pkcs12 -export -out \"cert.p12\" -inkey \"key.pem\" -in \"cert.pem\" -password pass: Is this secure? Git Both your keys and provisioning profiles are encrypted using OpenSSL using a passphrase. Storing your private keys in a Git repo may sound off-putting at first. We did an analysis of potential security issues, see section below. Google Cloud Storage All your keys and provisioning profiles are encrypted using Google managed keys. What could happen if someone stole a private key? If attackers would have your certificate and provisioning profile, they could codesign an application with the same bundle identifier. What's the worst that could happen for each of the profile types? App Store Profiles An App Store profile can't be used for anything as long as it's not re-signed by Apple. The only way to get an app resigned is to submit an app for review which could take anywhere from 24 hours to a few days (checkout appreviewtimes.com for up-to-date expectations). Attackers could only submit an app for review, if they also got access to your App Store Connect credentials (which are not stored in git, but in your local keychain). Additionally you get an email notification every time a build gets uploaded to cancel the submission even before your app gets into the review stage. Development and Ad Hoc Profiles In general those profiles are harmless as they can only be used to install a signed application on a small subset of devices. To add new devices, the attacker would also need your Apple Developer Portal credentials (which are not stored in git, but in your local keychain). Enterprise Profiles Attackers could use an In-House profile to distribute signed application to a potentially unlimited number of devices. All this would run under your company name and it could eventually lead to Apple revoking your In-House account. However it is very easy to revoke a certificate to remotely break the app on all devices. Because of the potentially dangerous nature of In-House profiles please use match with enterprise profiles with caution, ensure your git repository is private and use a secure password. To sum up You have full control over the access list of your Git repo, no third party service involved Even if your certificates are leaked, they can't be used to cause any harm without your App Store Connect login credentials Use In-House enterprise profile with match with caution If you use GitHub or Bitbucket we encourage enabling 2 factor authentication for all accounts that have access to the certificates repo The complete source code of match is fully open source on GitHub sync_code_signing Supported platforms ios, mac Author @KrauseFx 4 Examples sync_code_signing(type: \"appstore\", app_identifier: \"tools.fastlane.app\") sync_code_signing(type: \"development\", readonly: true) sync_code_signing(app_identifier: [\"tools.fastlane.app\", \"tools.fastlane.sleepy\"]) match # alias for \"sync_code_signing\" Parameters Key Description Default type Define the profile type, can be appstore, adhoc, development, enterprise, developer_id, mac_installer_distribution, developer_id_installer development additional_cert_types Create additional cert types needed for macOS installers (valid values: mac_installer_distribution, developer_id_installer) readonly Only fetch existing certificates and profiles, don't generate new ones false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * skip_provisioning_profiles Skip syncing provisioning profiles false app_identifier The bundle identifier(s) of your app (comma-separated string or array of strings) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * storage_mode Define where you want to store your certificates git git_url URL to the git repo containing all the certificates git_branch Specific git branch to use master git_full_name git user full name to commit git_user_email git user email to commit shallow_clone Make a shallow clone of the repository (truncate the history to 1 revision) false clone_branch_directly Clone just the branch specified, instead of the whole repo. This requires that the branch already exists. Otherwise the command will fail false git_basic_authorization Use a basic authorization header to access the git repo (e.g.: access via HTTPS, GitHub Actions, etc), usually a string in Base64 git_bearer_authorization Use a bearer authorization header to access the git repo (e.g.: access to an Azure DevOps repository), usually a string in Base64 git_private_key Use a private key to access the git repo (e.g.: access to GitHub repository via Deploy keys), usually a id_rsa named file or the contents hereof google_cloud_bucket_name Name of the Google Cloud Storage bucket to use google_cloud_keys_file Path to the gc_keys.json file google_cloud_project_id ID of the Google Cloud project to use for authentication skip_google_cloud_account_confirmation Skips confirming to use the system google account false s3_region Name of the S3 region s3_access_key S3 access key s3_secret_access_key S3 secret access key s3_bucket Name of the S3 bucket s3_object_prefix Prefix to be used on all objects uploaded to S3 s3_skip_encryption Skip encryption of all objects uploaded to S3. WARNING: only enable this on S3 buckets with sufficiently restricted permissions and server-side encryption enabled. See https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html false gitlab_project GitLab Project Path (i.e. 'gitlab-org/gitlab') gitlab_host GitLab Host (i.e. 'https://gitlab.com') https://gitlab.com job_token GitLab CI_JOB_TOKEN private_token GitLab Access Token keychain_name Keychain the items should be imported to login.keychain keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password force Renew the provisioning profiles every time you run match false force_for_new_devices Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile types 'appstore' and 'developer_id' false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false force_for_new_certificates Renew the provisioning profiles if the certificate count on the developer portal has changed. Works only for the 'development' provisioning profile type. Requires 'include_all_certificates' option to be 'true' false skip_confirmation Disables confirmation prompts during nuke, answering them with yes false safe_remove_certs Remove certs from repository during nuke without revoking them on the developer portal false skip_docs Skip generation of a README.md for the created git repository false platform Set the provisioning profile's platform to work with (i.e. ios, tvos, macos, catalyst) * derive_catalyst_app_identifier Enable this if you have the Mac Catalyst capability enabled and your project was created with Xcode 11.3 or earlier. Prepends 'maccatalyst.' to the app identifier for the provisioning profile mapping false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") profile_name A custom name for the provisioning profile. This will replace the default provisioning profile name if specified fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false skip_certificate_matching Set to true if there is no access to Apple developer portal but there are certificates, keys and profiles provided. Only works with match import action false output_path Path in which to export certificates, key and profile skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false verbose Print out extra information and all commands false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The sync_code_signing action generates the following Lane Variables: SharedValue Description SharedValues::MATCH_PROVISIONING_PROFILE_MAPPING The match provisioning profile mapping SharedValues::SIGH_PROFILE_TYPE The profile type, can be app-store, ad-hoc, development, enterprise, can be used in build_app as a default value for export_method To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action sync_code_signing CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sync_code_signing To pass parameters, make use of the : symbol, for example fastlane run sync_code_signing parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"sync_code_signing"},{"location":"actions/sync_code_signing/#sync_code_signing","text":"Easily sync your certificates and profiles across your team (via match )","title":"sync_code_signing"},{"location":"actions/sync_code_signing/#why-match","text":"Before starting to use match , make sure to read the codesigning.guide : When deploying an app to the App Store, beta testing service or even installing it on a device, most development teams have separate code signing identities for every member. This results in dozens of profiles including a lot of duplicates. You have to manually renew and download the latest set of provisioning profiles every time you add a new device or a certificate expires. Additionally this requires spending a lot of time when setting up a new machine that will build your app. A new approach Share one code signing identity across your development team to simplify your setup and prevent code signing issues. What if there was a central place where your code signing identity and profiles are kept, so anyone in the team can access them during the build process? For more information about the concept, visit codesigning.guide .","title":"Why match?"},{"location":"actions/sync_code_signing/#usage","text":"","title":"Usage"},{"location":"actions/sync_code_signing/#advanced-git-storage-features","text":"","title":"Advanced Git Storage features"},{"location":"actions/sync_code_signing/#is-this-secure","text":"","title":"Is this secure?"},{"location":"actions/sync_code_signing/#4-examples","text":"sync_code_signing(type: \"appstore\", app_identifier: \"tools.fastlane.app\") sync_code_signing(type: \"development\", readonly: true) sync_code_signing(app_identifier: [\"tools.fastlane.app\", \"tools.fastlane.sleepy\"]) match # alias for \"sync_code_signing\"","title":"4 Examples"},{"location":"actions/sync_code_signing/#parameters","text":"Key Description Default type Define the profile type, can be appstore, adhoc, development, enterprise, developer_id, mac_installer_distribution, developer_id_installer development additional_cert_types Create additional cert types needed for macOS installers (valid values: mac_installer_distribution, developer_id_installer) readonly Only fetch existing certificates and profiles, don't generate new ones false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * skip_provisioning_profiles Skip syncing provisioning profiles false app_identifier The bundle identifier(s) of your app (comma-separated string or array of strings) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * storage_mode Define where you want to store your certificates git git_url URL to the git repo containing all the certificates git_branch Specific git branch to use master git_full_name git user full name to commit git_user_email git user email to commit shallow_clone Make a shallow clone of the repository (truncate the history to 1 revision) false clone_branch_directly Clone just the branch specified, instead of the whole repo. This requires that the branch already exists. Otherwise the command will fail false git_basic_authorization Use a basic authorization header to access the git repo (e.g.: access via HTTPS, GitHub Actions, etc), usually a string in Base64 git_bearer_authorization Use a bearer authorization header to access the git repo (e.g.: access to an Azure DevOps repository), usually a string in Base64 git_private_key Use a private key to access the git repo (e.g.: access to GitHub repository via Deploy keys), usually a id_rsa named file or the contents hereof google_cloud_bucket_name Name of the Google Cloud Storage bucket to use google_cloud_keys_file Path to the gc_keys.json file google_cloud_project_id ID of the Google Cloud project to use for authentication skip_google_cloud_account_confirmation Skips confirming to use the system google account false s3_region Name of the S3 region s3_access_key S3 access key s3_secret_access_key S3 secret access key s3_bucket Name of the S3 bucket s3_object_prefix Prefix to be used on all objects uploaded to S3 s3_skip_encryption Skip encryption of all objects uploaded to S3. WARNING: only enable this on S3 buckets with sufficiently restricted permissions and server-side encryption enabled. See https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html false gitlab_project GitLab Project Path (i.e. 'gitlab-org/gitlab') gitlab_host GitLab Host (i.e. 'https://gitlab.com') https://gitlab.com job_token GitLab CI_JOB_TOKEN private_token GitLab Access Token keychain_name Keychain the items should be imported to login.keychain keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password force Renew the provisioning profiles every time you run match false force_for_new_devices Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile types 'appstore' and 'developer_id' false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false force_for_new_certificates Renew the provisioning profiles if the certificate count on the developer portal has changed. Works only for the 'development' provisioning profile type. Requires 'include_all_certificates' option to be 'true' false skip_confirmation Disables confirmation prompts during nuke, answering them with yes false safe_remove_certs Remove certs from repository during nuke without revoking them on the developer portal false skip_docs Skip generation of a README.md for the created git repository false platform Set the provisioning profile's platform to work with (i.e. ios, tvos, macos, catalyst) * derive_catalyst_app_identifier Enable this if you have the Mac Catalyst capability enabled and your project was created with Xcode 11.3 or earlier. Prepends 'maccatalyst.' to the app identifier for the provisioning profile mapping false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") profile_name A custom name for the provisioning profile. This will replace the default provisioning profile name if specified fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false skip_certificate_matching Set to true if there is no access to Apple developer portal but there are certificates, keys and profiles provided. Only works with match import action false output_path Path in which to export certificates, key and profile skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false verbose Print out extra information and all commands false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/sync_code_signing/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The sync_code_signing action generates the following Lane Variables: SharedValue Description SharedValues::MATCH_PROVISIONING_PROFILE_MAPPING The match provisioning profile mapping SharedValues::SIGH_PROFILE_TYPE The profile type, can be app-store, ad-hoc, development, enterprise, can be used in build_app as a default value for export_method To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/sync_code_signing/#documentation","text":"To show the documentation in your terminal, run fastlane action sync_code_signing","title":"Documentation"},{"location":"actions/sync_code_signing/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sync_code_signing To pass parameters, make use of the : symbol, for example fastlane run sync_code_signing parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/sync_code_signing/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/team_id/","text":"team_id Specify the Team ID you want to use for the Apple Developer Portal team_id Supported platforms ios Author @KrauseFx 1 Example team_id(\"Q2CBPK58CA\") Documentation To show the documentation in your terminal, run fastlane action team_id CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run team_id To pass parameters, make use of the : symbol, for example fastlane run team_id parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"team_id"},{"location":"actions/team_id/#team_id","text":"Specify the Team ID you want to use for the Apple Developer Portal team_id Supported platforms ios Author @KrauseFx","title":"team_id"},{"location":"actions/team_id/#1-example","text":"team_id(\"Q2CBPK58CA\")","title":"1 Example"},{"location":"actions/team_id/#documentation","text":"To show the documentation in your terminal, run fastlane action team_id","title":"Documentation"},{"location":"actions/team_id/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run team_id To pass parameters, make use of the : symbol, for example fastlane run team_id parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/team_id/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/team_name/","text":"team_name Set a team to use by its name team_name Supported platforms ios Author @KrauseFx 1 Example team_name(\"Felix Krause\") Documentation To show the documentation in your terminal, run fastlane action team_name CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run team_name To pass parameters, make use of the : symbol, for example fastlane run team_name parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"team_name"},{"location":"actions/team_name/#team_name","text":"Set a team to use by its name team_name Supported platforms ios Author @KrauseFx","title":"team_name"},{"location":"actions/team_name/#1-example","text":"team_name(\"Felix Krause\")","title":"1 Example"},{"location":"actions/team_name/#documentation","text":"To show the documentation in your terminal, run fastlane action team_name","title":"Documentation"},{"location":"actions/team_name/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run team_name To pass parameters, make use of the : symbol, for example fastlane run team_name parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/team_name/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/testfairy/","text":"testfairy Upload a new build to TestFairy You can retrieve your API key on your settings page testfairy Supported platforms ios, android Author @taka0125, @tcurdt, @vijaysharm, @cdm2012 2 Examples testfairy( api_key: \"...\", ipa: \"./ipa_file.ipa\", comment: \"Build #{lane_context[SharedValues::BUILD_NUMBER]}\", ) testfairy( api_key: \"...\", apk: \"../build/app/outputs/apk/qa/release/app-qa-release.apk\", comment: \"Build #{lane_context[SharedValues::BUILD_NUMBER]}\", ) Parameters Key Description Default api_key API Key for TestFairy ipa Path to your IPA file for iOS * apk Path to your APK file for Android * symbols_file Symbols mapping file * upload_url API URL for TestFairy https://upload.testfairy.com testers_groups Array of tester groups to be notified [] metrics Array of metrics to record (cpu,memory,network,phone_signal,gps,battery,mic,wifi) [] comment Additional release notes for this upload. This text will be added to email notifications No comment provided auto_update Allows an easy upgrade of all users to the current version. To enable set to 'on' off notify Send email to testers off options Array of options (shake,video_only_wifi,anonymous) [] custom Array of custom options. Contact support@testfairy.com for more information '' timeout Request timeout in seconds * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The testfairy action generates the following Lane Variables: SharedValue Description SharedValues::TESTFAIRY_BUILD_URL URL for the sessions of the newly uploaded build SharedValues::TESTFAIRY_DOWNLOAD_URL URL directly to the newly uploaded build SharedValues::TESTFAIRY_LANDING_PAGE URL of the build's landing page To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action testfairy CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run testfairy To pass parameters, make use of the : symbol, for example fastlane run testfairy parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"testfairy"},{"location":"actions/testfairy/#testfairy","text":"Upload a new build to TestFairy You can retrieve your API key on your settings page testfairy Supported platforms ios, android Author @taka0125, @tcurdt, @vijaysharm, @cdm2012","title":"testfairy"},{"location":"actions/testfairy/#2-examples","text":"testfairy( api_key: \"...\", ipa: \"./ipa_file.ipa\", comment: \"Build #{lane_context[SharedValues::BUILD_NUMBER]}\", ) testfairy( api_key: \"...\", apk: \"../build/app/outputs/apk/qa/release/app-qa-release.apk\", comment: \"Build #{lane_context[SharedValues::BUILD_NUMBER]}\", )","title":"2 Examples"},{"location":"actions/testfairy/#parameters","text":"Key Description Default api_key API Key for TestFairy ipa Path to your IPA file for iOS * apk Path to your APK file for Android * symbols_file Symbols mapping file * upload_url API URL for TestFairy https://upload.testfairy.com testers_groups Array of tester groups to be notified [] metrics Array of metrics to record (cpu,memory,network,phone_signal,gps,battery,mic,wifi) [] comment Additional release notes for this upload. This text will be added to email notifications No comment provided auto_update Allows an easy upgrade of all users to the current version. To enable set to 'on' off notify Send email to testers off options Array of options (shake,video_only_wifi,anonymous) [] custom Array of custom options. Contact support@testfairy.com for more information '' timeout Request timeout in seconds * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/testfairy/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The testfairy action generates the following Lane Variables: SharedValue Description SharedValues::TESTFAIRY_BUILD_URL URL for the sessions of the newly uploaded build SharedValues::TESTFAIRY_DOWNLOAD_URL URL directly to the newly uploaded build SharedValues::TESTFAIRY_LANDING_PAGE URL of the build's landing page To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/testfairy/#documentation","text":"To show the documentation in your terminal, run fastlane action testfairy","title":"Documentation"},{"location":"actions/testfairy/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run testfairy To pass parameters, make use of the : symbol, for example fastlane run testfairy parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/testfairy/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/testflight/","text":"testflight Alias for the upload_to_testflight action The best way to manage your TestFlight testers and builds from your terminal pilot makes it easier to manage your app on Apple\u2019s TestFlight. You can: Upload & distribute builds Add & remove testers Retrieve information about testers & devices Import/export all available testers pilot uses spaceship.airforce to interact with App Store Connect \ud83d\ude80 Usage \u2022 Tips pilot is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Usage For all commands, you can either use an API Key or your Apple ID . App Store Connect API Key The App Store Connect API Key is the preferred authentication method (if you are able to use it). Uses official App Store Connect API No need for 2FA Better performance over Apple ID Specify the API key using --api_key_path ./path/to/api_key_info.json or --api_key \"{\\\"key_id\\\": \\\"D83848D23\\\", \\\"issuer_id\\\": \\\"227b0bbf-ada8-458c-9d62-3d8022b7d07f\\\", \\\"key_filepath\\\": \\\"D83848D23.p8\\\"}\" Go to Using App Store Connect API for information on obtaining an API key, the fastlane api_key_info.json format, and other API key usage. Apple ID Specify the Apple ID to use using -u felix@krausefx.com . If you execute pilot in a project already using fastlane the username and app identifier will automatically be determined. Uploading builds To upload a new build, just run fastlane pilot upload This will automatically look for an ipa in your current directory and tries to fetch the login credentials from your fastlane setup . You'll be asked for any missing information. Additionally, you can pass all kinds of parameters: fastlane action pilot You can pass a changelog using fastlane pilot upload --changelog \"Something that is new here\" You can also skip the submission of the binary, which means, the ipa file will only be uploaded and not distributed to testers: fastlane pilot upload --skip_submission pilot does all kinds of magic for you: Automatically detects the bundle identifier from your ipa file Automatically fetch the AppID of your app based on the bundle identifier pilot uses spaceship to submit the build metadata and the iTunes Transporter to upload the binary. Because iTunes Transporter's upload capability is only supported on OS X, pilot upload does not work on Linux, as described in this issue List builds To list all builds for specific application use fastlane pilot builds The result lists all active builds and processing builds: +-----------+---------+----------+ | Great App Builds | +-----------+---------+----------+ | Version # | Build # | Installs | +-----------+---------+----------+ | 0.9.13 | 1 | 0 | | 0.9.13 | 2 | 0 | | 0.9.20 | 3 | 0 | | 0.9.20 | 4 | 3 | +-----------+---------+----------+ Managing beta testers List of Testers This command will list all your testers, both internal and external. fastlane pilot list The output will look like this: +--------+--------+--------------------------+-----------+ | Internal Testers | +--------+--------+--------------------------+-----------+ | First | Last | Email | # Devices | +--------+--------+--------------------------+-----------+ | Felix | Krause | felix@krausefx.com | 2 | +--------+--------+--------------------------+-----------+ +-----------+---------+----------------------------+-----------+ | External Testers | +-----------+---------+----------------------------+-----------+ | First | Last | Email | # Devices | +-----------+---------+----------------------------+-----------+ | Max | Manfred | email@email.com | 0 | | Detlef | M\u00fcller | detlef@krausefx.com | 1 | +-----------+---------+----------------------------+-----------+ Add a new tester To add a new tester to your App Store Connect account and to associate it to at least one testing group of your app, use the pilot add command. This will create a new tester (if necessary) or add an existing tester to the app to test. fastlane pilot add email@invite.com -g group-1,group-2 Additionally you can specify the app identifier (if necessary): fastlane pilot add email@email.com -a com.krausefx.app -g group-1,group-2 Find a tester To find a specific tester use fastlane pilot find felix@krausefx.com The resulting output will look like this: +---------------------+---------------------+ | felix@krausefx.com | +---------------------+---------------------+ | First name | Felix | | Last name | Krause | | Email | felix@krausefx.com | | Latest Version | 0.9.14 (23 | | Latest Install Date | 03/28/15 19:00 | | 2 Devices | \u2022 iPhone 6, iOS 8.3 | | | \u2022 iPhone 5, iOS 7.0 | +---------------------+---------------------+ Remove a tester This command will remove beta tester from app (from all internal and external groups) fastlane pilot remove felix@krausefx.com You can also use groups option to remove the tester from the groups specified: fastlane pilot remove felix@krausefx.com -g group-1,group-2 Export testers To export all external testers to a CSV file. Useful if you need to import tester info to another system or a new account. fastlane pilot export Import testers Add external testers from a CSV file. Create a file (ex: testers.csv ) and fill it with the following format: John,Appleseed,appleseed_john@mac.com,group-1;group-2 fastlane pilot import You can also specify the directory using fastlane pilot export -c ~/Desktop/testers.csv fastlane pilot import -c ~/Desktop/testers.csv Tips Debug information If you run into any issues you can use the verbose mode to get a more detailed output: fastlane pilot upload --verbose Firewall Issues pilot uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol from the command line using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" pilot ... If you are using pilot via the fastlane action , add the following to your Fastfile ENV[\"DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS\"] = \"-t DAV\" pilot... Note, however, that Apple recommends you don\u2019t specify the -t transport and instead allow Transporter to use automatic transport discovery to determine the best transport mode for your packages. For this reason, if the t option is passed, we will raise a warning. Also note that -t is not the only additional parameter that can be used. The string specified in the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS environment variable will be forwarded to Transporter. For all the available options, check Apple's Transporter User Guide . Credentials Issues If your password contains special characters, pilot may throw a confusing error saying your \"Your Apple ID or password was entered incorrectly\". The easiest way to fix this error is to change your password to something that does not contains special characters. How is my password stored? pilot uses the CredentialsManager from fastlane . Provider Short Name If you are on multiple App Store Connect teams, iTunes Transporter may need a provider short name to know where to upload your binary. pilot will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option. Use an Application Specific Password to upload pilot / upload_to_testflight can use an Application Specific Password via the FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD environment variable to upload a binary if both the skip_waiting_for_build_processing and apple_id options are set. (If any of those are not set, it will use the normal Apple login process that might require 2FA authentication.) Role for App Store Connect User pilot / upload_to_testflight updates build information and testers after the build has finished processing. App Store Connect requires the \"App Manager\" or \"Admin\" role for your Apple account to update this information. The \"Developer\" role will allow builds to be uploaded but will not allow updating of build information and testers. testflight Supported platforms ios, mac Author @KrauseFx 7 Examples upload_to_testflight testflight # alias for \"upload_to_testflight\" pilot # alias for \"upload_to_testflight\" upload_to_testflight(skip_submission: true) # to only upload the build upload_to_testflight( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) upload_to_testflight( beta_app_feedback_email: \"email@email.com\", beta_app_description: \"This is a description of my app\", demo_account_required: true, notify_external_testers: false, changelog: \"This is my changelog of things that have changed in a log\" ) upload_to_testflight( beta_app_review_info: { contact_email: \"email@email.com\", contact_first_name: \"Connect\", contact_last_name: \"API\", contact_phone: \"5558675309\", demo_account_name: \"demo@email.com\", demo_account_password: \"connectapi\", notes: \"this is review note for the reviewer <3 thank you for reviewing\" }, localized_app_info: { \"default\": { feedback_email: \"default@email.com\", marketing_url: \"https://example.com/marketing-defafult\", privacy_policy_url: \"https://example.com/privacy-defafult\", description: \"Default description\", }, \"en-GB\": { feedback_email: \"en-gb@email.com\", marketing_url: \"https://example.com/marketing-en-gb\", privacy_policy_url: \"https://example.com/privacy-en-gb\", description: \"en-gb description\", } }, localized_build_info: { \"default\": { whats_new: \"Default changelog\", }, \"en-GB\": { whats_new: \"en-gb changelog\", } } ) Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of the app to upload or manage testers (optional) * app_platform The platform to use (optional) apple_id Apple ID property in the App Information section in App Store Connect * ipa Path to the ipa file to upload * pkg Path to your pkg file * demo_account_required Do you need a demo account when Apple does review? beta_app_review_info Beta app review information for contact info and demo account localized_app_info Localized beta app test info for description, feedback email, marketing url, and privacy policy beta_app_description Provide the 'Beta App Description' when uploading a new build beta_app_feedback_email Provide the beta app email when uploading a new build localized_build_info Localized beta app test info for what's new changelog Provide the 'What to Test' text when uploading a new build skip_submission Skip the distributing action of pilot and only upload the ipa file false skip_waiting_for_build_processing If set to true, the distribute_external option won't work and no build will be distributed to testers. (You might want to use this option if you are using this action on CI and have to pay for 'minutes used' on your CI plan). If set to true and a changelog is provided, it will partially wait for the build to appear on AppStore Connect so the changelog can be set, and skip the remaining processing steps false update_build_info_on_upload DEPRECATED! Update build info immediately after validation. This is deprecated and will be removed in a future release. App Store Connect no longer supports setting build info until after build processing has completed, which is when build info is updated by default false distribute_only Distribute a previously uploaded build (equivalent to the fastlane pilot distribute command) false uses_non_exempt_encryption Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist false distribute_external Should the build be distributed to external testers? If set to true, use of groups option is required false notify_external_testers Should notify external testers? (Not setting a value will use App Store Connect's default which is to notify) app_version The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed build_number The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed expire_previous_builds Should expire previous builds? false first_name The tester's first name last_name The tester's last name email The tester's email testers_file_path Path to a CSV file of testers ./testers.csv groups Associate tester to one group or more by group name / group id. E.g. -g \"Team 1\",\"Team 2\" This is required when distribute_external option is set to true or when we want to add a tester to one or more external testing groups team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your team in the developer portal, if you're in multiple teams. Different from your iTC team ID! * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column wait_processing_interval Interval in seconds to wait for App Store Connect processing 30 wait_processing_timeout_duration Timeout duration in seconds to wait for App Store Connect processing. If set, after exceeding timeout duration, this will force stop to wait for App Store Connect processing and exit with exception wait_for_uploaded_build DEPRECATED! No longer needed with the transition over to the App Store Connect API - Use version info from uploaded ipa file to determine what build to use for distribution. If set to false, latest processing or any latest build will be used false reject_build_waiting_for_review Expire previous if it's 'waiting for review' false submit_beta_review Send the build for a beta review true * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action testflight CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run testflight To pass parameters, make use of the : symbol, for example fastlane run testflight parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"testflight"},{"location":"actions/testflight/#testflight","text":"Alias for the upload_to_testflight action","title":"testflight"},{"location":"actions/testflight/#usage","text":"For all commands, you can either use an API Key or your Apple ID .","title":"Usage"},{"location":"actions/testflight/#uploading-builds","text":"To upload a new build, just run fastlane pilot upload This will automatically look for an ipa in your current directory and tries to fetch the login credentials from your fastlane setup . You'll be asked for any missing information. Additionally, you can pass all kinds of parameters: fastlane action pilot You can pass a changelog using fastlane pilot upload --changelog \"Something that is new here\" You can also skip the submission of the binary, which means, the ipa file will only be uploaded and not distributed to testers: fastlane pilot upload --skip_submission pilot does all kinds of magic for you: Automatically detects the bundle identifier from your ipa file Automatically fetch the AppID of your app based on the bundle identifier pilot uses spaceship to submit the build metadata and the iTunes Transporter to upload the binary. Because iTunes Transporter's upload capability is only supported on OS X, pilot upload does not work on Linux, as described in this issue","title":"Uploading builds"},{"location":"actions/testflight/#list-builds","text":"To list all builds for specific application use fastlane pilot builds The result lists all active builds and processing builds: +-----------+---------+----------+ | Great App Builds | +-----------+---------+----------+ | Version # | Build # | Installs | +-----------+---------+----------+ | 0.9.13 | 1 | 0 | | 0.9.13 | 2 | 0 | | 0.9.20 | 3 | 0 | | 0.9.20 | 4 | 3 | +-----------+---------+----------+","title":"List builds"},{"location":"actions/testflight/#managing-beta-testers","text":"","title":"Managing beta testers"},{"location":"actions/testflight/#tips","text":"","title":"Tips"},{"location":"actions/testflight/#debug-information","text":"If you run into any issues you can use the verbose mode to get a more detailed output: fastlane pilot upload --verbose","title":"Debug information"},{"location":"actions/testflight/#firewall-issues","text":"pilot uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol from the command line using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" pilot ... If you are using pilot via the fastlane action , add the following to your Fastfile ENV[\"DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS\"] = \"-t DAV\" pilot... Note, however, that Apple recommends you don\u2019t specify the -t transport and instead allow Transporter to use automatic transport discovery to determine the best transport mode for your packages. For this reason, if the t option is passed, we will raise a warning. Also note that -t is not the only additional parameter that can be used. The string specified in the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS environment variable will be forwarded to Transporter. For all the available options, check Apple's Transporter User Guide .","title":"Firewall Issues"},{"location":"actions/testflight/#credentials-issues","text":"If your password contains special characters, pilot may throw a confusing error saying your \"Your Apple ID or password was entered incorrectly\". The easiest way to fix this error is to change your password to something that does not contains special characters.","title":"Credentials Issues"},{"location":"actions/testflight/#how-is-my-password-stored","text":"pilot uses the CredentialsManager from fastlane .","title":"How is my password stored?"},{"location":"actions/testflight/#provider-short-name","text":"If you are on multiple App Store Connect teams, iTunes Transporter may need a provider short name to know where to upload your binary. pilot will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option.","title":"Provider Short Name"},{"location":"actions/testflight/#use-an-application-specific-password-to-upload","text":"pilot / upload_to_testflight can use an Application Specific Password via the FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD environment variable to upload a binary if both the skip_waiting_for_build_processing and apple_id options are set. (If any of those are not set, it will use the normal Apple login process that might require 2FA authentication.)","title":"Use an Application Specific Password to upload"},{"location":"actions/testflight/#role-for-app-store-connect-user","text":"pilot / upload_to_testflight updates build information and testers after the build has finished processing. App Store Connect requires the \"App Manager\" or \"Admin\" role for your Apple account to update this information. The \"Developer\" role will allow builds to be uploaded but will not allow updating of build information and testers. testflight Supported platforms ios, mac Author @KrauseFx","title":"Role for App Store Connect User"},{"location":"actions/testflight/#7-examples","text":"upload_to_testflight testflight # alias for \"upload_to_testflight\" pilot # alias for \"upload_to_testflight\" upload_to_testflight(skip_submission: true) # to only upload the build upload_to_testflight( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) upload_to_testflight( beta_app_feedback_email: \"email@email.com\", beta_app_description: \"This is a description of my app\", demo_account_required: true, notify_external_testers: false, changelog: \"This is my changelog of things that have changed in a log\" ) upload_to_testflight( beta_app_review_info: { contact_email: \"email@email.com\", contact_first_name: \"Connect\", contact_last_name: \"API\", contact_phone: \"5558675309\", demo_account_name: \"demo@email.com\", demo_account_password: \"connectapi\", notes: \"this is review note for the reviewer <3 thank you for reviewing\" }, localized_app_info: { \"default\": { feedback_email: \"default@email.com\", marketing_url: \"https://example.com/marketing-defafult\", privacy_policy_url: \"https://example.com/privacy-defafult\", description: \"Default description\", }, \"en-GB\": { feedback_email: \"en-gb@email.com\", marketing_url: \"https://example.com/marketing-en-gb\", privacy_policy_url: \"https://example.com/privacy-en-gb\", description: \"en-gb description\", } }, localized_build_info: { \"default\": { whats_new: \"Default changelog\", }, \"en-GB\": { whats_new: \"en-gb changelog\", } } )","title":"7 Examples"},{"location":"actions/testflight/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of the app to upload or manage testers (optional) * app_platform The platform to use (optional) apple_id Apple ID property in the App Information section in App Store Connect * ipa Path to the ipa file to upload * pkg Path to your pkg file * demo_account_required Do you need a demo account when Apple does review? beta_app_review_info Beta app review information for contact info and demo account localized_app_info Localized beta app test info for description, feedback email, marketing url, and privacy policy beta_app_description Provide the 'Beta App Description' when uploading a new build beta_app_feedback_email Provide the beta app email when uploading a new build localized_build_info Localized beta app test info for what's new changelog Provide the 'What to Test' text when uploading a new build skip_submission Skip the distributing action of pilot and only upload the ipa file false skip_waiting_for_build_processing If set to true, the distribute_external option won't work and no build will be distributed to testers. (You might want to use this option if you are using this action on CI and have to pay for 'minutes used' on your CI plan). If set to true and a changelog is provided, it will partially wait for the build to appear on AppStore Connect so the changelog can be set, and skip the remaining processing steps false update_build_info_on_upload DEPRECATED! Update build info immediately after validation. This is deprecated and will be removed in a future release. App Store Connect no longer supports setting build info until after build processing has completed, which is when build info is updated by default false distribute_only Distribute a previously uploaded build (equivalent to the fastlane pilot distribute command) false uses_non_exempt_encryption Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist false distribute_external Should the build be distributed to external testers? If set to true, use of groups option is required false notify_external_testers Should notify external testers? (Not setting a value will use App Store Connect's default which is to notify) app_version The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed build_number The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed expire_previous_builds Should expire previous builds? false first_name The tester's first name last_name The tester's last name email The tester's email testers_file_path Path to a CSV file of testers ./testers.csv groups Associate tester to one group or more by group name / group id. E.g. -g \"Team 1\",\"Team 2\" This is required when distribute_external option is set to true or when we want to add a tester to one or more external testing groups team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your team in the developer portal, if you're in multiple teams. Different from your iTC team ID! * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column wait_processing_interval Interval in seconds to wait for App Store Connect processing 30 wait_processing_timeout_duration Timeout duration in seconds to wait for App Store Connect processing. If set, after exceeding timeout duration, this will force stop to wait for App Store Connect processing and exit with exception wait_for_uploaded_build DEPRECATED! No longer needed with the transition over to the App Store Connect API - Use version info from uploaded ipa file to determine what build to use for distribution. If set to false, latest processing or any latest build will be used false reject_build_waiting_for_review Expire previous if it's 'waiting for review' false submit_beta_review Send the build for a beta review true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/testflight/#documentation","text":"To show the documentation in your terminal, run fastlane action testflight","title":"Documentation"},{"location":"actions/testflight/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run testflight To pass parameters, make use of the : symbol, for example fastlane run testflight parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/testflight/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/trainer/","text":"trainer Convert the Xcode plist log to a JUnit report trainer Supported platforms ios, mac Author @KrauseFx Returns A hash with the key being the path of the generated file, the value being if the tests were successful Parameters Key Description Default path Path to the directory that should be converted . extension The extension for the newly created file. Usually .xml or .junit .xml output_directory Directory in which the xml files should be written to. Same directory as source by default output_filename Filename the xml file should be written to. Defaults to name of input file. (Only works if one input file is used) fail_build Should this step stop the build if the tests fail? Set this to false if you're handling this with a test reporter true xcpretty_naming Produces class name and test name identical to xcpretty naming in junit file false silent Silences all output false output_remove_retry_attempts Doesn't include retry attempts in the output false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action trainer CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run trainer To pass parameters, make use of the : symbol, for example fastlane run trainer parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"trainer"},{"location":"actions/trainer/#trainer","text":"Convert the Xcode plist log to a JUnit report trainer Supported platforms ios, mac Author @KrauseFx Returns A hash with the key being the path of the generated file, the value being if the tests were successful","title":"trainer"},{"location":"actions/trainer/#parameters","text":"Key Description Default path Path to the directory that should be converted . extension The extension for the newly created file. Usually .xml or .junit .xml output_directory Directory in which the xml files should be written to. Same directory as source by default output_filename Filename the xml file should be written to. Defaults to name of input file. (Only works if one input file is used) fail_build Should this step stop the build if the tests fail? Set this to false if you're handling this with a test reporter true xcpretty_naming Produces class name and test name identical to xcpretty naming in junit file false silent Silences all output false output_remove_retry_attempts Doesn't include retry attempts in the output false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/trainer/#documentation","text":"To show the documentation in your terminal, run fastlane action trainer","title":"Documentation"},{"location":"actions/trainer/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run trainer To pass parameters, make use of the : symbol, for example fastlane run trainer parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/trainer/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/tryouts/","text":"tryouts Upload a new build to Tryouts More information: http://tryouts.readthedocs.org/en/latest/releases.html#create-release tryouts Supported platforms ios, android Author @alicertel 1 Example tryouts( api_token: \"...\", app_id: \"application-id\", build_file: \"test.ipa\", ) Parameters Key Description Default app_id Tryouts application hash api_token API Token (api_key:api_secret) for Tryouts Access build_file Path to your IPA or APK file. Optional if you use the gym or xcodebuild action * notes Release notes notes_path Release notes text file path. Overrides the :notes parameter notify Notify testers? 0 for no 1 status 2 to make your release public. Release will be distributed to available testers. 1 to make your release private. Release won't be distributed to testers. This also prevents release from showing up for SDK update 2 * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The tryouts action generates the following Lane Variables: SharedValue Description SharedValues::TRYOUTS_BUILD_INFORMATION Contains release info like :application_name, :download_url. See http://tryouts.readthedocs.org/en/latest/releases.html#create-release To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action tryouts CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run tryouts To pass parameters, make use of the : symbol, for example fastlane run tryouts parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"tryouts"},{"location":"actions/tryouts/#tryouts","text":"Upload a new build to Tryouts More information: http://tryouts.readthedocs.org/en/latest/releases.html#create-release tryouts Supported platforms ios, android Author @alicertel","title":"tryouts"},{"location":"actions/tryouts/#1-example","text":"tryouts( api_token: \"...\", app_id: \"application-id\", build_file: \"test.ipa\", )","title":"1 Example"},{"location":"actions/tryouts/#parameters","text":"Key Description Default app_id Tryouts application hash api_token API Token (api_key:api_secret) for Tryouts Access build_file Path to your IPA or APK file. Optional if you use the gym or xcodebuild action * notes Release notes notes_path Release notes text file path. Overrides the :notes parameter notify Notify testers? 0 for no 1 status 2 to make your release public. Release will be distributed to available testers. 1 to make your release private. Release won't be distributed to testers. This also prevents release from showing up for SDK update 2 * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/tryouts/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The tryouts action generates the following Lane Variables: SharedValue Description SharedValues::TRYOUTS_BUILD_INFORMATION Contains release info like :application_name, :download_url. See http://tryouts.readthedocs.org/en/latest/releases.html#create-release To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/tryouts/#documentation","text":"To show the documentation in your terminal, run fastlane action tryouts","title":"Documentation"},{"location":"actions/tryouts/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run tryouts To pass parameters, make use of the : symbol, for example fastlane run tryouts parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/tryouts/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/twitter/","text":"twitter Post a tweet on Twitter.com Post a tweet on Twitter. Requires you to setup an app on twitter.com and obtain consumer and access_token . twitter Supported platforms ios, android, mac Author @hjanuschka 1 Example twitter( access_token: \"XXXX\", access_token_secret: \"xxx\", consumer_key: \"xxx\", consumer_secret: \"xxx\", message: \"You rock!\" ) Parameters Key Description Default consumer_key Consumer Key consumer_secret Consumer Secret access_token Access Token access_token_secret Access Token Secret message The tweet * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action twitter CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run twitter To pass parameters, make use of the : symbol, for example fastlane run twitter parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"twitter"},{"location":"actions/twitter/#twitter","text":"Post a tweet on Twitter.com Post a tweet on Twitter. Requires you to setup an app on twitter.com and obtain consumer and access_token . twitter Supported platforms ios, android, mac Author @hjanuschka","title":"twitter"},{"location":"actions/twitter/#1-example","text":"twitter( access_token: \"XXXX\", access_token_secret: \"xxx\", consumer_key: \"xxx\", consumer_secret: \"xxx\", message: \"You rock!\" )","title":"1 Example"},{"location":"actions/twitter/#parameters","text":"Key Description Default consumer_key Consumer Key consumer_secret Consumer Secret access_token Access Token access_token_secret Access Token Secret message The tweet * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/twitter/#documentation","text":"To show the documentation in your terminal, run fastlane action twitter","title":"Documentation"},{"location":"actions/twitter/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run twitter To pass parameters, make use of the : symbol, for example fastlane run twitter parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/twitter/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/typetalk/","text":"typetalk Post a message to Typetalk typetalk Supported platforms ios, android, mac Author @Nulab Inc. 1 Example typetalk( message: \"App successfully released!\", note_path: \"ChangeLog.md\", topicId: 1, success: true, typetalk_token: \"Your Typetalk Token\" ) Documentation To show the documentation in your terminal, run fastlane action typetalk CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run typetalk To pass parameters, make use of the : symbol, for example fastlane run typetalk parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"typetalk"},{"location":"actions/typetalk/#typetalk","text":"Post a message to Typetalk typetalk Supported platforms ios, android, mac Author @Nulab Inc.","title":"typetalk"},{"location":"actions/typetalk/#1-example","text":"typetalk( message: \"App successfully released!\", note_path: \"ChangeLog.md\", topicId: 1, success: true, typetalk_token: \"Your Typetalk Token\" )","title":"1 Example"},{"location":"actions/typetalk/#documentation","text":"To show the documentation in your terminal, run fastlane action typetalk","title":"Documentation"},{"location":"actions/typetalk/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run typetalk To pass parameters, make use of the : symbol, for example fastlane run typetalk parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/typetalk/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/unlock_keychain/","text":"unlock_keychain Unlock a keychain Unlocks the given keychain file and adds it to the keychain search list. Keychains can be replaced with add_to_search_list: :replace . unlock_keychain Supported platforms ios, android, mac Author @xfreebird 4 Examples unlock_keychain( # Unlock an existing keychain and add it to the keychain search list path: \"/path/to/KeychainName.keychain\", password: \"mysecret\" ) unlock_keychain( # By default the keychain is added to the existing. To replace them with the selected keychain you may use `:replace` path: \"/path/to/KeychainName.keychain\", password: \"mysecret\", add_to_search_list: :replace # To only add a keychain use `true` or `:add`. ) unlock_keychain( # In addition, the keychain can be selected as a default keychain path: \"/path/to/KeychainName.keychain\", password: \"mysecret\", set_default: true ) unlock_keychain( # If the keychain file is located in the standard location `~/Library/Keychains`, then it is sufficient to provide the keychain file name, or file name with its suffix. path: \"KeychainName\", password: \"mysecret\" ) Parameters Key Description Default path Path to the keychain file login password Keychain password add_to_search_list Add to keychain search list, valid values are true, false, :add, and :replace true set_default Set as default keychain false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action unlock_keychain CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run unlock_keychain To pass parameters, make use of the : symbol, for example fastlane run unlock_keychain parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"unlock_keychain"},{"location":"actions/unlock_keychain/#unlock_keychain","text":"Unlock a keychain Unlocks the given keychain file and adds it to the keychain search list. Keychains can be replaced with add_to_search_list: :replace . unlock_keychain Supported platforms ios, android, mac Author @xfreebird","title":"unlock_keychain"},{"location":"actions/unlock_keychain/#4-examples","text":"unlock_keychain( # Unlock an existing keychain and add it to the keychain search list path: \"/path/to/KeychainName.keychain\", password: \"mysecret\" ) unlock_keychain( # By default the keychain is added to the existing. To replace them with the selected keychain you may use `:replace` path: \"/path/to/KeychainName.keychain\", password: \"mysecret\", add_to_search_list: :replace # To only add a keychain use `true` or `:add`. ) unlock_keychain( # In addition, the keychain can be selected as a default keychain path: \"/path/to/KeychainName.keychain\", password: \"mysecret\", set_default: true ) unlock_keychain( # If the keychain file is located in the standard location `~/Library/Keychains`, then it is sufficient to provide the keychain file name, or file name with its suffix. path: \"KeychainName\", password: \"mysecret\" )","title":"4 Examples"},{"location":"actions/unlock_keychain/#parameters","text":"Key Description Default path Path to the keychain file login password Keychain password add_to_search_list Add to keychain search list, valid values are true, false, :add, and :replace true set_default Set as default keychain false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/unlock_keychain/#documentation","text":"To show the documentation in your terminal, run fastlane action unlock_keychain","title":"Documentation"},{"location":"actions/unlock_keychain/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run unlock_keychain To pass parameters, make use of the : symbol, for example fastlane run unlock_keychain parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/unlock_keychain/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/update_app_group_identifiers/","text":"update_app_group_identifiers This action changes the app group identifiers in the entitlements file Updates the App Group Identifiers in the given Entitlements file, so you can have app groups for the app store build and app groups for an enterprise build. update_app_group_identifiers Supported platforms ios Author @mathiasAichinger 1 Example update_app_group_identifiers( entitlements_file: \"/path/to/entitlements_file.entitlements\", app_group_identifiers: [\"group.your.app.group.identifier\"] ) Parameters Key Description Default entitlements_file The path to the entitlement file which contains the app group identifiers app_group_identifiers An Array of unique identifiers for the app groups. Eg. ['group.com.test.testapp'] * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The update_app_group_identifiers action generates the following Lane Variables: SharedValue Description SharedValues::APP_GROUP_IDENTIFIERS The new App Group Identifiers To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action update_app_group_identifiers CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_app_group_identifiers To pass parameters, make use of the : symbol, for example fastlane run update_app_group_identifiers parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"update_app_group_identifiers"},{"location":"actions/update_app_group_identifiers/#update_app_group_identifiers","text":"This action changes the app group identifiers in the entitlements file Updates the App Group Identifiers in the given Entitlements file, so you can have app groups for the app store build and app groups for an enterprise build. update_app_group_identifiers Supported platforms ios Author @mathiasAichinger","title":"update_app_group_identifiers"},{"location":"actions/update_app_group_identifiers/#1-example","text":"update_app_group_identifiers( entitlements_file: \"/path/to/entitlements_file.entitlements\", app_group_identifiers: [\"group.your.app.group.identifier\"] )","title":"1 Example"},{"location":"actions/update_app_group_identifiers/#parameters","text":"Key Description Default entitlements_file The path to the entitlement file which contains the app group identifiers app_group_identifiers An Array of unique identifiers for the app groups. Eg. ['group.com.test.testapp'] * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/update_app_group_identifiers/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The update_app_group_identifiers action generates the following Lane Variables: SharedValue Description SharedValues::APP_GROUP_IDENTIFIERS The new App Group Identifiers To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/update_app_group_identifiers/#documentation","text":"To show the documentation in your terminal, run fastlane action update_app_group_identifiers","title":"Documentation"},{"location":"actions/update_app_group_identifiers/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_app_group_identifiers To pass parameters, make use of the : symbol, for example fastlane run update_app_group_identifiers parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/update_app_group_identifiers/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/update_app_identifier/","text":"update_app_identifier Update the project's bundle identifier Update an app identifier by either setting CFBundleIdentifier or PRODUCT_BUNDLE_IDENTIFIER , depending on which is already in use. update_app_identifier Supported platforms ios Author @squarefrog, @tobiasstrebitzer 1 Example update_app_identifier( xcodeproj: \"Example.xcodeproj\", # Optional path to xcodeproj, will use the first .xcodeproj if not set plist_path: \"Example/Info.plist\", # Path to info plist file, relative to xcodeproj app_identifier: \"com.test.example\" # The App Identifier ) Parameters Key Description Default xcodeproj Path to your Xcode project * plist_path Path to info plist, relative to your Xcode project app_identifier The app Identifier you want to set * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_app_identifier CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_app_identifier To pass parameters, make use of the : symbol, for example fastlane run update_app_identifier parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"update_app_identifier"},{"location":"actions/update_app_identifier/#update_app_identifier","text":"Update the project's bundle identifier Update an app identifier by either setting CFBundleIdentifier or PRODUCT_BUNDLE_IDENTIFIER , depending on which is already in use. update_app_identifier Supported platforms ios Author @squarefrog, @tobiasstrebitzer","title":"update_app_identifier"},{"location":"actions/update_app_identifier/#1-example","text":"update_app_identifier( xcodeproj: \"Example.xcodeproj\", # Optional path to xcodeproj, will use the first .xcodeproj if not set plist_path: \"Example/Info.plist\", # Path to info plist file, relative to xcodeproj app_identifier: \"com.test.example\" # The App Identifier )","title":"1 Example"},{"location":"actions/update_app_identifier/#parameters","text":"Key Description Default xcodeproj Path to your Xcode project * plist_path Path to info plist, relative to your Xcode project app_identifier The app Identifier you want to set * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/update_app_identifier/#documentation","text":"To show the documentation in your terminal, run fastlane action update_app_identifier","title":"Documentation"},{"location":"actions/update_app_identifier/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_app_identifier To pass parameters, make use of the : symbol, for example fastlane run update_app_identifier parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/update_app_identifier/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/update_code_signing_settings/","text":"update_code_signing_settings Configures Xcode's Codesigning options Configures Xcode's Codesigning options of all targets in the project update_code_signing_settings Supported platforms ios, mac Author @mathiasAichinger, @hjanuschka, @p4checo, @portellaa, @aeons, @att55, @abcdev Returns The current status (boolean) of codesigning after modification 3 Examples # manual code signing update_code_signing_settings( use_automatic_signing: false, path: \"demo-project/demo/demo.xcodeproj\" ) # automatic code signing update_code_signing_settings( use_automatic_signing: true, path: \"demo-project/demo/demo.xcodeproj\" ) # more advanced manual code signing update_code_signing_settings( use_automatic_signing: false, path: \"demo-project/demo/demo.xcodeproj\", team_id: \"QABC123DEV\", bundle_identifier: \"com.demoapp.QABC123DEV\", code_sign_identity: \"iPhone Distribution\", sdk: \"iphoneos*\", profile_name: \"Demo App Deployment Profile\", entitlements_file_path: \"Demo App/generated/New.entitlements\" ) Parameters Key Description Default path Path to your Xcode project * use_automatic_signing Defines if project should use automatic signing false sdk Build target SDKs (iphoneos , macosx , iphonesimulator*) team_id Team ID, is used when upgrading project targets Specify targets you want to toggle the signing mech. (default to all targets) build_configurations Specify build_configurations you want to toggle the signing mech. (default to all configurations) code_sign_identity Code signing identity type (iPhone Developer, iPhone Distribution) entitlements_file_path Path to your entitlements file profile_name Provisioning profile name to use for code signing profile_uuid Provisioning profile UUID to use for code signing bundle_identifier Application Product Bundle Identifier * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_code_signing_settings CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_code_signing_settings To pass parameters, make use of the : symbol, for example fastlane run update_code_signing_settings parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"update_code_signing_settings"},{"location":"actions/update_code_signing_settings/#update_code_signing_settings","text":"Configures Xcode's Codesigning options Configures Xcode's Codesigning options of all targets in the project update_code_signing_settings Supported platforms ios, mac Author @mathiasAichinger, @hjanuschka, @p4checo, @portellaa, @aeons, @att55, @abcdev Returns The current status (boolean) of codesigning after modification","title":"update_code_signing_settings"},{"location":"actions/update_code_signing_settings/#3-examples","text":"# manual code signing update_code_signing_settings( use_automatic_signing: false, path: \"demo-project/demo/demo.xcodeproj\" ) # automatic code signing update_code_signing_settings( use_automatic_signing: true, path: \"demo-project/demo/demo.xcodeproj\" ) # more advanced manual code signing update_code_signing_settings( use_automatic_signing: false, path: \"demo-project/demo/demo.xcodeproj\", team_id: \"QABC123DEV\", bundle_identifier: \"com.demoapp.QABC123DEV\", code_sign_identity: \"iPhone Distribution\", sdk: \"iphoneos*\", profile_name: \"Demo App Deployment Profile\", entitlements_file_path: \"Demo App/generated/New.entitlements\" )","title":"3 Examples"},{"location":"actions/update_code_signing_settings/#parameters","text":"Key Description Default path Path to your Xcode project * use_automatic_signing Defines if project should use automatic signing false sdk Build target SDKs (iphoneos , macosx , iphonesimulator*) team_id Team ID, is used when upgrading project targets Specify targets you want to toggle the signing mech. (default to all targets) build_configurations Specify build_configurations you want to toggle the signing mech. (default to all configurations) code_sign_identity Code signing identity type (iPhone Developer, iPhone Distribution) entitlements_file_path Path to your entitlements file profile_name Provisioning profile name to use for code signing profile_uuid Provisioning profile UUID to use for code signing bundle_identifier Application Product Bundle Identifier * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/update_code_signing_settings/#documentation","text":"To show the documentation in your terminal, run fastlane action update_code_signing_settings","title":"Documentation"},{"location":"actions/update_code_signing_settings/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_code_signing_settings To pass parameters, make use of the : symbol, for example fastlane run update_code_signing_settings parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/update_code_signing_settings/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/update_fastlane/","text":"update_fastlane Makes sure fastlane-tools are up-to-date when running fastlane This action will update fastlane to the most recent version - major version updates will not be performed automatically, as they might include breaking changes. If an update was performed, fastlane will be restarted before the run continues. If you are using rbenv or rvm, everything should be good to go. However, if you are using the system's default ruby, some additional setup is needed for this action to work correctly. In short, fastlane needs to be able to access your gem library without running in sudo mode. The simplest possible fix for this is putting the following lines into your ~/.bashrc or ~/.zshrc file: export GEM_HOME=~/.gems export PATH=$PATH:~/.gems/bin After the above changes, restart your terminal, then run mkdir $GEM_HOME to create the new gem directory. After this, you're good to go! Recommended usage of the update_fastlane action is at the top inside of the before_all block, before running any other action. update_fastlane Supported platforms ios, android, mac Author @milch, @KrauseFx 1 Example before_all do update_fastlane # ... end Parameters Key Description Default no_update Don't update during this run. This is used internally false nightly DEPRECATED! Nightly builds are no longer being made available - Opt-in to install and use nightly fastlane builds false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_fastlane CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_fastlane To pass parameters, make use of the : symbol, for example fastlane run update_fastlane parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"update_fastlane"},{"location":"actions/update_fastlane/#update_fastlane","text":"Makes sure fastlane-tools are up-to-date when running fastlane This action will update fastlane to the most recent version - major version updates will not be performed automatically, as they might include breaking changes. If an update was performed, fastlane will be restarted before the run continues. If you are using rbenv or rvm, everything should be good to go. However, if you are using the system's default ruby, some additional setup is needed for this action to work correctly. In short, fastlane needs to be able to access your gem library without running in sudo mode. The simplest possible fix for this is putting the following lines into your ~/.bashrc or ~/.zshrc file: export GEM_HOME=~/.gems export PATH=$PATH:~/.gems/bin After the above changes, restart your terminal, then run mkdir $GEM_HOME to create the new gem directory. After this, you're good to go! Recommended usage of the update_fastlane action is at the top inside of the before_all block, before running any other action. update_fastlane Supported platforms ios, android, mac Author @milch, @KrauseFx","title":"update_fastlane"},{"location":"actions/update_fastlane/#1-example","text":"before_all do update_fastlane # ... end","title":"1 Example"},{"location":"actions/update_fastlane/#parameters","text":"Key Description Default no_update Don't update during this run. This is used internally false nightly DEPRECATED! Nightly builds are no longer being made available - Opt-in to install and use nightly fastlane builds false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/update_fastlane/#documentation","text":"To show the documentation in your terminal, run fastlane action update_fastlane","title":"Documentation"},{"location":"actions/update_fastlane/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_fastlane To pass parameters, make use of the : symbol, for example fastlane run update_fastlane parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/update_fastlane/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/update_icloud_container_identifiers/","text":"update_icloud_container_identifiers This action changes the iCloud container identifiers in the entitlements file Updates the iCloud Container Identifiers in the given Entitlements file, so you can use different iCloud containers for different builds like Adhoc, App Store, etc. update_icloud_container_identifiers Supported platforms ios Author @JamesKuang 1 Example update_icloud_container_identifiers( entitlements_file: \"/path/to/entitlements_file.entitlements\", icloud_container_identifiers: [\"iCloud.com.companyname.appname\"] ) Parameters Key Description Default entitlements_file The path to the entitlement file which contains the iCloud container identifiers icloud_container_identifiers An Array of unique identifiers for the iCloud containers. Eg. ['iCloud.com.test.testapp'] * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The update_icloud_container_identifiers action generates the following Lane Variables: SharedValue Description SharedValues::UPDATE_ICLOUD_CONTAINER_IDENTIFIERS The new iCloud Container Identifiers To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action update_icloud_container_identifiers CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_icloud_container_identifiers To pass parameters, make use of the : symbol, for example fastlane run update_icloud_container_identifiers parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"update_icloud_container_identifiers"},{"location":"actions/update_icloud_container_identifiers/#update_icloud_container_identifiers","text":"This action changes the iCloud container identifiers in the entitlements file Updates the iCloud Container Identifiers in the given Entitlements file, so you can use different iCloud containers for different builds like Adhoc, App Store, etc. update_icloud_container_identifiers Supported platforms ios Author @JamesKuang","title":"update_icloud_container_identifiers"},{"location":"actions/update_icloud_container_identifiers/#1-example","text":"update_icloud_container_identifiers( entitlements_file: \"/path/to/entitlements_file.entitlements\", icloud_container_identifiers: [\"iCloud.com.companyname.appname\"] )","title":"1 Example"},{"location":"actions/update_icloud_container_identifiers/#parameters","text":"Key Description Default entitlements_file The path to the entitlement file which contains the iCloud container identifiers icloud_container_identifiers An Array of unique identifiers for the iCloud containers. Eg. ['iCloud.com.test.testapp'] * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/update_icloud_container_identifiers/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The update_icloud_container_identifiers action generates the following Lane Variables: SharedValue Description SharedValues::UPDATE_ICLOUD_CONTAINER_IDENTIFIERS The new iCloud Container Identifiers To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/update_icloud_container_identifiers/#documentation","text":"To show the documentation in your terminal, run fastlane action update_icloud_container_identifiers","title":"Documentation"},{"location":"actions/update_icloud_container_identifiers/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_icloud_container_identifiers To pass parameters, make use of the : symbol, for example fastlane run update_icloud_container_identifiers parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/update_icloud_container_identifiers/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/update_info_plist/","text":"update_info_plist Update a Info.plist file with bundle identifier and display name This action allows you to modify your Info.plist file before building. This may be useful if you want a separate build for alpha, beta or nightly builds, but don't want a separate target. update_info_plist Supported platforms ios Author @tobiasstrebitzer 4 Examples update_info_plist( # update app identifier string plist_path: \"path/to/Info.plist\", app_identifier: \"com.example.newappidentifier\" ) update_info_plist( # Change the Display Name of your app plist_path: \"path/to/Info.plist\", display_name: \"MyApp-Beta\" ) update_info_plist( # Target a specific `xcodeproj` rather than finding the first available one xcodeproj: \"path/to/Example.proj\", plist_path: \"path/to/Info.plist\", display_name: \"MyApp-Beta\" ) update_info_plist( # Advanced processing: find URL scheme for particular key and replace value xcodeproj: \"path/to/Example.proj\", plist_path: \"path/to/Info.plist\", block: proc do |plist| urlScheme = plist[\"CFBundleURLTypes\"].find{|scheme| scheme[\"CFBundleURLName\"] == \"com.acme.default-url-handler\"} urlScheme[:CFBundleURLSchemes] = [\"acme-production\"] end ) Parameters Key Description Default xcodeproj Path to your Xcode project plist_path Path to info plist scheme Scheme of info plist app_identifier The App Identifier of your app * display_name The Display Name of your app block A block to process plist with custom logic * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_info_plist CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_info_plist To pass parameters, make use of the : symbol, for example fastlane run update_info_plist parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"update_info_plist"},{"location":"actions/update_info_plist/#update_info_plist","text":"Update a Info.plist file with bundle identifier and display name This action allows you to modify your Info.plist file before building. This may be useful if you want a separate build for alpha, beta or nightly builds, but don't want a separate target. update_info_plist Supported platforms ios Author @tobiasstrebitzer","title":"update_info_plist"},{"location":"actions/update_info_plist/#4-examples","text":"update_info_plist( # update app identifier string plist_path: \"path/to/Info.plist\", app_identifier: \"com.example.newappidentifier\" ) update_info_plist( # Change the Display Name of your app plist_path: \"path/to/Info.plist\", display_name: \"MyApp-Beta\" ) update_info_plist( # Target a specific `xcodeproj` rather than finding the first available one xcodeproj: \"path/to/Example.proj\", plist_path: \"path/to/Info.plist\", display_name: \"MyApp-Beta\" ) update_info_plist( # Advanced processing: find URL scheme for particular key and replace value xcodeproj: \"path/to/Example.proj\", plist_path: \"path/to/Info.plist\", block: proc do |plist| urlScheme = plist[\"CFBundleURLTypes\"].find{|scheme| scheme[\"CFBundleURLName\"] == \"com.acme.default-url-handler\"} urlScheme[:CFBundleURLSchemes] = [\"acme-production\"] end )","title":"4 Examples"},{"location":"actions/update_info_plist/#parameters","text":"Key Description Default xcodeproj Path to your Xcode project plist_path Path to info plist scheme Scheme of info plist app_identifier The App Identifier of your app * display_name The Display Name of your app block A block to process plist with custom logic * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/update_info_plist/#documentation","text":"To show the documentation in your terminal, run fastlane action update_info_plist","title":"Documentation"},{"location":"actions/update_info_plist/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_info_plist To pass parameters, make use of the : symbol, for example fastlane run update_info_plist parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/update_info_plist/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/update_keychain_access_groups/","text":"update_keychain_access_groups This action changes the keychain access groups in the entitlements file Updates the Keychain Group Access Groups in the given Entitlements file, so you can have keychain access groups for the app store build and keychain access groups for an enterprise build. update_keychain_access_groups Supported platforms ios Author @yutae 1 Example update_keychain_access_groups( entitlements_file: \"/path/to/entitlements_file.entitlements\", identifiers: [\"your.keychain.access.groups.identifiers\"] ) Parameters Key Description Default entitlements_file The path to the entitlement file which contains the keychain access groups identifiers An Array of unique identifiers for the keychain access groups. Eg. ['your.keychain.access.groups.identifiers'] * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The update_keychain_access_groups action generates the following Lane Variables: SharedValue Description SharedValues::KEYCHAIN_ACCESS_GROUPS The new Keychain Access Groups To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action update_keychain_access_groups CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_keychain_access_groups To pass parameters, make use of the : symbol, for example fastlane run update_keychain_access_groups parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"update_keychain_access_groups"},{"location":"actions/update_keychain_access_groups/#update_keychain_access_groups","text":"This action changes the keychain access groups in the entitlements file Updates the Keychain Group Access Groups in the given Entitlements file, so you can have keychain access groups for the app store build and keychain access groups for an enterprise build. update_keychain_access_groups Supported platforms ios Author @yutae","title":"update_keychain_access_groups"},{"location":"actions/update_keychain_access_groups/#1-example","text":"update_keychain_access_groups( entitlements_file: \"/path/to/entitlements_file.entitlements\", identifiers: [\"your.keychain.access.groups.identifiers\"] )","title":"1 Example"},{"location":"actions/update_keychain_access_groups/#parameters","text":"Key Description Default entitlements_file The path to the entitlement file which contains the keychain access groups identifiers An Array of unique identifiers for the keychain access groups. Eg. ['your.keychain.access.groups.identifiers'] * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/update_keychain_access_groups/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The update_keychain_access_groups action generates the following Lane Variables: SharedValue Description SharedValues::KEYCHAIN_ACCESS_GROUPS The new Keychain Access Groups To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/update_keychain_access_groups/#documentation","text":"To show the documentation in your terminal, run fastlane action update_keychain_access_groups","title":"Documentation"},{"location":"actions/update_keychain_access_groups/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_keychain_access_groups To pass parameters, make use of the : symbol, for example fastlane run update_keychain_access_groups parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/update_keychain_access_groups/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/update_plist/","text":"update_plist Update a plist file This action allows you to modify any value inside any plist file. update_plist Supported platforms ios Author @rishabhtayal, @matthiaszarzecki 6 Examples update_plist( # Updates the CLIENT_ID and GOOGLE_APP_ID string entries in the plist-file plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| plist[:CLIENT_ID] = \"new_client_id\" plist[:GOOGLE_APP_ID] = \"new_google_app_id\" end ) update_plist( # Sets a boolean entry plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| plist[:boolean_entry] = true end ) update_plist( # Sets a number entry plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| plist[:number_entry] = 13 end ) update_plist( # Sets an array-entry with multiple sub-types plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| plist[:array_entry] = [\"entry_01\", true, 1243] end ) update_plist( # The block can contain logic too plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| if options[:environment] == \"production\" plist[:CLIENT_ID] = \"new_client_id_production\" else plist[:CLIENT_ID] = \"new_client_id_development\" end end ) update_plist( # Advanced processing: find URL scheme for particular key and replace value plist_path: \"path/to/Info.plist\", block: proc do |plist| urlScheme = plist[\"CFBundleURLTypes\"].find{|scheme| scheme[\"CFBundleURLName\"] == \"com.acme.default-url-handler\"} urlScheme[:CFBundleURLSchemes] = [\"acme-production\"] end ) Parameters Key Description Default plist_path Path to plist file block A block to process plist with custom logic * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_plist CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_plist To pass parameters, make use of the : symbol, for example fastlane run update_plist parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"update_plist"},{"location":"actions/update_plist/#update_plist","text":"Update a plist file This action allows you to modify any value inside any plist file. update_plist Supported platforms ios Author @rishabhtayal, @matthiaszarzecki","title":"update_plist"},{"location":"actions/update_plist/#6-examples","text":"update_plist( # Updates the CLIENT_ID and GOOGLE_APP_ID string entries in the plist-file plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| plist[:CLIENT_ID] = \"new_client_id\" plist[:GOOGLE_APP_ID] = \"new_google_app_id\" end ) update_plist( # Sets a boolean entry plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| plist[:boolean_entry] = true end ) update_plist( # Sets a number entry plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| plist[:number_entry] = 13 end ) update_plist( # Sets an array-entry with multiple sub-types plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| plist[:array_entry] = [\"entry_01\", true, 1243] end ) update_plist( # The block can contain logic too plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| if options[:environment] == \"production\" plist[:CLIENT_ID] = \"new_client_id_production\" else plist[:CLIENT_ID] = \"new_client_id_development\" end end ) update_plist( # Advanced processing: find URL scheme for particular key and replace value plist_path: \"path/to/Info.plist\", block: proc do |plist| urlScheme = plist[\"CFBundleURLTypes\"].find{|scheme| scheme[\"CFBundleURLName\"] == \"com.acme.default-url-handler\"} urlScheme[:CFBundleURLSchemes] = [\"acme-production\"] end )","title":"6 Examples"},{"location":"actions/update_plist/#parameters","text":"Key Description Default plist_path Path to plist file block A block to process plist with custom logic * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/update_plist/#documentation","text":"To show the documentation in your terminal, run fastlane action update_plist","title":"Documentation"},{"location":"actions/update_plist/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_plist To pass parameters, make use of the : symbol, for example fastlane run update_plist parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/update_plist/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/update_project_code_signing/","text":"update_project_code_signing Updated code signing settings from 'Automatic' to a specific profile You shouldn't use update_project_code_signing . Have you considered using the recommended way to do code signing: https://docs.fastlane.tools/codesigning/getting-started/ ? update_project_code_signing Supported platforms ios Author @KrauseFx Parameters Key Description Default path Path to your Xcode project udid DEPRECATED! Use :uuid instead * uuid The UUID of the provisioning profile you want to use * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_project_code_signing CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_project_code_signing To pass parameters, make use of the : symbol, for example fastlane run update_project_code_signing parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"update_project_code_signing"},{"location":"actions/update_project_code_signing/#update_project_code_signing","text":"Updated code signing settings from 'Automatic' to a specific profile You shouldn't use update_project_code_signing . Have you considered using the recommended way to do code signing: https://docs.fastlane.tools/codesigning/getting-started/ ? update_project_code_signing Supported platforms ios Author @KrauseFx","title":"update_project_code_signing"},{"location":"actions/update_project_code_signing/#parameters","text":"Key Description Default path Path to your Xcode project udid DEPRECATED! Use :uuid instead * uuid The UUID of the provisioning profile you want to use * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/update_project_code_signing/#documentation","text":"To show the documentation in your terminal, run fastlane action update_project_code_signing","title":"Documentation"},{"location":"actions/update_project_code_signing/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_project_code_signing To pass parameters, make use of the : symbol, for example fastlane run update_project_code_signing parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/update_project_code_signing/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/update_project_provisioning/","text":"update_project_provisioning Update projects code signing settings from your provisioning profile You should check out the code signing guide before using this action. This action retrieves a provisioning profile UUID from a provisioning profile ( .mobileprovision ) to set up the Xcode projects' code signing settings in *.xcodeproj/project.pbxproj . The :target_filter value can be used to only update code signing for the specified targets. The :build_configuration value can be used to only update code signing for the specified build configurations of the targets passing through the :target_filter . Example usage is the WatchKit Extension or WatchKit App, where you need separate provisioning profiles. Example: update_project_provisioning(xcodeproj: \"..\", target_filter: \".*WatchKit App.*\") . update_project_provisioning Supported platforms ios, mac Author @tobiasstrebitzer, @czechboy0 1 Example update_project_provisioning( xcodeproj: \"Project.xcodeproj\", profile: \"./watch_app_store.mobileprovision\", # optional if you use sigh target_filter: \".*WatchKit Extension.*\", # matches name or type of a target build_configuration: \"Release\", code_signing_identity: \"iPhone Development\" # optionally specify the codesigning identity ) Parameters Key Description Default xcodeproj Path to your Xcode project profile Path to provisioning profile (.mobileprovision) * target_filter A filter for the target name. Use a standard regex build_configuration_filter Legacy option, use 'target_filter' instead build_configuration A filter for the build configuration name. Use a standard regex. Applied to all configurations if not specified certificate Path to apple root certificate /tmp/AppleIncRootCertificate.cer code_signing_identity Code sign identity for build configuration * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_project_provisioning CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_project_provisioning To pass parameters, make use of the : symbol, for example fastlane run update_project_provisioning parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"update_project_provisioning"},{"location":"actions/update_project_provisioning/#update_project_provisioning","text":"Update projects code signing settings from your provisioning profile You should check out the code signing guide before using this action. This action retrieves a provisioning profile UUID from a provisioning profile ( .mobileprovision ) to set up the Xcode projects' code signing settings in *.xcodeproj/project.pbxproj . The :target_filter value can be used to only update code signing for the specified targets. The :build_configuration value can be used to only update code signing for the specified build configurations of the targets passing through the :target_filter . Example usage is the WatchKit Extension or WatchKit App, where you need separate provisioning profiles. Example: update_project_provisioning(xcodeproj: \"..\", target_filter: \".*WatchKit App.*\") . update_project_provisioning Supported platforms ios, mac Author @tobiasstrebitzer, @czechboy0","title":"update_project_provisioning"},{"location":"actions/update_project_provisioning/#1-example","text":"update_project_provisioning( xcodeproj: \"Project.xcodeproj\", profile: \"./watch_app_store.mobileprovision\", # optional if you use sigh target_filter: \".*WatchKit Extension.*\", # matches name or type of a target build_configuration: \"Release\", code_signing_identity: \"iPhone Development\" # optionally specify the codesigning identity )","title":"1 Example"},{"location":"actions/update_project_provisioning/#parameters","text":"Key Description Default xcodeproj Path to your Xcode project profile Path to provisioning profile (.mobileprovision) * target_filter A filter for the target name. Use a standard regex build_configuration_filter Legacy option, use 'target_filter' instead build_configuration A filter for the build configuration name. Use a standard regex. Applied to all configurations if not specified certificate Path to apple root certificate /tmp/AppleIncRootCertificate.cer code_signing_identity Code sign identity for build configuration * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/update_project_provisioning/#documentation","text":"To show the documentation in your terminal, run fastlane action update_project_provisioning","title":"Documentation"},{"location":"actions/update_project_provisioning/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_project_provisioning To pass parameters, make use of the : symbol, for example fastlane run update_project_provisioning parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/update_project_provisioning/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/update_project_team/","text":"update_project_team Update Xcode Development Team ID This action updates the Developer Team ID of your Xcode project. update_project_team Supported platforms ios, mac Author @lgaches 2 Examples update_project_team update_project_team( path: \"Example.xcodeproj\", teamid: \"A3ZZVJ7CNY\" ) Parameters Key Description Default path Path to your Xcode project * targets Name of the targets you want to update teamid The Team ID you want to use * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_project_team CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_project_team To pass parameters, make use of the : symbol, for example fastlane run update_project_team parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"update_project_team"},{"location":"actions/update_project_team/#update_project_team","text":"Update Xcode Development Team ID This action updates the Developer Team ID of your Xcode project. update_project_team Supported platforms ios, mac Author @lgaches","title":"update_project_team"},{"location":"actions/update_project_team/#2-examples","text":"update_project_team update_project_team( path: \"Example.xcodeproj\", teamid: \"A3ZZVJ7CNY\" )","title":"2 Examples"},{"location":"actions/update_project_team/#parameters","text":"Key Description Default path Path to your Xcode project * targets Name of the targets you want to update teamid The Team ID you want to use * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/update_project_team/#documentation","text":"To show the documentation in your terminal, run fastlane action update_project_team","title":"Documentation"},{"location":"actions/update_project_team/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_project_team To pass parameters, make use of the : symbol, for example fastlane run update_project_team parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/update_project_team/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/update_urban_airship_configuration/","text":"update_urban_airship_configuration Set Urban Airship plist configuration values This action updates the AirshipConfig.plist needed to configure the Urban Airship SDK at runtime, allowing keys and secrets to easily be set for the Enterprise and Production versions of the application. update_urban_airship_configuration Supported platforms ios Author @kcharwood 1 Example update_urban_airship_configuration( plist_path: \"AirshipConfig.plist\", production_app_key: \"PRODKEY\", production_app_secret: \"PRODSECRET\" ) Parameters Key Description Default plist_path Path to Urban Airship configuration Plist development_app_key The development app key development_app_secret The development app secret production_app_key The production app key production_app_secret The production app secret detect_provisioning_mode Automatically detect provisioning mode * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_urban_airship_configuration CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_urban_airship_configuration To pass parameters, make use of the : symbol, for example fastlane run update_urban_airship_configuration parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"update_urban_airship_configuration"},{"location":"actions/update_urban_airship_configuration/#update_urban_airship_configuration","text":"Set Urban Airship plist configuration values This action updates the AirshipConfig.plist needed to configure the Urban Airship SDK at runtime, allowing keys and secrets to easily be set for the Enterprise and Production versions of the application. update_urban_airship_configuration Supported platforms ios Author @kcharwood","title":"update_urban_airship_configuration"},{"location":"actions/update_urban_airship_configuration/#1-example","text":"update_urban_airship_configuration( plist_path: \"AirshipConfig.plist\", production_app_key: \"PRODKEY\", production_app_secret: \"PRODSECRET\" )","title":"1 Example"},{"location":"actions/update_urban_airship_configuration/#parameters","text":"Key Description Default plist_path Path to Urban Airship configuration Plist development_app_key The development app key development_app_secret The development app secret production_app_key The production app key production_app_secret The production app secret detect_provisioning_mode Automatically detect provisioning mode * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/update_urban_airship_configuration/#documentation","text":"To show the documentation in your terminal, run fastlane action update_urban_airship_configuration","title":"Documentation"},{"location":"actions/update_urban_airship_configuration/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_urban_airship_configuration To pass parameters, make use of the : symbol, for example fastlane run update_urban_airship_configuration parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/update_urban_airship_configuration/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/update_url_schemes/","text":"update_url_schemes Updates the URL schemes in the given Info.plist This action allows you to update the URL schemes of the app before building it. For example, you can use this to set a different URL scheme for the alpha or beta version of the app. update_url_schemes Supported platforms ios, mac Author @kmikael 2 Examples update_url_schemes( path: \"path/to/Info.plist\", url_schemes: [\"com.myapp\"] ) update_url_schemes( path: \"path/to/Info.plist\", update_url_schemes: proc do |schemes| schemes + [\"anotherscheme\"] end ) Parameters Key Description Default path The Plist file's path url_schemes The new URL schemes update_url_schemes Block that is called to update schemes with current schemes passed in as parameter * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_url_schemes CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_url_schemes To pass parameters, make use of the : symbol, for example fastlane run update_url_schemes parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"update_url_schemes"},{"location":"actions/update_url_schemes/#update_url_schemes","text":"Updates the URL schemes in the given Info.plist This action allows you to update the URL schemes of the app before building it. For example, you can use this to set a different URL scheme for the alpha or beta version of the app. update_url_schemes Supported platforms ios, mac Author @kmikael","title":"update_url_schemes"},{"location":"actions/update_url_schemes/#2-examples","text":"update_url_schemes( path: \"path/to/Info.plist\", url_schemes: [\"com.myapp\"] ) update_url_schemes( path: \"path/to/Info.plist\", update_url_schemes: proc do |schemes| schemes + [\"anotherscheme\"] end )","title":"2 Examples"},{"location":"actions/update_url_schemes/#parameters","text":"Key Description Default path The Plist file's path url_schemes The new URL schemes update_url_schemes Block that is called to update schemes with current schemes passed in as parameter * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/update_url_schemes/#documentation","text":"To show the documentation in your terminal, run fastlane action update_url_schemes","title":"Documentation"},{"location":"actions/update_url_schemes/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_url_schemes To pass parameters, make use of the : symbol, for example fastlane run update_url_schemes parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/update_url_schemes/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/upload_app_privacy_details_to_app_store/","text":"upload_app_privacy_details_to_app_store Upload App Privacy Details for an app in App Store Connect Upload App Privacy Details for an app in App Store Connect. For more detail information, view https://docs.fastlane.tools/uploading-app-privacy-details upload_app_privacy_details_to_app_store Supported platforms ios, mac Author @joshdholtz 2 Examples upload_app_privacy_details_to_app_store( username: \"your@email.com\", team_name: \"Your Team\", app_identifier: \"com.your.bundle\" ) upload_app_privacy_details_to_app_store( username: \"your@email.com\", team_name: \"Your Team\", app_identifier: \"com.your.bundle\", json_path: \"fastlane/app_data_usages.json\" ) Parameters Key Description Default username Your Apple ID Username for App Store Connect * app_identifier The bundle identifier of your app * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * json_path Path to the app usage data JSON output_json_path Path to the app usage data JSON file generated by interactive questions ./fastlane/app_privacy_details.json skip_json_file_saving Whether to skip the saving of the JSON file false skip_upload Whether to skip the upload and only create the JSON file with interactive questions false skip_publish Whether to skip the publishing false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action upload_app_privacy_details_to_app_store CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_app_privacy_details_to_app_store To pass parameters, make use of the : symbol, for example fastlane run upload_app_privacy_details_to_app_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"upload_app_privacy_details_to_app_store"},{"location":"actions/upload_app_privacy_details_to_app_store/#upload_app_privacy_details_to_app_store","text":"Upload App Privacy Details for an app in App Store Connect Upload App Privacy Details for an app in App Store Connect. For more detail information, view https://docs.fastlane.tools/uploading-app-privacy-details upload_app_privacy_details_to_app_store Supported platforms ios, mac Author @joshdholtz","title":"upload_app_privacy_details_to_app_store"},{"location":"actions/upload_app_privacy_details_to_app_store/#2-examples","text":"upload_app_privacy_details_to_app_store( username: \"your@email.com\", team_name: \"Your Team\", app_identifier: \"com.your.bundle\" ) upload_app_privacy_details_to_app_store( username: \"your@email.com\", team_name: \"Your Team\", app_identifier: \"com.your.bundle\", json_path: \"fastlane/app_data_usages.json\" )","title":"2 Examples"},{"location":"actions/upload_app_privacy_details_to_app_store/#parameters","text":"Key Description Default username Your Apple ID Username for App Store Connect * app_identifier The bundle identifier of your app * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * json_path Path to the app usage data JSON output_json_path Path to the app usage data JSON file generated by interactive questions ./fastlane/app_privacy_details.json skip_json_file_saving Whether to skip the saving of the JSON file false skip_upload Whether to skip the upload and only create the JSON file with interactive questions false skip_publish Whether to skip the publishing false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/upload_app_privacy_details_to_app_store/#documentation","text":"To show the documentation in your terminal, run fastlane action upload_app_privacy_details_to_app_store","title":"Documentation"},{"location":"actions/upload_app_privacy_details_to_app_store/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_app_privacy_details_to_app_store To pass parameters, make use of the : symbol, for example fastlane run upload_app_privacy_details_to_app_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/upload_app_privacy_details_to_app_store/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/upload_symbols_to_crashlytics/","text":"upload_symbols_to_crashlytics Upload dSYM symbolication files to Crashlytics This action allows you to upload symbolication files to Crashlytics. It's extra useful if you use it to download the latest dSYM files from Apple when you use Bitcode. This action will not fail the build if one of the uploads failed. The reason for that is that sometimes some of dSYM files are invalid, and we don't want them to fail the complete build. upload_symbols_to_crashlytics Supported platforms ios Author @KrauseFx 1 Example upload_symbols_to_crashlytics(dsym_path: \"./App.dSYM.zip\") Parameters Key Description Default dsym_path Path to the DSYM file or zip to upload * dsym_paths Paths to the DSYM files or zips to upload api_token Crashlytics API Key gsp_path Path to GoogleService-Info.plist app_id Firebase Crashlytics APP ID binary_path The path to the upload-symbols file of the Fabric app platform The platform of the app (ios, appletvos, mac) ios dsym_worker_threads The number of threads to use for simultaneous dSYM upload 1 debug Enable debug mode for upload-symbols false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action upload_symbols_to_crashlytics CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_symbols_to_crashlytics To pass parameters, make use of the : symbol, for example fastlane run upload_symbols_to_crashlytics parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"upload_symbols_to_crashlytics"},{"location":"actions/upload_symbols_to_crashlytics/#upload_symbols_to_crashlytics","text":"Upload dSYM symbolication files to Crashlytics This action allows you to upload symbolication files to Crashlytics. It's extra useful if you use it to download the latest dSYM files from Apple when you use Bitcode. This action will not fail the build if one of the uploads failed. The reason for that is that sometimes some of dSYM files are invalid, and we don't want them to fail the complete build. upload_symbols_to_crashlytics Supported platforms ios Author @KrauseFx","title":"upload_symbols_to_crashlytics"},{"location":"actions/upload_symbols_to_crashlytics/#1-example","text":"upload_symbols_to_crashlytics(dsym_path: \"./App.dSYM.zip\")","title":"1 Example"},{"location":"actions/upload_symbols_to_crashlytics/#parameters","text":"Key Description Default dsym_path Path to the DSYM file or zip to upload * dsym_paths Paths to the DSYM files or zips to upload api_token Crashlytics API Key gsp_path Path to GoogleService-Info.plist app_id Firebase Crashlytics APP ID binary_path The path to the upload-symbols file of the Fabric app platform The platform of the app (ios, appletvos, mac) ios dsym_worker_threads The number of threads to use for simultaneous dSYM upload 1 debug Enable debug mode for upload-symbols false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/upload_symbols_to_crashlytics/#documentation","text":"To show the documentation in your terminal, run fastlane action upload_symbols_to_crashlytics","title":"Documentation"},{"location":"actions/upload_symbols_to_crashlytics/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_symbols_to_crashlytics To pass parameters, make use of the : symbol, for example fastlane run upload_symbols_to_crashlytics parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/upload_symbols_to_crashlytics/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/upload_symbols_to_sentry/","text":"upload_symbols_to_sentry Upload dSYM symbolication files to Sentry Please use the sentry plugin instead. Install using fastlane add_plugin sentry . Replace upload_symbols_to_sentry(...) with sentry_upload_dsym(...) . This action allows you to upload symbolication files to Sentry. It's extra useful if you use it to download the latest dSYM files from Apple when you use Bitcode. upload_symbols_to_sentry Supported platforms ios Author @joshdholtz Returns The uploaded dSYM path(s) 1 Example upload_symbols_to_sentry( auth_token: \"...\", org_slug: \"...\", project_slug: \"...\", dsym_path: \"./App.dSYM.zip\" ) Parameters Key Description Default api_host API host url for Sentry https://app.getsentry.com/api/0 api_key API key for Sentry auth_token Authentication token for Sentry org_slug Organization slug for Sentry project project_slug Project slug for Sentry dsym_path Path to your symbols file. For iOS and Mac provide path to app.dSYM.zip * dsym_paths Path to an array of your symbols file. For iOS and Mac provide path to app.dSYM.zip * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action upload_symbols_to_sentry CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_symbols_to_sentry To pass parameters, make use of the : symbol, for example fastlane run upload_symbols_to_sentry parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"upload_symbols_to_sentry"},{"location":"actions/upload_symbols_to_sentry/#upload_symbols_to_sentry","text":"Upload dSYM symbolication files to Sentry Please use the sentry plugin instead. Install using fastlane add_plugin sentry . Replace upload_symbols_to_sentry(...) with sentry_upload_dsym(...) . This action allows you to upload symbolication files to Sentry. It's extra useful if you use it to download the latest dSYM files from Apple when you use Bitcode. upload_symbols_to_sentry Supported platforms ios Author @joshdholtz Returns The uploaded dSYM path(s)","title":"upload_symbols_to_sentry"},{"location":"actions/upload_symbols_to_sentry/#1-example","text":"upload_symbols_to_sentry( auth_token: \"...\", org_slug: \"...\", project_slug: \"...\", dsym_path: \"./App.dSYM.zip\" )","title":"1 Example"},{"location":"actions/upload_symbols_to_sentry/#parameters","text":"Key Description Default api_host API host url for Sentry https://app.getsentry.com/api/0 api_key API key for Sentry auth_token Authentication token for Sentry org_slug Organization slug for Sentry project project_slug Project slug for Sentry dsym_path Path to your symbols file. For iOS and Mac provide path to app.dSYM.zip * dsym_paths Path to an array of your symbols file. For iOS and Mac provide path to app.dSYM.zip * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/upload_symbols_to_sentry/#documentation","text":"To show the documentation in your terminal, run fastlane action upload_symbols_to_sentry","title":"Documentation"},{"location":"actions/upload_symbols_to_sentry/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_symbols_to_sentry To pass parameters, make use of the : symbol, for example fastlane run upload_symbols_to_sentry parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/upload_symbols_to_sentry/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/upload_to_app_store/","text":"upload_to_app_store Upload metadata and binary to App Store Connect (via deliver ) deliver uploads screenshots, metadata and binaries to App Store Connect. Use deliver to submit your app for App Store review. Features \u2022 Quick Start \u2022 Usage \u2022 Tips deliver is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Features Upload hundreds of localized screenshots completely automatically Upload a new ipa/pkg file to App Store Connect without Xcode from any Mac Maintain your app metadata locally and push changes back to App Store Connect Easily implement a real Continuous Deployment process using fastlane Store the configuration in git to easily deploy from any Mac, including your Continuous Integration server Get a HTML preview of the fetched metadata before uploading the app metadata and screenshots to iTC Automatically uses precheck to ensure your app has the highest chances of passing app review the first time To upload builds to TestFlight check out pilot . Quick Start The guide will create all the necessary files for you, using the existing app metadata from App Store Connect. cd [your_project_folder] fastlane deliver init Enter your App Store Connect credentials Enter your app identifier Enjoy a good drink, while the computer does all the work for you From now on, you can run fastlane deliver to deploy a new update, or just upload new app metadata and screenshots. Usage Check out your local ./fastlane/metadata and ./fastlane/screenshots folders (if you don't use fastlane it's ./metadata instead) You'll see your metadata from App Store Connect. Feel free to store the metadata in git (not the screenshots). You can now modify it locally and push the changes back to App Store Connect. Run fastlane deliver to upload the app metadata from your local machine fastlane deliver Provide the path to an ipa file to upload and submit your app for review: fastlane deliver --ipa \"App.ipa\" --submit_for_review or you can specify path to pkg file for macOS apps: fastlane deliver --pkg \"MacApp.pkg\" If you use fastlane you don't have to manually specify the path to your ipa / pkg file. This is just a small sub-set of what you can do with deliver , check out the full documentation in #more-options Download existing screenshots from App Store Connect fastlane deliver download_screenshots Download existing metadata from App Store Connect fastlane deliver download_metadata To get a list of available options run fastlane action deliver Use in a Fastfile deliver deliver( submit_for_review: true, force: true, metadata_path: \"./metadata\" ) More options View all available options and their valid values Available options All the options below can easily be added to your Deliverfile . The great thing: if you use fastlane you can use all these options from your Fastfile too, for example: deliver( submit_for_review: true, metadata_path: \"../folder\" ) app_identifier The bundle identifier (e.g. \"com.krausefx.app\") username Your Apple ID email address ipa A path to a signed ipa file, which will be uploaded. If you don't provide this value, only app metadata will be uploaded. If you want to submit the app for review make sure to either use fastlane deliver --submit_for_review or add submit_for_review true to your Deliverfile ipa(\"App.ipa\") if you use fastlane the ipa file will automatically be detected. pkg A path to a signed pkg file, which will be uploaded. Submission logic of ipa applies to pkg files. pkg(\"MacApp.pkg\") app_version Optional, as it is usually automatically detected. Specify the version that should be created / edited on App Store Connect: app_version(\"2.0\") skip_app_version_update In the case if deliver uploads your application to App Store Connect it will automatically update \"Prepare for submission\" app version (which could be found on App Store Connect->My Apps->App Store page) The option allows uploading your app without updating \"Prepare for submission\" version. This could be useful in the case if you are generating a lot of uploads while not submitting the latest build for Apple review. The default value is false. skip_app_version_update(true) submit_for_review Add this to your Deliverfile to automatically submit the app for review after uploading metadata/binary. This will select the latest build. submit_for_review(true) screenshots_path A path to a folder containing subfolders for each language. This will automatically detect the device type based on the image resolution. Also includes \uf8ff Watch Support. metadata_path Path to the metadata you want to use. The folder has to be structured like this If you run deliver init this will automatically be created for you. force force(true) If set to true , no HTML report will be generated before the actual upload. You can also pass --force when calling deliver . price_tier Pass the price tier as number. This will be active from the current day. price_tier 0 trade_representative_contact_information Trade Representative Contact information for Korean App Store. Available options: first_name , last_name , address_line1 , address_line2 , address_line3 , city_name , state , country , postal_code , phone_number , email_address , is_displayed_on_app_store . trade_representative_contact_information( first_name: \"Felix\", last_name: \"Krause\", address_line1: \"1 Infinite Loop\", address_line2: \"\", address_line3: null, city_name: \"Cupertino\", state: \"California\", country: \"United States\", postal_code: \"95014\", phone_number: \"+43 123123123\", email_address: \"github@krausefx.com\", ) You can also provide these values by creating files in a metadata/trade_representative_contact_information/ directory. The file names must match the pattern .txt (e.g. first_name.txt , address_line1.txt etc.). The contents of each file will be used as the value for the matching key. Values provided in the Deliverfile or Fastfile will be take priority over values from these files. is_displayed_on_app_store is the option on App Store Connect described as: Display Trade Representative Contact Information on the Korean App Store app_review_information Contact information for the app review team. Available options: first_name , last_name , phone_number , email_address , demo_user , demo_password , notes . app_review_information( first_name: \"Felix\", last_name: \"Krause\", phone_number: \"+43 123123123\", email_address: \"github@krausefx.com\", demo_user: \"demoUser\", demo_password: \"demoPass\", notes: \"such notes, very text\" ) You can also provide these values by creating files in a metadata/review_information/ directory. The file names must match the pattern .txt (e.g. first_name.txt , notes.txt etc.). The contents of each file will be used as the value for the matching key. Values provided in the Deliverfile or Fastfile will be take priority over values from these files. app_review_attachment_file You can provide additional information to the app review team as a file attachment. As of this writing, Apple supports following file attachment formats: .pdf, .doc, .docx, .rtf, .pages, .xls, .xlsx, .numbers, .zip, .rar, .plist, .crash, .jpg, .png, .mp4, or .avi. Provide an empty string (i.e. \"\", not null) to remove the existing attachment file (if any) from the review information being edited. app_review_attachment_file: \"./readme.txt\" submission_information Must be a hash. This is used as the last step for the deployment process, where you define if you use third party content or use encryption. A list of available options . submission_information({ add_id_info_serves_ads: true, ... }) automatic_release Should the app be released to all users once Apple approves it? If set to false , you'll have to manually release the update once it got approved. automatic_release(true) # or automatic_release(false) phased_release Enable or disable the phased releases feature of App Store Connect. If set to true , the update will be released over a 7 day period. Default behavior is to leave whatever you defined on App Store Connect. phased_release(true) # or phased_release(false) reset_ratings Reset your app's summary rating for all territories. If set to true , it will reset rating when this version is released. Default behavior is to keep existing rating. reset_ratings(true) # or reset_ratings(false) app_rating_config_path You can set the app age ratings using deliver . You'll have to create and store a JSON configuration file. Copy the template to your project folder and pass the path to the JSON file using the app_rating_config_path option. The keys/values on the top allow one of 3 strings: \"NONE\", \"INFREQUENT_OR_MILD\" or \"FREQUENT_OR_INTENSE\", and the items on the bottom allow false or true. More information in #reference . Metadata All options below are useful if you want to specify certain app metadata in your Deliverfile or Fastfile Localized Localized values should be set like this description({ 'en-US' => \"English Description here\", 'de-DE' => \"Deutsche Beschreibung hier\" }) name The title/name of the app subtitle Localized subtitle of the app subtitle( \"en-US\" => \"Awesome English subtitle here\", \"de-DE\" => \"Jetzt mit deutschen Untertiteln!\" ) description The description of the app release_notes The release_notes (What's new / Changelog) of the latest version support_url, marketing_url, privacy_url These URLs are shown in the AppStore keywords Keywords separated using a comma. keywords( \"en-US\" => \"Keyword1, Keyword2\" ) promotional_text Localized promotional text promotional_text( \"en-US\" => \"Hey, you should totally buy our app, it's the best\", \"de-DE\" => \"App kaufen bitte\" ) app_icon A path to a new app icon, which must be exactly 1024x1024px app_icon('./AppIcon.png') apple_watch_app_icon A path to a new app icon for the \uf8ff Watch, which must be exactly 1024x1024px apple_watch_app_icon('./AppleWatchAppIcon.png') platform The platform of your application (a.e. ios, osx). This option is optional. The default value is \"ios\" and deliver should be able to figure out the platform from your binary. However, in the case if multiple binaries present, you can specify a platform which you want to deliver explicitly. The available options: 'ios' 'appletvos' 'osx' Non-Localized copyright The up to date copyright information. copyright(\"#{Time.now.year} Felix Krause\") primary_category The english name of the category you want to set (e.g. Business , Books ) See #reference for a list of available categories secondary_category The english name of the secondary category you want to set primary_first_sub_category The english name of the primary first sub category you want to set primary_second_sub_category The english name of the primary second sub category you want to set secondary_first_sub_category The english name of the secondary first sub category you want to set secondary_second_sub_category The english name of the secondary second sub category you want to set Submit Build deliver allows you to promote an existing build to production. Below are examples to select a previously uploaded build and submit it for review. fastlane deliver submit_build --build_number 830 Submit build in a Fastfile lane :submit_review do deliver( build_number: '830', submit_for_review: true, automatic_release: true, force: true, # Skip HTMl report verification skip_metadata: true, skip_screenshots: true, skip_binary_upload: true ) end Omit build_number to let fastlane automatically select the latest build number for the current version being edited for release from App Store Connect. Compliance and IDFA settings Use the submission_information parameter for additional submission specifiers, including compliance and IDFA settings. Look at the Spaceship's app_submission.rb file for options. See this example . fastlane deliver submit_build --build_number 830 --submission_information \"{\\\"export_compliance_uses_encryption\\\": false, \\\"add_id_info_uses_idfa\\\": false }\" App Privacy Details Starting on December 8, 2020, Apple announced that developers are required to provide app privacy details that will help users understand an app's privacy practies. deliver does not allow for updating of this information but this can be done with the upload_app_privacy_details_to_app_store action. More information on Uploading App Privacy Details Credentials A detailed description about how your credentials are handled is available in a credentials_manager . How does this thing even work? Is magic involved? \ud83c\udfa9 Your password will be stored in the macOS keychain, but can also be passed using environment variables. (More information available on CredentialsManager ) Before actually uploading anything to iTunes, deliver will generate a HTML summary of the collected data. deliver uses the following techniques under the hood: The iTMSTransporter tool is used to upload the binary to App Store Connect. iTMSTransporter is a command line tool provided by Apple. For all metadata related actions deliver uses spaceship Tips Available language codes ar-SA, ca, cs, da, de-DE, el, en-AU, en-CA, en-GB, en-US, es-ES, es-MX, fi, fr-CA, fr-FR, he, hi, hr, hu, id, it, ja, ko, ms, nl-NL, no, pl, pt-BR, pt-PT, ro, ru, sk, sv, th, tr, uk, vi, zh-Hans, zh-Hant Available Metadata Folder Options deliver allows for metadata to be set through .txt files in the metadata folder. This metadata folder location is defaulted to ./fastlane/metadata but can be overridden through the metadata_path parameter. Below are all allowed metadata options. Non-Localized Metadata Key Editable While Live Directory Filename copyright Yes copyright.txt primary_category No primary_category.txt secondary_category No secondary_category.txt primary_first_sub_category No primary_first_sub_category.txt primary_second_sub_category No primary_second_sub_category.txt secondary_first_sub_category No secondary_first_sub_category.txt secondary_second_sub_category No secondary_second_sub_category.txt Localized Metadata Key Editable While Live Directory Filename name No // name.txt subtitle No // subtitle.txt privacy_url Yes // privacy_url.txt apple_tv_privacy_policy No // apple_tv_privacy_policy.txt description Yes // description.txt keywords No // keywords.txt release_notes Yes // release_notes.txt support_url Yes // support_url.txt marketing_url Yes // marketing_url.txt promotional_text Yes // promotional_text.txt Review Information Metadata Key Editable While Live Directory Filename Deprecated Filename first_name Yes /review_information first_name.txt review_first_name.txt last_name Yes /review_information last_name.txt review_last_name.txt phone_number Yes /review_information phone_number.txt review_phone_number.txt email_address Yes /review_information email_address.txt review_email.txt demo_user Yes /review_information demo_user.txt review_demo_user.txt demo_password Yes /review_information demo_password.txt review_demo_password.txt notes Yes /review_information notes.txt review_notes.txt Reference View all available categories, etc. Available Categories FOOD_AND_DRINK BUSINESS EDUCATION SOCIAL_NETWORKING BOOKS SPORTS FINANCE REFERENCE GRAPHICS_AND_DESIGN DEVELOPER_TOOLS HEALTH_AND_FITNESS MUSIC WEATHER TRAVEL ENTERTAINMENT STICKERS GAMES LIFESTYLE MEDICAL MAGAZINES_AND_NEWSPAPERS UTILITIES SHOPPING PRODUCTIVITY NEWS PHOTO_AND_VIDEO NAVIGATION Available Game Subcategories MZGenre.Action MZGenre.Adventure MZGenre.Arcade MZGenre.Board MZGenre.Card MZGenre.Casino MZGenre.Dice MZGenre.Educational MZGenre.Family MZGenre.Music MZGenre.Puzzle MZGenre.Racing MZGenre.RolePlaying MZGenre.Simulation MZGenre.Sports MZGenre.Strategy MZGenre.Trivia MZGenre.Word GAMES_SPORTS GAMES_WORD GAMES_MUSIC GAMES_ADVENTURE GAMES_ACTION GAMES_ROLE_PLAYING GAMES_CASUAL GAMES_BOARD GAMES_TRIVIA GAMES_CARD GAMES_PUZZLE GAMES_CASINO GAMES_STRATEGY GAMES_SIMULATION GAMES_RACING GAMES_FAMILY Available Stickers Subcategories STICKERS_PLACES_AND_OBJECTS STICKERS_EMOJI_AND_EXPRESSIONS STICKERS_CELEBRATIONS STICKERS_CELEBRITIES STICKERS_MOVIES_AND_TV STICKERS_SPORTS_AND_ACTIVITIES STICKERS_EATING_AND_DRINKING STICKERS_CHARACTERS STICKERS_ANIMALS STICKERS_FASHION STICKERS_ART STICKERS_GAMING STICKERS_KIDS_AND_FAMILY STICKERS_PEOPLE STICKERS_MUSIC Available age rating groups Non Boolean Values 0: None (Legacy value, use NONE instead) 1: Infrequent/Mild (Legacy value, use INFREQUENT_OR_MILD instead) 2: Frequent/Intense (Legacy value, use FREQUENT_OR_INTENSE instead) NONE INFREQUENT_OR_MILD FREQUENT_OR_INTENSE Keys 'alcoholTobaccoOrDrugUseOrReferences' 'contests' 'gamblingSimulated' 'medicalOrTreatmentInformation' 'profanityOrCrudeHumor' 'sexualContentGraphicAndNudity' 'sexualContentOrNudity' 'horrorOrFearThemes' 'matureOrSuggestiveThemes' 'unrestrictedWebAccess' 'violenceCartoonOrFantasy' 'violenceRealisticProlongedGraphicOrSadistic' 'violenceRealistic' 'kidsAgeBand' Boolean Keys gambling 'seventeenPlus' unrestrictedWebAccess Kids Age Values FIVE_AND_UNDER SIX_TO_EIGHT NINE_TO_ELEVEN null Keys kidsAgeBand Default values Deliver has a special default language code which allows you to provide values that are not localized, and which will be used as defaults when you don\u2019t provide a specific localized value. In order to use default , you will need to tell deliver which languages your app uses. You can do this in either of two ways: Create the folders named with the language in the metadata folder (i.e. fastlane/metadata/en-US or fastlane/metadata/de-DE) Add the following to your Deliverfile languages(['en-US','de-DE']) You can use this either in json within your Deliverfile and/or as folders in your metadata folder. deliver will take the union of both language sets from the Deliverfile and from the metadata folder and create on single set of languages which will be enabled. Imagine that you have localized data for the following language codes: en-US, de-DE, el, it You can set the following in your Deliverfile release_notes({ 'default' => \"Shiny and new\", 'de-DE' => \"glaenzend und neu\" }) Deliver will use \"Shiny and new\" for en-US, el and it. It will use \"glaenzend und neu\" for de-DE. You can do the same with folders default keywords.txt marketing_url.txt name.txt privacy_url.txt support_url.txt release_notes.txt en-US description.txt de-DE description.txt el description.txt it description.txt In this case, default values for keywords, urls, name and release notes are used in all localizations, but each language has a fully localized description Uploading screenshots for \"iPad Pro (12.9-inch) (3rd generation)\" Starting March 20, 2019 Apple's App Store requires 12.9-inch iPad Pro (3rd generation) screenshots additionally to the iPad Pro 2nd generation screenshots . As fastlane historically uses the screenshot dimensions to determine the \"display family\" of a screenshot, this poses a problem as both use the same dimensions and are recognized as the same device family. To solve this a screenshot of a 12.9-inch iPad Pro (3rd generation) must contain either the string iPad Pro (12.9-inch) (3rd generation) , IPAD_PRO_3GEN_129 , or ipadPro129 (Apple's internal naming of the display family for the 3rd generation iPad Pro) in its filename to be assigned the correct display family and to be uploaded to the correct screenshot slot in your app's metadata. Automatically create screenshots If you want to integrate deliver with snapshot , check out fastlane ! Jenkins integration Detailed instructions about how to set up deliver and fastlane in Jenkins can be found in the fastlane README . Firewall Issues deliver uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" fastlane deliver HTTP Proxy iTunes Transporter is a Java application bundled with Xcode. In addition to utilizing the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" , you need to configure the transporter application to use the proxy independently from the system proxy or any environment proxy settings. You can find the configuration file within Xcode: for Xcode11 and later TOOLS_PATH=$( xcode-select -p ) REL_PATH='../SharedFrameworks/ContentDeliveryServices.framework/Versions/A/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" for Xcode10 or earlier TOOLS_PATH=$( xcode-select -p ) REL_PATH='../Applications/Application Loader.app/Contents/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" Add necessary proxy configuration values to the net.properties according to Java Proxy Configuration . As an alternative to editing the properties files, proxy configuration can be specified on the command line directly: DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV -Dhttp.proxyHost=myproxy.com -Dhttp.proxyPort=8080\" Limit App Store Connect has a limit of 150 binary uploads per day. Editing the Deliverfile Change syntax highlighting to Ruby . Provider Short Name If you are on multiple App Store Connect teams, deliver needs a provider short name to know where to upload your binary. deliver will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option. upload_to_app_store Supported platforms ios, mac Author @KrauseFx 3 Examples upload_to_app_store( force: true, # Set to true to skip verification of HTML preview itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) deliver # alias for \"upload_to_app_store\" appstore # alias for \"upload_to_app_store\" Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of your app * app_version The version that should be edited or created ipa Path to your ipa file * pkg Path to your pkg file * build_number If set the given build number (already uploaded to iTC) will be used instead of the current built one platform The platform to use (optional) ios edit_live Modify live metadata, this option disables ipa upload and screenshot upload false use_live_version Force usage of live version rather than edit version false metadata_path Path to the folder containing the metadata files screenshots_path Path to the folder containing the screenshots skip_binary_upload Skip uploading an ipa or pkg to App Store Connect false skip_screenshots Don't upload the screenshots false skip_metadata Don't upload the metadata (e.g. title, description). This will still upload screenshots false skip_app_version_update Don\u2019t create or update the app version that is being prepared for submission false force Skip verification of HTML preview file false overwrite_screenshots Clear all previously uploaded screenshots before uploading the new ones false sync_screenshots Sync screenshots with local ones. This is currently beta option so set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well false submit_for_review Submit the new version for Review after uploading everything false verify_only Verifies archive with App Store Connect without uploading false reject_if_possible Rejects the previously submitted build if it's in a state where it's possible false automatic_release Should the app be automatically released once it's approved? (Can not be used together with auto_release_date ) auto_release_date Date in milliseconds for automatically releasing on pending approval (Can not be used together with automatic_release ) phased_release Enable the phased release feature of iTC false reset_ratings Reset the summary rating when you release a new version of the application false price_tier The price tier of this application app_rating_config_path Path to the app rating's config submission_information Extra information for the submission (e.g. compliance specifications, IDFA settings) team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your Developer Portal team, if you're in multiple teams. Different from your iTC team ID! * dev_portal_team_name The name of your Developer Portal team if you're in multiple teams * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column * run_precheck_before_submit Run precheck before submitting to app review true precheck_default_rule_level The default precheck rule level unless otherwise configured :warn individual_metadata_items DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - An array of localized metadata items to upload individually by language so that errors can be identified. E.g. ['name', 'keywords', 'description']. Note: slow app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the app icon apple_watch_app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the Apple Watch app icon copyright Metadata: The copyright notice primary_category Metadata: The english name of the primary category (e.g. Business , Books ) secondary_category Metadata: The english name of the secondary category (e.g. Business , Books ) primary_first_sub_category Metadata: The english name of the primary first sub category (e.g. Educational , Puzzle ) primary_second_sub_category Metadata: The english name of the primary second sub category (e.g. Educational , Puzzle ) secondary_first_sub_category Metadata: The english name of the secondary first sub category (e.g. Educational , Puzzle ) secondary_second_sub_category Metadata: The english name of the secondary second sub category (e.g. Educational , Puzzle ) trade_representative_contact_information DEPRECATED! This is no longer used by App Store Connect - Metadata: A hash containing the trade representative contact information app_review_information Metadata: A hash containing the review information app_review_attachment_file Metadata: Path to the app review attachment file description Metadata: The localised app description name Metadata: The localised app name subtitle Metadata: The localised app subtitle keywords Metadata: An array of localised keywords promotional_text Metadata: An array of localised promotional texts release_notes Metadata: Localised release notes for this version privacy_url Metadata: Localised privacy url apple_tv_privacy_policy Metadata: Localised Apple TV privacy policy text support_url Metadata: Localised support url marketing_url Metadata: Localised marketing url languages Metadata: List of languages to activate ignore_language_directory_validation Ignore errors when invalid languages are found in metadata and screenshot directories false precheck_include_in_app_purchases Should precheck check in-app purchases? true app The (spaceship) app ID of the app you want to use/modify * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action upload_to_app_store CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_to_app_store To pass parameters, make use of the : symbol, for example fastlane run upload_to_app_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"upload_to_app_store"},{"location":"actions/upload_to_app_store/#upload_to_app_store","text":"Upload metadata and binary to App Store Connect (via deliver ) deliver uploads screenshots, metadata and binaries to App Store Connect. Use deliver to submit your app for App Store review. Features \u2022 Quick Start \u2022 Usage \u2022 Tips","title":"upload_to_app_store"},{"location":"actions/upload_to_app_store/#features","text":"Upload hundreds of localized screenshots completely automatically Upload a new ipa/pkg file to App Store Connect without Xcode from any Mac Maintain your app metadata locally and push changes back to App Store Connect Easily implement a real Continuous Deployment process using fastlane Store the configuration in git to easily deploy from any Mac, including your Continuous Integration server Get a HTML preview of the fetched metadata before uploading the app metadata and screenshots to iTC Automatically uses precheck to ensure your app has the highest chances of passing app review the first time To upload builds to TestFlight check out pilot .","title":"Features"},{"location":"actions/upload_to_app_store/#quick-start","text":"The guide will create all the necessary files for you, using the existing app metadata from App Store Connect. cd [your_project_folder] fastlane deliver init Enter your App Store Connect credentials Enter your app identifier Enjoy a good drink, while the computer does all the work for you From now on, you can run fastlane deliver to deploy a new update, or just upload new app metadata and screenshots.","title":"Quick Start"},{"location":"actions/upload_to_app_store/#usage","text":"Check out your local ./fastlane/metadata and ./fastlane/screenshots folders (if you don't use fastlane it's ./metadata instead) You'll see your metadata from App Store Connect. Feel free to store the metadata in git (not the screenshots). You can now modify it locally and push the changes back to App Store Connect. Run fastlane deliver to upload the app metadata from your local machine fastlane deliver Provide the path to an ipa file to upload and submit your app for review: fastlane deliver --ipa \"App.ipa\" --submit_for_review or you can specify path to pkg file for macOS apps: fastlane deliver --pkg \"MacApp.pkg\" If you use fastlane you don't have to manually specify the path to your ipa / pkg file. This is just a small sub-set of what you can do with deliver , check out the full documentation in #more-options Download existing screenshots from App Store Connect fastlane deliver download_screenshots Download existing metadata from App Store Connect fastlane deliver download_metadata To get a list of available options run fastlane action deliver","title":"Usage"},{"location":"actions/upload_to_app_store/#more-options","text":"View all available options and their valid values","title":"More options"},{"location":"actions/upload_to_app_store/#available-options","text":"All the options below can easily be added to your Deliverfile . The great thing: if you use fastlane you can use all these options from your Fastfile too, for example: deliver( submit_for_review: true, metadata_path: \"../folder\" )","title":"Available options"},{"location":"actions/upload_to_app_store/#metadata","text":"All options below are useful if you want to specify certain app metadata in your Deliverfile or Fastfile","title":"Metadata"},{"location":"actions/upload_to_app_store/#submit-build","text":"deliver allows you to promote an existing build to production. Below are examples to select a previously uploaded build and submit it for review. fastlane deliver submit_build --build_number 830","title":"Submit Build"},{"location":"actions/upload_to_app_store/#credentials","text":"A detailed description about how your credentials are handled is available in a credentials_manager .","title":"Credentials"},{"location":"actions/upload_to_app_store/#tips","text":"","title":"Tips"},{"location":"actions/upload_to_app_store/#available-language-codes","text":"ar-SA, ca, cs, da, de-DE, el, en-AU, en-CA, en-GB, en-US, es-ES, es-MX, fi, fr-CA, fr-FR, he, hi, hr, hu, id, it, ja, ko, ms, nl-NL, no, pl, pt-BR, pt-PT, ro, ru, sk, sv, th, tr, uk, vi, zh-Hans, zh-Hant","title":"Available language codes"},{"location":"actions/upload_to_app_store/#available-metadata-folder-options","text":"deliver allows for metadata to be set through .txt files in the metadata folder. This metadata folder location is defaulted to ./fastlane/metadata but can be overridden through the metadata_path parameter. Below are all allowed metadata options.","title":"Available Metadata Folder Options"},{"location":"actions/upload_to_app_store/#reference","text":"View all available categories, etc.","title":"Reference"},{"location":"actions/upload_to_app_store/#default-values","text":"Deliver has a special default language code which allows you to provide values that are not localized, and which will be used as defaults when you don\u2019t provide a specific localized value. In order to use default , you will need to tell deliver which languages your app uses. You can do this in either of two ways: Create the folders named with the language in the metadata folder (i.e. fastlane/metadata/en-US or fastlane/metadata/de-DE) Add the following to your Deliverfile languages(['en-US','de-DE']) You can use this either in json within your Deliverfile and/or as folders in your metadata folder. deliver will take the union of both language sets from the Deliverfile and from the metadata folder and create on single set of languages which will be enabled. Imagine that you have localized data for the following language codes: en-US, de-DE, el, it You can set the following in your Deliverfile release_notes({ 'default' => \"Shiny and new\", 'de-DE' => \"glaenzend und neu\" }) Deliver will use \"Shiny and new\" for en-US, el and it. It will use \"glaenzend und neu\" for de-DE. You can do the same with folders default keywords.txt marketing_url.txt name.txt privacy_url.txt support_url.txt release_notes.txt en-US description.txt de-DE description.txt el description.txt it description.txt In this case, default values for keywords, urls, name and release notes are used in all localizations, but each language has a fully localized description","title":"Default values"},{"location":"actions/upload_to_app_store/#uploading-screenshots-for-ipad-pro-129-inch-3rd-generation","text":"Starting March 20, 2019 Apple's App Store requires 12.9-inch iPad Pro (3rd generation) screenshots additionally to the iPad Pro 2nd generation screenshots . As fastlane historically uses the screenshot dimensions to determine the \"display family\" of a screenshot, this poses a problem as both use the same dimensions and are recognized as the same device family. To solve this a screenshot of a 12.9-inch iPad Pro (3rd generation) must contain either the string iPad Pro (12.9-inch) (3rd generation) , IPAD_PRO_3GEN_129 , or ipadPro129 (Apple's internal naming of the display family for the 3rd generation iPad Pro) in its filename to be assigned the correct display family and to be uploaded to the correct screenshot slot in your app's metadata.","title":"Uploading screenshots for \"iPad Pro (12.9-inch) (3rd generation)\""},{"location":"actions/upload_to_app_store/#automatically-create-screenshots","text":"If you want to integrate deliver with snapshot , check out fastlane !","title":"Automatically create screenshots"},{"location":"actions/upload_to_app_store/#jenkins-integration","text":"Detailed instructions about how to set up deliver and fastlane in Jenkins can be found in the fastlane README .","title":"Jenkins integration"},{"location":"actions/upload_to_app_store/#firewall-issues","text":"deliver uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" fastlane deliver","title":"Firewall Issues"},{"location":"actions/upload_to_app_store/#http-proxy","text":"iTunes Transporter is a Java application bundled with Xcode. In addition to utilizing the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" , you need to configure the transporter application to use the proxy independently from the system proxy or any environment proxy settings. You can find the configuration file within Xcode: for Xcode11 and later TOOLS_PATH=$( xcode-select -p ) REL_PATH='../SharedFrameworks/ContentDeliveryServices.framework/Versions/A/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" for Xcode10 or earlier TOOLS_PATH=$( xcode-select -p ) REL_PATH='../Applications/Application Loader.app/Contents/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" Add necessary proxy configuration values to the net.properties according to Java Proxy Configuration . As an alternative to editing the properties files, proxy configuration can be specified on the command line directly: DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV -Dhttp.proxyHost=myproxy.com -Dhttp.proxyPort=8080\"","title":"HTTP Proxy"},{"location":"actions/upload_to_app_store/#limit","text":"App Store Connect has a limit of 150 binary uploads per day.","title":"Limit"},{"location":"actions/upload_to_app_store/#editing-the-deliverfile","text":"Change syntax highlighting to Ruby .","title":"Editing the Deliverfile"},{"location":"actions/upload_to_app_store/#provider-short-name","text":"If you are on multiple App Store Connect teams, deliver needs a provider short name to know where to upload your binary. deliver will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option. upload_to_app_store Supported platforms ios, mac Author @KrauseFx","title":"Provider Short Name"},{"location":"actions/upload_to_app_store/#3-examples","text":"upload_to_app_store( force: true, # Set to true to skip verification of HTML preview itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) deliver # alias for \"upload_to_app_store\" appstore # alias for \"upload_to_app_store\"","title":"3 Examples"},{"location":"actions/upload_to_app_store/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of your app * app_version The version that should be edited or created ipa Path to your ipa file * pkg Path to your pkg file * build_number If set the given build number (already uploaded to iTC) will be used instead of the current built one platform The platform to use (optional) ios edit_live Modify live metadata, this option disables ipa upload and screenshot upload false use_live_version Force usage of live version rather than edit version false metadata_path Path to the folder containing the metadata files screenshots_path Path to the folder containing the screenshots skip_binary_upload Skip uploading an ipa or pkg to App Store Connect false skip_screenshots Don't upload the screenshots false skip_metadata Don't upload the metadata (e.g. title, description). This will still upload screenshots false skip_app_version_update Don\u2019t create or update the app version that is being prepared for submission false force Skip verification of HTML preview file false overwrite_screenshots Clear all previously uploaded screenshots before uploading the new ones false sync_screenshots Sync screenshots with local ones. This is currently beta option so set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well false submit_for_review Submit the new version for Review after uploading everything false verify_only Verifies archive with App Store Connect without uploading false reject_if_possible Rejects the previously submitted build if it's in a state where it's possible false automatic_release Should the app be automatically released once it's approved? (Can not be used together with auto_release_date ) auto_release_date Date in milliseconds for automatically releasing on pending approval (Can not be used together with automatic_release ) phased_release Enable the phased release feature of iTC false reset_ratings Reset the summary rating when you release a new version of the application false price_tier The price tier of this application app_rating_config_path Path to the app rating's config submission_information Extra information for the submission (e.g. compliance specifications, IDFA settings) team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your Developer Portal team, if you're in multiple teams. Different from your iTC team ID! * dev_portal_team_name The name of your Developer Portal team if you're in multiple teams * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column * run_precheck_before_submit Run precheck before submitting to app review true precheck_default_rule_level The default precheck rule level unless otherwise configured :warn individual_metadata_items DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - An array of localized metadata items to upload individually by language so that errors can be identified. E.g. ['name', 'keywords', 'description']. Note: slow app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the app icon apple_watch_app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the Apple Watch app icon copyright Metadata: The copyright notice primary_category Metadata: The english name of the primary category (e.g. Business , Books ) secondary_category Metadata: The english name of the secondary category (e.g. Business , Books ) primary_first_sub_category Metadata: The english name of the primary first sub category (e.g. Educational , Puzzle ) primary_second_sub_category Metadata: The english name of the primary second sub category (e.g. Educational , Puzzle ) secondary_first_sub_category Metadata: The english name of the secondary first sub category (e.g. Educational , Puzzle ) secondary_second_sub_category Metadata: The english name of the secondary second sub category (e.g. Educational , Puzzle ) trade_representative_contact_information DEPRECATED! This is no longer used by App Store Connect - Metadata: A hash containing the trade representative contact information app_review_information Metadata: A hash containing the review information app_review_attachment_file Metadata: Path to the app review attachment file description Metadata: The localised app description name Metadata: The localised app name subtitle Metadata: The localised app subtitle keywords Metadata: An array of localised keywords promotional_text Metadata: An array of localised promotional texts release_notes Metadata: Localised release notes for this version privacy_url Metadata: Localised privacy url apple_tv_privacy_policy Metadata: Localised Apple TV privacy policy text support_url Metadata: Localised support url marketing_url Metadata: Localised marketing url languages Metadata: List of languages to activate ignore_language_directory_validation Ignore errors when invalid languages are found in metadata and screenshot directories false precheck_include_in_app_purchases Should precheck check in-app purchases? true app The (spaceship) app ID of the app you want to use/modify * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/upload_to_app_store/#documentation","text":"To show the documentation in your terminal, run fastlane action upload_to_app_store","title":"Documentation"},{"location":"actions/upload_to_app_store/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_to_app_store To pass parameters, make use of the : symbol, for example fastlane run upload_to_app_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/upload_to_app_store/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/upload_to_play_store/","text":"upload_to_play_store Upload metadata, screenshots and binaries to Google Play (via supply ) Command line tool for updating Android apps and their metadata on the Google Play Store supply uploads app metadata, screenshots, binaries, and app bundles to Google Play. You can also select tracks for builds and promote builds to production. Features \u2022 Setup \u2022 Quick Start \u2022 Commands \u2022 Uploading an APK \u2022 Uploading an AAB \u2022 Images Features Update existing Android applications on Google Play via the command line Upload new builds (APKs and AABs) Retrieve and edit metadata, such as title and description, for multiple languages Upload the app icon, promo graphics and screenshots for multiple languages Have a local copy of the metadata in your git repository Retrieve version code numbers from existing Google Play tracks Setup Setup consists of setting up your Google Developers Service Account Tip: If you see Google Play Console or Google Developer Console in your local language, add &hl=en at the end of the URL (before any #... ) to switch to English. All the links below already have this to make it easier to find the correct buttons. Note: if you face issues when following these instructions, you might want to refer to the official documentation by Google . Open the Google Play Console Click Account Details , and note the Developer Account ID listed there Enable the Google Play Developer API by selecting an existing Google Cloud Project that fits your needs and pushing ENABLE If you don't have an existing project or prefer to have a dedicated one for fastlane , create a new one here and follow the instructions Open Service Accounts on Google Cloud and select the project you'd like to use Click the CREATE SERVICE ACCOUNT button at the top of the Google Cloud Platform Console page Verify that you are on the correct Google Cloud Platform Project by looking for the Developer Account ID from earlier within the light gray text in the second input, preceding .iam.gserviceaccount.com , or by checking the project name in the navigaton bar. If not, open the picker in the top navigation bar, and find the right one. Provide a Service account name (e.g. fastlane-supply) Copy the generated email address that is noted below the Service account-ID field for later use Click DONE (don't click CREATE AND CONTINUE as the optional steps such as granting access are not needed): Click on the Actions vertical three-dot icon of the service account you just created Select Manage keys on the menu Click ADD KEY \u2192 Create New Key Make sure JSON is selected as the Key type , and click CREATE Save the file on your computer when prompted and remember where it was saved at Open the Google Play Console and select Users and Permissions Click Invite new users Paste the email address you saved for later use into the email address field Click on Account Permissions Choose the permissions you'd like this account to have. We recommend Admin (all permissions) , but you may want to manually select all checkboxes and leave out some of the Releases permissions such as Release to production, exclude devices, and use Play App Signing Click on Invite User You can use fastlane run validate_play_store_json_key json_key:/path/to/your/downloaded/file.json to test the connection to Google Play Store with the downloaded private key. Once that works, add the path to the JSON file to your Appfile : json_key_file(\"path/to/your/play-store-credentials.json\") package_name(\"my.package.name\") The path is relative to where you normally run fastlane . Migrating Google credential format (from .p12 key file to .json) In previous versions of supply, credentials to your Play Console were stored as .p12 files. Since version 0.4.0, supply now supports the recommended .json key Service Account credential files. If you wish to upgrade: follow the Setup procedure once again to make sure you create the appropriate JSON file update your fastlane configuration or your command line invocation to use the appropriate argument if necessary. Note that you don't need to take note nor pass the issuer argument anymore. The previous p12 configuration is still currently supported. Quick Start Before using supply to connect to Google Play Store, you'll need to set up your app manually first by uploading at least one build to Google Play Store. See fastlane/fastlane#14686 for more info. cd [your_project_folder] fastlane supply init Make changes to the downloaded metadata, add images, screenshots and/or an APK fastlane supply Available Commands fastlane supply : update an app with metadata, a build, images and screenshots fastlane supply init : download metadata for an existing app to a local directory fastlane action supply : show information on available commands, arguments and environment variables You can either run supply on its own and use it interactively, or you can pass arguments or specify environment variables for all the options to skip the questions. Uploading an APK To upload a new binary to Google Play, simply run fastlane supply --apk path/to/app.apk This will also upload app metadata if you previously ran fastlane supply init . To gradually roll out a new build use fastlane supply --apk path/app.apk --track beta --rollout 0.5 To set the in-app update priority level for a release, set a valid update priority (an integer value from 0 to 5) using option in_app_update_priority fastlane supply --apk path/app.apk --track beta --in_app_update_priority 3 Expansion files ( .obb ) Expansion files (obbs) found under the same directory as your APK will also be uploaded together with your APK as long as: they are identified as type 'main' or 'patch' (by containing 'main' or 'patch' in their file name) you have at most one of each type If you only want to update the APK, but keep the expansion files from the previous version on Google Play use fastlane supply --apk path/app.apk --obb_main_references_version 21 --obb_main_file_size 666154207 or fastlane supply --apk path/app.apk --obb_patch_references_version 21 --obb_patch_file_size 666154207 Uploading an AAB To upload a new Android application bundle to Google Play, simply run fastlane supply --aab path/to/app.aab This will also upload app metadata if you previously ran fastlane supply init . To gradually roll out a new build use fastlane supply --aab path/app.aab --track beta --rollout 0.5 To set the in-app update priority level for a release, set a valid update priority (an integer value from 0 to 5) using option in_app_update_priority fastlane supply --aab path/app.aab --track beta --in_app_update_priority 3 Images and Screenshots After running fastlane supply init , you will have a metadata directory. This directory contains one or more locale directories (e.g. en-US, en-GB, etc.), and inside this directory are text files such as title.txt and short_description.txt . Inside of a given locale directory is a folder called images . Here you can supply images with the following file names (extension can be png, jpg or jpeg): featureGraphic icon promoGraphic tvBanner You can also supply screenshots by creating directories within the images directory with the following names, containing PNGs or JPEGs: phoneScreenshots/ sevenInchScreenshots/ (7-inch tablets) tenInchScreenshots/ (10-inch tablets) tvScreenshots/ wearScreenshots/ You may name images anything you like, but screenshots will appear in the Play Store in alphanumerical filename order. Note that these will replace the current images and screenshots on the play store listing, not add to them. Changelogs (What's new) You can add changelog files under the changelogs/ directory for each locale. The filename should exactly match the version code of the APK that it represents. You can also provide default notes that will be used if no files match the version code by adding a default.txt file. fastlane supply init will populate changelog files from existing data on Google Play if no metadata/ directory exists when it is run. \u2514\u2500\u2500 fastlane \u2514\u2500\u2500 metadata \u2514\u2500\u2500 android \u251c\u2500\u2500 en-US \u2502 \u2514\u2500\u2500 changelogs \u2502 \u251c\u2500\u2500 default.txt \u2502 \u251c\u2500\u2500 100000.txt \u2502 \u2514\u2500\u2500 100100.txt \u2514\u2500\u2500 fr-FR \u2514\u2500\u2500 changelogs \u251c\u2500\u2500 default.txt \u2514\u2500\u2500 100100.txt Track Promotion A common Play publishing scenario might involve uploading an APK version to a test track, testing it, and finally promoting that version to production. This can be done using the --track_promote_to parameter. The --track_promote_to parameter works with the --track parameter to command the Play API to promote existing Play track APK version(s) (those active on the track identified by the --track param value) to a new track ( --track_promote_to value). Retrieve Track Release Names & Version Codes Before performing a new APK upload you may want to check existing track version codes or release names, or you may simply want to provide an informational lane that displays the currently promoted version codes or release name for the production track. You can use the google_play_track_version_codes action to retrieve existing version codes for a package and track. You can use the google_play_track_release_names action to retrieve existing release names for a package and track. For more information, see the fastlane action google_play_track_version_codes and fastlane action google_play_track_release_names help output. Migration from AndroidPublisherV2 to AndroidPublisherV3 in fastlane 2.135.0 New Options :version_name Used when uploading with :apk_path , :apk_paths , :aab_path , and :aab_paths Can be any string such (example: \"October Release\" or \"Awesome New Feature\") Defaults to the version name in app/build.gradle or AndroidManifest.xml :release_status Used when uploading with :apk_path , :apk_paths , :aab_path , and :aab_paths Can set as \"draft\" to complete the release at some other time Defaults to \"completed\" :version_code Used for :update_rollout , :track_promote_to , and uploading of meta data and screenshots :skip_upload_changelogs Changelogs were previously included with the :skip_upload_metadata but is now its own option Deprecated Options :check_superseded_tracks Google Play will automatically remove releases that are superseded now :deactivate_on_promote Google Play will automatically deactivate a release from its previous track on promote : upload_to_play_store Supported platforms android Author @KrauseFx 2 Examples upload_to_play_store supply # alias for \"upload_to_play_store\" Parameters Key Description Default package_name The package name of the application to use * version_name Version name (used when uploading new apks/aabs) - defaults to 'versionName' in build.gradle or AndroidManifest.xml * version_code The versionCode for which to download the generated APK * release_status Release status (used when uploading new apks/aabs) - valid values are completed, draft, halted, inProgress * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production rollout The percentage of the user fraction when uploading to the rollout track (setting to 1 will complete the rollout) metadata_path Path to the directory containing the metadata files * key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * apk Path to the APK file to upload * apk_paths An array of paths to APK files to upload aab Path to the AAB file to upload * aab_paths An array of paths to AAB files to upload skip_upload_apk Whether to skip uploading APK false skip_upload_aab Whether to skip uploading AAB false skip_upload_metadata Whether to skip uploading metadata, changelogs not included false skip_upload_changelogs Whether to skip uploading changelogs false skip_upload_images Whether to skip uploading images, screenshots not included false skip_upload_screenshots Whether to skip uploading SCREENSHOTS false sync_image_upload Whether to use sha256 comparison to skip upload of images and screenshots that are already in Play Store false track_promote_to The track to promote to. The default available tracks are: production, beta, alpha, internal track_promote_release_status Promoted track release status (used when promoting a track) - valid values are completed, draft, halted, inProgress completed validate_only Only validate changes with Google Play rather than actually publish false mapping Path to the mapping file to upload (mapping.txt or native-debug-symbols.zip alike) mapping_paths An array of paths to mapping files to upload (mapping.txt or native-debug-symbols.zip alike) root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ check_superseded_tracks DEPRECATED! Google Play does this automatically now - Check the other tracks for superseded versions and disable them false timeout Timeout for read, open, and send (in seconds) 300 deactivate_on_promote DEPRECATED! Google Play does this automatically now - When promoting to a new track, deactivate the binary in the origin track true version_codes_to_retain An array of version codes to retain when publishing a new APK changes_not_sent_for_review Indicates that the changes in this edit will not be reviewed until they are explicitly sent for review from the Google Play Console UI false rescue_changes_not_sent_for_review Catches changes_not_sent_for_review errors when an edit is committed and retries with the configuration that the error message recommended true in_app_update_priority In-app update priority for all the newly added apks in the release. Can take values between [0,5] obb_main_references_version References version of 'main' expansion file obb_main_file_size Size of 'main' expansion file in bytes obb_patch_references_version References version of 'patch' expansion file obb_patch_file_size Size of 'patch' expansion file in bytes ack_bundle_installation_warning Must be set to true if the bundle installation may trigger a warning on user devices (e.g can only be downloaded over wifi). Typically this is required for bundles over 150MB false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action upload_to_play_store CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_to_play_store To pass parameters, make use of the : symbol, for example fastlane run upload_to_play_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"upload_to_play_store"},{"location":"actions/upload_to_play_store/#upload_to_play_store","text":"Upload metadata, screenshots and binaries to Google Play (via supply )","title":"upload_to_play_store"},{"location":"actions/upload_to_play_store/#features","text":"Update existing Android applications on Google Play via the command line Upload new builds (APKs and AABs) Retrieve and edit metadata, such as title and description, for multiple languages Upload the app icon, promo graphics and screenshots for multiple languages Have a local copy of the metadata in your git repository Retrieve version code numbers from existing Google Play tracks","title":"Features"},{"location":"actions/upload_to_play_store/#setup","text":"Setup consists of setting up your Google Developers Service Account Tip: If you see Google Play Console or Google Developer Console in your local language, add &hl=en at the end of the URL (before any #... ) to switch to English. All the links below already have this to make it easier to find the correct buttons. Note: if you face issues when following these instructions, you might want to refer to the official documentation by Google . Open the Google Play Console Click Account Details , and note the Developer Account ID listed there Enable the Google Play Developer API by selecting an existing Google Cloud Project that fits your needs and pushing ENABLE If you don't have an existing project or prefer to have a dedicated one for fastlane , create a new one here and follow the instructions Open Service Accounts on Google Cloud and select the project you'd like to use Click the CREATE SERVICE ACCOUNT button at the top of the Google Cloud Platform Console page Verify that you are on the correct Google Cloud Platform Project by looking for the Developer Account ID from earlier within the light gray text in the second input, preceding .iam.gserviceaccount.com , or by checking the project name in the navigaton bar. If not, open the picker in the top navigation bar, and find the right one. Provide a Service account name (e.g. fastlane-supply) Copy the generated email address that is noted below the Service account-ID field for later use Click DONE (don't click CREATE AND CONTINUE as the optional steps such as granting access are not needed): Click on the Actions vertical three-dot icon of the service account you just created Select Manage keys on the menu Click ADD KEY \u2192 Create New Key Make sure JSON is selected as the Key type , and click CREATE Save the file on your computer when prompted and remember where it was saved at Open the Google Play Console and select Users and Permissions Click Invite new users Paste the email address you saved for later use into the email address field Click on Account Permissions Choose the permissions you'd like this account to have. We recommend Admin (all permissions) , but you may want to manually select all checkboxes and leave out some of the Releases permissions such as Release to production, exclude devices, and use Play App Signing Click on Invite User You can use fastlane run validate_play_store_json_key json_key:/path/to/your/downloaded/file.json to test the connection to Google Play Store with the downloaded private key. Once that works, add the path to the JSON file to your Appfile : json_key_file(\"path/to/your/play-store-credentials.json\") package_name(\"my.package.name\") The path is relative to where you normally run fastlane .","title":"Setup"},{"location":"actions/upload_to_play_store/#quick-start","text":"Before using supply to connect to Google Play Store, you'll need to set up your app manually first by uploading at least one build to Google Play Store. See fastlane/fastlane#14686 for more info. cd [your_project_folder] fastlane supply init Make changes to the downloaded metadata, add images, screenshots and/or an APK fastlane supply","title":"Quick Start"},{"location":"actions/upload_to_play_store/#available-commands","text":"fastlane supply : update an app with metadata, a build, images and screenshots fastlane supply init : download metadata for an existing app to a local directory fastlane action supply : show information on available commands, arguments and environment variables You can either run supply on its own and use it interactively, or you can pass arguments or specify environment variables for all the options to skip the questions.","title":"Available Commands"},{"location":"actions/upload_to_play_store/#uploading-an-apk","text":"To upload a new binary to Google Play, simply run fastlane supply --apk path/to/app.apk This will also upload app metadata if you previously ran fastlane supply init . To gradually roll out a new build use fastlane supply --apk path/app.apk --track beta --rollout 0.5 To set the in-app update priority level for a release, set a valid update priority (an integer value from 0 to 5) using option in_app_update_priority fastlane supply --apk path/app.apk --track beta --in_app_update_priority 3","title":"Uploading an APK"},{"location":"actions/upload_to_play_store/#uploading-an-aab","text":"To upload a new Android application bundle to Google Play, simply run fastlane supply --aab path/to/app.aab This will also upload app metadata if you previously ran fastlane supply init . To gradually roll out a new build use fastlane supply --aab path/app.aab --track beta --rollout 0.5 To set the in-app update priority level for a release, set a valid update priority (an integer value from 0 to 5) using option in_app_update_priority fastlane supply --aab path/app.aab --track beta --in_app_update_priority 3","title":"Uploading an AAB"},{"location":"actions/upload_to_play_store/#images-and-screenshots","text":"After running fastlane supply init , you will have a metadata directory. This directory contains one or more locale directories (e.g. en-US, en-GB, etc.), and inside this directory are text files such as title.txt and short_description.txt . Inside of a given locale directory is a folder called images . Here you can supply images with the following file names (extension can be png, jpg or jpeg): featureGraphic icon promoGraphic tvBanner You can also supply screenshots by creating directories within the images directory with the following names, containing PNGs or JPEGs: phoneScreenshots/ sevenInchScreenshots/ (7-inch tablets) tenInchScreenshots/ (10-inch tablets) tvScreenshots/ wearScreenshots/ You may name images anything you like, but screenshots will appear in the Play Store in alphanumerical filename order. Note that these will replace the current images and screenshots on the play store listing, not add to them.","title":"Images and Screenshots"},{"location":"actions/upload_to_play_store/#changelogs-whats-new","text":"You can add changelog files under the changelogs/ directory for each locale. The filename should exactly match the version code of the APK that it represents. You can also provide default notes that will be used if no files match the version code by adding a default.txt file. fastlane supply init will populate changelog files from existing data on Google Play if no metadata/ directory exists when it is run. \u2514\u2500\u2500 fastlane \u2514\u2500\u2500 metadata \u2514\u2500\u2500 android \u251c\u2500\u2500 en-US \u2502 \u2514\u2500\u2500 changelogs \u2502 \u251c\u2500\u2500 default.txt \u2502 \u251c\u2500\u2500 100000.txt \u2502 \u2514\u2500\u2500 100100.txt \u2514\u2500\u2500 fr-FR \u2514\u2500\u2500 changelogs \u251c\u2500\u2500 default.txt \u2514\u2500\u2500 100100.txt","title":"Changelogs (What's new)"},{"location":"actions/upload_to_play_store/#track-promotion","text":"A common Play publishing scenario might involve uploading an APK version to a test track, testing it, and finally promoting that version to production. This can be done using the --track_promote_to parameter. The --track_promote_to parameter works with the --track parameter to command the Play API to promote existing Play track APK version(s) (those active on the track identified by the --track param value) to a new track ( --track_promote_to value).","title":"Track Promotion"},{"location":"actions/upload_to_play_store/#retrieve-track-release-names-version-codes","text":"Before performing a new APK upload you may want to check existing track version codes or release names, or you may simply want to provide an informational lane that displays the currently promoted version codes or release name for the production track. You can use the google_play_track_version_codes action to retrieve existing version codes for a package and track. You can use the google_play_track_release_names action to retrieve existing release names for a package and track. For more information, see the fastlane action google_play_track_version_codes and fastlane action google_play_track_release_names help output.","title":"Retrieve Track Release Names & Version Codes"},{"location":"actions/upload_to_play_store/#migration-from-androidpublisherv2-to-androidpublisherv3-in-fastlane-21350","text":"","title":"Migration from AndroidPublisherV2 to AndroidPublisherV3 in fastlane 2.135.0"},{"location":"actions/upload_to_play_store/#2-examples","text":"upload_to_play_store supply # alias for \"upload_to_play_store\"","title":"2 Examples"},{"location":"actions/upload_to_play_store/#parameters","text":"Key Description Default package_name The package name of the application to use * version_name Version name (used when uploading new apks/aabs) - defaults to 'versionName' in build.gradle or AndroidManifest.xml * version_code The versionCode for which to download the generated APK * release_status Release status (used when uploading new apks/aabs) - valid values are completed, draft, halted, inProgress * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production rollout The percentage of the user fraction when uploading to the rollout track (setting to 1 will complete the rollout) metadata_path Path to the directory containing the metadata files * key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * apk Path to the APK file to upload * apk_paths An array of paths to APK files to upload aab Path to the AAB file to upload * aab_paths An array of paths to AAB files to upload skip_upload_apk Whether to skip uploading APK false skip_upload_aab Whether to skip uploading AAB false skip_upload_metadata Whether to skip uploading metadata, changelogs not included false skip_upload_changelogs Whether to skip uploading changelogs false skip_upload_images Whether to skip uploading images, screenshots not included false skip_upload_screenshots Whether to skip uploading SCREENSHOTS false sync_image_upload Whether to use sha256 comparison to skip upload of images and screenshots that are already in Play Store false track_promote_to The track to promote to. The default available tracks are: production, beta, alpha, internal track_promote_release_status Promoted track release status (used when promoting a track) - valid values are completed, draft, halted, inProgress completed validate_only Only validate changes with Google Play rather than actually publish false mapping Path to the mapping file to upload (mapping.txt or native-debug-symbols.zip alike) mapping_paths An array of paths to mapping files to upload (mapping.txt or native-debug-symbols.zip alike) root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ check_superseded_tracks DEPRECATED! Google Play does this automatically now - Check the other tracks for superseded versions and disable them false timeout Timeout for read, open, and send (in seconds) 300 deactivate_on_promote DEPRECATED! Google Play does this automatically now - When promoting to a new track, deactivate the binary in the origin track true version_codes_to_retain An array of version codes to retain when publishing a new APK changes_not_sent_for_review Indicates that the changes in this edit will not be reviewed until they are explicitly sent for review from the Google Play Console UI false rescue_changes_not_sent_for_review Catches changes_not_sent_for_review errors when an edit is committed and retries with the configuration that the error message recommended true in_app_update_priority In-app update priority for all the newly added apks in the release. Can take values between [0,5] obb_main_references_version References version of 'main' expansion file obb_main_file_size Size of 'main' expansion file in bytes obb_patch_references_version References version of 'patch' expansion file obb_patch_file_size Size of 'patch' expansion file in bytes ack_bundle_installation_warning Must be set to true if the bundle installation may trigger a warning on user devices (e.g can only be downloaded over wifi). Typically this is required for bundles over 150MB false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/upload_to_play_store/#documentation","text":"To show the documentation in your terminal, run fastlane action upload_to_play_store","title":"Documentation"},{"location":"actions/upload_to_play_store/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_to_play_store To pass parameters, make use of the : symbol, for example fastlane run upload_to_play_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/upload_to_play_store/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/upload_to_play_store_internal_app_sharing/","text":"upload_to_play_store_internal_app_sharing Upload binaries to Google Play Internal App Sharing (via supply ) More information: https://docs.fastlane.tools/actions/upload_to_play_store_internal_app_sharing/ upload_to_play_store_internal_app_sharing Supported platforms android Author @andrewhavens Returns Returns a string containing the download URL for the uploaded APK/AAB (or array of strings if multiple were uploaded). 1 Example upload_to_play_store_internal_app_sharing Parameters Key Description Default package_name The package name of the application to use * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * apk Path to the APK file to upload * apk_paths An array of paths to APK files to upload aab Path to the AAB file to upload * aab_paths An array of paths to AAB files to upload root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action upload_to_play_store_internal_app_sharing CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_to_play_store_internal_app_sharing To pass parameters, make use of the : symbol, for example fastlane run upload_to_play_store_internal_app_sharing parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"upload_to_play_store_internal_app_sharing"},{"location":"actions/upload_to_play_store_internal_app_sharing/#upload_to_play_store_internal_app_sharing","text":"Upload binaries to Google Play Internal App Sharing (via supply ) More information: https://docs.fastlane.tools/actions/upload_to_play_store_internal_app_sharing/ upload_to_play_store_internal_app_sharing Supported platforms android Author @andrewhavens Returns Returns a string containing the download URL for the uploaded APK/AAB (or array of strings if multiple were uploaded).","title":"upload_to_play_store_internal_app_sharing"},{"location":"actions/upload_to_play_store_internal_app_sharing/#1-example","text":"upload_to_play_store_internal_app_sharing","title":"1 Example"},{"location":"actions/upload_to_play_store_internal_app_sharing/#parameters","text":"Key Description Default package_name The package name of the application to use * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * apk Path to the APK file to upload * apk_paths An array of paths to APK files to upload aab Path to the AAB file to upload * aab_paths An array of paths to AAB files to upload root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/upload_to_play_store_internal_app_sharing/#documentation","text":"To show the documentation in your terminal, run fastlane action upload_to_play_store_internal_app_sharing","title":"Documentation"},{"location":"actions/upload_to_play_store_internal_app_sharing/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_to_play_store_internal_app_sharing To pass parameters, make use of the : symbol, for example fastlane run upload_to_play_store_internal_app_sharing parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/upload_to_play_store_internal_app_sharing/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/upload_to_testflight/","text":"upload_to_testflight Upload new binary to App Store Connect for TestFlight beta testing (via pilot ) The best way to manage your TestFlight testers and builds from your terminal pilot makes it easier to manage your app on Apple\u2019s TestFlight. You can: Upload & distribute builds Add & remove testers Retrieve information about testers & devices Import/export all available testers pilot uses spaceship.airforce to interact with App Store Connect \ud83d\ude80 Usage \u2022 Tips pilot is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Usage For all commands, you can either use an API Key or your Apple ID . App Store Connect API Key The App Store Connect API Key is the preferred authentication method (if you are able to use it). Uses official App Store Connect API No need for 2FA Better performance over Apple ID Specify the API key using --api_key_path ./path/to/api_key_info.json or --api_key \"{\\\"key_id\\\": \\\"D83848D23\\\", \\\"issuer_id\\\": \\\"227b0bbf-ada8-458c-9d62-3d8022b7d07f\\\", \\\"key_filepath\\\": \\\"D83848D23.p8\\\"}\" Go to Using App Store Connect API for information on obtaining an API key, the fastlane api_key_info.json format, and other API key usage. Apple ID Specify the Apple ID to use using -u felix@krausefx.com . If you execute pilot in a project already using fastlane the username and app identifier will automatically be determined. Uploading builds To upload a new build, just run fastlane pilot upload This will automatically look for an ipa in your current directory and tries to fetch the login credentials from your fastlane setup . You'll be asked for any missing information. Additionally, you can pass all kinds of parameters: fastlane action pilot You can pass a changelog using fastlane pilot upload --changelog \"Something that is new here\" You can also skip the submission of the binary, which means, the ipa file will only be uploaded and not distributed to testers: fastlane pilot upload --skip_submission pilot does all kinds of magic for you: Automatically detects the bundle identifier from your ipa file Automatically fetch the AppID of your app based on the bundle identifier pilot uses spaceship to submit the build metadata and the iTunes Transporter to upload the binary. Because iTunes Transporter's upload capability is only supported on OS X, pilot upload does not work on Linux, as described in this issue List builds To list all builds for specific application use fastlane pilot builds The result lists all active builds and processing builds: +-----------+---------+----------+ | Great App Builds | +-----------+---------+----------+ | Version # | Build # | Installs | +-----------+---------+----------+ | 0.9.13 | 1 | 0 | | 0.9.13 | 2 | 0 | | 0.9.20 | 3 | 0 | | 0.9.20 | 4 | 3 | +-----------+---------+----------+ Managing beta testers List of Testers This command will list all your testers, both internal and external. fastlane pilot list The output will look like this: +--------+--------+--------------------------+-----------+ | Internal Testers | +--------+--------+--------------------------+-----------+ | First | Last | Email | # Devices | +--------+--------+--------------------------+-----------+ | Felix | Krause | felix@krausefx.com | 2 | +--------+--------+--------------------------+-----------+ +-----------+---------+----------------------------+-----------+ | External Testers | +-----------+---------+----------------------------+-----------+ | First | Last | Email | # Devices | +-----------+---------+----------------------------+-----------+ | Max | Manfred | email@email.com | 0 | | Detlef | M\u00fcller | detlef@krausefx.com | 1 | +-----------+---------+----------------------------+-----------+ Add a new tester To add a new tester to your App Store Connect account and to associate it to at least one testing group of your app, use the pilot add command. This will create a new tester (if necessary) or add an existing tester to the app to test. fastlane pilot add email@invite.com -g group-1,group-2 Additionally you can specify the app identifier (if necessary): fastlane pilot add email@email.com -a com.krausefx.app -g group-1,group-2 Find a tester To find a specific tester use fastlane pilot find felix@krausefx.com The resulting output will look like this: +---------------------+---------------------+ | felix@krausefx.com | +---------------------+---------------------+ | First name | Felix | | Last name | Krause | | Email | felix@krausefx.com | | Latest Version | 0.9.14 (23 | | Latest Install Date | 03/28/15 19:00 | | 2 Devices | \u2022 iPhone 6, iOS 8.3 | | | \u2022 iPhone 5, iOS 7.0 | +---------------------+---------------------+ Remove a tester This command will remove beta tester from app (from all internal and external groups) fastlane pilot remove felix@krausefx.com You can also use groups option to remove the tester from the groups specified: fastlane pilot remove felix@krausefx.com -g group-1,group-2 Export testers To export all external testers to a CSV file. Useful if you need to import tester info to another system or a new account. fastlane pilot export Import testers Add external testers from a CSV file. Create a file (ex: testers.csv ) and fill it with the following format: John,Appleseed,appleseed_john@mac.com,group-1;group-2 fastlane pilot import You can also specify the directory using fastlane pilot export -c ~/Desktop/testers.csv fastlane pilot import -c ~/Desktop/testers.csv Tips Debug information If you run into any issues you can use the verbose mode to get a more detailed output: fastlane pilot upload --verbose Firewall Issues pilot uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol from the command line using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" pilot ... If you are using pilot via the fastlane action , add the following to your Fastfile ENV[\"DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS\"] = \"-t DAV\" pilot... Note, however, that Apple recommends you don\u2019t specify the -t transport and instead allow Transporter to use automatic transport discovery to determine the best transport mode for your packages. For this reason, if the t option is passed, we will raise a warning. Also note that -t is not the only additional parameter that can be used. The string specified in the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS environment variable will be forwarded to Transporter. For all the available options, check Apple's Transporter User Guide . Credentials Issues If your password contains special characters, pilot may throw a confusing error saying your \"Your Apple ID or password was entered incorrectly\". The easiest way to fix this error is to change your password to something that does not contains special characters. How is my password stored? pilot uses the CredentialsManager from fastlane . Provider Short Name If you are on multiple App Store Connect teams, iTunes Transporter may need a provider short name to know where to upload your binary. pilot will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option. Use an Application Specific Password to upload pilot / upload_to_testflight can use an Application Specific Password via the FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD environment variable to upload a binary if both the skip_waiting_for_build_processing and apple_id options are set. (If any of those are not set, it will use the normal Apple login process that might require 2FA authentication.) Role for App Store Connect User pilot / upload_to_testflight updates build information and testers after the build has finished processing. App Store Connect requires the \"App Manager\" or \"Admin\" role for your Apple account to update this information. The \"Developer\" role will allow builds to be uploaded but will not allow updating of build information and testers. upload_to_testflight Supported platforms ios, mac Author @KrauseFx 7 Examples upload_to_testflight testflight # alias for \"upload_to_testflight\" pilot # alias for \"upload_to_testflight\" upload_to_testflight(skip_submission: true) # to only upload the build upload_to_testflight( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) upload_to_testflight( beta_app_feedback_email: \"email@email.com\", beta_app_description: \"This is a description of my app\", demo_account_required: true, notify_external_testers: false, changelog: \"This is my changelog of things that have changed in a log\" ) upload_to_testflight( beta_app_review_info: { contact_email: \"email@email.com\", contact_first_name: \"Connect\", contact_last_name: \"API\", contact_phone: \"5558675309\", demo_account_name: \"demo@email.com\", demo_account_password: \"connectapi\", notes: \"this is review note for the reviewer <3 thank you for reviewing\" }, localized_app_info: { \"default\": { feedback_email: \"default@email.com\", marketing_url: \"https://example.com/marketing-defafult\", privacy_policy_url: \"https://example.com/privacy-defafult\", description: \"Default description\", }, \"en-GB\": { feedback_email: \"en-gb@email.com\", marketing_url: \"https://example.com/marketing-en-gb\", privacy_policy_url: \"https://example.com/privacy-en-gb\", description: \"en-gb description\", } }, localized_build_info: { \"default\": { whats_new: \"Default changelog\", }, \"en-GB\": { whats_new: \"en-gb changelog\", } } ) Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of the app to upload or manage testers (optional) * app_platform The platform to use (optional) apple_id Apple ID property in the App Information section in App Store Connect * ipa Path to the ipa file to upload * pkg Path to your pkg file * demo_account_required Do you need a demo account when Apple does review? beta_app_review_info Beta app review information for contact info and demo account localized_app_info Localized beta app test info for description, feedback email, marketing url, and privacy policy beta_app_description Provide the 'Beta App Description' when uploading a new build beta_app_feedback_email Provide the beta app email when uploading a new build localized_build_info Localized beta app test info for what's new changelog Provide the 'What to Test' text when uploading a new build skip_submission Skip the distributing action of pilot and only upload the ipa file false skip_waiting_for_build_processing If set to true, the distribute_external option won't work and no build will be distributed to testers. (You might want to use this option if you are using this action on CI and have to pay for 'minutes used' on your CI plan). If set to true and a changelog is provided, it will partially wait for the build to appear on AppStore Connect so the changelog can be set, and skip the remaining processing steps false update_build_info_on_upload DEPRECATED! Update build info immediately after validation. This is deprecated and will be removed in a future release. App Store Connect no longer supports setting build info until after build processing has completed, which is when build info is updated by default false distribute_only Distribute a previously uploaded build (equivalent to the fastlane pilot distribute command) false uses_non_exempt_encryption Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist false distribute_external Should the build be distributed to external testers? If set to true, use of groups option is required false notify_external_testers Should notify external testers? (Not setting a value will use App Store Connect's default which is to notify) app_version The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed build_number The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed expire_previous_builds Should expire previous builds? false first_name The tester's first name last_name The tester's last name email The tester's email testers_file_path Path to a CSV file of testers ./testers.csv groups Associate tester to one group or more by group name / group id. E.g. -g \"Team 1\",\"Team 2\" This is required when distribute_external option is set to true or when we want to add a tester to one or more external testing groups team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your team in the developer portal, if you're in multiple teams. Different from your iTC team ID! * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column wait_processing_interval Interval in seconds to wait for App Store Connect processing 30 wait_processing_timeout_duration Timeout duration in seconds to wait for App Store Connect processing. If set, after exceeding timeout duration, this will force stop to wait for App Store Connect processing and exit with exception wait_for_uploaded_build DEPRECATED! No longer needed with the transition over to the App Store Connect API - Use version info from uploaded ipa file to determine what build to use for distribution. If set to false, latest processing or any latest build will be used false reject_build_waiting_for_review Expire previous if it's 'waiting for review' false submit_beta_review Send the build for a beta review true * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action upload_to_testflight CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_to_testflight To pass parameters, make use of the : symbol, for example fastlane run upload_to_testflight parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"upload_to_testflight"},{"location":"actions/upload_to_testflight/#upload_to_testflight","text":"Upload new binary to App Store Connect for TestFlight beta testing (via pilot )","title":"upload_to_testflight"},{"location":"actions/upload_to_testflight/#usage","text":"For all commands, you can either use an API Key or your Apple ID .","title":"Usage"},{"location":"actions/upload_to_testflight/#uploading-builds","text":"To upload a new build, just run fastlane pilot upload This will automatically look for an ipa in your current directory and tries to fetch the login credentials from your fastlane setup . You'll be asked for any missing information. Additionally, you can pass all kinds of parameters: fastlane action pilot You can pass a changelog using fastlane pilot upload --changelog \"Something that is new here\" You can also skip the submission of the binary, which means, the ipa file will only be uploaded and not distributed to testers: fastlane pilot upload --skip_submission pilot does all kinds of magic for you: Automatically detects the bundle identifier from your ipa file Automatically fetch the AppID of your app based on the bundle identifier pilot uses spaceship to submit the build metadata and the iTunes Transporter to upload the binary. Because iTunes Transporter's upload capability is only supported on OS X, pilot upload does not work on Linux, as described in this issue","title":"Uploading builds"},{"location":"actions/upload_to_testflight/#list-builds","text":"To list all builds for specific application use fastlane pilot builds The result lists all active builds and processing builds: +-----------+---------+----------+ | Great App Builds | +-----------+---------+----------+ | Version # | Build # | Installs | +-----------+---------+----------+ | 0.9.13 | 1 | 0 | | 0.9.13 | 2 | 0 | | 0.9.20 | 3 | 0 | | 0.9.20 | 4 | 3 | +-----------+---------+----------+","title":"List builds"},{"location":"actions/upload_to_testflight/#managing-beta-testers","text":"","title":"Managing beta testers"},{"location":"actions/upload_to_testflight/#tips","text":"","title":"Tips"},{"location":"actions/upload_to_testflight/#debug-information","text":"If you run into any issues you can use the verbose mode to get a more detailed output: fastlane pilot upload --verbose","title":"Debug information"},{"location":"actions/upload_to_testflight/#firewall-issues","text":"pilot uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol from the command line using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" pilot ... If you are using pilot via the fastlane action , add the following to your Fastfile ENV[\"DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS\"] = \"-t DAV\" pilot... Note, however, that Apple recommends you don\u2019t specify the -t transport and instead allow Transporter to use automatic transport discovery to determine the best transport mode for your packages. For this reason, if the t option is passed, we will raise a warning. Also note that -t is not the only additional parameter that can be used. The string specified in the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS environment variable will be forwarded to Transporter. For all the available options, check Apple's Transporter User Guide .","title":"Firewall Issues"},{"location":"actions/upload_to_testflight/#credentials-issues","text":"If your password contains special characters, pilot may throw a confusing error saying your \"Your Apple ID or password was entered incorrectly\". The easiest way to fix this error is to change your password to something that does not contains special characters.","title":"Credentials Issues"},{"location":"actions/upload_to_testflight/#how-is-my-password-stored","text":"pilot uses the CredentialsManager from fastlane .","title":"How is my password stored?"},{"location":"actions/upload_to_testflight/#provider-short-name","text":"If you are on multiple App Store Connect teams, iTunes Transporter may need a provider short name to know where to upload your binary. pilot will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option.","title":"Provider Short Name"},{"location":"actions/upload_to_testflight/#use-an-application-specific-password-to-upload","text":"pilot / upload_to_testflight can use an Application Specific Password via the FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD environment variable to upload a binary if both the skip_waiting_for_build_processing and apple_id options are set. (If any of those are not set, it will use the normal Apple login process that might require 2FA authentication.)","title":"Use an Application Specific Password to upload"},{"location":"actions/upload_to_testflight/#role-for-app-store-connect-user","text":"pilot / upload_to_testflight updates build information and testers after the build has finished processing. App Store Connect requires the \"App Manager\" or \"Admin\" role for your Apple account to update this information. The \"Developer\" role will allow builds to be uploaded but will not allow updating of build information and testers. upload_to_testflight Supported platforms ios, mac Author @KrauseFx","title":"Role for App Store Connect User"},{"location":"actions/upload_to_testflight/#7-examples","text":"upload_to_testflight testflight # alias for \"upload_to_testflight\" pilot # alias for \"upload_to_testflight\" upload_to_testflight(skip_submission: true) # to only upload the build upload_to_testflight( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) upload_to_testflight( beta_app_feedback_email: \"email@email.com\", beta_app_description: \"This is a description of my app\", demo_account_required: true, notify_external_testers: false, changelog: \"This is my changelog of things that have changed in a log\" ) upload_to_testflight( beta_app_review_info: { contact_email: \"email@email.com\", contact_first_name: \"Connect\", contact_last_name: \"API\", contact_phone: \"5558675309\", demo_account_name: \"demo@email.com\", demo_account_password: \"connectapi\", notes: \"this is review note for the reviewer <3 thank you for reviewing\" }, localized_app_info: { \"default\": { feedback_email: \"default@email.com\", marketing_url: \"https://example.com/marketing-defafult\", privacy_policy_url: \"https://example.com/privacy-defafult\", description: \"Default description\", }, \"en-GB\": { feedback_email: \"en-gb@email.com\", marketing_url: \"https://example.com/marketing-en-gb\", privacy_policy_url: \"https://example.com/privacy-en-gb\", description: \"en-gb description\", } }, localized_build_info: { \"default\": { whats_new: \"Default changelog\", }, \"en-GB\": { whats_new: \"en-gb changelog\", } } )","title":"7 Examples"},{"location":"actions/upload_to_testflight/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of the app to upload or manage testers (optional) * app_platform The platform to use (optional) apple_id Apple ID property in the App Information section in App Store Connect * ipa Path to the ipa file to upload * pkg Path to your pkg file * demo_account_required Do you need a demo account when Apple does review? beta_app_review_info Beta app review information for contact info and demo account localized_app_info Localized beta app test info for description, feedback email, marketing url, and privacy policy beta_app_description Provide the 'Beta App Description' when uploading a new build beta_app_feedback_email Provide the beta app email when uploading a new build localized_build_info Localized beta app test info for what's new changelog Provide the 'What to Test' text when uploading a new build skip_submission Skip the distributing action of pilot and only upload the ipa file false skip_waiting_for_build_processing If set to true, the distribute_external option won't work and no build will be distributed to testers. (You might want to use this option if you are using this action on CI and have to pay for 'minutes used' on your CI plan). If set to true and a changelog is provided, it will partially wait for the build to appear on AppStore Connect so the changelog can be set, and skip the remaining processing steps false update_build_info_on_upload DEPRECATED! Update build info immediately after validation. This is deprecated and will be removed in a future release. App Store Connect no longer supports setting build info until after build processing has completed, which is when build info is updated by default false distribute_only Distribute a previously uploaded build (equivalent to the fastlane pilot distribute command) false uses_non_exempt_encryption Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist false distribute_external Should the build be distributed to external testers? If set to true, use of groups option is required false notify_external_testers Should notify external testers? (Not setting a value will use App Store Connect's default which is to notify) app_version The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed build_number The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed expire_previous_builds Should expire previous builds? false first_name The tester's first name last_name The tester's last name email The tester's email testers_file_path Path to a CSV file of testers ./testers.csv groups Associate tester to one group or more by group name / group id. E.g. -g \"Team 1\",\"Team 2\" This is required when distribute_external option is set to true or when we want to add a tester to one or more external testing groups team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your team in the developer portal, if you're in multiple teams. Different from your iTC team ID! * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column wait_processing_interval Interval in seconds to wait for App Store Connect processing 30 wait_processing_timeout_duration Timeout duration in seconds to wait for App Store Connect processing. If set, after exceeding timeout duration, this will force stop to wait for App Store Connect processing and exit with exception wait_for_uploaded_build DEPRECATED! No longer needed with the transition over to the App Store Connect API - Use version info from uploaded ipa file to determine what build to use for distribution. If set to false, latest processing or any latest build will be used false reject_build_waiting_for_review Expire previous if it's 'waiting for review' false submit_beta_review Send the build for a beta review true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/upload_to_testflight/#documentation","text":"To show the documentation in your terminal, run fastlane action upload_to_testflight","title":"Documentation"},{"location":"actions/upload_to_testflight/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_to_testflight To pass parameters, make use of the : symbol, for example fastlane run upload_to_testflight parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/upload_to_testflight/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/validate_play_store_json_key/","text":"validate_play_store_json_key Validate that the Google Play Store json_key works Use this action to test and validate your private key json key file used to connect and authenticate with the Google Play API validate_play_store_json_key Supported platforms android Author @janpio 1 Example validate_play_store_json_key( json_key: 'path/to/you/json/key/file' ) Parameters Key Description Default json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action validate_play_store_json_key CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run validate_play_store_json_key To pass parameters, make use of the : symbol, for example fastlane run validate_play_store_json_key parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"validate_play_store_json_key"},{"location":"actions/validate_play_store_json_key/#validate_play_store_json_key","text":"Validate that the Google Play Store json_key works Use this action to test and validate your private key json key file used to connect and authenticate with the Google Play API validate_play_store_json_key Supported platforms android Author @janpio","title":"validate_play_store_json_key"},{"location":"actions/validate_play_store_json_key/#1-example","text":"validate_play_store_json_key( json_key: 'path/to/you/json/key/file' )","title":"1 Example"},{"location":"actions/validate_play_store_json_key/#parameters","text":"Key Description Default json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/validate_play_store_json_key/#documentation","text":"To show the documentation in your terminal, run fastlane action validate_play_store_json_key","title":"Documentation"},{"location":"actions/validate_play_store_json_key/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run validate_play_store_json_key To pass parameters, make use of the : symbol, for example fastlane run validate_play_store_json_key parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/validate_play_store_json_key/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/verify_build/","text":"verify_build Able to verify various settings in ipa file Verifies that the built app was built using the expected build resources. This is relevant for people who build on machines that are used to build apps with different profiles, certificates and/or bundle identifiers to guard against configuration mistakes. verify_build Supported platforms ios Author @CodeReaper 1 Example verify_build( provisioning_type: \"distribution\", bundle_identifier: \"com.example.myapp\" ) Parameters Key Description Default provisioning_type Required type of provisioning provisioning_uuid Required UUID of provisioning profile team_identifier Required team identifier team_name Required team name app_name Required app name bundle_identifier Required bundle identifier ipa_path Explicitly set the ipa path build_path Explicitly set the ipa, app or xcarchive path * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action verify_build CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run verify_build To pass parameters, make use of the : symbol, for example fastlane run verify_build parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"verify_build"},{"location":"actions/verify_build/#verify_build","text":"Able to verify various settings in ipa file Verifies that the built app was built using the expected build resources. This is relevant for people who build on machines that are used to build apps with different profiles, certificates and/or bundle identifiers to guard against configuration mistakes. verify_build Supported platforms ios Author @CodeReaper","title":"verify_build"},{"location":"actions/verify_build/#1-example","text":"verify_build( provisioning_type: \"distribution\", bundle_identifier: \"com.example.myapp\" )","title":"1 Example"},{"location":"actions/verify_build/#parameters","text":"Key Description Default provisioning_type Required type of provisioning provisioning_uuid Required UUID of provisioning profile team_identifier Required team identifier team_name Required team name app_name Required app name bundle_identifier Required bundle identifier ipa_path Explicitly set the ipa path build_path Explicitly set the ipa, app or xcarchive path * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/verify_build/#documentation","text":"To show the documentation in your terminal, run fastlane action verify_build","title":"Documentation"},{"location":"actions/verify_build/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run verify_build To pass parameters, make use of the : symbol, for example fastlane run verify_build parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/verify_build/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/verify_pod_keys/","text":"verify_pod_keys Verifies all keys referenced from the Podfile are non-empty Runs a check against all keys specified in your Podfile to make sure they're more than a single character long. This is to ensure you don't deploy with stubbed keys. verify_pod_keys Supported platforms ios, mac Author @ashfurrow 1 Example verify_pod_keys Documentation To show the documentation in your terminal, run fastlane action verify_pod_keys CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run verify_pod_keys To pass parameters, make use of the : symbol, for example fastlane run verify_pod_keys parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"verify_pod_keys"},{"location":"actions/verify_pod_keys/#verify_pod_keys","text":"Verifies all keys referenced from the Podfile are non-empty Runs a check against all keys specified in your Podfile to make sure they're more than a single character long. This is to ensure you don't deploy with stubbed keys. verify_pod_keys Supported platforms ios, mac Author @ashfurrow","title":"verify_pod_keys"},{"location":"actions/verify_pod_keys/#1-example","text":"verify_pod_keys","title":"1 Example"},{"location":"actions/verify_pod_keys/#documentation","text":"To show the documentation in your terminal, run fastlane action verify_pod_keys","title":"Documentation"},{"location":"actions/verify_pod_keys/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run verify_pod_keys To pass parameters, make use of the : symbol, for example fastlane run verify_pod_keys parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/verify_pod_keys/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/verify_xcode/","text":"verify_xcode Verifies that the Xcode installation is properly signed by Apple This action was implemented after the recent Xcode attack to make sure you're not using a hacked Xcode installation . verify_xcode Supported platforms ios, mac Author @KrauseFx 2 Examples verify_xcode verify_xcode(xcode_path: \"/Applications/Xcode.app\") Parameters Key Description Default xcode_path The path to the Xcode installation to test * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action verify_xcode CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run verify_xcode To pass parameters, make use of the : symbol, for example fastlane run verify_xcode parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"verify_xcode"},{"location":"actions/verify_xcode/#verify_xcode","text":"Verifies that the Xcode installation is properly signed by Apple This action was implemented after the recent Xcode attack to make sure you're not using a hacked Xcode installation . verify_xcode Supported platforms ios, mac Author @KrauseFx","title":"verify_xcode"},{"location":"actions/verify_xcode/#2-examples","text":"verify_xcode verify_xcode(xcode_path: \"/Applications/Xcode.app\")","title":"2 Examples"},{"location":"actions/verify_xcode/#parameters","text":"Key Description Default xcode_path The path to the Xcode installation to test * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/verify_xcode/#documentation","text":"To show the documentation in your terminal, run fastlane action verify_xcode","title":"Documentation"},{"location":"actions/verify_xcode/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run verify_xcode To pass parameters, make use of the : symbol, for example fastlane run verify_xcode parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/verify_xcode/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/version_bump_podspec/","text":"version_bump_podspec Increment or set the version in a podspec file You can use this action to manipulate any 'version' variable contained in a ruby file. For example, you can use it to bump the version of a CocoaPods' podspec file. It also supports versions that are not semantic: 1.4.14.4.1 . For such versions, there is an option to change the appendix (e.g. 4.1 ). version_bump_podspec Supported platforms ios, mac Author @Liquidsoul, @KrauseFx 2 Examples version = version_bump_podspec(path: \"TSMessages.podspec\", bump_type: \"patch\") version = version_bump_podspec(path: \"TSMessages.podspec\", version_number: \"1.4\") Parameters Key Description Default path You must specify the path to the podspec file to update * bump_type The type of this version bump. Available: patch, minor, major patch version_number Change to a specific version. This will replace the bump type value version_appendix Change version appendix to a specific value. For example 1.4.14.4.1 -> 1.4.14.5 require_variable_prefix true by default, this is used for non CocoaPods version bumps only true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The version_bump_podspec action generates the following Lane Variables: SharedValue Description SharedValues::PODSPEC_VERSION_NUMBER The new podspec version number To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action version_bump_podspec CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run version_bump_podspec To pass parameters, make use of the : symbol, for example fastlane run version_bump_podspec parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"version_bump_podspec"},{"location":"actions/version_bump_podspec/#version_bump_podspec","text":"Increment or set the version in a podspec file You can use this action to manipulate any 'version' variable contained in a ruby file. For example, you can use it to bump the version of a CocoaPods' podspec file. It also supports versions that are not semantic: 1.4.14.4.1 . For such versions, there is an option to change the appendix (e.g. 4.1 ). version_bump_podspec Supported platforms ios, mac Author @Liquidsoul, @KrauseFx","title":"version_bump_podspec"},{"location":"actions/version_bump_podspec/#2-examples","text":"version = version_bump_podspec(path: \"TSMessages.podspec\", bump_type: \"patch\") version = version_bump_podspec(path: \"TSMessages.podspec\", version_number: \"1.4\")","title":"2 Examples"},{"location":"actions/version_bump_podspec/#parameters","text":"Key Description Default path You must specify the path to the podspec file to update * bump_type The type of this version bump. Available: patch, minor, major patch version_number Change to a specific version. This will replace the bump type value version_appendix Change version appendix to a specific value. For example 1.4.14.4.1 -> 1.4.14.5 require_variable_prefix true by default, this is used for non CocoaPods version bumps only true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/version_bump_podspec/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The version_bump_podspec action generates the following Lane Variables: SharedValue Description SharedValues::PODSPEC_VERSION_NUMBER The new podspec version number To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/version_bump_podspec/#documentation","text":"To show the documentation in your terminal, run fastlane action version_bump_podspec","title":"Documentation"},{"location":"actions/version_bump_podspec/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run version_bump_podspec To pass parameters, make use of the : symbol, for example fastlane run version_bump_podspec parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/version_bump_podspec/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/version_get_podspec/","text":"version_get_podspec Receive the version number from a podspec file version_get_podspec Supported platforms ios, mac Author @Liquidsoul, @KrauseFx 1 Example version = version_get_podspec(path: \"TSMessages.podspec\") Parameters Key Description Default path You must specify the path to the podspec file * require_variable_prefix true by default, this is used for non CocoaPods version bumps only true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The version_get_podspec action generates the following Lane Variables: SharedValue Description SharedValues::PODSPEC_VERSION_NUMBER The podspec version number To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action version_get_podspec CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run version_get_podspec To pass parameters, make use of the : symbol, for example fastlane run version_get_podspec parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"version_get_podspec"},{"location":"actions/version_get_podspec/#version_get_podspec","text":"Receive the version number from a podspec file version_get_podspec Supported platforms ios, mac Author @Liquidsoul, @KrauseFx","title":"version_get_podspec"},{"location":"actions/version_get_podspec/#1-example","text":"version = version_get_podspec(path: \"TSMessages.podspec\")","title":"1 Example"},{"location":"actions/version_get_podspec/#parameters","text":"Key Description Default path You must specify the path to the podspec file * require_variable_prefix true by default, this is used for non CocoaPods version bumps only true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/version_get_podspec/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The version_get_podspec action generates the following Lane Variables: SharedValue Description SharedValues::PODSPEC_VERSION_NUMBER The podspec version number To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/version_get_podspec/#documentation","text":"To show the documentation in your terminal, run fastlane action version_get_podspec","title":"Documentation"},{"location":"actions/version_get_podspec/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run version_get_podspec To pass parameters, make use of the : symbol, for example fastlane run version_get_podspec parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/version_get_podspec/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/xcarchive/","text":"xcarchive Archives the project using xcodebuild xcarchive Supported platforms ios, mac Author @dtrenz 1 Example xcarchive Documentation To show the documentation in your terminal, run fastlane action xcarchive CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcarchive To pass parameters, make use of the : symbol, for example fastlane run xcarchive parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"xcarchive"},{"location":"actions/xcarchive/#xcarchive","text":"Archives the project using xcodebuild xcarchive Supported platforms ios, mac Author @dtrenz","title":"xcarchive"},{"location":"actions/xcarchive/#1-example","text":"xcarchive","title":"1 Example"},{"location":"actions/xcarchive/#documentation","text":"To show the documentation in your terminal, run fastlane action xcarchive","title":"Documentation"},{"location":"actions/xcarchive/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcarchive To pass parameters, make use of the : symbol, for example fastlane run xcarchive parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/xcarchive/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/xcbuild/","text":"xcbuild Builds the project using xcodebuild xcbuild Supported platforms ios, mac Author @dtrenz 1 Example xcbuild Documentation To show the documentation in your terminal, run fastlane action xcbuild CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcbuild To pass parameters, make use of the : symbol, for example fastlane run xcbuild parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"xcbuild"},{"location":"actions/xcbuild/#xcbuild","text":"Builds the project using xcodebuild xcbuild Supported platforms ios, mac Author @dtrenz","title":"xcbuild"},{"location":"actions/xcbuild/#1-example","text":"xcbuild","title":"1 Example"},{"location":"actions/xcbuild/#documentation","text":"To show the documentation in your terminal, run fastlane action xcbuild","title":"Documentation"},{"location":"actions/xcbuild/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcbuild To pass parameters, make use of the : symbol, for example fastlane run xcbuild parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/xcbuild/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/xcclean/","text":"xcclean Cleans the project using xcodebuild xcclean Supported platforms ios, mac Author @dtrenz 1 Example xcclean Documentation To show the documentation in your terminal, run fastlane action xcclean CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcclean To pass parameters, make use of the : symbol, for example fastlane run xcclean parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"xcclean"},{"location":"actions/xcclean/#xcclean","text":"Cleans the project using xcodebuild xcclean Supported platforms ios, mac Author @dtrenz","title":"xcclean"},{"location":"actions/xcclean/#1-example","text":"xcclean","title":"1 Example"},{"location":"actions/xcclean/#documentation","text":"To show the documentation in your terminal, run fastlane action xcclean","title":"Documentation"},{"location":"actions/xcclean/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcclean To pass parameters, make use of the : symbol, for example fastlane run xcclean parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/xcclean/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/xcexport/","text":"xcexport Exports the project using xcodebuild xcexport Supported platforms ios, mac Author @dtrenz 1 Example xcexport Documentation To show the documentation in your terminal, run fastlane action xcexport CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcexport To pass parameters, make use of the : symbol, for example fastlane run xcexport parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"xcexport"},{"location":"actions/xcexport/#xcexport","text":"Exports the project using xcodebuild xcexport Supported platforms ios, mac Author @dtrenz","title":"xcexport"},{"location":"actions/xcexport/#1-example","text":"xcexport","title":"1 Example"},{"location":"actions/xcexport/#documentation","text":"To show the documentation in your terminal, run fastlane action xcexport","title":"Documentation"},{"location":"actions/xcexport/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcexport To pass parameters, make use of the : symbol, for example fastlane run xcexport parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/xcexport/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/xcode_install/","text":"xcode_install Make sure a certain version of Xcode is installed The xcode-install gem, which this action depends on, has been sunset. Please migrate to xcodes . You can find a migration guide here: xcpretty/xcode-install/MIGRATION.md Makes sure a specific version of Xcode is installed. If that's not the case, it will automatically be downloaded by the xcode_install gem. This will make sure to use the correct Xcode for later actions. xcode_install Supported platforms ios, mac Author @Krausefx Returns The path to the newly installed Xcode version 1 Example xcode_install(version: \"7.1\") Parameters Key Description Default version The version number of the version of Xcode to install username Your Apple ID Username * team_id The ID of your team if you're in multiple teams * download_retry_attempts Number of times the download will be retried in case of failure 3 * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The xcode_install action generates the following Lane Variables: SharedValue Description SharedValues::XCODE_INSTALL_XCODE_PATH The path to the newly installed Xcode To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action xcode_install CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcode_install To pass parameters, make use of the : symbol, for example fastlane run xcode_install parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"xcode_install"},{"location":"actions/xcode_install/#xcode_install","text":"Make sure a certain version of Xcode is installed The xcode-install gem, which this action depends on, has been sunset. Please migrate to xcodes . You can find a migration guide here: xcpretty/xcode-install/MIGRATION.md Makes sure a specific version of Xcode is installed. If that's not the case, it will automatically be downloaded by the xcode_install gem. This will make sure to use the correct Xcode for later actions. xcode_install Supported platforms ios, mac Author @Krausefx Returns The path to the newly installed Xcode version","title":"xcode_install"},{"location":"actions/xcode_install/#1-example","text":"xcode_install(version: \"7.1\")","title":"1 Example"},{"location":"actions/xcode_install/#parameters","text":"Key Description Default version The version number of the version of Xcode to install username Your Apple ID Username * team_id The ID of your team if you're in multiple teams * download_retry_attempts Number of times the download will be retried in case of failure 3 * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/xcode_install/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The xcode_install action generates the following Lane Variables: SharedValue Description SharedValues::XCODE_INSTALL_XCODE_PATH The path to the newly installed Xcode To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/xcode_install/#documentation","text":"To show the documentation in your terminal, run fastlane action xcode_install","title":"Documentation"},{"location":"actions/xcode_install/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcode_install To pass parameters, make use of the : symbol, for example fastlane run xcode_install parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/xcode_install/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/xcode_select/","text":"xcode_select Change the xcode-path to use. Useful for beta versions of Xcode Select and build with the Xcode installed at the provided path. Use the xcodes action if you want to select an Xcode: - Based on a version specifier or - You don't have known, stable paths, as may happen in a CI environment. xcode_select Supported platforms ios, mac Author @dtrenz 1 Example xcode_select(\"/Applications/Xcode-8.3.2.app\") Documentation To show the documentation in your terminal, run fastlane action xcode_select CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcode_select To pass parameters, make use of the : symbol, for example fastlane run xcode_select parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"xcode_select"},{"location":"actions/xcode_select/#xcode_select","text":"Change the xcode-path to use. Useful for beta versions of Xcode Select and build with the Xcode installed at the provided path. Use the xcodes action if you want to select an Xcode: - Based on a version specifier or - You don't have known, stable paths, as may happen in a CI environment. xcode_select Supported platforms ios, mac Author @dtrenz","title":"xcode_select"},{"location":"actions/xcode_select/#1-example","text":"xcode_select(\"/Applications/Xcode-8.3.2.app\")","title":"1 Example"},{"location":"actions/xcode_select/#documentation","text":"To show the documentation in your terminal, run fastlane action xcode_select","title":"Documentation"},{"location":"actions/xcode_select/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcode_select To pass parameters, make use of the : symbol, for example fastlane run xcode_select parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/xcode_select/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/xcode_server_get_assets/","text":"xcode_server_get_assets Downloads Xcode Bot assets like the .xcarchive and logs This action downloads assets from your Xcode Server Bot (works with Xcode Server using Xcode 6 and 7. By default, this action downloads all assets, unzips them and deletes everything except for the .xcarchive . If you'd like to keep all downloaded assets, pass keep_all_assets: true . This action returns the path to the downloaded assets folder and puts into shared values the paths to the asset folder and to the .xcarchive inside it. xcode_server_get_assets Supported platforms ios, mac Author @czechboy0 1 Example xcode_server_get_assets( host: \"10.99.0.59\", # Specify Xcode Server's Host or IP Address bot_name: \"release-1.3.4\" # Specify the particular Bot ) Parameters Key Description Default host IP Address/Hostname of Xcode Server bot_name Name of the Bot to pull assets from integration_number Optionally you can override which integration's assets should be downloaded. If not provided, the latest integration is used username Username for your Xcode Server '' password Password for your Xcode Server '' target_folder Relative path to a folder into which to download assets ./xcs_assets keep_all_assets Whether to keep all assets or let the script delete everything except for the .xcarchive false trust_self_signed_certs Whether to trust self-signed certs on your Xcode Server true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The xcode_server_get_assets action generates the following Lane Variables: SharedValue Description SharedValues::XCODE_SERVER_GET_ASSETS_PATH Absolute path to the downloaded assets folder SharedValues::XCODE_SERVER_GET_ASSETS_ARCHIVE_PATH Absolute path to the downloaded xcarchive file To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action xcode_server_get_assets CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcode_server_get_assets To pass parameters, make use of the : symbol, for example fastlane run xcode_server_get_assets parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"xcode_server_get_assets"},{"location":"actions/xcode_server_get_assets/#xcode_server_get_assets","text":"Downloads Xcode Bot assets like the .xcarchive and logs This action downloads assets from your Xcode Server Bot (works with Xcode Server using Xcode 6 and 7. By default, this action downloads all assets, unzips them and deletes everything except for the .xcarchive . If you'd like to keep all downloaded assets, pass keep_all_assets: true . This action returns the path to the downloaded assets folder and puts into shared values the paths to the asset folder and to the .xcarchive inside it. xcode_server_get_assets Supported platforms ios, mac Author @czechboy0","title":"xcode_server_get_assets"},{"location":"actions/xcode_server_get_assets/#1-example","text":"xcode_server_get_assets( host: \"10.99.0.59\", # Specify Xcode Server's Host or IP Address bot_name: \"release-1.3.4\" # Specify the particular Bot )","title":"1 Example"},{"location":"actions/xcode_server_get_assets/#parameters","text":"Key Description Default host IP Address/Hostname of Xcode Server bot_name Name of the Bot to pull assets from integration_number Optionally you can override which integration's assets should be downloaded. If not provided, the latest integration is used username Username for your Xcode Server '' password Password for your Xcode Server '' target_folder Relative path to a folder into which to download assets ./xcs_assets keep_all_assets Whether to keep all assets or let the script delete everything except for the .xcarchive false trust_self_signed_certs Whether to trust self-signed certs on your Xcode Server true * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/xcode_server_get_assets/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The xcode_server_get_assets action generates the following Lane Variables: SharedValue Description SharedValues::XCODE_SERVER_GET_ASSETS_PATH Absolute path to the downloaded assets folder SharedValues::XCODE_SERVER_GET_ASSETS_ARCHIVE_PATH Absolute path to the downloaded xcarchive file To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/xcode_server_get_assets/#documentation","text":"To show the documentation in your terminal, run fastlane action xcode_server_get_assets","title":"Documentation"},{"location":"actions/xcode_server_get_assets/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcode_server_get_assets To pass parameters, make use of the : symbol, for example fastlane run xcode_server_get_assets parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/xcode_server_get_assets/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/xcodebuild/","text":"xcodebuild Use the xcodebuild command to build and sign your app Note : xcodebuild is a complex command, so it is recommended to use gym for building your ipa file and scan for testing your app instead. xcodebuild Supported platforms ios, mac Author @dtrenz 1 Example xcodebuild( archive: true, archive_path: \"./build-dir/MyApp.xcarchive\", scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\" ) Documentation To show the documentation in your terminal, run fastlane action xcodebuild CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcodebuild To pass parameters, make use of the : symbol, for example fastlane run xcodebuild parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"xcodebuild"},{"location":"actions/xcodebuild/#xcodebuild","text":"Use the xcodebuild command to build and sign your app Note : xcodebuild is a complex command, so it is recommended to use gym for building your ipa file and scan for testing your app instead. xcodebuild Supported platforms ios, mac Author @dtrenz","title":"xcodebuild"},{"location":"actions/xcodebuild/#1-example","text":"xcodebuild( archive: true, archive_path: \"./build-dir/MyApp.xcarchive\", scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\" )","title":"1 Example"},{"location":"actions/xcodebuild/#documentation","text":"To show the documentation in your terminal, run fastlane action xcodebuild","title":"Documentation"},{"location":"actions/xcodebuild/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcodebuild To pass parameters, make use of the : symbol, for example fastlane run xcodebuild parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/xcodebuild/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/xcodes/","text":"xcodes Make sure a certain version of Xcode is installed, installing it only if needed Makes sure a specific version of Xcode is installed. If that's not the case, it will automatically be downloaded by xcodes . This will make sure to use the correct Xcode version for later actions. Note that this action depends on xcodes CLI, so make sure you have it installed in your environment. For the installation guide, see: https://github.com/RobotsAndPencils/xcodes#installation xcodes Supported platforms ios, mac Author @rogerluan Returns The path to the newly installed Xcode version 2 Examples xcodes(version: \"14.1\") xcodes # When missing, the version value defaults to the value specified in the .xcode-version file Parameters Key Description Default version The version number of the version of Xcode to install. Defaults to the value specified in the .xcode-version file * update_list Whether the list of available Xcode versions should be updated before running the install command true select_for_current_build_only When true, it won't attempt to install an Xcode version, just find the installed Xcode version that best matches the passed version argument, and select it for the current build steps. It doesn't change the global Xcode version (e.g. via 'xcrun xcode-select'), which would require sudo permissions \u2014 when this option is true, this action doesn't require sudo permissions false binary_path Where the xcodes binary lives on your system (full path) * xcodes_args Pass in xcodes command line arguments directly. When present, other parameters are ignored and only this parameter is used to build the command to be executed * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The xcodes action generates the following Lane Variables: SharedValue Description SharedValues::XCODES_XCODE_PATH The path to the newly installed Xcode version To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action xcodes CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcodes To pass parameters, make use of the : symbol, for example fastlane run xcodes parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"xcodes"},{"location":"actions/xcodes/#xcodes","text":"Make sure a certain version of Xcode is installed, installing it only if needed Makes sure a specific version of Xcode is installed. If that's not the case, it will automatically be downloaded by xcodes . This will make sure to use the correct Xcode version for later actions. Note that this action depends on xcodes CLI, so make sure you have it installed in your environment. For the installation guide, see: https://github.com/RobotsAndPencils/xcodes#installation xcodes Supported platforms ios, mac Author @rogerluan Returns The path to the newly installed Xcode version","title":"xcodes"},{"location":"actions/xcodes/#2-examples","text":"xcodes(version: \"14.1\") xcodes # When missing, the version value defaults to the value specified in the .xcode-version file","title":"2 Examples"},{"location":"actions/xcodes/#parameters","text":"Key Description Default version The version number of the version of Xcode to install. Defaults to the value specified in the .xcode-version file * update_list Whether the list of available Xcode versions should be updated before running the install command true select_for_current_build_only When true, it won't attempt to install an Xcode version, just find the installed Xcode version that best matches the passed version argument, and select it for the current build steps. It doesn't change the global Xcode version (e.g. via 'xcrun xcode-select'), which would require sudo permissions \u2014 when this option is true, this action doesn't require sudo permissions false binary_path Where the xcodes binary lives on your system (full path) * xcodes_args Pass in xcodes command line arguments directly. When present, other parameters are ignored and only this parameter is used to build the command to be executed * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/xcodes/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The xcodes action generates the following Lane Variables: SharedValue Description SharedValues::XCODES_XCODE_PATH The path to the newly installed Xcode version To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"actions/xcodes/#documentation","text":"To show the documentation in your terminal, run fastlane action xcodes","title":"Documentation"},{"location":"actions/xcodes/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcodes To pass parameters, make use of the : symbol, for example fastlane run xcodes parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/xcodes/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/xcov/","text":"xcov Nice code coverage reports without hassle Create nice code coverage reports and post coverage summaries on Slack (xcov gem is required) . More information: https://github.com/nakiostudio/xcov . xcov Supported platforms ios, mac Author @nakiostudio 1 Example xcov( workspace: \"YourWorkspace.xcworkspace\", scheme: \"YourScheme\", output_directory: \"xcov_output\" ) Parameters Key Description Default workspace Path the workspace file project Path the project file scheme The project's scheme. Make sure it's marked as Shared configuration The configuration used when building the app. Defaults to 'Release' source_directory The path to project's root directory derived_data_path The directory where build products and other derived data will go output_directory The directory in which all reports will be stored * html_report Produce an HTML report true markdown_report Produce a Markdown report false json_report Produce a JSON report false minimum_coverage_percentage Raise exception if overall coverage percentage is under this value (ie. 75) 0 slack_url Create an Incoming WebHook for your Slack group to post results there slack_channel #channel or @username skip_slack Don't publish to slack, even when an URL is given false slack_username The username which is used to publish to slack xcov slack_message The message which is published together with a successful report Your *xcov* coverage report ignore_file_path Relative or absolute path to the file containing the list of ignored files * include_test_targets Enables coverage reports for .xctest targets false exclude_targets Comma separated list of targets to exclude from coverage report include_targets Comma separated list of targets to include in coverage report. If specified then exlude_targets will be ignored only_project_targets Display the coverage only for main project targets (e.g. skip Pods targets) false disable_coveralls Add this flag to disable automatic submission to Coveralls false coveralls_service_name Name of the CI service compatible with Coveralls. i.e. travis-ci. This option must be defined along with coveralls_service_job_id coveralls_service_job_id Name of the current job running on a CI service compatible with Coveralls. This option must be defined along with coveralls_service_name coveralls_repo_token Repository token to be used by integrations not compatible with Coveralls xcconfig Use an extra XCCONFIG file to build your app ideFoundationPath Absolute path to the IDEFoundation.framework binary * legacy_support Whether xcov should parse a xccoverage file instead on xccovreport false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action xcov CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcov To pass parameters, make use of the : symbol, for example fastlane run xcov parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"xcov"},{"location":"actions/xcov/#xcov","text":"Nice code coverage reports without hassle Create nice code coverage reports and post coverage summaries on Slack (xcov gem is required) . More information: https://github.com/nakiostudio/xcov . xcov Supported platforms ios, mac Author @nakiostudio","title":"xcov"},{"location":"actions/xcov/#1-example","text":"xcov( workspace: \"YourWorkspace.xcworkspace\", scheme: \"YourScheme\", output_directory: \"xcov_output\" )","title":"1 Example"},{"location":"actions/xcov/#parameters","text":"Key Description Default workspace Path the workspace file project Path the project file scheme The project's scheme. Make sure it's marked as Shared configuration The configuration used when building the app. Defaults to 'Release' source_directory The path to project's root directory derived_data_path The directory where build products and other derived data will go output_directory The directory in which all reports will be stored * html_report Produce an HTML report true markdown_report Produce a Markdown report false json_report Produce a JSON report false minimum_coverage_percentage Raise exception if overall coverage percentage is under this value (ie. 75) 0 slack_url Create an Incoming WebHook for your Slack group to post results there slack_channel #channel or @username skip_slack Don't publish to slack, even when an URL is given false slack_username The username which is used to publish to slack xcov slack_message The message which is published together with a successful report Your *xcov* coverage report ignore_file_path Relative or absolute path to the file containing the list of ignored files * include_test_targets Enables coverage reports for .xctest targets false exclude_targets Comma separated list of targets to exclude from coverage report include_targets Comma separated list of targets to include in coverage report. If specified then exlude_targets will be ignored only_project_targets Display the coverage only for main project targets (e.g. skip Pods targets) false disable_coveralls Add this flag to disable automatic submission to Coveralls false coveralls_service_name Name of the CI service compatible with Coveralls. i.e. travis-ci. This option must be defined along with coveralls_service_job_id coveralls_service_job_id Name of the current job running on a CI service compatible with Coveralls. This option must be defined along with coveralls_service_name coveralls_repo_token Repository token to be used by integrations not compatible with Coveralls xcconfig Use an extra XCCONFIG file to build your app ideFoundationPath Absolute path to the IDEFoundation.framework binary * legacy_support Whether xcov should parse a xccoverage file instead on xccovreport false * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/xcov/#documentation","text":"To show the documentation in your terminal, run fastlane action xcov","title":"Documentation"},{"location":"actions/xcov/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcov To pass parameters, make use of the : symbol, for example fastlane run xcov parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/xcov/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/xctest/","text":"xctest Runs tests on the given simulator xctest Supported platforms ios, mac Author @dtrenz 1 Example xctest( destination: \"name=iPhone 7s,OS=10.0\" ) Documentation To show the documentation in your terminal, run fastlane action xctest CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xctest To pass parameters, make use of the : symbol, for example fastlane run xctest parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"xctest"},{"location":"actions/xctest/#xctest","text":"Runs tests on the given simulator xctest Supported platforms ios, mac Author @dtrenz","title":"xctest"},{"location":"actions/xctest/#1-example","text":"xctest( destination: \"name=iPhone 7s,OS=10.0\" )","title":"1 Example"},{"location":"actions/xctest/#documentation","text":"To show the documentation in your terminal, run fastlane action xctest","title":"Documentation"},{"location":"actions/xctest/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xctest To pass parameters, make use of the : symbol, for example fastlane run xctest parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/xctest/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/xctool/","text":"xctool Run tests using xctool You can run any xctool action. This will require having xctool installed through Homebrew . It is recommended to store the build configuration in the .xctool-args file. More information: https://docs.fastlane.tools/actions/xctool/ . xctool Supported platforms ios, mac Author @KrauseFx 2 Examples xctool(:test) # If you prefer to have the build configuration stored in the `Fastfile`: xctool(:test, [ \"--workspace\", \"'AwesomeApp.xcworkspace'\", \"--scheme\", \"'Schema Name'\", \"--configuration\", \"Debug\", \"--sdk\", \"iphonesimulator\", \"--arch\", \"i386\" ].join(\" \")) Documentation To show the documentation in your terminal, run fastlane action xctool CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xctool To pass parameters, make use of the : symbol, for example fastlane run xctool parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"xctool"},{"location":"actions/xctool/#xctool","text":"Run tests using xctool You can run any xctool action. This will require having xctool installed through Homebrew . It is recommended to store the build configuration in the .xctool-args file. More information: https://docs.fastlane.tools/actions/xctool/ . xctool Supported platforms ios, mac Author @KrauseFx","title":"xctool"},{"location":"actions/xctool/#2-examples","text":"xctool(:test) # If you prefer to have the build configuration stored in the `Fastfile`: xctool(:test, [ \"--workspace\", \"'AwesomeApp.xcworkspace'\", \"--scheme\", \"'Schema Name'\", \"--configuration\", \"Debug\", \"--sdk\", \"iphonesimulator\", \"--arch\", \"i386\" ].join(\" \"))","title":"2 Examples"},{"location":"actions/xctool/#documentation","text":"To show the documentation in your terminal, run fastlane action xctool","title":"Documentation"},{"location":"actions/xctool/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xctool To pass parameters, make use of the : symbol, for example fastlane run xctool parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/xctool/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/xcversion/","text":"xcversion Select an Xcode to use by version specifier The xcode-install gem, which this action depends on, has been sunset. Please migrate to xcodes . You can find a migration guide here: xcpretty/xcode-install/MIGRATION.md Finds and selects a version of an installed Xcode that best matches the provided Gem::Version requirement specifier You can either manually provide a specific version using version: or you make use of the .xcode-version file. xcversion Supported platforms ios, mac Author @oysta, @rogerluan 3 Examples xcversion(version: \"8.1\") # Selects Xcode 8.1.0 xcversion(version: \"~> 8.1.0\") # Selects the latest installed version from the 8.1.x set xcversion # When missing, the version value defaults to the value specified in the .xcode-version file Parameters Key Description Default version The version of Xcode to select specified as a Gem::Version requirement string (e.g. '~> 7.1.0'). Defaults to the value specified in the .xcode-version file * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action xcversion CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcversion To pass parameters, make use of the : symbol, for example fastlane run xcversion parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"xcversion"},{"location":"actions/xcversion/#xcversion","text":"Select an Xcode to use by version specifier The xcode-install gem, which this action depends on, has been sunset. Please migrate to xcodes . You can find a migration guide here: xcpretty/xcode-install/MIGRATION.md Finds and selects a version of an installed Xcode that best matches the provided Gem::Version requirement specifier You can either manually provide a specific version using version: or you make use of the .xcode-version file. xcversion Supported platforms ios, mac Author @oysta, @rogerluan","title":"xcversion"},{"location":"actions/xcversion/#3-examples","text":"xcversion(version: \"8.1\") # Selects Xcode 8.1.0 xcversion(version: \"~> 8.1.0\") # Selects the latest installed version from the 8.1.x set xcversion # When missing, the version value defaults to the value specified in the .xcode-version file","title":"3 Examples"},{"location":"actions/xcversion/#parameters","text":"Key Description Default version The version of Xcode to select specified as a Gem::Version requirement string (e.g. '~> 7.1.0'). Defaults to the value specified in the .xcode-version file * * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/xcversion/#documentation","text":"To show the documentation in your terminal, run fastlane action xcversion","title":"Documentation"},{"location":"actions/xcversion/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcversion To pass parameters, make use of the : symbol, for example fastlane run xcversion parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/xcversion/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"actions/zip/","text":"zip Compress a file or folder to a zip zip Supported platforms ios, android, mac Author @KrauseFx Returns The path to the output zip file 6 Examples zip zip( path: \"MyApp.app\", output_path: \"Latest.app.zip\" ) zip( path: \"MyApp.app\", output_path: \"Latest.app.zip\", verbose: false ) zip( path: \"MyApp.app\", output_path: \"Latest.app.zip\", verbose: false, symlinks: true ) zip( path: \"./\", output_path: \"Source Code.zip\", exclude: [\".git/*\"] ) zip( path: \"./\", output_path: \"Swift Code.zip\", include: [\"**/*.swift\"], exclude: [\"Package.swift\", \"vendor/*\", \"Pods/*\"] ) Parameters Key Description Default path Path to the directory or file to be zipped output_path The name of the resulting zip file verbose Enable verbose output of zipped file true password Encrypt the contents of the zip archive using a password symlinks Store symbolic links as such in the zip archive false include Array of paths or patterns to include [] exclude Array of paths or patterns to exclude [] * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action zip CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run zip To pass parameters, make use of the : symbol, for example fastlane run zip parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"zip"},{"location":"actions/zip/#zip","text":"Compress a file or folder to a zip zip Supported platforms ios, android, mac Author @KrauseFx Returns The path to the output zip file","title":"zip"},{"location":"actions/zip/#6-examples","text":"zip zip( path: \"MyApp.app\", output_path: \"Latest.app.zip\" ) zip( path: \"MyApp.app\", output_path: \"Latest.app.zip\", verbose: false ) zip( path: \"MyApp.app\", output_path: \"Latest.app.zip\", verbose: false, symlinks: true ) zip( path: \"./\", output_path: \"Source Code.zip\", exclude: [\".git/*\"] ) zip( path: \"./\", output_path: \"Swift Code.zip\", include: [\"**/*.swift\"], exclude: [\"Package.swift\", \"vendor/*\", \"Pods/*\"] )","title":"6 Examples"},{"location":"actions/zip/#parameters","text":"Key Description Default path Path to the directory or file to be zipped output_path The name of the resulting zip file verbose Enable verbose output of zipped file true password Encrypt the contents of the zip archive using a password symlinks Store symbolic links as such in the zip archive false include Array of paths or patterns to include [] exclude Array of paths or patterns to exclude [] * = default value is dependent on the user's system","title":"Parameters"},{"location":"actions/zip/#documentation","text":"To show the documentation in your terminal, run fastlane action zip","title":"Documentation"},{"location":"actions/zip/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run zip To pass parameters, make use of the : symbol, for example fastlane run zip parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"actions/zip/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"advanced/Appfile/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 Appfile The Appfile stores useful information that are used across all fastlane tools like your Apple ID or the application Bundle Identifier , to deploy your lanes faster and tailored on your project needs. The Appfile has to be inside your ./fastlane directory. By default an Appfile looks like: app_identifier \"net.sunapps.1\" # The bundle identifier of your app apple_id \"felix@krausefx.com\" # Your Apple email address # You can uncomment the lines below and add your own # team selection in case you're in multiple teams # team_name \"Felix Krause\" # team_id \"Q2CBPJ58CA\" # To select a team for App Store Connect use # itc_team_name \"Company Name\" # itc_team_id \"18742801\" If you have different credentials for App Store Connect and the Apple Developer Portal use the following code: app_identifier \"tools.fastlane.app\" # The bundle identifier of your app apple_dev_portal_id \"portal@company.com\" # Apple Developer Account itunes_connect_id \"tunes@company.com\" # App Store Connect Account team_id \"Q2CBPJ58CA\" # Developer Portal Team ID itc_team_id \"18742801\" # App Store Connect Team ID If your project has different bundle identifiers per environment (i.e. beta, app store), you can define that by using for_platform and/or for_lane block declaration. app_identifier \"net.sunapps.1\" apple_id \"felix@krausefx.com\" team_id \"Q2CBPJ58CC\" for_platform :ios do team_id '123' # for all iOS related things for_lane :test do app_identifier 'com.app.test' end end You only have to use for_platform if you're using platform [platform_name] do in your Fastfile . fastlane will always use the lane specific value if given, otherwise fall back to the value on the top of the file. Therefore, while driving the :test lane, this configuration is loaded: app_identifier \"com.app.test\" apple_id \"felix@krausefx.com\" team_id \"123\" Accessing from fastlane If you want to access those values from within your Fastfile use identifier = CredentialsManager::AppfileConfig.try_fetch_value(:app_identifier) team_id = CredentialsManager::AppfileConfig.try_fetch_value(:team_id)","title":"Appfile"},{"location":"advanced/Appfile/#appfile","text":"The Appfile stores useful information that are used across all fastlane tools like your Apple ID or the application Bundle Identifier , to deploy your lanes faster and tailored on your project needs. The Appfile has to be inside your ./fastlane directory. By default an Appfile looks like: app_identifier \"net.sunapps.1\" # The bundle identifier of your app apple_id \"felix@krausefx.com\" # Your Apple email address # You can uncomment the lines below and add your own # team selection in case you're in multiple teams # team_name \"Felix Krause\" # team_id \"Q2CBPJ58CA\" # To select a team for App Store Connect use # itc_team_name \"Company Name\" # itc_team_id \"18742801\" If you have different credentials for App Store Connect and the Apple Developer Portal use the following code: app_identifier \"tools.fastlane.app\" # The bundle identifier of your app apple_dev_portal_id \"portal@company.com\" # Apple Developer Account itunes_connect_id \"tunes@company.com\" # App Store Connect Account team_id \"Q2CBPJ58CA\" # Developer Portal Team ID itc_team_id \"18742801\" # App Store Connect Team ID If your project has different bundle identifiers per environment (i.e. beta, app store), you can define that by using for_platform and/or for_lane block declaration. app_identifier \"net.sunapps.1\" apple_id \"felix@krausefx.com\" team_id \"Q2CBPJ58CC\" for_platform :ios do team_id '123' # for all iOS related things for_lane :test do app_identifier 'com.app.test' end end You only have to use for_platform if you're using platform [platform_name] do in your Fastfile . fastlane will always use the lane specific value if given, otherwise fall back to the value on the top of the file. Therefore, while driving the :test lane, this configuration is loaded: app_identifier \"com.app.test\" apple_id \"felix@krausefx.com\" team_id \"123\"","title":"Appfile"},{"location":"advanced/Appfile/#accessing-from-fastlane","text":"If you want to access those values from within your Fastfile use identifier = CredentialsManager::AppfileConfig.try_fetch_value(:app_identifier) team_id = CredentialsManager::AppfileConfig.try_fetch_value(:team_id)","title":"Accessing from fastlane"},{"location":"advanced/Fastfile/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 Fastfile The Fastfile stores the automation configuration that can be run with fastlane . The Fastfile has to be inside your ./fastlane directory. The Fastfile is used to configure fastlane . Open it in your favourite text editor, using Ruby syntax highlighting. Defining lanes is easy. lane :my_lane do # Whatever actions you like go in here. end Make as many lanes as you like! before_all block This block will get executed before running the requested lane. It supports the same actions as lanes. before_all do |lane| cocoapods end after_all block This block will get executed after running the requested lane. It supports the same actions as lanes. It will only be called, if the selected lane was executed successfully . after_all do |lane| say(\"Successfully finished deployment (#{lane})!\") slack( message: \"Successfully submitted new App Update\" ) sh(\"./send_screenshots_to_team.sh\") # Example end error block This block will get executed when an error occurs, in any of the blocks ( before_all , the lane itself or after_all ). You can get more information about the error using the error_info property. error do |lane, exception| slack( message: \"Something went wrong with the deployment.\", success: false, payload: { \"Error Info\" => exception.error_info.to_s } ) end Extensions Why only use the default actions? Create your own to extend the functionality of fastlane . The build step you create will behave exactly like the built in actions. Just run fastlane new_action . Then enter the name of the action and edit the generated Ruby file in fastlane/actions/[action_name].rb . From then on, you can just start using your action in your Fastfile . If you think your extension can be used by other developers as well, let me know, and we can bundle it with fastlane . To call another action from within your action, just use the same code you would use in a Fastfile : other_action.deliver(text: \"Please input your password:\", key: 123) In general, think twice before you do this, most of the times, these action should be separate. Only call actions from within action if it makes sense. Importing another Fastfile Within your Fastfile you can import another Fastfile using 2 methods: import Import a Fastfile from a local path import \"../GeneralFastfile\" override_lane :from_general do # ... end import_from_git Import from another git repository, which you can use to have one git repo with a default Fastfile for all your project import_from_git(url: 'https://github.com/fastlane/fastlane') # or import_from_git(url: 'git@github.com:MyAwesomeRepo/MyAwesomeFastlaneStandardSetup.git', path: 'fastlane/Fastfile') lane :new_main_lane do # ... end This will also automatically import all the local actions from this repo. Note You should import the other Fastfile on the top above your lane declarations. When defining a new lane fastlane will make sure to not run into any name conflicts. If you want to overwrite an existing lane (from the imported one), use the override_lane keyword. Load own actions from external folder Add this to the top of your Fastfile . actions_path '../custom_actions_folder/' Using fastlane_require If you're using a third party gem in your Fastfile , it is recommended to use fastlane_require instead of require . fastlane_require will: Verify the gem is installed Show installation instructions if not installed Require the gem (like require does) Example fastlane_require 'hike' lane :release do # Do stuff with hike end","title":"Fastfile"},{"location":"advanced/Fastfile/#fastfile","text":"The Fastfile stores the automation configuration that can be run with fastlane . The Fastfile has to be inside your ./fastlane directory. The Fastfile is used to configure fastlane . Open it in your favourite text editor, using Ruby syntax highlighting. Defining lanes is easy. lane :my_lane do # Whatever actions you like go in here. end Make as many lanes as you like!","title":"Fastfile"},{"location":"advanced/Fastfile/#extensions","text":"Why only use the default actions? Create your own to extend the functionality of fastlane . The build step you create will behave exactly like the built in actions. Just run fastlane new_action . Then enter the name of the action and edit the generated Ruby file in fastlane/actions/[action_name].rb . From then on, you can just start using your action in your Fastfile . If you think your extension can be used by other developers as well, let me know, and we can bundle it with fastlane . To call another action from within your action, just use the same code you would use in a Fastfile : other_action.deliver(text: \"Please input your password:\", key: 123) In general, think twice before you do this, most of the times, these action should be separate. Only call actions from within action if it makes sense.","title":"Extensions"},{"location":"advanced/Fastfile/#importing-another-fastfile","text":"Within your Fastfile you can import another Fastfile using 2 methods:","title":"Importing another Fastfile"},{"location":"advanced/Fastfile/#import","text":"Import a Fastfile from a local path import \"../GeneralFastfile\" override_lane :from_general do # ... end","title":"import"},{"location":"advanced/Fastfile/#import_from_git","text":"Import from another git repository, which you can use to have one git repo with a default Fastfile for all your project import_from_git(url: 'https://github.com/fastlane/fastlane') # or import_from_git(url: 'git@github.com:MyAwesomeRepo/MyAwesomeFastlaneStandardSetup.git', path: 'fastlane/Fastfile') lane :new_main_lane do # ... end This will also automatically import all the local actions from this repo.","title":"import_from_git"},{"location":"advanced/Fastfile/#note","text":"You should import the other Fastfile on the top above your lane declarations. When defining a new lane fastlane will make sure to not run into any name conflicts. If you want to overwrite an existing lane (from the imported one), use the override_lane keyword.","title":"Note"},{"location":"advanced/Fastfile/#load-own-actions-from-external-folder","text":"Add this to the top of your Fastfile . actions_path '../custom_actions_folder/'","title":"Load own actions from external folder"},{"location":"advanced/Fastfile/#using-fastlane_require","text":"If you're using a third party gem in your Fastfile , it is recommended to use fastlane_require instead of require . fastlane_require will: Verify the gem is installed Show installation instructions if not installed Require the gem (like require does)","title":"Using fastlane_require"},{"location":"advanced/Fastfile/#example","text":"fastlane_require 'hike' lane :release do # Do stuff with hike end","title":"Example"},{"location":"advanced/actions/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 Actions Naming actions You can specify a \"step name\" for all actions (starting with fastlane 2.120.0 ) to disambiguate the use of some action several times, in different context. To do so, add the :step_name property to your arguments. For instance with the fastlane-plugin-yarn and the native sh: yarn(step_name: 'install_dependencies') yarn(command: 'build', step_name: 'building_project') yarn(command: 'test', step_name: 'testing_project') yarn(command: 'publish-coverage', step_name: 'publishing_project') These name will appear as the step description instead of generic yarn as you can see in the following output: [08:13:37]: --- Step: install_dependencies --- [08:13:37]: ---------------------------------- [08:13:37]: $ yarn [08:13:37]: \u25b8 yarn install v1.12.3 [08:13:37]: \u25b8 [1/4] Resolving packages... [08:13:37]: \u25b8 success Already up-to-date. [08:13:37]: \u25b8 Done in 0.04s. [08:13:37]: ------------------------------ [08:13:37]: --- Step: building_project --- [08:13:37]: ------------------------------ [08:13:37]: $ yarn build [08:13:37]: \u25b8 yarn run v1.12.3 [08:13:38]: \u25b8 $ sleep 22 && echo build the project [08:14:00]: \u25b8 build the project [08:14:00]: \u25b8 Done in 22.09s. [08:14:00]: ----------------------------- [08:14:00]: --- Step: testing_project --- [08:14:00]: ----------------------------- [08:14:00]: $ yarn test [08:14:00]: \u25b8 yarn run v1.12.3 [08:14:00]: \u25b8 $ sleep 30 && echo test all the things [08:14:30]: \u25b8 test all the things [08:14:30]: \u25b8 Done in 30.09s. [08:14:30]: ------------------ [08:14:30]: --- Step: yarn --- [08:14:30]: ------------------ [08:14:30]: $ yarn publish-coverage [08:14:30]: \u25b8 yarn run v1.12.3 [08:14:31]: \u25b8 $ sleep 12 && echo Covered all the things [08:14:43]: \u25b8 Covered all the things [08:14:43]: \u25b8 Done in 12.10s. +------+----------------------------+-------------+ | fastlane summary | +------+----------------------------+-------------+ | Step | Action | Time (in s) | +------+----------------------------+-------------+ | 1 | install_dependencies | 0 | | 2 | building_project | 22 | | 3 | testing_project | 30 | | 4 | yarn | 12 | +------+----------------------------+-------------+ Interacting with the user Instead of using puts , raise and gets , please use the helper class UI across all fastlane tools: UI.message \"Neutral message (usually white)\" UI.success \"Successfully finished processing (usually green)\" UI.error \"Wahaha, what's going on here! (usually red)\" UI.important \"Make sure to use Windows (usually yellow)\" UI.header \"Inputs\" # a big box name = UI.input(\"What's your name? \") if UI.confirm(\"Are you '#{name}'?\") UI.success \"Oh yeah\" else UI.error \"Wups, invalid\" end UI.password(\"Your password please: \") # password inputs are hidden ###### A \"Dropdown\" for the user project = UI.select(\"Select your project: \", [\"Test Project\", \"Test Workspace\"]) UI.success(\"Okay #{name}, you selected '#{project}'\") ###### To run a command use FastlaneCore::CommandExecutor.execute(command: \"ls\", print_all: true, error: proc do |error_output| # handle error here end) ###### or if you just want to receive a simple value use this only if the command doesn't take long diff = Helper.backticks(\"git diff\") ###### fastlane \"crash\" because of a user error everything that is caused by the user and is not unexpected UI.user_error!(\"You don't have a project in the current directory\") ###### an actual crash when something unexpected happened UI.crash!(\"Network timeout\") ###### a deprecation message UI.deprecated(\"The '--key' parameter is deprecated\") Run actions directly If you just want to try an action without adding them to your Fastfile yet, you can use fastlane run notification message:\"My Text\" title:\"The Title\" To get the available options for any action run fastlane action [action_name] . You might not be able to set some kind of parameters using this method. Shell values You can get value from shell commands: output = sh(\"pod update\") Building Actions Using FastlaneCore::Configuration Most actions accept one or more parameters to customize their behavior. Actions define their parameters in an available_options method. This method returns an array of FastlaneCore::ConfigItem objects to describe supported options. Each option is declared by creating a new ConfigItem , e.g.: FastlaneCore::ConfigItem.new( key: :file, env_name: \"MY_NEW_ACTION_FILE\", description: \"A file to operate on\", type: String, optional: false ) This declares a file option for use with the action in a Fastfile, e.g.: my_new_action(file: \"file.txt\") If the optional env_name is present, an environment variable with the specified name may also be used in place of an option in the Fastfile: MY_NEW_ACTION_FILE=file.txt fastlane run my_new_action The type argument to the FastlaneCore::ConfigItem initializer specifies the name of a Ruby class representing a standard data type. Supplied arguments will be coerced to the specified type. Some standard types support default conversions. Boolean parameters Ruby does not have a single class to represent a Boolean type. When specifying Boolean parameters, use is_string: false , without specifying a type , e.g.: FastlaneCore::ConfigItem.new( key: :commit, env_name: \"MY_NEW_ACTION_COMMIT\", description: \"Commit the results if true\", optional: true, default_value: false, is_string: false ) When passing a string value, e.g. from an environment variable, certain set string values are recognized: MY_NEW_ACTION_COMMIT=true MY_NEW_ACTION_COMMIT=false MY_NEW_ACTION_COMMIT=yes MY_NEW_ACTION_COMMIT=no These values may also be passed in all caps, e.g. MY_NEW_ACTION_COMMIT=YES . Array parameters If a parameter is declared with type: Array and a String argument is passed, an array will be produced by splitting the string using the comma character as a delimiter: FastlaneCore::ConfigItem.new( key: :files, env_name: \"MY_NEW_ACTION_FILES\", description: \"One or more files to operate on\", type: Array, optional: false ) my_new_action(files: \"file1.txt,file2.txt\") This is received by the action as [\"file1.txt\", \"file2.txt\"] . This also means a parameter that accepts an array may take a single string as an argument: my_new_action(files: \"file.txt\") This is received by the action as [\"file.txt\"] . Comma-separated lists are particularly useful when using environment variables: export MY_NEW_ACTION_FILES=file1.txt,file2.txt Polymorphic parameters To allow for different types to be passed to a parameter (beyond what is provided above), specify is_string: false without a type field. Use an optional verify_block argument (see below) or verify the argument within your action. If the block does not raise, the option is considered verified. The UI.user_error! method is a convenient way to handle verification failure. FastlaneCore::ConfigItem.new( key: :polymorphic_option, is_string: false, verify_block: ->(value) { verify_option(value) } ) def verify_option(value) case value when String @polymorphic_option = value when Array @polymorphic_option = value.join(\" \") when Hash @polymorphic_option = value.to_s else UI.user_error! \"Invalid option: #{value.inspect}\" end end Callback parameters If your action needs to provide a callback, specify Proc for the type field. FastlaneCore::ConfigItem.new( key: :callback, description: \"Optional callback argument\", optional: true, type: Proc ) To invoke the callback in your action, use the Proc#call method and pass any arguments: params[:callback].call(result) if params[:callback] To notify the user of success or failure, it's usually best just to return a value such as true or false from your action. Use a callback for contextual error handling. For example, the built-in sh action passes the entire command output to an optional error_callback : callback = lambda do |result| handle_missing_file if result =~ /file not found/i handle_auth_failure if result =~ /login failed/i end sh \"some_cmd\", error_callback: callback Note on Procs When passing a block as a parameter to an action or ConfigItem, use a Proc object. There are three ways to create an instance of Proc in Ruby. Using the lambda operator: verify_block = lambda do |value| ... end Using Proc.new : verify_block = Proc.new do |value| ... end Using the Proc literal notation: verify_block = ->(value) { ... } Note that you cannot pass a block literal as a Proc . Verify blocks Use a verify_block argument with your ConfigItem to provide special argument verification: verify_block = lambda do |value| # Has to be a String to get this far uri = URI(value) UI.error \"Invalid scheme #{uri.scheme}\" unless uri.scheme == \"http\" || uri.scheme == \"https\" end FastlaneCore::ConfigItem.new( key: :url, type: String, verify_block: verify_block ) The verify_block requires a Proc argument (see above). Conflicting options If your action includes multiple conflicting options, use conflicting_options in the ConfigItem for each. Make sure conflicting options are optional. FastlaneCore::ConfigItem.new( key: :text, type: String, optional: true, conflicting_options: [:text_file] ), FastlaneCore::ConfigItem.new( key: :text_file, type: String, optional: true, conflicting_options: [:text] ) You can also pass a conflict_block (a Proc , see above) if you want to implement special handling of conflicting options: conflict_block = Proc.new do |other| UI.user_error! \"Unexpected conflict with option #{other}\" unless [:text, :text_file].include?(other) UI.message \"Ignoring :text_file in favor of :text\" end FastlaneCore::ConfigItem.new( key: :text, type: String, optional: true, conflicting_options: [:text_file], conflict_block: conflict_block ), FastlaneCore::ConfigItem.new( key: :text_file, type: String, optional: true, conflicting_options: [:text], conflict_block: conflict_block ) Optional parameters Parameters with optional: true will be nil unless a default_value field is present. Make sure the default_value is reasonable unless it's acceptable for the key to be absent. FastlaneCore::ConfigItem.new( key: :build_configuration, description: \"Which build configuration to use\", type: String, optional: true, default_value: \"Release\" ), FastlaneCore::ConfigItem.new( key: :offset, description: \"Offset to start from\", type: Integer, optional: true, default_value: 0 ), FastlaneCore::ConfigItem.new( key: :workspace, description: \"Optional workspace path\", type: String, optional: true # Not every project has a workspace, so nil is a good default value here. ) Within the action params[:build_configuration] will never be nil. Specifying the default_value is preferable to something in code like: config = params[:build_configuration] || \"Release\" Default values are included in the documentation for action parameters. Configuration files Many built-in actions such as deliver , gym and scan support configuration files ( Deliverfile , Gymfile , Scanfile ). This is useful for actions with many options. To add support for a configuration file to a custom action, call load_configuration_file early, usually as the first line of run : def self.run(params) params.load_configuration_file(\"MyNewActionfile\") # ... This will load any parameters specified in MyNewActionfile . This method looks for the specified file in ./fastlane , ./.fastlane and . , in that order. The file is evaluated by the Ruby interpreter. You may specify they key from any FastlaneCore::ConfigItem as a method call in the configuration file: command \"ls -la\" files %w{file1.txt file2.txt} Resolution order Parameters are resolved from different sources in the following order: A parameter directly passed to an action using the key , usually from the Fastfile . An environment variable, if the env_name is set. A configuration file used in load_configuration_file . The default_value of the ConfigItem . If not explicitly set, this will be nil . User input and output The FastlaneCore::UI utility may be used to display output to the user and also request input from an action. UI includes a number of methods to customize the output for different purposes: UI.message \"Hello from my_new_action.\" UI.important \"Warning: This is a new action.\" UI.error \"Something unexpected happened in my_new_action. Attempting to continue.\" method description error Displays an error message in red important Displays a warning or other important message in yellow success Displays a success message in green message Displays a message in the default output color deprecated Displays a deprecation message in bold blue command Displays a command being executed in cyan command_output Displays command output in magenta verbose Displays verbose output in the default output color header Displays a message in a box for emphasis Methods ending in an exclamation point ( ! ) terminate execution of the current lane and report an error: UI.user_error! \"Could not open file #{file_path}\" method description crash! Report a catastrophic error user_error! Rescue an exception in your action and report a nice message to the user shell_error! Report failure of a shell command build_failure! Report a build failure test_failure! Report a test failure abort_with_message! Report a failure condition that prevents continuing Note that these methods raise exceptions that are rescued in the runner context for the lane. This terminates further lane execution, so it is not necessary to return. # No need for \"and return\" here UI.user_error!(\"Could not open file #{file_path}\") and return if file.nil? The following methods may be used to prompt the user for input. if UI.interactive? name = UI.input \"Please enter your name: \" is_correct = UI.confirm \"Is this correct? \" choice = UI.select \"Please choose from the following list:\", %w{alpha beta gamma} password = UI.password \"Please enter your password: \" end method description interactive? Indicates whether interactive input is possible input Prompt the user for string input confirm Ask the user a binary question select Prompt the user to select from a list of options password Prompt the user for a password (masks output) Invoking shell commands If your action needs to run a shell command, there are several methods. You can easily determine the exit status of the command and capture all terminal output from the command. Using Kernel#system Use the Ruby system method call to invoke a command string. This does not redirect stdin, stdout or stderr, so output formatting will be unaffected. It executes the command in a subshell. system \"cat fastlane/Fastfile\" Upon command completion, the method returns true or false to indicate completion status. The $? global variable will also indicate the exit status of the command. system \"cat fastlane/Fastfile\" UI.user_error! \"Could not execute command\" unless $?.exitstatus == 0 If the command to be executed is not found, system will return nil , and $?.exitstatus will be nonzero. Using backticks To capture the output of a command, enclose the command in backticks: pod_cmd = `which pod` UI.important \"'pod' command not found\" if pod_cmd.empty? Because you are capturing stdout, the command output will not appear at the terminal unless you log it using UI . Formatting may be lost when capturing command output. The entire output to stdout will be captured after the command returns. Output to stderr is not captured or redirected. The $? global variable will indicate the completion status of the command. If the command to be executed is not found, Errno::ENOENT is raised. Using the sh method You can also use the built-in sh method: sh \"pwd\" This is called the same way in an action as in a Fastfile. This provides consistent logging of command output. All output to stdout and stderr is logged via UI . The sh method can accept a block, which will receive the Process::Status returned by the command, the complete output of the command, and an equivalent shell command upon completion of the command. sh \"ls\", \"-la\" do |status, result, command| unless status.success? UI.error \"Command #{command} (pid #{status.pid}) failed with status #{status.exitstatus}\" end UI.message \"Output is #{result.inspect}\" end To be notified only when an error occurs, use the error_callback parameter (a Proc): success = true sh(\"pwd\", error_callback: ->(result) { success = false }) UI.user_error \"Command failed\" unless success The result argument to the error_callback is the entire string output of the command. If the command to be executed is not found, Errno::ENOENT is raised without calling the block or error_callback . If an error_callback or block is not provided, and the command executes and returns an error, an exception is raised, and lane execution is terminated unless the exception is rescued. The exit status of the command will be available in $? . It is also available as the first argument to a block. The return value of the method is the output of the command, unless a block is given. Then the output is available within the block, and the return value of sh is the return value of the block. This enables usage like: if sh command { |s| s.success? } UI.success \"Command succeeded\" else UI.error \"Command failed\" end Anywhere other than an action or a Fastfile (e.g. in helper code), you can invoke this method as Actions.sh . Escaping in shell commands Use shellwords to escape arguments to shell commands. `git commit -aqm #{Shellwords.escape commit_message}` system \"cat #{path.shellescape}\" When using system or sh , pass a list of arguments instead of shell-escaping individual arguments. sh \"git\", \"commit\", \"-aqm\", commit_message system \"cat\", path Calling other actions Some built-in utility actions, such as sh , may be used in custom actions (e.g., in plugins). It's not generally a good idea to call a complex action from another action. In particular: If you're calling one plugin action from another plugin action, you should probably refactor your plugin helper to be more easily called from all actions in the plugin. Avoid wrapping complex built-in actions like deliver and gym . There can be issues with one plugin depending on another plugin. Certain simple built-in utility actions may be used with other_action in your action, such as: other_action.git_add , other_action.git_commit . Think twice before calling an action from another action. There is often a better solution.","title":"Actions"},{"location":"advanced/actions/#actions","text":"","title":"Actions"},{"location":"advanced/actions/#naming-actions","text":"You can specify a \"step name\" for all actions (starting with fastlane 2.120.0 ) to disambiguate the use of some action several times, in different context. To do so, add the :step_name property to your arguments. For instance with the fastlane-plugin-yarn and the native sh: yarn(step_name: 'install_dependencies') yarn(command: 'build', step_name: 'building_project') yarn(command: 'test', step_name: 'testing_project') yarn(command: 'publish-coverage', step_name: 'publishing_project') These name will appear as the step description instead of generic yarn as you can see in the following output: [08:13:37]: --- Step: install_dependencies --- [08:13:37]: ---------------------------------- [08:13:37]: $ yarn [08:13:37]: \u25b8 yarn install v1.12.3 [08:13:37]: \u25b8 [1/4] Resolving packages... [08:13:37]: \u25b8 success Already up-to-date. [08:13:37]: \u25b8 Done in 0.04s. [08:13:37]: ------------------------------ [08:13:37]: --- Step: building_project --- [08:13:37]: ------------------------------ [08:13:37]: $ yarn build [08:13:37]: \u25b8 yarn run v1.12.3 [08:13:38]: \u25b8 $ sleep 22 && echo build the project [08:14:00]: \u25b8 build the project [08:14:00]: \u25b8 Done in 22.09s. [08:14:00]: ----------------------------- [08:14:00]: --- Step: testing_project --- [08:14:00]: ----------------------------- [08:14:00]: $ yarn test [08:14:00]: \u25b8 yarn run v1.12.3 [08:14:00]: \u25b8 $ sleep 30 && echo test all the things [08:14:30]: \u25b8 test all the things [08:14:30]: \u25b8 Done in 30.09s. [08:14:30]: ------------------ [08:14:30]: --- Step: yarn --- [08:14:30]: ------------------ [08:14:30]: $ yarn publish-coverage [08:14:30]: \u25b8 yarn run v1.12.3 [08:14:31]: \u25b8 $ sleep 12 && echo Covered all the things [08:14:43]: \u25b8 Covered all the things [08:14:43]: \u25b8 Done in 12.10s. +------+----------------------------+-------------+ | fastlane summary | +------+----------------------------+-------------+ | Step | Action | Time (in s) | +------+----------------------------+-------------+ | 1 | install_dependencies | 0 | | 2 | building_project | 22 | | 3 | testing_project | 30 | | 4 | yarn | 12 | +------+----------------------------+-------------+","title":"Naming actions"},{"location":"advanced/actions/#interacting-with-the-user","text":"Instead of using puts , raise and gets , please use the helper class UI across all fastlane tools: UI.message \"Neutral message (usually white)\" UI.success \"Successfully finished processing (usually green)\" UI.error \"Wahaha, what's going on here! (usually red)\" UI.important \"Make sure to use Windows (usually yellow)\" UI.header \"Inputs\" # a big box name = UI.input(\"What's your name? \") if UI.confirm(\"Are you '#{name}'?\") UI.success \"Oh yeah\" else UI.error \"Wups, invalid\" end UI.password(\"Your password please: \") # password inputs are hidden ###### A \"Dropdown\" for the user project = UI.select(\"Select your project: \", [\"Test Project\", \"Test Workspace\"]) UI.success(\"Okay #{name}, you selected '#{project}'\") ###### To run a command use FastlaneCore::CommandExecutor.execute(command: \"ls\", print_all: true, error: proc do |error_output| # handle error here end) ###### or if you just want to receive a simple value use this only if the command doesn't take long diff = Helper.backticks(\"git diff\") ###### fastlane \"crash\" because of a user error everything that is caused by the user and is not unexpected UI.user_error!(\"You don't have a project in the current directory\") ###### an actual crash when something unexpected happened UI.crash!(\"Network timeout\") ###### a deprecation message UI.deprecated(\"The '--key' parameter is deprecated\")","title":"Interacting with the user"},{"location":"advanced/actions/#run-actions-directly","text":"If you just want to try an action without adding them to your Fastfile yet, you can use fastlane run notification message:\"My Text\" title:\"The Title\" To get the available options for any action run fastlane action [action_name] . You might not be able to set some kind of parameters using this method.","title":"Run actions directly"},{"location":"advanced/actions/#shell-values","text":"You can get value from shell commands: output = sh(\"pod update\")","title":"Shell values"},{"location":"advanced/actions/#building-actions","text":"","title":"Building Actions"},{"location":"advanced/actions/#using-fastlanecoreconfiguration","text":"Most actions accept one or more parameters to customize their behavior. Actions define their parameters in an available_options method. This method returns an array of FastlaneCore::ConfigItem objects to describe supported options. Each option is declared by creating a new ConfigItem , e.g.: FastlaneCore::ConfigItem.new( key: :file, env_name: \"MY_NEW_ACTION_FILE\", description: \"A file to operate on\", type: String, optional: false ) This declares a file option for use with the action in a Fastfile, e.g.: my_new_action(file: \"file.txt\") If the optional env_name is present, an environment variable with the specified name may also be used in place of an option in the Fastfile: MY_NEW_ACTION_FILE=file.txt fastlane run my_new_action The type argument to the FastlaneCore::ConfigItem initializer specifies the name of a Ruby class representing a standard data type. Supplied arguments will be coerced to the specified type. Some standard types support default conversions.","title":"Using FastlaneCore::Configuration"},{"location":"advanced/actions/#user-input-and-output","text":"The FastlaneCore::UI utility may be used to display output to the user and also request input from an action. UI includes a number of methods to customize the output for different purposes: UI.message \"Hello from my_new_action.\" UI.important \"Warning: This is a new action.\" UI.error \"Something unexpected happened in my_new_action. Attempting to continue.\" method description error Displays an error message in red important Displays a warning or other important message in yellow success Displays a success message in green message Displays a message in the default output color deprecated Displays a deprecation message in bold blue command Displays a command being executed in cyan command_output Displays command output in magenta verbose Displays verbose output in the default output color header Displays a message in a box for emphasis Methods ending in an exclamation point ( ! ) terminate execution of the current lane and report an error: UI.user_error! \"Could not open file #{file_path}\" method description crash! Report a catastrophic error user_error! Rescue an exception in your action and report a nice message to the user shell_error! Report failure of a shell command build_failure! Report a build failure test_failure! Report a test failure abort_with_message! Report a failure condition that prevents continuing Note that these methods raise exceptions that are rescued in the runner context for the lane. This terminates further lane execution, so it is not necessary to return. # No need for \"and return\" here UI.user_error!(\"Could not open file #{file_path}\") and return if file.nil? The following methods may be used to prompt the user for input. if UI.interactive? name = UI.input \"Please enter your name: \" is_correct = UI.confirm \"Is this correct? \" choice = UI.select \"Please choose from the following list:\", %w{alpha beta gamma} password = UI.password \"Please enter your password: \" end method description interactive? Indicates whether interactive input is possible input Prompt the user for string input confirm Ask the user a binary question select Prompt the user to select from a list of options password Prompt the user for a password (masks output)","title":"User input and output"},{"location":"advanced/actions/#invoking-shell-commands","text":"If your action needs to run a shell command, there are several methods. You can easily determine the exit status of the command and capture all terminal output from the command.","title":"Invoking shell commands"},{"location":"advanced/actions/#calling-other-actions","text":"Some built-in utility actions, such as sh , may be used in custom actions (e.g., in plugins). It's not generally a good idea to call a complex action from another action. In particular: If you're calling one plugin action from another plugin action, you should probably refactor your plugin helper to be more easily called from all actions in the plugin. Avoid wrapping complex built-in actions like deliver and gym . There can be issues with one plugin depending on another plugin. Certain simple built-in utility actions may be used with other_action in your action, such as: other_action.git_add , other_action.git_commit . Think twice before calling an action from another action. There is often a better solution.","title":"Calling other actions"},{"location":"advanced/fastlane/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 Configuring fastlane Skip update check when launching fastlane You can set the environment variable FASTLANE_SKIP_UPDATE_CHECK to skip the update check. Hide changelog information at the end of running fastlane You can set the environment variable FASTLANE_HIDE_CHANGELOG to hide the detailed changelog information when new fastlane versions are available. Output environment variables To hide timestamps in each row, set the FASTLANE_HIDE_TIMESTAMP environment variable to true (overruled by --verbose ). To output the timezone in the timestamp, set the FASTLANE_SHOW_TIMEZONE environment variable to true. To disable output formatting, set the FASTLANE_DISABLE_OUTPUT_FORMAT environment variable to true. To disable warnings about startup time and Gemfile usage, set the SKIP_SLOW_FASTLANE_WARNING environment variable to true. To disable the plugins summary table printed at the beginning, set the FASTLANE_HIDE_PLUGINS_TABLE environment variable to true. To disable action summary table output, set the FASTLANE_SKIP_ACTION_SUMMARY environment variable to true. How fastlane works Priorities of parameters and options The order in which fastlane tools take their values from CLI parameter (e.g. gym --scheme Example ) or Fastfile (e.g. gym(scheme: 'Example') ) Environment variable (e.g. GYM_SCHEME ) Tool specific config file (e.g. Gymfile containing scheme 'Example' ) Default value (which might be taken from the Appfile , e.g. app_identifier from the Appfile ) If this value is required, you'll be asked for it (e.g. you have multiple schemes, you'll be asked for it) Directory behavior fastlane was designed in a way that you can run fastlane from both the root directory of the project, and from the ./fastlane sub-folder. Take this example Fastfile on the path fastlane/Fastfile sh \"pwd\" # => \"[root]/fastlane\" puts Dir.pwd # => \"[root]/fastlane\" lane :something do sh \"pwd\" # => \"[root]/fastlane\" puts Dir.pwd # => \"[root]/fastlane\" my_action end The implementation of my_action looks like this: def run(params) puts Dir.pwd # => \"[root]\" end Notice how every action and every plugin's code runs in the root of the project, while all user code from the Fastfile runs inside the ./fastlane directory. This is important to consider when migrating existing code from your Fastfile into your own action or plugin. To change the directory manually you can use standard Ruby blocks: Dir.chdir(\"..\") do # code here runs in the parent directory end This behavior isn't great, and has been like this since the very early days of fastlane . As much as we'd like to change it, there is no good way to do so, without breaking thousands of production setups, so we decided to keep it as is for now. Passing parameters to fastlane command line tools fastlane contains several command line tools, e.g. fastlane deliver or fastlane snapshot . To pass parameters to these tools, append the option names and values as you would for a normal shell command: fastlane [tool] --[option]=[value] fastlane deliver --skip_screenshots=true fastlane snapshot --screenshots_path=xxxxx --schema=xxxx","title":"fastlane"},{"location":"advanced/fastlane/#fastlane","text":"","title":"fastlane"},{"location":"advanced/fastlane/#configuring-fastlane","text":"","title":"Configuring fastlane"},{"location":"advanced/fastlane/#how-fastlane-works","text":"","title":"How fastlane works"},{"location":"advanced/fastlane/#passing-parameters-to-fastlane-command-line-tools","text":"fastlane contains several command line tools, e.g. fastlane deliver or fastlane snapshot . To pass parameters to these tools, append the option names and values as you would for a normal shell command: fastlane [tool] --[option]=[value] fastlane deliver --skip_screenshots=true fastlane snapshot --screenshots_path=xxxxx --schema=xxxx","title":"Passing parameters to fastlane command line tools"},{"location":"advanced/lanes/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 Lanes Passing Parameters To pass parameters from the command line to your lane, use the following syntax: fastlane [lane] key:value key2:value2 fastlane deploy submit:false build_number:24 To access those values, change your lane declaration to also include |options| before_all do |lane, options| # ... end before_each do |lane, options| # ... end lane :deploy do |options| # ... if options[:submit] # Only when submit is true end # ... increment_build_number(build_number: options[:build_number]) # ... end after_all do |lane, options| # ... end after_each do |lane, options| # ... end error do |lane, exception, options| if options[:debug] puts \"Hi :)\" end end Switching lanes To switch lanes while executing a lane, use the following code: lane :deploy do |options| # ... build(release: true) # that's the important bit hockey # ... end lane :staging do |options| # ... build # it also works when you don't pass parameters hockey # ... end lane :build do |options| build_config = (options[:release] ? \"Release\" : \"Staging\") build_ios_app(configuration: build_config) end fastlane takes care of all the magic for you. You can call lanes of the same platform or a general lane outside of the platform definition. Passing parameters is optional. Returning values Additionally, you can retrieve the return value. In Ruby, the last line of the lane definition is the return value. Here is an example: lane :deploy do |options| value = calculate(value: 3) puts value # => 5 end lane :calculate do |options| # ... 2 + options[:value] # the last line will always be the return value end Stop executing a lane early The next keyword can be used to stop executing a lane before it reaches the end. lane :build do |options| if cached_build_available? UI.important 'Skipping build because a cached build is available!' next # skip doing the rest of this lane end match gym end private_lane :cached_build_available? do |options| # ... true end When next is used during a lane switch, control returns to the previous lane that was executing. lane :first_lane do |options| puts \"If you run: `fastlane first_lane`\" puts \"You'll see this!\" second_lane puts \"As well as this!\" end private_lane :second_lane do |options| next puts \"This won't be shown\" end When you stop executing a lane early with next , any after_each and after_all blocks you have will still trigger as usual :+1: before_each and after_each blocks before_each blocks are called before any lane is called. This would include being called before each lane you've switched to. before_each do |lane, options| # ... end after_each blocks are called after any lane is called. This would include being called after each lane you've switched to. Just like after_all , after_each is not called if an error occurs. The error block should be used in this case. after_each do |lane, options| # ... end e.g. With this scenario, before_each and after_each would be called 4 times: before the deploy lane, before the switch to archive , sign , and upload , and after each of these lanes as well. lane :deploy do archive sign upload end lane :archive do # ... end lane :sign do # ... end lane :upload do # ... end Lane Context The different actions can communicate with each other using a shared hash. You can access this in your code (lanes, actions, plugins etc.): lane_context[SharedValues::VARIABLE_NAME_HERE] Here are some examples: lane_context[SharedValues::BUILD_NUMBER] # Generated by `increment_build_number` lane_context[SharedValues::VERSION_NUMBER] # Generated by `increment_version_number` lane_context[SharedValues::SNAPSHOT_SCREENSHOTS_PATH] # Generated by _snapshot_ lane_context[SharedValues::PRODUCE_APPLE_ID] # The Apple ID of the newly created app lane_context[SharedValues::IPA_OUTPUT_PATH] # Generated by _gym_ lane_context[SharedValues::DSYM_OUTPUT_PATH] # Generated by _gym_ lane_context[SharedValues::SIGH_PROFILE_PATH] # Generated by _sigh_ lane_context[SharedValues::SIGH_UDID] # The UDID of the generated provisioning profile lane_context[SharedValues::HOCKEY_DOWNLOAD_LINK] # Generated by `hockey` lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH] # Generated by `gradle` lane_context[SharedValues::GRADLE_ALL_APK_OUTPUT_PATHS] # Generated by `gradle` lane_context[SharedValues::GRADLE_FLAVOR] # Generated by `gradle` lane_context[SharedValues::GRADLE_BUILD_TYPE] # Generated by `gradle` To get information about available lane variables, run fastlane action [action_name] or look at the generated table in the action documentation. Lane Properties It can be useful to dynamically access some properties of the current lane. These are available in lane_context as well: lane_context[SharedValues::PLATFORM_NAME] # Platform name, e.g. `:ios`, `:android` or empty (for root level lanes) lane_context[SharedValues::LANE_NAME] # The name of the current lane preceded by the platform name (stays the same when switching lanes) lane_context[SharedValues::DEFAULT_PLATFORM] # Default platform They are also available as environment variables: ENV[\"FASTLANE_PLATFORM_NAME\"] ENV[\"FASTLANE_LANE_NAME\"] Private lanes Sometimes you might have a lane that is used from different lanes, for example: lane :production do # ... build(release: true) appstore # Deploy to the AppStore # ... end lane :beta do # ... build(release: false) crashlytics # Distribute to testers # ... end lane :build do |options| # ... ipa # ... end It probably doesn't make sense to execute the build lane directly using fastlane build . You can hide this lane using private_lane :build do |options| # ... end This will hide the lane from: fastlane lanes fastlane list fastlane docs And also, you can't call the private lane using fastlane build . The resulting private lane can only be called from another lane using the lane switching technology. Control configuration by lane and by platform In general, configuration files take only the first value given for a particular configuration item. That means that for an Appfile like the following: app_identifier \"com.used.id\" app_identifier \"com.ignored.id\" the app_identfier will be \"com.used.id\" and the second value will be ignored. The for_lane and for_platform configuration blocks provide a limited exception to this rule. All configuration files (Appfile, Matchfile, Screengrabfile, etc.) can use for_lane and for_platform blocks to control (and override) configuration values for those circumstances. for_lane blocks will be called when the name of lane invoked on the command line matches the one specified by the block. So, given a Screengrabfile like: locales ['en-US', 'fr-FR', 'ja-JP'] for_lane :screenshots_english_only do locales ['en-US'] end for_lane :screenshots_french_only do locales ['fr-FR'] end locales will have the values ['en-US', 'fr-FR', 'ja-JP'] by default, but will only have one value when running the fastlane screenshots_english_only or fastlane screenshots_french_only . for_platform gives you similar control based on the platform for which you have invoked fastlane . So, for an Appfile configured like: app_identifier \"com.default.id\" for_lane :enterprise do app_identifier \"com.forlane.enterprise\" end for_platform :mac do app_identifier \"com.forplatform.mac\" for_lane :release do app_identifier \"com.forplatform.mac.forlane.release\" end end you can expect the app_identifier to equal \"com.forplatform.mac.forlane.release\" when invoking fastlane mac release .","title":"Lanes"},{"location":"advanced/lanes/#lanes","text":"","title":"Lanes"},{"location":"advanced/lanes/#passing-parameters","text":"To pass parameters from the command line to your lane, use the following syntax: fastlane [lane] key:value key2:value2 fastlane deploy submit:false build_number:24 To access those values, change your lane declaration to also include |options| before_all do |lane, options| # ... end before_each do |lane, options| # ... end lane :deploy do |options| # ... if options[:submit] # Only when submit is true end # ... increment_build_number(build_number: options[:build_number]) # ... end after_all do |lane, options| # ... end after_each do |lane, options| # ... end error do |lane, exception, options| if options[:debug] puts \"Hi :)\" end end","title":"Passing Parameters"},{"location":"advanced/lanes/#switching-lanes","text":"To switch lanes while executing a lane, use the following code: lane :deploy do |options| # ... build(release: true) # that's the important bit hockey # ... end lane :staging do |options| # ... build # it also works when you don't pass parameters hockey # ... end lane :build do |options| build_config = (options[:release] ? \"Release\" : \"Staging\") build_ios_app(configuration: build_config) end fastlane takes care of all the magic for you. You can call lanes of the same platform or a general lane outside of the platform definition. Passing parameters is optional.","title":"Switching lanes"},{"location":"advanced/lanes/#returning-values","text":"Additionally, you can retrieve the return value. In Ruby, the last line of the lane definition is the return value. Here is an example: lane :deploy do |options| value = calculate(value: 3) puts value # => 5 end lane :calculate do |options| # ... 2 + options[:value] # the last line will always be the return value end","title":"Returning values"},{"location":"advanced/lanes/#stop-executing-a-lane-early","text":"The next keyword can be used to stop executing a lane before it reaches the end. lane :build do |options| if cached_build_available? UI.important 'Skipping build because a cached build is available!' next # skip doing the rest of this lane end match gym end private_lane :cached_build_available? do |options| # ... true end When next is used during a lane switch, control returns to the previous lane that was executing. lane :first_lane do |options| puts \"If you run: `fastlane first_lane`\" puts \"You'll see this!\" second_lane puts \"As well as this!\" end private_lane :second_lane do |options| next puts \"This won't be shown\" end When you stop executing a lane early with next , any after_each and after_all blocks you have will still trigger as usual :+1:","title":"Stop executing a lane early"},{"location":"advanced/lanes/#before_each-and-after_each-blocks","text":"before_each blocks are called before any lane is called. This would include being called before each lane you've switched to. before_each do |lane, options| # ... end after_each blocks are called after any lane is called. This would include being called after each lane you've switched to. Just like after_all , after_each is not called if an error occurs. The error block should be used in this case. after_each do |lane, options| # ... end e.g. With this scenario, before_each and after_each would be called 4 times: before the deploy lane, before the switch to archive , sign , and upload , and after each of these lanes as well. lane :deploy do archive sign upload end lane :archive do # ... end lane :sign do # ... end lane :upload do # ... end","title":"before_each and after_each blocks"},{"location":"advanced/lanes/#lane-context","text":"The different actions can communicate with each other using a shared hash. You can access this in your code (lanes, actions, plugins etc.): lane_context[SharedValues::VARIABLE_NAME_HERE] Here are some examples: lane_context[SharedValues::BUILD_NUMBER] # Generated by `increment_build_number` lane_context[SharedValues::VERSION_NUMBER] # Generated by `increment_version_number` lane_context[SharedValues::SNAPSHOT_SCREENSHOTS_PATH] # Generated by _snapshot_ lane_context[SharedValues::PRODUCE_APPLE_ID] # The Apple ID of the newly created app lane_context[SharedValues::IPA_OUTPUT_PATH] # Generated by _gym_ lane_context[SharedValues::DSYM_OUTPUT_PATH] # Generated by _gym_ lane_context[SharedValues::SIGH_PROFILE_PATH] # Generated by _sigh_ lane_context[SharedValues::SIGH_UDID] # The UDID of the generated provisioning profile lane_context[SharedValues::HOCKEY_DOWNLOAD_LINK] # Generated by `hockey` lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH] # Generated by `gradle` lane_context[SharedValues::GRADLE_ALL_APK_OUTPUT_PATHS] # Generated by `gradle` lane_context[SharedValues::GRADLE_FLAVOR] # Generated by `gradle` lane_context[SharedValues::GRADLE_BUILD_TYPE] # Generated by `gradle` To get information about available lane variables, run fastlane action [action_name] or look at the generated table in the action documentation.","title":"Lane Context"},{"location":"advanced/lanes/#lane-properties","text":"It can be useful to dynamically access some properties of the current lane. These are available in lane_context as well: lane_context[SharedValues::PLATFORM_NAME] # Platform name, e.g. `:ios`, `:android` or empty (for root level lanes) lane_context[SharedValues::LANE_NAME] # The name of the current lane preceded by the platform name (stays the same when switching lanes) lane_context[SharedValues::DEFAULT_PLATFORM] # Default platform They are also available as environment variables: ENV[\"FASTLANE_PLATFORM_NAME\"] ENV[\"FASTLANE_LANE_NAME\"]","title":"Lane Properties"},{"location":"advanced/lanes/#private-lanes","text":"Sometimes you might have a lane that is used from different lanes, for example: lane :production do # ... build(release: true) appstore # Deploy to the AppStore # ... end lane :beta do # ... build(release: false) crashlytics # Distribute to testers # ... end lane :build do |options| # ... ipa # ... end It probably doesn't make sense to execute the build lane directly using fastlane build . You can hide this lane using private_lane :build do |options| # ... end This will hide the lane from: fastlane lanes fastlane list fastlane docs And also, you can't call the private lane using fastlane build . The resulting private lane can only be called from another lane using the lane switching technology.","title":"Private lanes"},{"location":"advanced/lanes/#control-configuration-by-lane-and-by-platform","text":"In general, configuration files take only the first value given for a particular configuration item. That means that for an Appfile like the following: app_identifier \"com.used.id\" app_identifier \"com.ignored.id\" the app_identfier will be \"com.used.id\" and the second value will be ignored. The for_lane and for_platform configuration blocks provide a limited exception to this rule. All configuration files (Appfile, Matchfile, Screengrabfile, etc.) can use for_lane and for_platform blocks to control (and override) configuration values for those circumstances. for_lane blocks will be called when the name of lane invoked on the command line matches the one specified by the block. So, given a Screengrabfile like: locales ['en-US', 'fr-FR', 'ja-JP'] for_lane :screenshots_english_only do locales ['en-US'] end for_lane :screenshots_french_only do locales ['fr-FR'] end locales will have the values ['en-US', 'fr-FR', 'ja-JP'] by default, but will only have one value when running the fastlane screenshots_english_only or fastlane screenshots_french_only . for_platform gives you similar control based on the platform for which you have invoked fastlane . So, for an Appfile configured like: app_identifier \"com.default.id\" for_lane :enterprise do app_identifier \"com.forlane.enterprise\" end for_platform :mac do app_identifier \"com.forplatform.mac\" for_lane :release do app_identifier \"com.forplatform.mac.forlane.release\" end end you can expect the app_identifier to equal \"com.forplatform.mac.forlane.release\" when invoking fastlane mac release .","title":"Control configuration by lane and by platform"},{"location":"advanced/other/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 Other Other advanced topics that didn't fit anywhere else: Environment Variables You can define environment variables in a .env or .env.default file in the same directory as your Fastfile . Environment variables are loaded using dotenv . Here's an example: WORKSPACE=YourApp.xcworkspace HOCKEYAPP_API_TOKEN=your-hockey-api-token fastlane also has a --env option that allows loading of environment specific dotenv files. .env and .env.default will be loaded before environment specific dotenv files are loaded. The naming convention for environment specific dotenv files is .env. For example, fastlane --env development will load .env , .env.default , and .env.development Alternatively, as environment variables are not a fastlane specific thing, you can also use standard methods to set them: DELIVER_USER=\"felix@krausefx.com\" fastlane test or export DELIVER_USER=\"felix@krausefx.com\"; fastlane test Although it kind of defeats the purpose of using them in the first place (not to have their content in any files), you can also set them in your Fastfile : ENV[\"DELIVER_USER\"] = \"felix@krausefx.com\" Adding Credentials You can add credentials for use by fastlane to your keychain using the CredentialsManager command line interface. This is useful for situations like CI environments. Adding a Credential fastlane fastlane-credentials add --username felix@krausefx.com Password: ********* Credential felix@krausefx.com:********* added to keychain. Removing a Credential fastlane fastlane-credentials remove --username felix@krausefx.com password has been deleted. Manually manage the fastlane match Repo Most users can benefit from match 's automatic management of the repo that stores certificates and provisioning profiles. From time to time, it may be necessary to manually change the files in this repo. For example, fastlane requires admin access to the Apple Developer account to generate the appropriate files. If you are provided with an updated certificate or profile but do not have admin access, you can manually edit the repo. Warning: Manually editing your match repo can introduce unexpected behavior and is not recommended. Proceed with caution. Instructions Overview Because: fastlane encrypts the repo, and fastlane doesn't support manual edits to the repo it's necessary to manually decrypt, then modify, then encrypt, the repo to make any changes. These instructions presuppose you already have fastlane match configured correctly. \ud83d\udd13 Decryption Instructions The easiest way to decrypt the repo is to use the fastlane match Storage and Encryption classes. You can do this from an interactive Ruby console: $ bundle console irb(main):001:0> Then, require match and set the appropriate parameters: irb(main):001:0> require 'match' irb(main):002:0> git_url = 'https://github.com/fastlane/example-certificate-repo' => \"https://github.com/fastlane/example-certificate-repo\" irb(main):003:0> shallow_clone = false => false irb(main):004:0> ENV[\"MATCH_PASSWORD\"] = 'example-password' => \"example-password\" irb(main):005:0> branch = 'master' => \"master\" Now create an instance of Storage and Encryption . The download method on Storage will clone the repo and the decrypt_files method on Encryption will decrypt the repo for you. Assign the return values to storage and encrypt , which we'll need later when we re-encrypt: irb(main):006:0> storage = Match::Storage.from_params({storage_mode: \"git\", git_url: git_url, shallow_clone: shallow_clone, git_branch: branch, clone_branch_directly: false}) irb(main):007:0> storage.download irb(main):008:0> encryption = Match::Encryption.for_storage_mode(\"git\", { git_url: git_url, working_directory: storage.working_directory}) irb(main):009:0> encryption.decrypt_files [14:24:42]: \ud83d\udd13 Successfully decrypted certificates repo irb(main):010:0> storage.working_directory => \"/var/folders/ql/4rgq9x7j51n_971xb332w9lc0000gn/T/d20181105-65220-1oalh6v\" The above example checks out the master (which is the default branch that match uses). A common match pattern is to create a separate branch per each developer team (the name of the branch being the team identifier). The directory beginning with /var/folders contains the decrypted git repo. Modify it as needed. If you are updating a .p12 file, ensure it's exported from the keychain without a password, since match doesn't support importing private keys with a password. Warning: Do not commit your changes. Allow fastlane to do that for you. Once your changes are made, we'll need to encrypt the repo and push it. \ud83d\udd12 Encryption Instructions In the Ruby console, call encryption.encrypt_files and storage.save_changes! . For example: irb(main):010:0> encryption.encrypt_files irb(main):011:0> files_to_commit = Dir[File.join(storage.working_directory, \"**\", \"*.{cer,p12,mobileprovision}\")] irb(main):012:0> storage.save_changes!(files_to_commit: files_to_commit) Your changes will be encrypted, committed, and pushed. Note: If your keychain doesn't include the encryption passcode, you may be prompted for it. If so, just enter the same password you used to decrypt it.","title":"Other"},{"location":"advanced/other/#other","text":"Other advanced topics that didn't fit anywhere else:","title":"Other"},{"location":"advanced/other/#environment-variables","text":"You can define environment variables in a .env or .env.default file in the same directory as your Fastfile . Environment variables are loaded using dotenv . Here's an example: WORKSPACE=YourApp.xcworkspace HOCKEYAPP_API_TOKEN=your-hockey-api-token fastlane also has a --env option that allows loading of environment specific dotenv files. .env and .env.default will be loaded before environment specific dotenv files are loaded. The naming convention for environment specific dotenv files is .env. For example, fastlane --env development will load .env , .env.default , and .env.development Alternatively, as environment variables are not a fastlane specific thing, you can also use standard methods to set them: DELIVER_USER=\"felix@krausefx.com\" fastlane test or export DELIVER_USER=\"felix@krausefx.com\"; fastlane test Although it kind of defeats the purpose of using them in the first place (not to have their content in any files), you can also set them in your Fastfile : ENV[\"DELIVER_USER\"] = \"felix@krausefx.com\"","title":"Environment Variables"},{"location":"advanced/other/#adding-credentials","text":"You can add credentials for use by fastlane to your keychain using the CredentialsManager command line interface. This is useful for situations like CI environments. Adding a Credential fastlane fastlane-credentials add --username felix@krausefx.com Password: ********* Credential felix@krausefx.com:********* added to keychain. Removing a Credential fastlane fastlane-credentials remove --username felix@krausefx.com password has been deleted.","title":"Adding Credentials"},{"location":"advanced/other/#manually-manage-the-fastlane-match-repo","text":"Most users can benefit from match 's automatic management of the repo that stores certificates and provisioning profiles. From time to time, it may be necessary to manually change the files in this repo. For example, fastlane requires admin access to the Apple Developer account to generate the appropriate files. If you are provided with an updated certificate or profile but do not have admin access, you can manually edit the repo. Warning: Manually editing your match repo can introduce unexpected behavior and is not recommended. Proceed with caution. Instructions","title":"Manually manage the fastlane match Repo"},{"location":"best-practices/continuous-integration/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 Continuous Integration fastlane works very well in Continuous Integration setups. It for example automatically generates a JUnit report for you that allows Continuous Integration systems, like Jenkins , access the results of your deployment. Integrations Authentication with Apple services Environment variables to set Deploy Strategy Integrations Multiple CI products and services offer integrations with fastlane : Appcircle Azure DevOps (formerly known as: Visual Studio Team Services) Bamboo Bitrise CircleCI Codemagic GitHub Actions GitLab CI Jenkins Semaphore Travis Authenticating with Apple services Check out Authenticating with Apple services to learn the best ways to authenticate, catered for your specific use case. Environment variables to set Most setups will need the following environment variables FASTLANE_USER : Your App Store Connect / Apple Developer Portal user, if your fastlane setup accesses App Store Connect or the Apple Developer Portal (e.g. submit a TestFlight build, create a profile, ...) FASTLANE_PASSWORD : Your App Store Connect / Apple Developer Portal password, usually only needed if you also set the FASTLANE_USER variable MATCH_PASSWORD : You need to provide the password of your match encryption if you use match FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD : You need to provide an application specific password if you have 2-factor enabled and use pilot or deliver to upload a binary to App Store Connect FASTLANE_SESSION : You need to provide a pregenerated session via fastlane spaceauth if you have 2-factor authentication enabled and want to use any actions that communicates with App Store Connect. LANG and LC_ALL : These set up the locale your shell and all the commands you execute run at. fastlane needs these to be set to an UTF-8 locale to work correctly, for example en_US.UTF-8 . Many CI systems come with a locale that is unset or set to ASCII by default, so make sure to double-check whether yours is set correctly. SPACESHIP_ONLY_ALLOW_INTERACTIVE_2FA : Explicitly prevents being prompted for 2FA in non-interactive mode. Deploy Strategy You should not deploy a new App Store update after every commit, since you still have to wait 1-2 days for the review. Instead it is recommended that you use Git Tags, or custom triggers to deploy a new update. You can set up your own Release job, which is only triggered manually. Moved // Closure-wrapped for security. (function () { var anchorMap = { \"jenkins-integration\": \"/best-practices/continuous-integration/jenkins/\", \"circleci-integration\": \"/best-practices/continuous-integration/circle-ci/\", \"travis-integration\": \"/best-practices/continuous-integration/travis/\", \"bamboo-integration\": \"/best-practices/continuous-integration/bamboo/\", \"gitlab-ci-integration\": \"/best-practices/continuous-integration/gitlab/\", \"visual-studio-team-services\": \"/best-practices/continuous-integration/azure-devops/\", \"nevercode-integration\": \"/best-practices/continuous-integration/nevercode/\", } /* * Best practice for extracting hashes: * https://stackoverflow.com/a/10076097/151365 */ var hash = window.location.hash.substring(1); if (hash) { /* * Best practice for javascript redirects: * https://stackoverflow.com/a/506004/151365 */ if (anchorMap[hash]) { link = anchorMap[hash] + '#' + hash; window.location.replace(link); } } })(); The following tool- and service-specific content was moved: Jenkins Integration This content was moved and now lives here . CircleCI Integration This content was moved and now lives here . Travis Integration This content was moved and now lives here . Bamboo Integration This content was moved and now lives here . GitLab CI Integration This content was moved and now lives here . Visual Studio Team Services This content was moved and now lives here . Nevercode Integration This content was moved and now lives here .","title":"Continuous Integration"},{"location":"best-practices/continuous-integration/#continuous-integration","text":"fastlane works very well in Continuous Integration setups. It for example automatically generates a JUnit report for you that allows Continuous Integration systems, like Jenkins , access the results of your deployment. Integrations Authentication with Apple services Environment variables to set Deploy Strategy","title":"Continuous Integration"},{"location":"best-practices/continuous-integration/#integrations","text":"Multiple CI products and services offer integrations with fastlane : Appcircle Azure DevOps (formerly known as: Visual Studio Team Services) Bamboo Bitrise CircleCI Codemagic GitHub Actions GitLab CI Jenkins Semaphore Travis","title":"Integrations"},{"location":"best-practices/continuous-integration/#authenticating-with-apple-services","text":"Check out Authenticating with Apple services to learn the best ways to authenticate, catered for your specific use case.","title":"Authenticating with Apple services"},{"location":"best-practices/continuous-integration/#environment-variables-to-set","text":"Most setups will need the following environment variables FASTLANE_USER : Your App Store Connect / Apple Developer Portal user, if your fastlane setup accesses App Store Connect or the Apple Developer Portal (e.g. submit a TestFlight build, create a profile, ...) FASTLANE_PASSWORD : Your App Store Connect / Apple Developer Portal password, usually only needed if you also set the FASTLANE_USER variable MATCH_PASSWORD : You need to provide the password of your match encryption if you use match FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD : You need to provide an application specific password if you have 2-factor enabled and use pilot or deliver to upload a binary to App Store Connect FASTLANE_SESSION : You need to provide a pregenerated session via fastlane spaceauth if you have 2-factor authentication enabled and want to use any actions that communicates with App Store Connect. LANG and LC_ALL : These set up the locale your shell and all the commands you execute run at. fastlane needs these to be set to an UTF-8 locale to work correctly, for example en_US.UTF-8 . Many CI systems come with a locale that is unset or set to ASCII by default, so make sure to double-check whether yours is set correctly. SPACESHIP_ONLY_ALLOW_INTERACTIVE_2FA : Explicitly prevents being prompted for 2FA in non-interactive mode.","title":"Environment variables to set"},{"location":"best-practices/continuous-integration/#deploy-strategy","text":"You should not deploy a new App Store update after every commit, since you still have to wait 1-2 days for the review. Instead it is recommended that you use Git Tags, or custom triggers to deploy a new update. You can set up your own Release job, which is only triggered manually.","title":"Deploy Strategy"},{"location":"best-practices/keys/","text":"fastlane keys This guide will show you the best ways to store and use your keys and sensitive secrets for services like Crashlytics, Slack, etc. In your Fastfile lane :beta do crashlytics(api_token: \"123abc\", build_secret: \"secret_key\") end or if you want to only define the keys once and use it multiple times ENV[\"CRASHLYTICS_API_TOKEN\"] = \"123abc\" ENV[\"CRASHLYTICS_BUILD_SECRET\"] = \"secret_key\" lane :beta do crashlytics end This is the most straight forward and easiest solution, but might cause a few issues: If you ever decide to open source your application you'll have to make sure to remove the keys from your git history If your keys got invalidated for whatever reason and you decide to rollback your code base to an earlier stage the keys will also be rolled back To get the name of the available environment variables, run fastlane action [action_name] . Bash Profile To not store your keys in git , you can pass all parameters of all actions using environment variables. You can edit your ~/.bash_profile to include something like export SLACK_URL=\"https://hooks.slack.com/services/T03NA19Q5/...\" export CRASHLYTICS_API_TOKEN=\"123abc\" If you use a different shell (e.g. zshell ) you'll need to edit ~/.zshrc instead. After editing the .bash_profile you need to either re-open your terminal session or run source ~/.bash_profile . Disadvantages Every terminal tool you run gets access to your environment variables. You have to edit your bash profile on every computer you want to run fastlane from The bash profile isn't automatically loaded by some CI-systems like Jenkins To get the name of the available environment variables, run fastlane action [action_name] . dotenv dotenv is a system to store your environment in a file that is project specific. Basically you have a hidden file in your project containing all the environment variables for your project. You can store a default configuration in .env.default which will be loaded by fastlane automatically. SLACK_URL=\"https://hooks.slack.com/services/T03NA19Q5/...\" CRASHLYTICS_API_TOKEN=\"123abc\" You might want different configurations depending on your environment. fastlane beta --env development and store the configuration in .env.development with all keys for the development environment. Install [sudo] gem install dotenv or add dotenv to your Gemfile . More information about the recommended way to install gems . To get the name of the available environment variables, run fastlane action [action_name] .","title":"Keys"},{"location":"best-practices/keys/#fastlane-keys","text":"This guide will show you the best ways to store and use your keys and sensitive secrets for services like Crashlytics, Slack, etc.","title":"fastlane keys"},{"location":"best-practices/keys/#in-your-fastfile","text":"lane :beta do crashlytics(api_token: \"123abc\", build_secret: \"secret_key\") end or if you want to only define the keys once and use it multiple times ENV[\"CRASHLYTICS_API_TOKEN\"] = \"123abc\" ENV[\"CRASHLYTICS_BUILD_SECRET\"] = \"secret_key\" lane :beta do crashlytics end This is the most straight forward and easiest solution, but might cause a few issues: If you ever decide to open source your application you'll have to make sure to remove the keys from your git history If your keys got invalidated for whatever reason and you decide to rollback your code base to an earlier stage the keys will also be rolled back To get the name of the available environment variables, run fastlane action [action_name] .","title":"In your Fastfile"},{"location":"best-practices/keys/#bash-profile","text":"To not store your keys in git , you can pass all parameters of all actions using environment variables. You can edit your ~/.bash_profile to include something like export SLACK_URL=\"https://hooks.slack.com/services/T03NA19Q5/...\" export CRASHLYTICS_API_TOKEN=\"123abc\" If you use a different shell (e.g. zshell ) you'll need to edit ~/.zshrc instead. After editing the .bash_profile you need to either re-open your terminal session or run source ~/.bash_profile . Disadvantages Every terminal tool you run gets access to your environment variables. You have to edit your bash profile on every computer you want to run fastlane from The bash profile isn't automatically loaded by some CI-systems like Jenkins To get the name of the available environment variables, run fastlane action [action_name] .","title":"Bash Profile"},{"location":"best-practices/keys/#dotenv","text":"dotenv is a system to store your environment in a file that is project specific. Basically you have a hidden file in your project containing all the environment variables for your project. You can store a default configuration in .env.default which will be loaded by fastlane automatically. SLACK_URL=\"https://hooks.slack.com/services/T03NA19Q5/...\" CRASHLYTICS_API_TOKEN=\"123abc\" You might want different configurations depending on your environment. fastlane beta --env development and store the configuration in .env.development with all keys for the development environment. Install [sudo] gem install dotenv or add dotenv to your Gemfile . More information about the recommended way to install gems . To get the name of the available environment variables, run fastlane action [action_name] .","title":"dotenv"},{"location":"best-practices/source-control/","text":"Source Control It is recommended that you keep fastlane configuration files in the repository. You may want to add the following lines to the repository's .gitignore (Git) or .hgignore (Mercurial) file to exclude generated and temporary files: # fastlane specific **/fastlane/report.xml # deliver temporary files **/fastlane/Preview.html # snapshot generated screenshots **/fastlane/screenshots # scan temporary files **/fastlane/test_output It is also recommended that you avoid storing screenshots or other delivery artifacts in the repository. Instead, use fastlane to re-generate whenever needed.","title":"Source Control"},{"location":"best-practices/source-control/#source-control","text":"It is recommended that you keep fastlane configuration files in the repository. You may want to add the following lines to the repository's .gitignore (Git) or .hgignore (Mercurial) file to exclude generated and temporary files: # fastlane specific **/fastlane/report.xml # deliver temporary files **/fastlane/Preview.html # snapshot generated screenshots **/fastlane/screenshots # scan temporary files **/fastlane/test_output It is also recommended that you avoid storing screenshots or other delivery artifacts in the repository. Instead, use fastlane to re-generate whenever needed.","title":"Source Control"},{"location":"best-practices/xcodebuild-formatters/","text":"Xcodebuild Formatters fastlane uses formatters to make the output from xcodebuild easier to read. xcodebuild is used by scan , gym , and snapshot . The output of xcodebuild is piped into a formatter by fastlane . Below is an example of how fastlane uses formatters: $ xcodebuild [flags] | xcbeautify There are two main formatters the community is using. These are: xcbeautify (recommended) xcpretty Specifying formatter with fastlane 2.201.0 and above As of fastlane 2.201.0, scan , gym , and snapshot all offer a new xcodebuild_formatter option. This option will default to xcbeautify if it's installed; otherwise, it will fallback to xcpretty . However, scan , gym , and snapshot will end up using xcpretty if any options are set that customize it with xcpretty (e.g., xcpretty_args ). scan( xcodebuild_formatter: \"xcbeautify\" ) scan( xcodebuild_formatter: \"xcpretty\" ) # Specify a local installation of xcbeautify scan( xcodebuild_formatter: \"/custom/path/to/xcbeautify\" ) # Specifify your own custom formatter scan( xcodebuild_formatter: \"/custom/path/to/my_formatter\" ) fastlane has some custom logic if xcbeautify or xcpretty are specified but it will essentially run: $ xcodebuild [flags] | Formatters xcbeautify xcbeautify is now the recommended formatter to use. fastlane users are required to install xcbeautify themselves if they want to use it. $ brew install xcbeautify xcbeautify is the recommended because: Faster than xcpretty Supports Xcode's new build system output Supports Xcode's parallel testing output Supports formatting Swift Package Manager output xcpretty Historticaly, fastlane was tightly integrated with xcpretty . xcpretty is a RubyGem and a dependency of fastlane . This was the best option for fastlane as there were no extra steps for installing or using this formatter. xcpretty also did more than formatting. It used the xcodebuild output to: Generate a JUnit report Generate an HTML report Generate a JSON compilation database Before 2.201.0 , scan used xcpretty to generate these files and determine success/failure with xcpretty output As of 2.201.0 , scan will only generate these if xcodebuild_formatter is using xcpretty but now use trainer to parse test results to determine success/failure","title":"Xcodebuild Formatters"},{"location":"best-practices/xcodebuild-formatters/#xcodebuild-formatters","text":"fastlane uses formatters to make the output from xcodebuild easier to read. xcodebuild is used by scan , gym , and snapshot . The output of xcodebuild is piped into a formatter by fastlane . Below is an example of how fastlane uses formatters: $ xcodebuild [flags] | xcbeautify There are two main formatters the community is using. These are: xcbeautify (recommended) xcpretty","title":"Xcodebuild Formatters"},{"location":"best-practices/continuous-integration/appcircle/","text":"Appcircle Integration Appcircle is a mobile CI/CD platform that provides a fully automated environment to build and deploy apps, which also supports fastlane for build automation. With Appcircle, you can automate your build and signing processes with the flexible workflow structure and you can also use fastlane as a workflow step within the build workflows. To use fastlane , Appcircle expects the presence of a fastfile in your repository. Creating a Build Profile to Connect Your Repository with a Fastfile In Appcircle, a build profile contains the build workflows and the configuration of an app per target platform. (i.e. separate for iOS and Android). To create your first build profile, go to the \" Build Module \". (The first item on the left menu) and click on the orange \" Add New \" button on the top right of the screen. In the next screen, enter a name for your build profile and select the target operating system (iOS or Android) and the target platform (Obj-C/Swift, Java/Kotlin, React Native and Flutter projects are supported). If you have two different targets in your project for iOS and Android, you need to create two separate profiles. This allows you to manage separate build workflows for different operating systems. Once created, click on the build profile to connect your repository that contains a fastfile. You can connect private and public repositories on GitHub, Bitbucket and other compatible git providers. You can authorize Appcircle to connect to your cloud repository provider account. This will allow you to use auto-build your project with hooks. The build configuration has different flows for iOS and Android and the projects are configured on a branch basis. You can have different configurations for different branches and you can build any of your commits (assuming that they are compatible with the current configuration). You can use fastlane with the signing configuration defined in the lane or you can configure your build to use Appcircle centralized code signing as an alternative to fastlane match. Adding fastlane to the Appcircle Build Workflow as a Step A workflow in Appcircle is a ladder of steps taken to build your applications. Each step has a different purpose and the workflow can be customized by modifying step parameters and inputs, running custom scripts or re-ordering steps. To utilize fastlane in your builds, open the workflow editor and add the \" fastlane \" step after the \" Git Clone \" step. If you want to run a specific fastlane command, you can add a \" Custom Script \" step anywhere after the fastlane step. Once added, click on the fastlane step to configure it. Fastlane is easy to use with Appcircle just with two options. The \" Fastlane Directory \" option is used to specify the fastfile path . If you keep your fastfile in its default location, it is automatically used without the need to change this field. With the \" Fastlane Lane \" option, you can specify which lane to use. Once everything is set up, press Save to save your step configuration. Then you can configure and run your build just like any other app. Appcircle also supports building and signing the app independently with the \"Build\" and \"Sign\" steps in the workflow. These steps can be used in parallel with fastlane . Running the Build Workflow To run the build workflow that includes the fastlane step, you can start a manual build or trigger an automatic build . The full output of the fastlane execution can be viewed in the build log in real-time or after the build. Deploying the Build Output You can use fastlane to deploy the built apps to the supported third-party services or you can use the Appcircle Distribute module to share the app with the testers or send it to the public app stores. Further Documentation For more information, screenshots, and support, please refer to the Appcircle documentation .","title":"Appcircle"},{"location":"best-practices/continuous-integration/appcircle/#appcircle-integration","text":"Appcircle is a mobile CI/CD platform that provides a fully automated environment to build and deploy apps, which also supports fastlane for build automation. With Appcircle, you can automate your build and signing processes with the flexible workflow structure and you can also use fastlane as a workflow step within the build workflows. To use fastlane , Appcircle expects the presence of a fastfile in your repository.","title":"Appcircle Integration"},{"location":"best-practices/continuous-integration/appcircle/#creating-a-build-profile-to-connect-your-repository-with-a-fastfile","text":"In Appcircle, a build profile contains the build workflows and the configuration of an app per target platform. (i.e. separate for iOS and Android). To create your first build profile, go to the \" Build Module \". (The first item on the left menu) and click on the orange \" Add New \" button on the top right of the screen. In the next screen, enter a name for your build profile and select the target operating system (iOS or Android) and the target platform (Obj-C/Swift, Java/Kotlin, React Native and Flutter projects are supported). If you have two different targets in your project for iOS and Android, you need to create two separate profiles. This allows you to manage separate build workflows for different operating systems. Once created, click on the build profile to connect your repository that contains a fastfile. You can connect private and public repositories on GitHub, Bitbucket and other compatible git providers. You can authorize Appcircle to connect to your cloud repository provider account. This will allow you to use auto-build your project with hooks. The build configuration has different flows for iOS and Android and the projects are configured on a branch basis. You can have different configurations for different branches and you can build any of your commits (assuming that they are compatible with the current configuration). You can use fastlane with the signing configuration defined in the lane or you can configure your build to use Appcircle centralized code signing as an alternative to fastlane match.","title":"Creating a Build Profile to Connect Your Repository with a Fastfile"},{"location":"best-practices/continuous-integration/appcircle/#adding-fastlane-to-the-appcircle-build-workflow-as-a-step","text":"A workflow in Appcircle is a ladder of steps taken to build your applications. Each step has a different purpose and the workflow can be customized by modifying step parameters and inputs, running custom scripts or re-ordering steps. To utilize fastlane in your builds, open the workflow editor and add the \" fastlane \" step after the \" Git Clone \" step. If you want to run a specific fastlane command, you can add a \" Custom Script \" step anywhere after the fastlane step. Once added, click on the fastlane step to configure it. Fastlane is easy to use with Appcircle just with two options. The \" Fastlane Directory \" option is used to specify the fastfile path . If you keep your fastfile in its default location, it is automatically used without the need to change this field. With the \" Fastlane Lane \" option, you can specify which lane to use. Once everything is set up, press Save to save your step configuration. Then you can configure and run your build just like any other app. Appcircle also supports building and signing the app independently with the \"Build\" and \"Sign\" steps in the workflow. These steps can be used in parallel with fastlane .","title":"Adding fastlane to the Appcircle Build Workflow as a Step"},{"location":"best-practices/continuous-integration/appcircle/#running-the-build-workflow","text":"To run the build workflow that includes the fastlane step, you can start a manual build or trigger an automatic build . The full output of the fastlane execution can be viewed in the build log in real-time or after the build.","title":"Running the Build Workflow"},{"location":"best-practices/continuous-integration/appcircle/#deploying-the-build-output","text":"You can use fastlane to deploy the built apps to the supported third-party services or you can use the Appcircle Distribute module to share the app with the testers or send it to the public app stores.","title":"Deploying the Build Output"},{"location":"best-practices/continuous-integration/appcircle/#further-documentation","text":"For more information, screenshots, and support, please refer to the Appcircle documentation .","title":"Further Documentation"},{"location":"best-practices/continuous-integration/azure-devops/","text":"Azure DevOps (formerly known as: Visual Studio Team Services) Microsoft Visual Studio Team Services (VSTS) and Team Foundation Server (TFS) use fastlane in their Apple App Store extension. Getting Started Once you have created or retrieved credentials for your App Store account, then perform the following steps to automate releasing updates from a VSTS build or release definition: Install the App Store extension from the VSTS Marketplace Go to your VSTS or TFS project, click on the Build tab, and create a new build definition (the \"+\" icon) that is hooked up to your project's appropriate source repo Click Add build step... and select the necessary tasks to generate your release assets (e.g. Gulp, Cordova Build) Click Add build step... and select App Store Release from the Deploy category Configure the App Store Release task with the desired authentication method, the generated IPA file path, and the desired release track. Now when you build, your app will automatically be published to App Store Connect ! Configuring fastlane versions The extension can be configured to install the latest version of fastlane or a specific version of fastlane : In the Build for your project, click on the Apple App Store task (supported in both Apple App Store Release and Apple App Store Promote ), go to the Advanced section of the Task, click Install fastlane Optionally, select Specific Version from fastlane version , and enter a specific version of fastlane More Information For more documentation, see the Apple App Store in the Visual Studio Team Server marketplace.","title":"Azure DevOps"},{"location":"best-practices/continuous-integration/azure-devops/#azure-devops-formerly-known-as-visual-studio-team-services","text":"Microsoft Visual Studio Team Services (VSTS) and Team Foundation Server (TFS) use fastlane in their Apple App Store extension.","title":"Azure DevOps (formerly known as: Visual Studio Team Services)"},{"location":"best-practices/continuous-integration/azure-devops/#getting-started","text":"Once you have created or retrieved credentials for your App Store account, then perform the following steps to automate releasing updates from a VSTS build or release definition: Install the App Store extension from the VSTS Marketplace Go to your VSTS or TFS project, click on the Build tab, and create a new build definition (the \"+\" icon) that is hooked up to your project's appropriate source repo Click Add build step... and select the necessary tasks to generate your release assets (e.g. Gulp, Cordova Build) Click Add build step... and select App Store Release from the Deploy category Configure the App Store Release task with the desired authentication method, the generated IPA file path, and the desired release track. Now when you build, your app will automatically be published to App Store Connect !","title":"Getting Started"},{"location":"best-practices/continuous-integration/azure-devops/#configuring-fastlane-versions","text":"The extension can be configured to install the latest version of fastlane or a specific version of fastlane : In the Build for your project, click on the Apple App Store task (supported in both Apple App Store Release and Apple App Store Promote ), go to the Advanced section of the Task, click Install fastlane Optionally, select Specific Version from fastlane version , and enter a specific version of fastlane","title":"Configuring fastlane versions"},{"location":"best-practices/continuous-integration/azure-devops/#more-information","text":"For more documentation, see the Apple App Store in the Visual Studio Team Server marketplace.","title":"More Information"},{"location":"best-practices/continuous-integration/bamboo/","text":"Bamboo Integration Repository setup In bamboo under Linked Repositories (where you configure your git repo) under Advanced Settings is an option called Exclude changesets This dialog will allow you to enter a regular expression that if a commit matches, a build will not be triggered. For example, if your Fastfile is configured to make a commit message in the style of Build Version bump by fastlane to Version [0.3] Build [8] Then you could use the following regex to ignore these commits ^.*Build Version bump by fastlane.*$ Setting repository remote By default bamboo will do an anonymous shallow clone of the repo. This will not preserve the git remote information nor the list of tags. If you are using bamboo to create commits you may want to use a code block similar to the following: # In prep for eventually committing a version/build bump - set the git params sh('git config user.name \"\"') sh('git config user.email ') # Bamboo does an anonymous checkout so in order to update the build versions must set the git repo URL git_remote_cmd = 'git remote set-url origin ' + ENV['bamboo_repository_git_repositoryUrl'] sh(git_remote_cmd) Speeding up build times with carthage Carthage is a wonderful dependency manager but once you are start using a large number of frameworks, things can start to slow down, especially if your CI server has to run carthage EVERY time you check in a small line of code. One way to make build times faster is to break your work up into two separate build plans ( this can get even more funky if you start having multiple branches ) The general idea is to make a build plan: Project - Artifacts that builds the Carthage directory and stores it as a shared artifact. Then you create a second build plan Project - Fastlane that pulls down the Carthage directory and runs fastlane . Artifact Plan Use a simple setup to create this build plan. First off you want to make sure this plan is manually triggered only - because you only need to run it whenever the Cartfile changes as opposed to after ever single commit. It could also be on a nightly build perhaps if you desire. Stages / Jobs / Tasks This plan consists of 1 Job, 1 Stage and 2 Tasks Task 1: Source Code Checkout Task 2: Script ( carthage update ) Artifact definitions Create a shared artifact with the following info: Name: CarthageFolder Location: (leave blank) Copy Pattern: Carthage/Build/** Optional : You may want to automatically make the fastlane plan trigger whenever this plan is built fastlane plan When configuring fastlane to run in this setup you need to make sure that you are not calling either: reset_git_repo(force: true) or ensure_git_status_clean as these calls will either fail the build or delete the Carthage directory. Additionally you want to remove any carthage tasks from inside your Fastfile as carthage is now happening externally to the build. Build plan setup What this build plan does is it checks out the source code, then it downloads the entire Carthage/Build/ directory into your local project - which is exactly what would be created from carthage bootstrap and then it runs fastlane Task 1: Source Code Checkout Task 2: Artifact Download Task 3: fastlane","title":"Bamboo"},{"location":"best-practices/continuous-integration/bamboo/#bamboo-integration","text":"","title":"Bamboo Integration"},{"location":"best-practices/continuous-integration/bamboo/#repository-setup","text":"In bamboo under Linked Repositories (where you configure your git repo) under Advanced Settings is an option called Exclude changesets This dialog will allow you to enter a regular expression that if a commit matches, a build will not be triggered. For example, if your Fastfile is configured to make a commit message in the style of Build Version bump by fastlane to Version [0.3] Build [8] Then you could use the following regex to ignore these commits ^.*Build Version bump by fastlane.*$","title":"Repository setup"},{"location":"best-practices/continuous-integration/bamboo/#setting-repository-remote","text":"By default bamboo will do an anonymous shallow clone of the repo. This will not preserve the git remote information nor the list of tags. If you are using bamboo to create commits you may want to use a code block similar to the following: # In prep for eventually committing a version/build bump - set the git params sh('git config user.name \"\"') sh('git config user.email ') # Bamboo does an anonymous checkout so in order to update the build versions must set the git repo URL git_remote_cmd = 'git remote set-url origin ' + ENV['bamboo_repository_git_repositoryUrl'] sh(git_remote_cmd)","title":"Setting repository remote"},{"location":"best-practices/continuous-integration/bamboo/#speeding-up-build-times-with-carthage","text":"Carthage is a wonderful dependency manager but once you are start using a large number of frameworks, things can start to slow down, especially if your CI server has to run carthage EVERY time you check in a small line of code. One way to make build times faster is to break your work up into two separate build plans ( this can get even more funky if you start having multiple branches ) The general idea is to make a build plan: Project - Artifacts that builds the Carthage directory and stores it as a shared artifact. Then you create a second build plan Project - Fastlane that pulls down the Carthage directory and runs fastlane .","title":"Speeding up build times with carthage"},{"location":"best-practices/continuous-integration/bitrise/","text":"Integrating Fastlane into Bitrise Bitrise is a hosted CI/CD solution where you can run your fastlane lane with the same commands you would use locally. Bitrise\u2019s automated Steps provide extra functionality to your lane and speed up your builds. Here is how you can benefit from integrating fastlane into Bitrise. Bitrise has an automated Step , called Fastlane Match for the popular fastlane match tool , which takes care of code signing your project by cloning your private certificate/profile repository and registering the certificates and profiles in the keychain. On Bitrise you can run separate lanes for separate branches automatically. For example, you can run a lane for every code push onto the master branch to update screenshots and metadata on the App Store and to release the distribution version. You can run a separate lane for the develop branch to run your automated tests and deploy your test releases for your QA team. You can simply clone the Workflow multiple times, specify the lane to run for the given Workflow in a Workflow Specific Environment Variable, and use the Triggers feature to define which Workflow should be selected for this branch, tag or pull request. Before you start: Note that two-factor authentication (2FA) is mandatory for all Apple Developer Portal accounts. If, during your build, Bitrise needs to access your Apple Developer Portal account, it will have to go through 2FA. This applies even if you use fastlane . To make this work, connect your Apple Developer Account to Bitrise . This allows Bitrise to reuse your authentication sessions for 30 days, so you do not have to manually go through 2FA on every single occasion. If a Gemfile exists in your work_dir directory, fastlane will be used by calling bundle install then bundle exec . Fastfile is your configuration file that can be run with fastlane . Make sure you have it inside your ./fastlane directory . Setting up Fastlane on Bitrise Running fastlane on Bitrise is as simple as adding one Step to your Workflow and setting some options. Let\u2019s see how! Add the Fastlane Step to your Workflow by clicking the + sign. Make sure it is inserted right after the Git Clone Step. Since fastlane is pre-installed on all Bitrise\u2019s virtual machines, the Fastlane Step ensures that you can always use the required fastlane version. To code sign your project, you have a couple of options to choose from. Add one of Bitrise\u2019s code signing Steps to your Workflow such as Certificate and profile installer . iOS Auto Provision . Fastlane Match. Alternatively, use fastlane match inside your fastlane lane instead of a code signing Step. Make sure you either use the Fastlane Match Step or set up fastlane match in your lane but don\u2019t try to do both. Click the Fastlane Step to fill out the required fields. Add your lane in the fastlane lane input. Use Working directory field if the fastlane directory is not in your repository's root. The working directory should be the parent directory of your Fastfile 's directory. For example, if the Fastfile path is ./here/is/my/fastlane/Fastfile , then the Fastfile 's directory is ./here/is/my/fastlane , so the Working Directory should be ./here/is/my . The Should update fastlane gem before run? option will be skipped if you have a Gemfile in the work_dir directory. If you don't have a Gemfile and this option is enabled, then the Step tries to use and run the latest fastlane version. Set the Enable verbose logging? to yes if you wish to get more detailed logs on your failed builds. If the Enable collecting files to be included in build cache is set to yes, the Step adds the following cache items (if they exist): Pods -> Podfile.lock Carthage -> Cartfile.resolved Android dependencies That\u2019s it! Start running your build so that Bitrise can run your lane.","title":"Bitrise"},{"location":"best-practices/continuous-integration/bitrise/#integrating-fastlane-into-bitrise","text":"Bitrise is a hosted CI/CD solution where you can run your fastlane lane with the same commands you would use locally. Bitrise\u2019s automated Steps provide extra functionality to your lane and speed up your builds. Here is how you can benefit from integrating fastlane into Bitrise. Bitrise has an automated Step , called Fastlane Match for the popular fastlane match tool , which takes care of code signing your project by cloning your private certificate/profile repository and registering the certificates and profiles in the keychain. On Bitrise you can run separate lanes for separate branches automatically. For example, you can run a lane for every code push onto the master branch to update screenshots and metadata on the App Store and to release the distribution version. You can run a separate lane for the develop branch to run your automated tests and deploy your test releases for your QA team. You can simply clone the Workflow multiple times, specify the lane to run for the given Workflow in a Workflow Specific Environment Variable, and use the Triggers feature to define which Workflow should be selected for this branch, tag or pull request. Before you start: Note that two-factor authentication (2FA) is mandatory for all Apple Developer Portal accounts. If, during your build, Bitrise needs to access your Apple Developer Portal account, it will have to go through 2FA. This applies even if you use fastlane . To make this work, connect your Apple Developer Account to Bitrise . This allows Bitrise to reuse your authentication sessions for 30 days, so you do not have to manually go through 2FA on every single occasion. If a Gemfile exists in your work_dir directory, fastlane will be used by calling bundle install then bundle exec . Fastfile is your configuration file that can be run with fastlane . Make sure you have it inside your ./fastlane directory .","title":"Integrating Fastlane into Bitrise"},{"location":"best-practices/continuous-integration/bitrise/#setting-up-fastlane-on-bitrise","text":"Running fastlane on Bitrise is as simple as adding one Step to your Workflow and setting some options. Let\u2019s see how! Add the Fastlane Step to your Workflow by clicking the + sign. Make sure it is inserted right after the Git Clone Step. Since fastlane is pre-installed on all Bitrise\u2019s virtual machines, the Fastlane Step ensures that you can always use the required fastlane version. To code sign your project, you have a couple of options to choose from. Add one of Bitrise\u2019s code signing Steps to your Workflow such as Certificate and profile installer . iOS Auto Provision . Fastlane Match. Alternatively, use fastlane match inside your fastlane lane instead of a code signing Step. Make sure you either use the Fastlane Match Step or set up fastlane match in your lane but don\u2019t try to do both. Click the Fastlane Step to fill out the required fields. Add your lane in the fastlane lane input. Use Working directory field if the fastlane directory is not in your repository's root. The working directory should be the parent directory of your Fastfile 's directory. For example, if the Fastfile path is ./here/is/my/fastlane/Fastfile , then the Fastfile 's directory is ./here/is/my/fastlane , so the Working Directory should be ./here/is/my . The Should update fastlane gem before run? option will be skipped if you have a Gemfile in the work_dir directory. If you don't have a Gemfile and this option is enabled, then the Step tries to use and run the latest fastlane version. Set the Enable verbose logging? to yes if you wish to get more detailed logs on your failed builds. If the Enable collecting files to be included in build cache is set to yes, the Step adds the following cache items (if they exist): Pods -> Podfile.lock Carthage -> Cartfile.resolved Android dependencies That\u2019s it! Start running your build so that Bitrise can run your lane.","title":"Setting up Fastlane on Bitrise"},{"location":"best-practices/continuous-integration/circle-ci/","text":"CircleCI Integration To run fastlane on CircleCI, first create a Gemfile in the root of your project with the following content: # Gemfile source \"https://rubygems.org\" gem \"fastlane\" and run gem install bundler && bundle update This will create a Gemfile.lock that defines all Ruby dependencies. Make sure to commit both files to version control. Next, add the following to your Fastfile : # fastlane/Fastfile ... platform :ios do before_all do setup_circle_ci end ... end The setup_circle_ci fastlane action will perform the following actions: Create a new temporary keychain for use with match (see the CircleCI code signing doc for more details). Switch match to readonly mode to make sure CI does not create new code signing certificates or provisioning profiles. Set up log and test result paths to be easily collectible. Next, create a .circleci directory in your project and add a .circleci/config.yml with the following content: # .circleci/config.yml version: 2.1 orbs: ruby: circleci/ruby@1.2.0 jobs: build: macos: xcode: \"13.1.0\" working_directory: /Users/distiller/project environment: FL_OUTPUT_DIR: output FASTLANE_LANE: test shell: /bin/bash --login -o pipefail steps: - checkout - ruby/install-deps - run: name: fastlane command: bundle exec fastlane $FASTLANE_LANE - store_artifacts: path: output - store_test_results: path: output/scan This will do the following: Create and use a Ruby gems cache. Run the test lane on all pushes. Collect Junit test results and store log output in the Artifacts tab. Check out the CircleCI iOS doc for more detailed examples of using fastlane on CircleCI.","title":"CircleCI"},{"location":"best-practices/continuous-integration/circle-ci/#circleci-integration","text":"To run fastlane on CircleCI, first create a Gemfile in the root of your project with the following content: # Gemfile source \"https://rubygems.org\" gem \"fastlane\" and run gem install bundler && bundle update This will create a Gemfile.lock that defines all Ruby dependencies. Make sure to commit both files to version control. Next, add the following to your Fastfile : # fastlane/Fastfile ... platform :ios do before_all do setup_circle_ci end ... end The setup_circle_ci fastlane action will perform the following actions: Create a new temporary keychain for use with match (see the CircleCI code signing doc for more details). Switch match to readonly mode to make sure CI does not create new code signing certificates or provisioning profiles. Set up log and test result paths to be easily collectible. Next, create a .circleci directory in your project and add a .circleci/config.yml with the following content: # .circleci/config.yml version: 2.1 orbs: ruby: circleci/ruby@1.2.0 jobs: build: macos: xcode: \"13.1.0\" working_directory: /Users/distiller/project environment: FL_OUTPUT_DIR: output FASTLANE_LANE: test shell: /bin/bash --login -o pipefail steps: - checkout - ruby/install-deps - run: name: fastlane command: bundle exec fastlane $FASTLANE_LANE - store_artifacts: path: output - store_test_results: path: output/scan This will do the following: Create and use a Ruby gems cache. Run the test lane on all pushes. Collect Junit test results and store log output in the Artifacts tab. Check out the CircleCI iOS doc for more detailed examples of using fastlane on CircleCI.","title":"CircleCI Integration"},{"location":"best-practices/continuous-integration/codemagic/","text":"Codemagic Integration Codemagic is a cloud-based CI/CD tool for mobile applications that you can use for continuous integration and delivery together with fastlane . Codemagic has fastlane pre-installed, so you can easily run your fastlane scripts as part of the Codemagic build process. You only need a Fastfile in your repository to get started. You can find the version of pre-installed fastlane based on build machine type from here . Getting started For publishing iOS apps, it is recommended to create an App Store Connect API key so you don't have to use 2FA. This also offers better performance and increased reliability. More details can be found here . Adding environment variables The following environment variables need to be added to your workflow for fastlane integration. MATCH_PASSWORD - the password used to encrypt/decrypt the repository used to store your distribution certificates and provisioning profiles. MATCH_KEYCHAIN - an arbitrary name to use for the keychain on the Codemagic build server, e.g \"fastlane_keychain\" MATCH_SSH_KEY - an SSH private key used for cloning the Match repository that contains your distribution certificates and provisioning profiles. The public key should be added to your Github account. See here for more information about accessing Git dependencies with SSH keys. APP_STORE_CONNECT_PRIVATE_KEY - the App Store Connect API key. Copy the entire contents of the .p8 file and paste into the environment variable value field. APP_STORE_CONNECT_KEY_IDENTIFIER - the key identifier of your App Store Connect API key. APP_STORE_CONNECT_ISSUER_ID - the issuer of your App Store Connect API key. Environment variables can be added in the Codemagic web app using the 'Environment variables' tab. Save all the variables to the same variable group and make sure that the secure checkbox is checked to encrypt any sensitive values such as API keys or passwords. You can then import your variable group into your codemagic.yaml . For example, if you named your variable group 'fastlane', the group should be imported as follows: workflows: workflow-name: environment: groups: - fastlane Executing fastlane in your workflow It is recommended to run your fastlane lanes using the codemagic.yaml configuration file. You should install your depenpendencies with bundle install and then execute the fastlane lane with bundle exec fastlane as follows: scripts: - bundle install - bundle exec fastlane beta If you need to use a specific version of bundler as defined in the Gemfile.lock file, you should install it with gem install bundler: as follows: scripts: - gem install bundler:2.2.27 - bundle install - bundle exec fastlane beta CocoaPods If you are using dependencies from Cocoapods, it might be necessary to include the CocoaPods gem in your Gemfile to prevent scope conflict issues. gem \"fastlane\" gem \"cocoapods\" Starting your build You can start your build manually from within the Codemagic web app, or configure your builds to start on events such as pushing to your repository, creating or updating a pull request, adding a new tag, or even monitoring for file system changes. See more info in Codemagic docs .","title":"Codemagic"},{"location":"best-practices/continuous-integration/codemagic/#codemagic-integration","text":"Codemagic is a cloud-based CI/CD tool for mobile applications that you can use for continuous integration and delivery together with fastlane . Codemagic has fastlane pre-installed, so you can easily run your fastlane scripts as part of the Codemagic build process. You only need a Fastfile in your repository to get started. You can find the version of pre-installed fastlane based on build machine type from here .","title":"Codemagic Integration"},{"location":"best-practices/continuous-integration/codemagic/#getting-started","text":"For publishing iOS apps, it is recommended to create an App Store Connect API key so you don't have to use 2FA. This also offers better performance and increased reliability. More details can be found here .","title":"Getting started"},{"location":"best-practices/continuous-integration/codemagic/#adding-environment-variables","text":"The following environment variables need to be added to your workflow for fastlane integration. MATCH_PASSWORD - the password used to encrypt/decrypt the repository used to store your distribution certificates and provisioning profiles. MATCH_KEYCHAIN - an arbitrary name to use for the keychain on the Codemagic build server, e.g \"fastlane_keychain\" MATCH_SSH_KEY - an SSH private key used for cloning the Match repository that contains your distribution certificates and provisioning profiles. The public key should be added to your Github account. See here for more information about accessing Git dependencies with SSH keys. APP_STORE_CONNECT_PRIVATE_KEY - the App Store Connect API key. Copy the entire contents of the .p8 file and paste into the environment variable value field. APP_STORE_CONNECT_KEY_IDENTIFIER - the key identifier of your App Store Connect API key. APP_STORE_CONNECT_ISSUER_ID - the issuer of your App Store Connect API key. Environment variables can be added in the Codemagic web app using the 'Environment variables' tab. Save all the variables to the same variable group and make sure that the secure checkbox is checked to encrypt any sensitive values such as API keys or passwords. You can then import your variable group into your codemagic.yaml . For example, if you named your variable group 'fastlane', the group should be imported as follows: workflows: workflow-name: environment: groups: - fastlane","title":"Adding environment variables"},{"location":"best-practices/continuous-integration/codemagic/#executing-fastlane-in-your-workflow","text":"It is recommended to run your fastlane lanes using the codemagic.yaml configuration file. You should install your depenpendencies with bundle install and then execute the fastlane lane with bundle exec fastlane as follows: scripts: - bundle install - bundle exec fastlane beta If you need to use a specific version of bundler as defined in the Gemfile.lock file, you should install it with gem install bundler: as follows: scripts: - gem install bundler:2.2.27 - bundle install - bundle exec fastlane beta","title":"Executing fastlane in your workflow"},{"location":"best-practices/continuous-integration/codemagic/#cocoapods","text":"If you are using dependencies from Cocoapods, it might be necessary to include the CocoaPods gem in your Gemfile to prevent scope conflict issues. gem \"fastlane\" gem \"cocoapods\"","title":"CocoaPods"},{"location":"best-practices/continuous-integration/codemagic/#starting-your-build","text":"You can start your build manually from within the Codemagic web app, or configure your builds to start on events such as pushing to your repository, creating or updating a pull request, adding a new tag, or even monitoring for file system changes. See more info in Codemagic docs .","title":"Starting your build"},{"location":"best-practices/continuous-integration/github/","text":"GitHub Actions Integration Use GitHub Actions runner running on a macOS machine to build using fastlane . Repository setup First create a Gemfile in the root of your project with the following content: source 'https://rubygems.org' gem 'fastlane' Add a workflow yaml file to your repository. For example, if naming your workflow \"build-ios-app\", add .github/workflows/build-ios-app.yml with the following content: name: build-ios-app on: push: branches: - 'master' jobs: build: runs-on: macos-latest steps: - uses: actions/checkout@v2 - run: fastlane beta env: MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }} See Workflow syntax for GitHub Actions for more information on how this file works. Setting up the lanes Here's an example of a Fastfile with a lane that runs match , builds the app, and uploads to TestFlight: platform :ios do lane :beta do setup_ci if ENV['CI'] match(type: 'appstore') build_app upload_to_testflight(skip_waiting_for_build_processing: true) end end Note the usage of setup_ci : it creates a temporary keychain. Without this, the build could freeze and never finish.","title":"GitHub Actions"},{"location":"best-practices/continuous-integration/github/#github-actions-integration","text":"Use GitHub Actions runner running on a macOS machine to build using fastlane .","title":"GitHub Actions Integration"},{"location":"best-practices/continuous-integration/github/#repository-setup","text":"First create a Gemfile in the root of your project with the following content: source 'https://rubygems.org' gem 'fastlane' Add a workflow yaml file to your repository. For example, if naming your workflow \"build-ios-app\", add .github/workflows/build-ios-app.yml with the following content: name: build-ios-app on: push: branches: - 'master' jobs: build: runs-on: macos-latest steps: - uses: actions/checkout@v2 - run: fastlane beta env: MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }} See Workflow syntax for GitHub Actions for more information on how this file works.","title":"Repository setup"},{"location":"best-practices/continuous-integration/github/#setting-up-the-lanes","text":"Here's an example of a Fastfile with a lane that runs match , builds the app, and uploads to TestFlight: platform :ios do lane :beta do setup_ci if ENV['CI'] match(type: 'appstore') build_app upload_to_testflight(skip_waiting_for_build_processing: true) end end Note the usage of setup_ci : it creates a temporary keychain. Without this, the build could freeze and never finish.","title":"Setting up the lanes"},{"location":"best-practices/continuous-integration/gitlab/","text":"GitLab CI Integration Use GitLab Runner running on a macOS machine to build using fastlane. Repository setup First create a Gemfile in the root of your project with the following content: source \"https://rubygems.org\" gem \"fastlane\" Add a .gitlab-ci.yml file to trigger fastlane . stages: - unit_tests - test_flight variables: LC_ALL: \"en_US.UTF-8\" LANG: \"en_US.UTF-8\" before_script: - gem install bundler - bundle install unit_tests: dependencies: [] stage: unit_tests artifacts: paths: - fastlane/screenshots - fastlane/logs script: - fastlane tests tags: - ios test_flight_build: dependencies: [] stage: test_flight artifacts: paths: - fastlane/screenshots - fastlane/logs script: - fastlane beta tags: - ios only: - /^release-.*$/ - master See the .gitlab-ci.yml documentation for more information on how this file works. Setting up the lanes You should have a lane - in this example called beta - which should do the usual, match , gym , pilot , to distribute an updated Test Flight version, and one lane tests which calls scan to run UI Tests. Auto-incremented build number. To get an auto-incremented build number you can use something like the following lane: lane :increment_build_number do increment_build_number(build_number: ENV['CI_JOB_ID']) end Then the GitLab CI job ID (which iterates on each build) will be used.","title":"GitLab CI"},{"location":"best-practices/continuous-integration/gitlab/#gitlab-ci-integration","text":"Use GitLab Runner running on a macOS machine to build using fastlane.","title":"GitLab CI Integration"},{"location":"best-practices/continuous-integration/gitlab/#repository-setup","text":"First create a Gemfile in the root of your project with the following content: source \"https://rubygems.org\" gem \"fastlane\" Add a .gitlab-ci.yml file to trigger fastlane . stages: - unit_tests - test_flight variables: LC_ALL: \"en_US.UTF-8\" LANG: \"en_US.UTF-8\" before_script: - gem install bundler - bundle install unit_tests: dependencies: [] stage: unit_tests artifacts: paths: - fastlane/screenshots - fastlane/logs script: - fastlane tests tags: - ios test_flight_build: dependencies: [] stage: test_flight artifacts: paths: - fastlane/screenshots - fastlane/logs script: - fastlane beta tags: - ios only: - /^release-.*$/ - master See the .gitlab-ci.yml documentation for more information on how this file works.","title":"Repository setup"},{"location":"best-practices/continuous-integration/gitlab/#setting-up-the-lanes","text":"You should have a lane - in this example called beta - which should do the usual, match , gym , pilot , to distribute an updated Test Flight version, and one lane tests which calls scan to run UI Tests.","title":"Setting up the lanes"},{"location":"best-practices/continuous-integration/gitlab/#auto-incremented-build-number","text":"To get an auto-incremented build number you can use something like the following lane: lane :increment_build_number do increment_build_number(build_number: ENV['CI_JOB_ID']) end Then the GitLab CI job ID (which iterates on each build) will be used.","title":"Auto-incremented build number."},{"location":"best-practices/continuous-integration/jenkins/","text":"Jenkins Integration Installation The recommended way to install Jenkins on macOS is through homebrew : brew update && brew install jenkins-lts From now on start Jenkins by running: brew services start jenkins-lts To store the password in the Keychain of your remote machine, it is recommended that you run match or deliver using ssh or remote desktop at least once. Ruby Environment We recommend using rbenv for installing Ruby, though rvm and the version of Ruby that comes bundled on macOS are fine too. If using a Gemfile in your project, add an \"Execute shell\" step as your first build step and call bundle update . Plugins You'll find the following Jenkins plugins to be useful: (note: We do not recommend installing the Xcode plugin) HTML Publisher Plugin : Can be used to show the generated screenshots right inside Jenkins. AnsiColor Plugin : Used to show the coloured output of the fastlane tools. Don\u2019t forget to enable Color ANSI Console Output in the Build Environment or your project. Rebuild Plugin : This plugin will save you a lot of time. Keychains and Provisioning Profiles Plugin : Manages keychains across Jenkins installations. Build Step Add an \"Execute shell\" build step using your appropriate fastlane command per the example below: fastlane appstore Replace appstore with the lane you want to use. (note: if using a Gemfile, prefix that command with bundle exec ) setup_jenkins You can use setup_jenkins action which integrates well with the Keychains and Provisioning Profiles Plugin . Selected keychain will be automatically unlocked and the selected code signing identity will be used. Also all build results, like IPA files, archives, dSYMs and result bundles will be stored in the ./output folder in the job workspace. In additions setup_jenkins will create separate derived data folder for each job (in the ./derivedData ). Under the hood setup_jenkins configures other actions like: gym , scan , xcodebuild , backup_xcarchive and clear_derived_data . commit_version_bump || git_commit You can use commit_version_bump or git_commit action to commit changes to your repository in your fastlane setup. When you are using webhooks to trigger your build on a push this will cause an infinite loop of triggering builds. Gitlab When you are using Gitlab you will need the GitLab Plugin . Inside the job you want to configure you go to Build Triggers > Build when a change is pushed to GitLab > Enable [ci-skip] . When you include [ci-skip] in your build this commit won't trigger the build in jenkins at all. Example build_number = increment_build_number commit_version_bump(message:\"[ci-skip] Version Bump to #{build_number}\") git_commit(path:\"./CHANGELOG.md\", message:\"[ci-skip] Updated CHANGELOG for Build #{build_number}\") push_to_git_remote Test Results and Screenshots To show the deployment result right in Jenkins Add post-build action Publish JUnit test result report Test report XMLs : fastlane/report.xml To show the generated screenshots right in Jenkins Add post-build action Publish HTML reports HTML directory to archive : fastlane/screenshots Index page : screenshots.html Save and run. The result should look like this:","title":"Jenkins"},{"location":"best-practices/continuous-integration/jenkins/#jenkins-integration","text":"","title":"Jenkins Integration"},{"location":"best-practices/continuous-integration/jenkins/#installation","text":"The recommended way to install Jenkins on macOS is through homebrew : brew update && brew install jenkins-lts From now on start Jenkins by running: brew services start jenkins-lts To store the password in the Keychain of your remote machine, it is recommended that you run match or deliver using ssh or remote desktop at least once.","title":"Installation"},{"location":"best-practices/continuous-integration/jenkins/#ruby-environment","text":"We recommend using rbenv for installing Ruby, though rvm and the version of Ruby that comes bundled on macOS are fine too. If using a Gemfile in your project, add an \"Execute shell\" step as your first build step and call bundle update .","title":"Ruby Environment"},{"location":"best-practices/continuous-integration/jenkins/#plugins","text":"You'll find the following Jenkins plugins to be useful: (note: We do not recommend installing the Xcode plugin) HTML Publisher Plugin : Can be used to show the generated screenshots right inside Jenkins. AnsiColor Plugin : Used to show the coloured output of the fastlane tools. Don\u2019t forget to enable Color ANSI Console Output in the Build Environment or your project. Rebuild Plugin : This plugin will save you a lot of time. Keychains and Provisioning Profiles Plugin : Manages keychains across Jenkins installations.","title":"Plugins"},{"location":"best-practices/continuous-integration/jenkins/#build-step","text":"Add an \"Execute shell\" build step using your appropriate fastlane command per the example below: fastlane appstore Replace appstore with the lane you want to use. (note: if using a Gemfile, prefix that command with bundle exec )","title":"Build Step"},{"location":"best-practices/continuous-integration/jenkins/#test-results-and-screenshots","text":"To show the deployment result right in Jenkins Add post-build action Publish JUnit test result report Test report XMLs : fastlane/report.xml To show the generated screenshots right in Jenkins Add post-build action Publish HTML reports HTML directory to archive : fastlane/screenshots Index page : screenshots.html Save and run. The result should look like this:","title":"Test Results and Screenshots"},{"location":"best-practices/continuous-integration/semaphore/","text":"Semaphore CI Integration Semaphore provides simple, fast continuous integration and delivery for your iOS apps. All macOS machine images have fastlane pre-installed and getting up and running is quick and simple. Add the Semaphore fastlane plugin The Semaphore fastlane plugin creates a temporary keychain, sets match to read-only mode and (optionally) redirects log output from scan and gym . Install the plugin from your app's project directory: fastlane add_plugin semaphore Then, from your Fastfile : before_all do setup_semaphore end Configure a pipeline on Semaphore Configure continuous integration pipelines on Semaphore with a .semaphore/semaphore.yml file in your app's source repository. Then, add the repository to your Semaphore dashboard and your continuous integration will start. For full details of how pipelines work on Semaphore see the documentation , or the example project . Example Pipeline # Use the latest stable version of Semaphore 2.0 YML syntax: version: v1.0 # Name your pipeline. If you choose to connect multiple pipelines with # promotions, the pipeline name will help you differentiate between # them. For example, you might have a build phase and a delivery phase. # For more information on promotions, see: # https://docs.semaphoreci.com/article/67-deploying-with-promotions name: Tallest Towers # The agent defines the environment in which your CI runs. It is a combination # of a machine type and an operating system image. For a project built with # Xcode you must use one of the Apple machine types, coupled with a macOS image # running either Xcode 10 or Xcode 11. # See https://docs.semaphoreci.com/article/20-machine-types # https://docs.semaphoreci.com/article/161-macos-mojave-xcode-10-image and # https://docs.semaphoreci.com/article/162-macos-mojave-xcode-11-image agent: machine: type: a1-standard-4 os_image: macos-mojave-xcode11 # Blocks are the heart of a pipeline and are executed sequentially. Each block # has a task that defines one or more parallel jobs. Jobs define commands that # should be executed by the pipeline. # See https://docs.semaphoreci.com/article/62-concepts blocks: - name: Run tests task: # Set environment variables that your project requires. # See https://docs.semaphoreci.com/article/66-environment-variables-and-secrets env_vars: - name: LANG value: en_US.UTF-8 prologue: commands: # Download source code from GitHub. - checkout # Restore dependencies from cache. This command will not fail in # case of a cache miss. In case of a cache hit, bundle install will # complete in about a second. # See https://docs.semaphoreci.com/article/68-caching-dependencies - cache restore - bundle install --path vendor/bundle - cache store jobs: - name: Test commands: # Select an Xcode version. # See https://docs.semaphoreci.com/article/161-macos-mojave-xcode-10-image and # https://docs.semaphoreci.com/article/162-macos-mojave-xcode-11-image - bundle exec xcversion select 11.2.1 # Run tests of iOS and Mac app on a simulator or connected device. # See https://docs.fastlane.tools/actions/scan/ - bundle exec fastlane test - name: Build app task: env_vars: - name: LANG value: en_US.UTF-8 prologue: commands: - checkout - cache restore - bundle install --path vendor/bundle - cache store jobs: - name: Build commands: - bundle exec xcversion select 11.2.1 - bundle exec fastlane build - name: Take screenshots task: env_vars: - name: LANG value: en_US.UTF-8 prologue: commands: - checkout - cache restore - bundle install --path vendor/bundle - cache store jobs: - name: Screenshots commands: - bundle exec xcversion select 11.2.1 - bundle exec fastlane screenshots - artifact push project screenshots","title":"Semaphore"},{"location":"best-practices/continuous-integration/semaphore/#semaphore-ci-integration","text":"Semaphore provides simple, fast continuous integration and delivery for your iOS apps. All macOS machine images have fastlane pre-installed and getting up and running is quick and simple.","title":"Semaphore CI Integration"},{"location":"best-practices/continuous-integration/semaphore/#add-the-semaphore-fastlane-plugin","text":"The Semaphore fastlane plugin creates a temporary keychain, sets match to read-only mode and (optionally) redirects log output from scan and gym . Install the plugin from your app's project directory: fastlane add_plugin semaphore Then, from your Fastfile : before_all do setup_semaphore end","title":"Add the Semaphore fastlane plugin"},{"location":"best-practices/continuous-integration/semaphore/#configure-a-pipeline-on-semaphore","text":"Configure continuous integration pipelines on Semaphore with a .semaphore/semaphore.yml file in your app's source repository. Then, add the repository to your Semaphore dashboard and your continuous integration will start. For full details of how pipelines work on Semaphore see the documentation , or the example project .","title":"Configure a pipeline on Semaphore"},{"location":"best-practices/continuous-integration/semaphore/#example-pipeline","text":"# Use the latest stable version of Semaphore 2.0 YML syntax: version: v1.0 # Name your pipeline. If you choose to connect multiple pipelines with # promotions, the pipeline name will help you differentiate between # them. For example, you might have a build phase and a delivery phase. # For more information on promotions, see: # https://docs.semaphoreci.com/article/67-deploying-with-promotions name: Tallest Towers # The agent defines the environment in which your CI runs. It is a combination # of a machine type and an operating system image. For a project built with # Xcode you must use one of the Apple machine types, coupled with a macOS image # running either Xcode 10 or Xcode 11. # See https://docs.semaphoreci.com/article/20-machine-types # https://docs.semaphoreci.com/article/161-macos-mojave-xcode-10-image and # https://docs.semaphoreci.com/article/162-macos-mojave-xcode-11-image agent: machine: type: a1-standard-4 os_image: macos-mojave-xcode11 # Blocks are the heart of a pipeline and are executed sequentially. Each block # has a task that defines one or more parallel jobs. Jobs define commands that # should be executed by the pipeline. # See https://docs.semaphoreci.com/article/62-concepts blocks: - name: Run tests task: # Set environment variables that your project requires. # See https://docs.semaphoreci.com/article/66-environment-variables-and-secrets env_vars: - name: LANG value: en_US.UTF-8 prologue: commands: # Download source code from GitHub. - checkout # Restore dependencies from cache. This command will not fail in # case of a cache miss. In case of a cache hit, bundle install will # complete in about a second. # See https://docs.semaphoreci.com/article/68-caching-dependencies - cache restore - bundle install --path vendor/bundle - cache store jobs: - name: Test commands: # Select an Xcode version. # See https://docs.semaphoreci.com/article/161-macos-mojave-xcode-10-image and # https://docs.semaphoreci.com/article/162-macos-mojave-xcode-11-image - bundle exec xcversion select 11.2.1 # Run tests of iOS and Mac app on a simulator or connected device. # See https://docs.fastlane.tools/actions/scan/ - bundle exec fastlane test - name: Build app task: env_vars: - name: LANG value: en_US.UTF-8 prologue: commands: - checkout - cache restore - bundle install --path vendor/bundle - cache store jobs: - name: Build commands: - bundle exec xcversion select 11.2.1 - bundle exec fastlane build - name: Take screenshots task: env_vars: - name: LANG value: en_US.UTF-8 prologue: commands: - checkout - cache restore - bundle install --path vendor/bundle - cache store jobs: - name: Screenshots commands: - bundle exec xcversion select 11.2.1 - bundle exec fastlane screenshots - artifact push project screenshots","title":"Example Pipeline"},{"location":"best-practices/continuous-integration/travis/","text":"Travis Integration Update your .travis.yml to look like this: os: osx language: objective-c osx_image: xcode8.3 install: - bundle install script: - fastlane beta The above config files assume you have a Gemfile set up, if you don't have one yet, make sure to follow our Gemfile guide and run bundle update to make sure you're using the most recent fastlane release. Replace beta with the lane you want to run for your setup. If you want to build, sign and distribute builds from Travis, you'll need to add one more action to your Fastfile , as by default, the Travis keychain is locked. At the top of your Fastfile , add setup_travis which will setup the keychain to work well with match and gym . This action will also enable the readonly mode for match , so your CI doesn't create new certificates or provisioning profiles.","title":"Travis"},{"location":"best-practices/continuous-integration/travis/#travis-integration","text":"Update your .travis.yml to look like this: os: osx language: objective-c osx_image: xcode8.3 install: - bundle install script: - fastlane beta The above config files assume you have a Gemfile set up, if you don't have one yet, make sure to follow our Gemfile guide and run bundle update to make sure you're using the most recent fastlane release. Replace beta with the lane you want to run for your setup. If you want to build, sign and distribute builds from Travis, you'll need to add one more action to your Fastfile , as by default, the Travis keychain is locked. At the top of your Fastfile , add setup_travis which will setup the keychain to work well with match and gym . This action will also enable the readonly mode for match , so your CI doesn't create new certificates or provisioning profiles.","title":"Travis Integration"},{"location":"codesigning/common-issues/","text":"Common code signing issues Xcode errors Code Sign error: No matching provisioning profiles found: No provisioning profiles with a valid signing identity (i.e. certificate and private key pair) matching the bundle identifier \"X\" were found. The provisioning profile for the given app identifier \"X\" is not available on the local machine. Make sure you have a valid provisioning profile for the correct distribution type (App Store, Development or Ad Hoc) on the Apple Developer Portal, download and install it, and select the profile in the Xcode settings (See Setting up your Xcode Project ). You might have the provisioning profile installed locally, but miss the private key or certificate for it. No matching codesigning identity found: No codesigning identities (i.e. certificate and private key pairs) matching \"iPhone Distribution: X\" were found The code signing identity you specified in the Xcode project can't be found in your local keychain. Make sure to transfer the certificate and private key from another Mac (or wherever you store the private key), or to update the project file to use the correct code signing identity. Error Domain=IDEDistributionErrorDomain Code=1 \"The operation couldn\u2019t be completed. (IDEDistributionErrorDomain error 1.)\" This error can have a lot of reasons, some things you should try: Verify your Keychain is valid and you don't have an expired WWDR certificate using this guide Verify both your certificate and provisioning profile are valid in both your Keychain and on the Apple Developer Portal (Check out Debugging codesigning issues for more information) Follow the other steps of Debugging codesigning issues Provisioning profile does not match bundle identifier: The provisioning profile specified in your build settings (\"X\") has an AppID of \"Y\" which does not match your bundle identifier \"Z\" Your project defines a provisioning profile that doesn't match the bundle identifier of your app. There is mismatch between the bundle identifiers, this might happen if you specify the wrong provisioning profile in your target. Your build settings specify a provisioning profile with the UUID \"X\", however, no such provisioning profile was found. Your project defines a provisioning profile which doesn't exist on your local machine. Check out Setting up your Xcode Project for more information how to properly specify a provisioning profile to avoid hard coded UUIDs in your project. CodeSign Error: code signing is required for product type 'Application'... Make sure to have a valid code signing identity defined in your project targets. This might happen when you select Don't Code Sign as Code Signing Identity. fastlane errors User interaction is not allowed. Command /usr/bin/codesign failed with exit code 1 Make sure that codesign can access your signing private key. Open Keychain Access. Select your signing private key, right-click, choose Get Info, change to the Access Control tab and select the \"Allow all applications to access this item\". Could not find a matching code signing identity for type 'X' There are no certificates available on the Apple Developer Portal. This could either mean someone revoked a certificate, or you don't have access to it. Debugging steps for \"No applicable devices found.\" error It's not immediately obvious what this error is or what it's caused by, so hopefully these simple steps will help you find the root cause faster. Not just fastlane This error happens to all projects built with xcodebuild / xcrun , so it's likely not caused by fastlane . fastlane might help alleviate it with some env var unsetting / setting or other tricks, but this is an error from the new export APIs that Xcode uses. Legacy export API As of Xcode 8.3, the deprecated / legacy export api (e.g. use_legacy_build_api ) is removed, so you have to use the latest Xcode export API, which unfortunately still has some issues. Misleading errors The error message, \"No applicable devices found.\" , is actually misleading: it's not the real error. Something else is erroring out at a lower level so you'll need to dig in to find out what. The archive built successfully, but the export step failed Typically, your archive will build nicely, and with the correct provisioning profile; you can inspect the .xcarchive package to verify the embedded.mobileprovision file matches. What happens is the export step will possibly sign it with a different profile depending on which export_method you're choosing (with development being the default) and it is during this step that the process will fail. This allows you to isolate the error to the export step, under most circumstances. Dependency on other gems The export step sometimes fails due to not having these Ruby gems installed and caused many of the old instances of this problem. CFPropertyList sqlite3 digest You can use $ gem list to show which gems are installed Ruby version Many of the old instances of this problem were caused by not using system Ruby, but this likely won't impact many in the future since fastlane helps ensure your environment is set up properly now. Using RVM or newer versions of Ruby should work fine. If you have RVM installed and want to try reverting back to system Ruby just in case, you can set and check this using: $ rvm use system $ ruby -v ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin16] $ which ruby /usr/bin/ruby Check the Logs In many issues that were seen on the fastlane repo and across the web, this error was given during the bundling process. Luckily, that bundler creates a log file that you can access to see what error actually happened: 2017-03-30 21:47:09.855 xcodebuild[78957:9114437] [MT] IDEDistribution: -[IDEDistributionLogging _createLoggingBundleAtPath:]: Created bundle at path '/var/folders/s1/0h7d0scx6xqdthft328yfk0m0000gn/T/MyApp-Internal_2017-03-30_21-47-09.854.xcdistributionlogs'. 1.2.840.113635.100.1.61 1.2.840.113635.100.1.61 2017-03-30 21:47:14.702 xcodebuild[78957:9114437] [MT] IDEDistribution: Step failed: : Error Domain=IDEDistributionErrorDomain Code=14 \"No applicable devices found.\" UserInfo={NSLocalizedDescription=No applicable devices found.} error: exportArchive: No applicable devices found. If you look closely, you'll see the misleading error message and then just above it, there's a path to a log file ( *.xcdistributionlogs ). Opening that up, you'll see more detail. (Side note: you can also search for all logs via $ sudo find /private/var -name \"*.xcdistributionlogs\" ) In this case, it was because the export was built without bitcode, but there were static lib frameworks that were built with bitcode: # inside IDEDistribution.standard.log within the .xcdistributionlogs file 2017-03-31 16:49:06 +0000 Validating IPA structure... 2017-03-31 16:49:06 +0000 error: Failed to verify bitcode in opus.framework/opus: error: Bundle only contains bitcode-marker /var/folders/s1/0h7d0scx6xqdthft328yfk0m0000gn/T/IDEDistributionThinningStep.KRt/Payload/Viv.app/Frameworks/opus.framework/opus (armv7) When that framework was rebuilt without bitcode, it worked like a charm! \ud83d\ude05 Run commands yourself gym does a great job of showing which commands it's going to run. Inspect the files it generates and run these commands yourself, as many times as you need to, in order to isolate the problems. For example, here's the export command that gym shows: /usr/bin/xcrun /Users/rob/.fastlane/bin/bundle/lib/ruby/gems/2.2.0/gems/fastlane-2.24.0/gym/lib/assets/wrap_xcodebuild/xcbuild-safe.sh -exportArchive -exportOptionsPlist '/var/folders/s1/0h7d0scx6xqdthft328yfk0m0000gn/T/gym_config20170330-65021-1xbw0ov.plist' -archivePath /Users/rob/Library/Developer/Xcode/Archives/2017-03-30/MyApp\\ 2017-03-30\\ 21.12.02.xcarchive -exportPath '/var/folders/s1/0h7d0scx6xqdthft328yfk0m0000gn/T/gym_output20170330-65021-u80ojn' From that, you can see which exportOptionsPlist it's using, which had this in it: method development And you can see which .xcarchive it's using to check if it built that with the correct provisioning profile. Most importantly, you can keep running that entire command until you figure out why it's breaking (e.g. try installing these gems, try using system Ruby). Other Causes Keep in mind, this list could be infinite since this No applicable devices found error just manifests itself from underlying errors. Your best bet is to dig into the logs and see which error is actually being thrown. Using the wrong export_method or some other error in the generated exportPlist (e.g. using enterprise method when you're actually building for the app store and don't have the proper certificates) Root Apple WWDR certificate had expired; check the Keychain for expired certificates Env vars not being unset, relevant PR Including bitcode sometimes caused it (can use include_bitcode: false ) in your gym command and check if all frameworks match your bitcode requirements Provisioning profiles not matching capabilities and beta-reports-active flag on .entitlements file. Not having the gems ( CFPropertyList etc) we discussed earlier installed Apple Tech Notes If all else fails, use these tech notes to troubleshoot app thinning and bitcode: https://developer.apple.com/library/content/technotes/tn2432/_index.html https://stackoverflow.com/questions/34959767/whats-the-difference-between-fembed-bitcode-and-bitcode-generation-mode https://forums.developer.apple.com/thread/70583 Radar Feel free to duplicate the radar https://openradar.appspot.com/31389725 so the export APIs will return an accurate error message","title":"Common Issues"},{"location":"codesigning/common-issues/#common-code-signing-issues","text":"","title":"Common code signing issues"},{"location":"codesigning/common-issues/#xcode-errors","text":"Code Sign error: No matching provisioning profiles found: No provisioning profiles with a valid signing identity (i.e. certificate and private key pair) matching the bundle identifier \"X\" were found. The provisioning profile for the given app identifier \"X\" is not available on the local machine. Make sure you have a valid provisioning profile for the correct distribution type (App Store, Development or Ad Hoc) on the Apple Developer Portal, download and install it, and select the profile in the Xcode settings (See Setting up your Xcode Project ). You might have the provisioning profile installed locally, but miss the private key or certificate for it. No matching codesigning identity found: No codesigning identities (i.e. certificate and private key pairs) matching \"iPhone Distribution: X\" were found The code signing identity you specified in the Xcode project can't be found in your local keychain. Make sure to transfer the certificate and private key from another Mac (or wherever you store the private key), or to update the project file to use the correct code signing identity. Error Domain=IDEDistributionErrorDomain Code=1 \"The operation couldn\u2019t be completed. (IDEDistributionErrorDomain error 1.)\" This error can have a lot of reasons, some things you should try: Verify your Keychain is valid and you don't have an expired WWDR certificate using this guide Verify both your certificate and provisioning profile are valid in both your Keychain and on the Apple Developer Portal (Check out Debugging codesigning issues for more information) Follow the other steps of Debugging codesigning issues Provisioning profile does not match bundle identifier: The provisioning profile specified in your build settings (\"X\") has an AppID of \"Y\" which does not match your bundle identifier \"Z\" Your project defines a provisioning profile that doesn't match the bundle identifier of your app. There is mismatch between the bundle identifiers, this might happen if you specify the wrong provisioning profile in your target. Your build settings specify a provisioning profile with the UUID \"X\", however, no such provisioning profile was found. Your project defines a provisioning profile which doesn't exist on your local machine. Check out Setting up your Xcode Project for more information how to properly specify a provisioning profile to avoid hard coded UUIDs in your project. CodeSign Error: code signing is required for product type 'Application'... Make sure to have a valid code signing identity defined in your project targets. This might happen when you select Don't Code Sign as Code Signing Identity.","title":"Xcode errors"},{"location":"codesigning/common-issues/#fastlane-errors","text":"User interaction is not allowed. Command /usr/bin/codesign failed with exit code 1 Make sure that codesign can access your signing private key. Open Keychain Access. Select your signing private key, right-click, choose Get Info, change to the Access Control tab and select the \"Allow all applications to access this item\". Could not find a matching code signing identity for type 'X' There are no certificates available on the Apple Developer Portal. This could either mean someone revoked a certificate, or you don't have access to it.","title":"fastlane errors"},{"location":"codesigning/common-issues/#debugging-steps-for-no-applicable-devices-found-error","text":"It's not immediately obvious what this error is or what it's caused by, so hopefully these simple steps will help you find the root cause faster.","title":"Debugging steps for \"No applicable devices found.\" error"},{"location":"codesigning/common-issues/#not-just-fastlane","text":"This error happens to all projects built with xcodebuild / xcrun , so it's likely not caused by fastlane . fastlane might help alleviate it with some env var unsetting / setting or other tricks, but this is an error from the new export APIs that Xcode uses.","title":"Not just fastlane"},{"location":"codesigning/common-issues/#legacy-export-api","text":"As of Xcode 8.3, the deprecated / legacy export api (e.g. use_legacy_build_api ) is removed, so you have to use the latest Xcode export API, which unfortunately still has some issues.","title":"Legacy export API"},{"location":"codesigning/common-issues/#misleading-errors","text":"The error message, \"No applicable devices found.\" , is actually misleading: it's not the real error. Something else is erroring out at a lower level so you'll need to dig in to find out what.","title":"Misleading errors"},{"location":"codesigning/common-issues/#the-archive-built-successfully-but-the-export-step-failed","text":"Typically, your archive will build nicely, and with the correct provisioning profile; you can inspect the .xcarchive package to verify the embedded.mobileprovision file matches. What happens is the export step will possibly sign it with a different profile depending on which export_method you're choosing (with development being the default) and it is during this step that the process will fail. This allows you to isolate the error to the export step, under most circumstances.","title":"The archive built successfully, but the export step failed"},{"location":"codesigning/common-issues/#dependency-on-other-gems","text":"The export step sometimes fails due to not having these Ruby gems installed and caused many of the old instances of this problem. CFPropertyList sqlite3 digest You can use $ gem list to show which gems are installed","title":"Dependency on other gems"},{"location":"codesigning/common-issues/#ruby-version","text":"Many of the old instances of this problem were caused by not using system Ruby, but this likely won't impact many in the future since fastlane helps ensure your environment is set up properly now. Using RVM or newer versions of Ruby should work fine. If you have RVM installed and want to try reverting back to system Ruby just in case, you can set and check this using: $ rvm use system $ ruby -v ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin16] $ which ruby /usr/bin/ruby","title":"Ruby version"},{"location":"codesigning/common-issues/#check-the-logs","text":"In many issues that were seen on the fastlane repo and across the web, this error was given during the bundling process. Luckily, that bundler creates a log file that you can access to see what error actually happened: 2017-03-30 21:47:09.855 xcodebuild[78957:9114437] [MT] IDEDistribution: -[IDEDistributionLogging _createLoggingBundleAtPath:]: Created bundle at path '/var/folders/s1/0h7d0scx6xqdthft328yfk0m0000gn/T/MyApp-Internal_2017-03-30_21-47-09.854.xcdistributionlogs'. 1.2.840.113635.100.1.61 1.2.840.113635.100.1.61 2017-03-30 21:47:14.702 xcodebuild[78957:9114437] [MT] IDEDistribution: Step failed: : Error Domain=IDEDistributionErrorDomain Code=14 \"No applicable devices found.\" UserInfo={NSLocalizedDescription=No applicable devices found.} error: exportArchive: No applicable devices found. If you look closely, you'll see the misleading error message and then just above it, there's a path to a log file ( *.xcdistributionlogs ). Opening that up, you'll see more detail. (Side note: you can also search for all logs via $ sudo find /private/var -name \"*.xcdistributionlogs\" ) In this case, it was because the export was built without bitcode, but there were static lib frameworks that were built with bitcode: # inside IDEDistribution.standard.log within the .xcdistributionlogs file 2017-03-31 16:49:06 +0000 Validating IPA structure... 2017-03-31 16:49:06 +0000 error: Failed to verify bitcode in opus.framework/opus: error: Bundle only contains bitcode-marker /var/folders/s1/0h7d0scx6xqdthft328yfk0m0000gn/T/IDEDistributionThinningStep.KRt/Payload/Viv.app/Frameworks/opus.framework/opus (armv7) When that framework was rebuilt without bitcode, it worked like a charm! \ud83d\ude05","title":"Check the Logs"},{"location":"codesigning/common-issues/#run-commands-yourself","text":"gym does a great job of showing which commands it's going to run. Inspect the files it generates and run these commands yourself, as many times as you need to, in order to isolate the problems. For example, here's the export command that gym shows: /usr/bin/xcrun /Users/rob/.fastlane/bin/bundle/lib/ruby/gems/2.2.0/gems/fastlane-2.24.0/gym/lib/assets/wrap_xcodebuild/xcbuild-safe.sh -exportArchive -exportOptionsPlist '/var/folders/s1/0h7d0scx6xqdthft328yfk0m0000gn/T/gym_config20170330-65021-1xbw0ov.plist' -archivePath /Users/rob/Library/Developer/Xcode/Archives/2017-03-30/MyApp\\ 2017-03-30\\ 21.12.02.xcarchive -exportPath '/var/folders/s1/0h7d0scx6xqdthft328yfk0m0000gn/T/gym_output20170330-65021-u80ojn' From that, you can see which exportOptionsPlist it's using, which had this in it: method development And you can see which .xcarchive it's using to check if it built that with the correct provisioning profile. Most importantly, you can keep running that entire command until you figure out why it's breaking (e.g. try installing these gems, try using system Ruby).","title":"Run commands yourself"},{"location":"codesigning/common-issues/#other-causes","text":"Keep in mind, this list could be infinite since this No applicable devices found error just manifests itself from underlying errors. Your best bet is to dig into the logs and see which error is actually being thrown. Using the wrong export_method or some other error in the generated exportPlist (e.g. using enterprise method when you're actually building for the app store and don't have the proper certificates) Root Apple WWDR certificate had expired; check the Keychain for expired certificates Env vars not being unset, relevant PR Including bitcode sometimes caused it (can use include_bitcode: false ) in your gym command and check if all frameworks match your bitcode requirements Provisioning profiles not matching capabilities and beta-reports-active flag on .entitlements file. Not having the gems ( CFPropertyList etc) we discussed earlier installed","title":"Other Causes"},{"location":"codesigning/common-issues/#apple-tech-notes","text":"If all else fails, use these tech notes to troubleshoot app thinning and bitcode: https://developer.apple.com/library/content/technotes/tn2432/_index.html https://stackoverflow.com/questions/34959767/whats-the-difference-between-fembed-bitcode-and-bitcode-generation-mode https://forums.developer.apple.com/thread/70583","title":"Apple Tech Notes"},{"location":"codesigning/common-issues/#radar","text":"Feel free to duplicate the radar https://openradar.appspot.com/31389725 so the export APIs will return an accurate error message","title":"Radar"},{"location":"codesigning/getting-started/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 Codesigning concepts If you are just starting a new project, it's important to think about how you want to handle code signing. This guide will help you choose the best approach for you. For existing projects it might make sense to switch from a manual process to the match approach to make it easier for new team-members to onboard. If you are new to code signing, check out the WWDC session that describes the fundamentals of code signing in Xcode. Using match Using cert and sigh Using Xcode's code signing feature Manually Using match The concept of match is described in the codesigning guide . With match you store your private keys and certificates in a git repo to sync them across machines. This makes it easy to onboard new team-members and set up new Mac machines. This approach is secure and uses technology you already use. Getting started with match requires you to revoke your existing certificates. Make sure to follow Setting up your Xcode Project to set up your project properly. Using cert and sigh If you don't want to revoke your existing certificates, but still want an automated setup, cert and sigh are for you. cert will make sure you have a valid certificate and its private key installed on the local machine sigh will make sure you have a valid provisioning profile installed locally, that matches the installed certificate Add the following lines to your Fastfile lane :beta do get_certificates # invokes cert get_provisioning_profile # invokes sigh build_app end Make sure to follow Setting up your Xcode Project to set up your project properly. Using Xcode's code signing feature Occasionally the Automatic setting as the provisioning profile doesn't work reliably as it will just select the most recently updated provisioning profile, no matter if the certificate is installed. That's why it is recommended to specify a specific provisioning profile somehow: Xcode 8 and up The instructions below are more advanced, and take more time to setup than other approaches. Automatic & Manual Signing To simplify development workflow you could use Automatic code signing for development, and Manual for release builds. You have to configure your Xcode project to use automatic code signing, and on the release configuration specify the $() match env variable. e.g: in your Fastfile you then use a lane like this: lane :release do sync_code_signing disable_automatic_code_signing(path: \"my_project.xcodeproj\") build_app enable_automatic_code_signing(path: \"my_project.xcodeproj\") upload_to_testflight end this way you can profit off of the automatic code signing on development machines, and also stay in control on release builds to be sure the right cert/provisioning profiles are used. Xcode 7 and lower You should avoid clicking the Fix Issue button (There is an Xcode plugin that disables the button), as it sometimes revokes existing certificates, and with it the provisioning profiles. Unfortunately you can't specify the name of the provisioning profile in Xcode 7. Instead you can specify the UUID of the profile, which changes every time the profile gets re-generated (e.g. when you add a new device). To work around this issue, check out Setting up your Xcode Project on how to pass a provisioning profile to Xcode when building your app. Manually You can always manually create and manage your certificates and provisioning profiles using the Apple Developer Portal. Make sure to store the private key ( .p12 ) of your certificates in a safe place, as they can't be restored if you lose them. You can always download the certificate ( .cer ) and provisioning profile ( .mobileprovision ) from the Apple Developer Portal. Where to go from here Setting up your Xcode Project Debugging codesigning issues Common code signing issues Upgrading to Xcode 9","title":"Getting Started"},{"location":"codesigning/getting-started/#codesigning-concepts","text":"If you are just starting a new project, it's important to think about how you want to handle code signing. This guide will help you choose the best approach for you. For existing projects it might make sense to switch from a manual process to the match approach to make it easier for new team-members to onboard. If you are new to code signing, check out the WWDC session that describes the fundamentals of code signing in Xcode. Using match Using cert and sigh Using Xcode's code signing feature Manually","title":"Codesigning concepts"},{"location":"codesigning/getting-started/#using-match","text":"The concept of match is described in the codesigning guide . With match you store your private keys and certificates in a git repo to sync them across machines. This makes it easy to onboard new team-members and set up new Mac machines. This approach is secure and uses technology you already use. Getting started with match requires you to revoke your existing certificates. Make sure to follow Setting up your Xcode Project to set up your project properly.","title":"Using match"},{"location":"codesigning/getting-started/#using-cert-and-sigh","text":"If you don't want to revoke your existing certificates, but still want an automated setup, cert and sigh are for you. cert will make sure you have a valid certificate and its private key installed on the local machine sigh will make sure you have a valid provisioning profile installed locally, that matches the installed certificate Add the following lines to your Fastfile lane :beta do get_certificates # invokes cert get_provisioning_profile # invokes sigh build_app end Make sure to follow Setting up your Xcode Project to set up your project properly.","title":"Using cert and sigh"},{"location":"codesigning/getting-started/#using-xcodes-code-signing-feature","text":"Occasionally the Automatic setting as the provisioning profile doesn't work reliably as it will just select the most recently updated provisioning profile, no matter if the certificate is installed. That's why it is recommended to specify a specific provisioning profile somehow:","title":"Using Xcode's code signing feature"},{"location":"codesigning/getting-started/#manually","text":"You can always manually create and manage your certificates and provisioning profiles using the Apple Developer Portal. Make sure to store the private key ( .p12 ) of your certificates in a safe place, as they can't be restored if you lose them. You can always download the certificate ( .cer ) and provisioning profile ( .mobileprovision ) from the Apple Developer Portal.","title":"Manually"},{"location":"codesigning/getting-started/#where-to-go-from-here","text":"Setting up your Xcode Project Debugging codesigning issues Common code signing issues Upgrading to Xcode 9","title":"Where to go from here"},{"location":"codesigning/troubleshooting/","text":"Debugging codesigning issues This guide will help you resolve the most common code signing errors. In general, make sure to read the complete output when something goes wrong, in particular the very top and the very bottom of the build output. You'll always get access to the raw xcodebuild output, make sure to analyze it, as fastlane can only assist with helping you resolve problems. Error message Make sure to find the exact error message in your build output. Many times the error message actually tells you how to resolve the issue. To get even more details, try archiving using Xcode 8. Different machine Does code signing work on a different Mac, but not on yours? If so, chances are high you don't have the latest private key, the certificate or the provisioning profile. Also follow the Keychain part of this document to make sure you don't have any expired certificates installed. Xcode project Make sure to follow Setting up your Xcode Project to properly set up your project. A check list on what you should verify on your Xcode project Make sure to have consistent code signing settings across your targets Don't set any code signing settings on your project level, just on the target level Make sure the bundle identifier matches the one of your provisioning profile Make sure the code signing identity is set to iOS Distribution for Release builds Make sure to set a provisioning profile for all your targets, e.g. Watch, Today widget, ... Check your working copy in git - did you make any changes by mistake? Developer Portal If a certificate gets revoked, all connected provisioning profiles get invalidated. This however might not immediately show up in your local keychain. Open the Developer Portal Verify your certificates are valid, and didn't expire or get revoked Switch to the Provisioning Profiles and make sure the profiles you want to use are all still valid If your profile is invalid or expired, you can easily fix it: If you're using match , run match with force enabled If you're using sigh , run sigh with force enabled If you're doing manual code signing, edit the provisioning profile, and click on Generate on the bottom of the screen. Make sure to select the correct certificate, then download and open the new provisioning profile If your profile is valid, but you still have issues make sure that the certificate matches the certificate you have installed locally. You can view the used certificate by editing the profile (Don't click Generate , unless you want to re-generate the provisioning profile) that all devices you need are included (Development and Ad-Hoc only) that you are actually looking at the correct provisioning profile, that matches the bundle identifier of your app. You might have multiple provisioning profiles for the same app / certificate combination. By default Xcode will use the last modified one. Keychain Run security find-identity -v -p codesigning to get a list of locally installed code signing identities. Does yours show up? Open the Keychain Access app, switch to Certificates and find your iOS Developer or iOS Distribution entry and unfold the entry to verify the private key is locally installed: Make sure to have deleted all expired WWDR certificates, more information here . There might be 2 expired WWDR certificates, one in the login , and one in the system keychain Run security default-keychain to view the default keychain that is used by some fastlane actions if a keychain path is not explicitly provided. If it's the system keychain, make sure fastlane has access to write to it. You may want to reconfigure your environment so the default keychain is the login keychain, which is less prone to permissions errors. If you're using launchctl , see this link to change the default keychain to the login keychain . Have you tried turning it off and on again? As funny as it sounds, sometimes restarting your Mac helps. fastlane Run fastlane in verbose mode to get even more debug information: fastlane [lane] --verbose Common Issues Check out Common code signing issues for the most common code signing issues and how you can solve them.","title":"Troubleshooting"},{"location":"codesigning/troubleshooting/#debugging-codesigning-issues","text":"This guide will help you resolve the most common code signing errors. In general, make sure to read the complete output when something goes wrong, in particular the very top and the very bottom of the build output. You'll always get access to the raw xcodebuild output, make sure to analyze it, as fastlane can only assist with helping you resolve problems.","title":"Debugging codesigning issues"},{"location":"codesigning/troubleshooting/#error-message","text":"Make sure to find the exact error message in your build output. Many times the error message actually tells you how to resolve the issue. To get even more details, try archiving using Xcode 8.","title":"Error message"},{"location":"codesigning/troubleshooting/#different-machine","text":"Does code signing work on a different Mac, but not on yours? If so, chances are high you don't have the latest private key, the certificate or the provisioning profile. Also follow the Keychain part of this document to make sure you don't have any expired certificates installed.","title":"Different machine"},{"location":"codesigning/troubleshooting/#xcode-project","text":"Make sure to follow Setting up your Xcode Project to properly set up your project. A check list on what you should verify on your Xcode project Make sure to have consistent code signing settings across your targets Don't set any code signing settings on your project level, just on the target level Make sure the bundle identifier matches the one of your provisioning profile Make sure the code signing identity is set to iOS Distribution for Release builds Make sure to set a provisioning profile for all your targets, e.g. Watch, Today widget, ... Check your working copy in git - did you make any changes by mistake?","title":"Xcode project"},{"location":"codesigning/troubleshooting/#developer-portal","text":"If a certificate gets revoked, all connected provisioning profiles get invalidated. This however might not immediately show up in your local keychain. Open the Developer Portal Verify your certificates are valid, and didn't expire or get revoked Switch to the Provisioning Profiles and make sure the profiles you want to use are all still valid If your profile is invalid or expired, you can easily fix it: If you're using match , run match with force enabled If you're using sigh , run sigh with force enabled If you're doing manual code signing, edit the provisioning profile, and click on Generate on the bottom of the screen. Make sure to select the correct certificate, then download and open the new provisioning profile If your profile is valid, but you still have issues make sure that the certificate matches the certificate you have installed locally. You can view the used certificate by editing the profile (Don't click Generate , unless you want to re-generate the provisioning profile) that all devices you need are included (Development and Ad-Hoc only) that you are actually looking at the correct provisioning profile, that matches the bundle identifier of your app. You might have multiple provisioning profiles for the same app / certificate combination. By default Xcode will use the last modified one.","title":"Developer Portal"},{"location":"codesigning/troubleshooting/#keychain","text":"Run security find-identity -v -p codesigning to get a list of locally installed code signing identities. Does yours show up? Open the Keychain Access app, switch to Certificates and find your iOS Developer or iOS Distribution entry and unfold the entry to verify the private key is locally installed: Make sure to have deleted all expired WWDR certificates, more information here . There might be 2 expired WWDR certificates, one in the login , and one in the system keychain Run security default-keychain to view the default keychain that is used by some fastlane actions if a keychain path is not explicitly provided. If it's the system keychain, make sure fastlane has access to write to it. You may want to reconfigure your environment so the default keychain is the login keychain, which is less prone to permissions errors. If you're using launchctl , see this link to change the default keychain to the login keychain .","title":"Keychain"},{"location":"codesigning/troubleshooting/#have-you-tried-turning-it-off-and-on-again","text":"As funny as it sounds, sometimes restarting your Mac helps.","title":"Have you tried turning it off and on again?"},{"location":"codesigning/troubleshooting/#fastlane","text":"Run fastlane in verbose mode to get even more debug information: fastlane [lane] --verbose","title":"fastlane"},{"location":"codesigning/troubleshooting/#common-issues","text":"Check out Common code signing issues for the most common code signing issues and how you can solve them.","title":"Common Issues"},{"location":"codesigning/xcode-project/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 Setting up your Xcode Project Xcode 9 and up In most cases, fastlane will work out of the box with Xcode 9 and up if you selected manual code signing and choose a provisioning profile name for each of your targets . If you don't use match , we recommend defining a mapping of app target to provisioning profile in your Fastfile . By defining those profiles, you can guarantee reproducible builds every time you run it. lane :beta do build_app( export_method: \"app-store\", export_options: { provisioningProfiles: { \"com.example.bundleid\" => \"Provisioning Profile Name\", \"com.example.bundleid2\" => \"Provisioning Profile Name 2\" } } ) end You can also use Xcode\u2019s Automatically Manage Signing feature. By default, automatic signing via xcodebuild is disabled. To enable it, pass -allowProvisioningUpdates via the xcargs option: lane :beta do build_app(xcargs: \"-allowProvisioningUpdates\") end Specify provisioning profile name for each targets You can set a provisioning profile name for each of your targets. By doing so, Xcode automatically selects the latest provisioning profile matching its name. This way you don't have to update your Xcode project, every time you re-generate your provisioning profile (e.g. when adding a new device) You can now specify which provisioning profile to use in the General tab after disabling Automatically manage signing . Alternatively you can also specify the provisioning profile in the Build Settings tab. If your provisioning profile is not listed in the drop down, there might be a few reasons: It doesn't match the bundle identifier of the target The associated certificate or its private key is not installed on the local machine The provisioning profile is not installed on the local machine Check out Debugging codesigning issues for more information on how to debug signing issues. Build settings Specify the name of the provisioning profile using the PROVISIONING_PROFILE_SPECIFIER : DEVELOPMENT_TEAM = N8XAAASEU2; PROVISIONING_PROFILE_SPECIFIER = \"match AppStore me.themoji.app.release\"; It is recommended to select the provisioning profile in the General tab in your Xcode project, so Xcode will automatically set the values mentioned above for you. Set using environment variable You could pass the profile specifier via environment variables, but usually it's enough to define it statically in your project, per target, since usually neither your Team ID, nor the provisioning profile change. If you're using match the following environment variables are being set for you: +---------------------+------------------------------------------------+--------------------------------------+ | Installed Provisioning Profile | +---------------------+------------------------------------------------+--------------------------------------+ | Parameter | Environment Variable | Value | +---------------------+------------------------------------------------+--------------------------------------+ | App Identifier | | me.themoji.release | | Type | | appstore | | Profile UUID | sigh_me.themoji.beta_appstore | 22a19b3a-7cf6-4997-95f2-9cbb4d33fe7e | | Profile Name | sigh_me.themoji.beta_appstore_profile-name | match AppStore me.themoji.release | | Development Team ID | sigh_me.themoji.beta_appstore_team-id | N8XAAASEU2 | +---------------------+------------------------------------------------+--------------------------------------+ Using match development or Xcode Automatic Provisioning Apple's Automatic Provisioning will automatically generate a private key, development certificate, and managed development provisioning profile for each computer used to build a project. Since Xcode can auto-generate these for you, there is no need to share them between teammates' computers. As such, when using Xcode Automatic Provisioning, there is no need to use match development to keep development keys, certificates, and provisioning profiles in sync. If you are already using match to manage development code signing, Automatic Provisioning will use the match -generated key and certificate. However, Xcode will create and manage its own provisioning profile and will not use the match -generated profile. match appstore and Xcode Automatic Provisioning Xcode Automatic Provisioning doesn't sync your private keys across machines (if you have multiple computers or share them between teammates). To securely store your private key and have access to it from all your devices, use match appstore or match adhoc . This will sync your keys, certificates and provisioning profiles via git, encrypted using OpenSSL.","title":"Xcode Project"},{"location":"codesigning/xcode-project/#setting-up-your-xcode-project","text":"","title":"Setting up your Xcode Project"},{"location":"codesigning/xcode-project/#xcode-9-and-up","text":"In most cases, fastlane will work out of the box with Xcode 9 and up if you selected manual code signing and choose a provisioning profile name for each of your targets . If you don't use match , we recommend defining a mapping of app target to provisioning profile in your Fastfile . By defining those profiles, you can guarantee reproducible builds every time you run it. lane :beta do build_app( export_method: \"app-store\", export_options: { provisioningProfiles: { \"com.example.bundleid\" => \"Provisioning Profile Name\", \"com.example.bundleid2\" => \"Provisioning Profile Name 2\" } } ) end You can also use Xcode\u2019s Automatically Manage Signing feature. By default, automatic signing via xcodebuild is disabled. To enable it, pass -allowProvisioningUpdates via the xcargs option: lane :beta do build_app(xcargs: \"-allowProvisioningUpdates\") end","title":"Xcode 9 and up"},{"location":"codesigning/xcode-project/#specify-provisioning-profile-name-for-each-targets","text":"You can set a provisioning profile name for each of your targets. By doing so, Xcode automatically selects the latest provisioning profile matching its name. This way you don't have to update your Xcode project, every time you re-generate your provisioning profile (e.g. when adding a new device) You can now specify which provisioning profile to use in the General tab after disabling Automatically manage signing . Alternatively you can also specify the provisioning profile in the Build Settings tab. If your provisioning profile is not listed in the drop down, there might be a few reasons: It doesn't match the bundle identifier of the target The associated certificate or its private key is not installed on the local machine The provisioning profile is not installed on the local machine Check out Debugging codesigning issues for more information on how to debug signing issues.","title":"Specify provisioning profile name for each targets"},{"location":"generated/actions/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 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 build_mac_app Alias for the build_app action but only for macOS mac spm Runs Swift Package Manager on your project ios, android, mac build_ios_app Alias for the build_app action but only for iOS ios xcclean Cleans the project using xcodebuild ios, mac xcarchive Archives the project using xcodebuild ios, mac build_android_app Alias for the gradle action ios, android xcexport Exports the project using xcodebuild ios, mac build_app Easily build and sign your app (via gym ) ios, mac xcbuild Builds the project using xcodebuild ios, mac xctest Runs tests on the given simulator ios, mac xcodes Make sure a certain version of Xcode is installed, installing it only if needed ios, mac create_xcframework Package multiple build configs of a library/framework into a single xcframework ios, 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 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 capture_android_screenshots Automated localized screenshots of your Android app (via screengrab ) android 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 match_nuke Easily nuke your certificate and provisioning profiles (via match ) ios, mac get_provisioning_profile Generates a provisioning profile, saving it in the current folder (via sigh ) ios, mac sync_code_signing Easily sync your certificates and profiles across your team (via match ) ios, mac notarize Notarizes a macOS app mac get_certificates Create new iOS code signing certificates (via cert ) ios update_code_signing_settings Configures Xcode's Codesigning options ios, mac install_provisioning_profile Install provisioning profile from path 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 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_app_store Upload metadata and binary to App Store Connect (via deliver ) 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_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 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 commit_github_file This will commit a file directly on GitHub via the API 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 backuped 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 \ud83d\ude80 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 google_play_track_version_codes Retrieves version codes for a Google Play track android plugin_scores \u001b[31mNo description provided\u001b[0m ios, android, mac ruby_version Verifies the minimum ruby version required ios, android, mac setup_travis Setup the keychain and match to work with Travis CI ios, android, mac ensure_env_vars Raises an exception if the specified env vars are not set ios, android, mac google_play_track_release_names Retrieves release names for a Google Play track android opt_out_usage This will stop uploading the information which actions were run ios, android, mac environment_variable Sets/gets env vars for Fastlane.swift. Don't use in ruby, use ENV[key] = val ios, android, mac get_managed_play_store_publishing_rights Obtain publishing rights for custom apps on Managed Google Play Store android min_fastlane_version Verifies the minimum fastlane version required ios, android, mac println Alias for the puts action ios, android, mac create_app_on_managed_play_store Create Managed Google Play Apps android validate_play_store_json_key Validate that the Google Play Store json_key works android echo Alias for the puts action ios, android, mac setup_ci Setup the keychain and match to work with CI ios, mac setup_circle_ci Setup the keychain and match to work with CircleCI ios, android, mac ensure_bundle_exec Raises an exception if not using bundle exec to run fastlane ios, android, mac modify_services Modifies the services of the app created on Developer Portal ios 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 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","title":"Actions"},{"location":"generated/actions/#fastlane-actions","text":"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","title":"fastlane actions"},{"location":"generated/actions/#testing","text":"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","title":"Testing"},{"location":"generated/actions/#building","text":"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 build_mac_app Alias for the build_app action but only for macOS mac spm Runs Swift Package Manager on your project ios, android, mac build_ios_app Alias for the build_app action but only for iOS ios xcclean Cleans the project using xcodebuild ios, mac xcarchive Archives the project using xcodebuild ios, mac build_android_app Alias for the gradle action ios, android xcexport Exports the project using xcodebuild ios, mac build_app Easily build and sign your app (via gym ) ios, mac xcbuild Builds the project using xcodebuild ios, mac xctest Runs tests on the given simulator ios, mac xcodes Make sure a certain version of Xcode is installed, installing it only if needed ios, mac create_xcframework Package multiple build configs of a library/framework into a single xcframework ios, mac","title":"Building"},{"location":"generated/actions/#screenshots","text":"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 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 capture_android_screenshots Automated localized screenshots of your Android app (via screengrab ) android","title":"Screenshots"},{"location":"generated/actions/#project","text":"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","title":"Project"},{"location":"generated/actions/#code-signing","text":"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 match_nuke Easily nuke your certificate and provisioning profiles (via match ) ios, mac get_provisioning_profile Generates a provisioning profile, saving it in the current folder (via sigh ) ios, mac sync_code_signing Easily sync your certificates and profiles across your team (via match ) ios, mac notarize Notarizes a macOS app mac get_certificates Create new iOS code signing certificates (via cert ) ios update_code_signing_settings Configures Xcode's Codesigning options ios, mac install_provisioning_profile Install provisioning profile from path ios, mac","title":"Code Signing"},{"location":"generated/actions/#documentation","text":"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","title":"Documentation"},{"location":"generated/actions/#beta","text":"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","title":"Beta"},{"location":"generated/actions/#push","text":"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","title":"Push"},{"location":"generated/actions/#releasing-your-app","text":"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 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_app_store Upload metadata and binary to App Store Connect (via deliver ) 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_play_store Upload metadata, screenshots and binaries to Google Play (via supply ) android","title":"Releasing your app"},{"location":"generated/actions/#source-control","text":"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 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 commit_github_file This will commit a file directly on GitHub via the API ios, android, mac","title":"Source Control"},{"location":"generated/actions/#notifications","text":"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","title":"Notifications"},{"location":"generated/actions/#app-store-connect","text":"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","title":"App Store Connect"},{"location":"generated/actions/#misc","text":"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 backuped 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 \ud83d\ude80 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 google_play_track_version_codes Retrieves version codes for a Google Play track android plugin_scores \u001b[31mNo description provided\u001b[0m ios, android, mac ruby_version Verifies the minimum ruby version required ios, android, mac setup_travis Setup the keychain and match to work with Travis CI ios, android, mac ensure_env_vars Raises an exception if the specified env vars are not set ios, android, mac google_play_track_release_names Retrieves release names for a Google Play track android opt_out_usage This will stop uploading the information which actions were run ios, android, mac environment_variable Sets/gets env vars for Fastlane.swift. Don't use in ruby, use ENV[key] = val ios, android, mac get_managed_play_store_publishing_rights Obtain publishing rights for custom apps on Managed Google Play Store android min_fastlane_version Verifies the minimum fastlane version required ios, android, mac println Alias for the puts action ios, android, mac create_app_on_managed_play_store Create Managed Google Play Apps android validate_play_store_json_key Validate that the Google Play Store json_key works android echo Alias for the puts action ios, android, mac setup_ci Setup the keychain and match to work with CI ios, mac setup_circle_ci Setup the keychain and match to work with CircleCI ios, android, mac ensure_bundle_exec Raises an exception if not using bundle exec to run fastlane ios, android, mac modify_services Modifies the services of the app created on Developer Portal ios 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","title":"Misc"},{"location":"generated/actions/#deprecated","text":"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","title":"Deprecated"},{"location":"generated/available-plugins/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 Available Plugins 24830 appcenter via Microsoft Corporation Fastlane plugin for App Center Provided actions Name Category Description appcenter_fetch_version_number - Fetches the latest version number of an app or the last build number of a version from App Center appcenter_fetch_devices - Fetches a list of devices from App Center to distribute an iOS app to appcenter_upload - Distribute new release to App Center Score details Metric Points Description contributors 246 The more contributors a project has, the more likely it is it stays alive subscribers 51 More subscribers = more popular project stars 404 More stars = more popular project forks 515 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -49 Lots of open issues are not a good sign usually, unless the project is really popular downloads 23457 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 23982 firebase_app_distribution via Stefan Natchev, Manny Jimenez, Alonso Salas Infante Release your beta builds to Firebase App Distribution. https://firebase.google.com/docs/app-distribution Provided actions Name Category Description firebase_app_distribution_login - Authenticate with Firebase App Distribution using a Google account. firebase_app_distribution_add_testers - Create testers in bulk from a comma-separated list or a file firebase_app_distribution_get_udids - Download the UDIDs of your Firebase App Distribution testers firebase_app_distribution - Release your beta builds with Firebase App Distribution firebase_app_distribution_remove_testers - Delete testers in bulk from a comma-separated list or a file Score details Metric Points Description contributors 84 The more contributors a project has, the more likely it is it stays alive subscribers 36 More subscribers = more popular project stars 97 More stars = more popular project forks 60 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -13 Lots of open issues are not a good sign usually, unless the project is really popular downloads 23556 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 12769 badge via Daniel Griesser Add a badge overlay to your app icon Provided actions Name Category Description add_badge - Automatically add a badge to your app icon Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 175 More stars = more popular project forks 75 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12374 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 12537 versioning via Siarhei Fiedartsou, John Douglas Allows to set/get app version and build number directly to/from Info.plist Provided actions Name Category Description get_version_number_from_git_branch - Extract version number from git branch name increment_build_number_in_xcodeproj - Increment build number in xcodeproj get_version_number_from_plist - Get the version number of your project get_build_number_from_plist - Get the build number of your project ci_build_number building Detects current build number defined by CI system get_version_number_from_xcodeproj - Get the version number of your project increment_version_number_in_xcodeproj - Increment build number in xcodeproj increment_version_number_in_plist - Increment the version number of your project get_app_store_version_number - Get the version number of your app in the App Store get_info_plist_path - Get the version number of your project get_build_number_from_xcodeproj - Get the build number of your project increment_build_number_in_plist - Increment the build number of your project Score details Metric Points Description contributors 90 The more contributors a project has, the more likely it is it stays alive subscribers 18 More subscribers = more popular project stars 381 More stars = more popular project forks 220 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -8 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11655 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 7280 sentry via Sentry Upload symbols to Sentry Provided actions Name Category Description sentry_upload_dsym - Upload dSYM symbolication files to Sentry sentry_set_commits - Set commits of a release sentry_upload_sourcemap - Upload a sourcemap to a release of a project on Sentry sentry_finalize_release - Finalize a release for a project on Sentry sentry_upload_file - Upload files to a release of a project on Sentry sentry_create_deploy - Creates a new release deployment for a project on Sentry sentry_upload_proguard - Upload mapping to a project on Sentry sentry_create_release - Create new releases for a project on Sentry sentry_check_cli_installed - Checks that sentry-cli with the correct version is installed sentry_upload_dif - Upload debugging information files. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 51 More subscribers = more popular project stars 85 More stars = more popular project forks 210 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -17 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6740 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 6980 bugsnag via Delisa Mason Uploads dSYM files to Bugsnag Provided actions Name Category Description upload_symbols_to_bugsnag - Uploads dSYM debug symbol files to Bugsnag send_build_to_bugsnag building Notifies Bugsnag of a build dsym_magic - Sets the dsym path Score details Metric Points Description contributors 96 The more contributors a project has, the more likely it is it stays alive subscribers 63 More subscribers = more popular project stars 30 More stars = more popular project forks 40 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6625 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 6625 aws_s3 via Josh Holtz Upload IPA and APK to S3 Provided actions Name Category Description aws_s3 - Generates a plist file and uploads all to AWS S3 Score details Metric Points Description contributors 150 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 118 More stars = more popular project forks 275 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -17 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5944 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 6513 test_center via Lyndsey Ferguson \ud83c\udfaf Understand, tame, and train your iOS & Mac tests \ud83c\udf89 Provided actions Name Category Description suppressed_tests testing \ud83d\udddc Retrieves a list of tests that are suppressed in a specific or all Xcode Schemes in a project suppress_tests testing \ud83d\udddc Suppresses specific tests in a specific or all Xcode Schemes in a given project tests_from_xcresult testing \u2611\ufe0f Retrieves the failing, passing, and skipped tests as reported in a xcresult bundle suppress_tests_from_junit testing \ud83d\udddc Uses a junit xml report file to suppress either passing or failing tests in an Xcode Scheme tests_from_xctestrun testing \ufe0f\ufe0f\u2611\ufe0f Retrieves all of the tests from xctest bundles referenced by the xctestrun file quit_core_simulator_service testing \ud83d\udcf2 Force-quits the com.apple.CoreSimulator.CoreSimulatorService to fix mysterious iOS Simulator issues. collate_test_result_bundles testing \ud83d\udd38 Combines multiple test_result bundles into one test_result bundle tests_from_junit testing \u2611\ufe0f Retrieves the failing and passing tests as reported in a junit xml file multi_scan testing \u267b\ufe0f Uses scan to run Xcode tests a given number of times, with the option of batching and/or parallelizing them, only re-testing failing tests. test_options_from_testplan testing \u2611\ufe0f Gets test info from a given test plan collate_html_reports testing \ud83d\udd36 Combines multiple html report files into one html report file collate_junit_reports testing \ud83d\udd37 Combines multiple junit report files into one junit report file collate_json_reports testing \ud83d\udd39 Combines multiple json report files into one json report file testplans_from_scheme testing \u2611\ufe0fGets all the testplans that a Scheme references collate_xcresults - \ud83d\udd38 Combines multiple xcresult bundles into one xcresult bundle Score details Metric Points Description contributors 66 The more contributors a project has, the more likely it is it stays alive subscribers 33 More subscribers = more popular project stars 208 More stars = more popular project forks 195 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -14 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5822 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 6086 increment_version_code via Jems Increment the version code of your android project. Provided actions Name Category Description increment_version_code - Increment the version code of your android project. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 40 More stars = more popular project forks 35 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5916 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 5789 trainer via KrauseFx Convert xcodebuild plist files to JUnit reports Provided actions Name Category Description trainer - Convert the Xcode plist log to a JUnit report. This will raise an exception if the tests failed Score details Metric Points Description contributors 42 The more contributors a project has, the more likely it is it stays alive subscribers 18 More subscribers = more popular project stars 132 More stars = more popular project forks 110 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -8 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5370 More downloads = more users have been using the plugin for a while tests 24 The more tests a plugin has, the better Open on GitHub 4025 versioning_android via Igor Lamos Android Versioning Plugin for Fastlane Provided actions Name Category Description android_get_version_name - Get the Version Name of your Android project android_set_version_code - Set the Version Code of your Android project android_set_version_name - Set the Version Name of your Android project android_get_version_code - Get the Version Code of your Android project Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3911 More downloads = more users have been using the plugin for a while tests 36 The more tests a plugin has, the better Open on GitHub 3595 changelog via Pavel Prochazka Automate changes to your project CHANGELOG.md Provided actions Name Category Description read_changelog - Reads content of a section from your project CHANGELOG.md file update_changelog - Updates content of a section of your project CHANGELOG.md file emojify_changelog - Emojifies the output of read_changelog action stamp_changelog - Stamps the [Unreleased] section with provided identifier in your project CHANGELOG.md file Score details Metric Points Description contributors 60 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 176 More stars = more popular project forks 225 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2952 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 3291 appicon via Boris Bu\u0308gling, Felix Krause Generate required icon sizes and iconset from a master application icon. Provided actions Name Category Description android_appicon - Generate required icon sizes from a master application icon appicon - Generate required icon sizes and iconset from a master application icon Score details Metric Points Description contributors 120 The more contributors a project has, the more likely it is it stays alive subscribers 27 More subscribers = more popular project stars 295 More stars = more popular project forks 205 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -19 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2562 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 2572 load_json via Felix Krause Loads a local JSON file and parses it Provided actions Name Category Description load_json - Loads a local JSON file and parses it Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2489 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 2420 get_version_name via Jems Get the version name of an Android project. Provided actions Name Category Description get_version_name - Get the version name of an Android project. This action will return the version name of your project according to the one set in your build.gradle file Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 4 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2313 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 2197 yarn via Josh Lesch Execute Yarn commands from your Fastfile Provided actions Name Category Description yarn - Execute Yarn commands from your Fastfile Score details Metric Points Description contributors 24 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 16 More stars = more popular project forks 30 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1972 More downloads = more users have been using the plugin for a while tests 21 The more tests a plugin has, the better Open on GitHub 2038 browserstack via BrowserStack Uploads IPA and APK files to BrowserStack for automation and manual testing. Provided actions Name Category Description upload_to_browserstack_app_automate - Uploads IPA and APK files to BrowserStack AppAutomate for running automated tests. upload_to_browserstack_app_live - Uploads IPA and APK files to BrowserStack AppLive for running manual tests. Score details Metric Points Description contributors 24 The more contributors a project has, the more likely it is it stays alive subscribers 27 More subscribers = more popular project stars 10 More stars = more popular project forks 35 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 19 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1804 More downloads = more users have been using the plugin for a while tests 51 The more tests a plugin has, the better Open on GitHub 2022 xcconfig via Sergii Ovcharenko Adds 2 actions to fastlane to read and update xcconfig files. Provided actions Name Category Description update_xcconfig_value - Updates value of a setting in xcconfig file. set_xcconfig_value - Sets the value of a setting in xcconfig file. get_xcconfig_value - Reads a value of a setting from xcconfig file. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 6 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1847 More downloads = more users have been using the plugin for a while tests 30 The more tests a plugin has, the better Open on GitHub 1804 get_version_code via Jems Get the version code of anAndroid project. This action will return the version code of your project according to the one set in your build.gradle file Provided actions Name Category Description get_version_code - Get the version code of an Android project. This action will return the version code of your project according to the one set in your build.gradle file Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1697 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 1779 android_versioning via Manabu OHTAKE Allows to set/get app version name and version code directly to/from build.gradle Provided actions Name Category Description get_value_from_build - - increment_version_code - Increment the version code of your project set_value_in_build - Set the value of your project get_version_name - Get the version name of your project increment_version_name - Increment the version name of your project get_version_code - Get the version code of your project Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 41 More stars = more popular project forks 60 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1531 More downloads = more users have been using the plugin for a while tests 66 The more tests a plugin has, the better Open on GitHub 1760 slack_upload via Dawid Cieslak Uploads specified file to Slack Provided actions Name Category Description slack_upload - Uploads given file to Slack Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 19 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1668 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 1633 rome via Fran\u00e7ois Benaiteau, Tommaso Piazza A cache tool for Carthage Provided actions Name Category Description rome - An S3 cache tool for Carthage Score details Metric Points Description contributors 30 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 14 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1466 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 1552 semantic_release via Jir\u030ci\u0301 Ota\u0301hal Automated version managment and generator of release notes. Provided actions Name Category Description conventional_changelog - Uses conventional commits. It groups commits by their types and generates release notes in markdown or slack format. analyze_commits - Finds a tag of last release and determinates version of next release Score details Metric Points Description contributors 36 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 108 More stars = more popular project forks 130 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1081 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 1532 dropbox via Dominik Kapusta Uploads files to Dropbox Provided actions Name Category Description dropbox - Uploads files to Dropbox Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 3 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1369 More downloads = more users have been using the plugin for a while tests 30 The more tests a plugin has, the better Open on GitHub 1453 aws_device_farm via Helmut Januschka Run UI Tests on AWS Devicefarm Provided actions Name Category Description aws_device_farm - Upload the application to the AWS device farm aws_device_farm_package - Packages .app from deriveddata to an aws-compatible ipa Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 80 More stars = more popular project forks 170 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -5 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1091 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 1384 bundletool via Martin Gonzalez Extracts a universal apk from an .aab file Provided actions Name Category Description bundletool - Extracts an universal apk from an .aab file Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 14 More stars = more popular project forks 20 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1207 More downloads = more users have been using the plugin for a while tests 12 The more tests a plugin has, the better Open on GitHub 1380 update_provisioning_profile_specifier via Jordan Bondo Update the provisioning profile in the Xcode Project file for a specified target Provided actions Name Category Description update_provisioning_profile_specifier - Update the provisioning profile in the Xcode Project file for a specified target Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 20 More stars = more popular project forks 30 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1216 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 1332 cordova via Almouro Build your Cordova app Provided actions Name Category Description cordova building Build your Cordova app Score details Metric Points Description contributors 78 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 108 More stars = more popular project forks 160 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -19 Lots of open issues are not a good sign usually, unless the project is really popular downloads 856 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 1313 xchtmlreport via Titouan Van Belle Plugin for XCHTMLReport Provided actions Name Category Description xchtmlreport - Xcode-like HTML report for Unit and UI Tests Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1219 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 1311 automated_test_emulator_run via Kamil Krzyk Starts n AVDs based on JSON file config. AVDs are created and configured according to user liking before instrumentation test process (started either via shell command or gradle) and killed/deleted after test process finishes. Provided actions Name Category Description automated_test_emulator_run - Starts AVD, based on AVD_setup.json file, before test launch and kills it after testing is done. Score details Metric Points Description contributors 30 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 75 More stars = more popular project forks 85 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -5 Lots of open issues are not a good sign usually, unless the project is really popular downloads 983 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 1225 increment_version_name via fierysolid Increment the version name of your android project. Provided actions Name Category Description increment_version_name project Increment the version name of your android project. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1143 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 1217 commit_android_version_bump via jems This Android plugins allow you to commit every modification done in your build.gradle file during the execution of a lane. In fast, it do the same as the commit_version_bump action, but for Android Provided actions Name Category Description commit_android_version_bump - This Android plugins allow you to commit every modification done in your build.gradle file during the execution of a lane. In fast, it do the same as the commit_version_bump action, but for Android Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 20 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1103 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 1205 update_android_strings via bang Update Android res strings.xml Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1185 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 1174 synx via Afonso Gra\u00e7a Organise your Xcode project folder to match your Xcode groups. Provided actions Name Category Description synx - Organise your Xcode project folder to match your Xcode groups. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 26 More stars = more popular project forks 20 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1043 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 1170 lizard via Moses Liao Run swift code complexity analytics using Lizard Provided actions Name Category Description lizard - Run lizard code cyclomatic complexity analysis. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 19 More stars = more popular project forks 55 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 882 More downloads = more users have been using the plugin for a while tests 72 The more tests a plugin has, the better Open on GitHub 1142 tpa via The Perfect App TPA gives you advanced user behaviour analytics, app distribution, crash analytics and more Provided actions Name Category Description upload_to_tpa beta Upload app builds to The Perfect App (tpa.io) upload_symbols_to_tpa misc Upload dsym files downloaded from App Store Connect directly to TPA Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 9 More stars = more popular project forks 35 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 876 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 1099 xcake via James Campbell Create your Xcode projects automatically using a stupid simple DSL. Provided actions Name Category Description xcake - Runs `xcake` for the project Score details Metric Points Description contributors 114 The more contributors a project has, the more likely it is it stays alive subscribers 48 More subscribers = more popular project stars 464 More stars = more popular project forks 190 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 35 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -5 Lots of open issues are not a good sign usually, unless the project is really popular downloads 103 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 1059 teams via Morten B\u00f8gh Send a success/error message to your Microsoft Teams channel Provided actions Name Category Description teams notifications Send a message to your Microsoft Teams channel via the webhook connector Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 6 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 943 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 990 brew via Michael Ruhl Run Homebrew/Linuxbrew command Provided actions Name Category Description brew - Run Homebrew/Linuxbrew command Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 36 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 847 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 951 update_xcodeproj via Fumiya Nakamura Update Xcode projects Provided actions Name Category Description update_xcodeproj - Update Xcode projects Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 6 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 778 More downloads = more users have been using the plugin for a while tests 12 The more tests a plugin has, the better Open on GitHub 941 firebase_test_lab via Shihua Zheng Test your app with Firebase Test Lab with ease using fastlane Provided actions Name Category Description firebase_test_lab_ios_xctest - Submit an iOS XCTest job to Firebase Test Lab Score details Metric Points Description contributors 42 The more contributors a project has, the more likely it is it stays alive subscribers 39 More subscribers = more popular project stars 54 More stars = more popular project forks 105 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -8 Lots of open issues are not a good sign usually, unless the project is really popular downloads 591 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 941 download_github_release_asset via Anton Domashnev This action downloads a GitHub release's asset using the GitHub API and puts it in a destination path.\\nIf the file has been previously downloaded, it will be overrided. Provided actions Name Category Description download_github_release_asset - Downloads a GitHub release's asset Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 795 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 875 run_tests_firebase_testlab via Bruno Correia Runs Android tests in Firebase Test Lab. Provided actions Name Category Description run_tests_firebase_testlab - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 25 More stars = more popular project forks 40 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 633 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 862 carthage_cache via Thi Doan A Fastlane plugin that allows to cache Carthage/Build folder in Amazon S3. Provided actions Name Category Description carthage_cache_install - Download Carthage cache from Amazon S3 carthage_cache_publish - Upload Carthage cache to Amazon S3 carthage_cache_exist - Check if Carthage cache exists for Cartfile.resolved in Amazon S3 Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 10 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 736 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 856 xcodegen via Michael Ruhl Run xcodegen for the project Provided actions Name Category Description xcodegen - Runs `xcodegen` for the project Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 17 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 629 More downloads = more users have been using the plugin for a while tests 36 The more tests a plugin has, the better Open on GitHub 830 setup_fragile_tests_for_rescan via Lyndsey Ferguson Suppress stabile tests so that 'scan' can run the fragile tests again Provided actions Name Category Description setup_fragile_tests_for_rescan deprecated Suppress stabile tests so that 'scan' can run the fragile tests again Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 6 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 654 More downloads = more users have been using the plugin for a while tests 36 The more tests a plugin has, the better Open on GitHub 799 properties via Pavlo Pakholka Adds 4 actions to fastlane to read and update properties files. Provided actions Name Category Description increment_version_name_in_properties_file - Sets a value of a setting in .properties file. set_properties_value - Sets a value of a setting in .properties file. get_properties_value - Reads a value of a setting from .properties file. write_properties_file - Write any Hash-like structure as a properties file. This action won't create a new file. parse_properties_file - Load .properties file and returns it as a ruby hash-map. increment_version_code_in_properties_file - Increase version code inside .properties file. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 667 More downloads = more users have been using the plugin for a while tests 15 The more tests a plugin has, the better Open on GitHub 786 huawei_appgallery_connect via Shreejan Shrestha Huawei AppGallery Connect Plugin Provided actions Name Category Description huawei_appgallery_connect_submit_for_review - Huawei AppGallery Connect Plugin huawei_appgallery_connect - Huawei AppGallery Connect Plugin huawei_appgallery_connect_get_app_info - Huawei AppGallery Connect Plugin Score details Metric Points Description contributors 36 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 34 More stars = more popular project forks 50 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 549 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 786 android_change_package_identifier via MaximusMcCann Change the package identifier in the AndroidManifest.xml file. Can revert as well. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 766 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 760 settings_bundle via Jimmy Dee Fastlane plugin to update static settings in an iOS settings bundle Provided actions Name Category Description update_settings_bundle project actions. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 20 More stars = more popular project forks 40 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 486 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 734 property_file_read via United Classifieds Reads property file into dictionary Provided actions Name Category Description property_file_read - Reads property file into dictionary Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 625 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 708 prepare_build_resources via Jakob Jensen Prepares certificates and provisioning profiles for building and removes them afterwards. Provided actions Name Category Description prepare_build_resources - Prepares certificates and provisioning profiles for building and removes them afterwards. Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 6 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license -50 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 601 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 681 diawi via pacification Upload .ipa or .apk file to diawi.com Provided actions Name Category Description diawi - Upload .ipa/.apk file to diawi.com Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 32 More stars = more popular project forks 25 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 489 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 662 act via Richard Szalay Applies changes to plists and app icons inside a compiled IPA or xcarchive Provided actions Name Category Description act - Reconfigures .plists and icons inside a compiled IPA Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 20 More stars = more popular project forks 30 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 402 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 661 merge_junit_report via Derek Yang Merges multiple junit reports into one Provided actions Name Category Description merge_junit_report - Provides the ability to merge multiple junit reports into one Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 516 More downloads = more users have been using the plugin for a while tests 30 The more tests a plugin has, the better Open on GitHub 659 json via Martin Gonzalez actions related to json files Provided actions Name Category Description write_json - Write a json file from a hash at the provided path download_json - Downloads a json file and expose a hash with symbolized names as result merge_jsons - Merge a group of jsons files and expose a hash with symbolized names as result. Last json predominate over the rest read_json - Read a json file and expose a hash with symbolized names as result Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 504 More downloads = more users have been using the plugin for a while tests 45 The more tests a plugin has, the better Open on GitHub 658 google_drive via Bumsoo Kim Upload files to Google Drive Provided actions Name Category Description update_google_drive_file - Update a Google Drive file upload_to_google_drive - Upload files to Google Drive create_google_drive_folder - Create new folder on Google Drive Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 42 More stars = more popular project forks 50 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 399 More downloads = more users have been using the plugin for a while tests 57 The more tests a plugin has, the better Open on GitHub 604 codecov_reporter via BinaryBeard Uploads coverage report to Codecov.io Provided actions Name Category Description codecov_reporter - Uploads coverage report to Codecov.io Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 5 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 472 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 603 ionic via Jan Piotrowski Build your Ionic app Provided actions Name Category Description ionic building Build your Ionic app Score details Metric Points Description contributors 72 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 41 More stars = more popular project forks 55 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -23 Lots of open issues are not a good sign usually, unless the project is really popular downloads 345 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 602 upload_symbols_to_new_relic via Helmut Januschka Uploads dSym to New Relic Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 582 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 588 mango via Serghei Moret, Daniel Hartwich This plugin orchtestrates Android tasks on docker images Provided actions Name Category Description run_dockerized_task - Action that runs Android tasks on a specified Docker image Score details Metric Points Description contributors 30 The more contributors a project has, the more likely it is it stays alive subscribers 69 More subscribers = more popular project stars 48 More stars = more popular project forks 35 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 208 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 581 download_file via Massimo Oliviero This action downloads a file from an HTTP/HTTPS url (e.g. ZIP file) and puts it in a destination path Provided actions Name Category Description download_file - - Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 430 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 580 git_tags via Fernando Saragoca List git tags sorted by taggerdate Provided actions Name Category Description git_tags source_control List git tags Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 467 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 574 unzip via Massimo Oliviero Extract compressed files in a ZIP Provided actions Name Category Description unzip - Extract compressed files in a ZIP Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 429 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 565 simctl via Renzo Crisostomo Fastlane plugin to interact with xcrun simctl Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 545 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 560 danger-device_grid via Felix Krause, Boris Bu\u0308gling Danger plugin for the fastlane device grid. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 5 More stars = more popular project forks 20 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 407 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 545 semantic_release2 via William Lauze Fork for: Automated version managment and generator of release notes. Provided actions Name Category Description conventional_changelog - Uses conventional commits. It groups commits by their types and generates release notes in markdown or slack format. analyze_commits - Finds a tag of last release and determinates version of next release Score details Metric Points Description contributors 30 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 83 More stars = more popular project forks 120 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 113 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 529 mobile_center via Microsoft Corporation Fastlane plugin for Mobile Center Provided actions Name Category Description appcenter_upload - Distribute new release to App Center Score details Metric Points Description contributors 42 The more contributors a project has, the more likely it is it stays alive subscribers 33 More subscribers = more popular project stars 47 More stars = more popular project forks 45 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -11 Lots of open issues are not a good sign usually, unless the project is really popular downloads 197 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 483 remove_provisioning_profile via Anton Domashnev Remove provision profile from your local machine Provided actions Name Category Description remove_provisioning_profile - Remove the provisioning profile for the given app_identifier and type from local machine Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 7 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 258 More downloads = more users have been using the plugin for a while tests 60 The more tests a plugin has, the better Open on GitHub 467 jira_release_notes via Alexander Ignition Release notes from JIRA for version Provided actions Name Category Description jira_release_notes - Jira release notes Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 12 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 299 More downloads = more users have been using the plugin for a while tests 36 The more tests a plugin has, the better Open on GitHub 463 ruby via Felix Krause Useful fastlane actions for Ruby projects Provided actions Name Category Description rubocop - Runs the code style checks rspec - Run tests using rspec Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 4 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 32 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 335 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 463 gradle_properties via Ryo Sakaguchi Read properties in your Fastfile easily Provided actions Name Category Description gradle_properties - Read properties in your Fastfile easily Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 395 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 459 android_emulator via Michael Ruhl Creates and starts an Android Emulator (AVD) Provided actions Name Category Description android_emulator - Creates and starts an Android Emulator (AVD) Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 7 More stars = more popular project forks 60 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 240 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 456 flutter via Artem Sheremet Flutter actions plugin for Fastlane Provided actions Name Category Description flutter_bootstrap - Flutter SDK installation, upgrade and application bootstrap flutter - Run \"flutter\" binary with the specified arguments flutter_build building Run \"flutter build\" to build a Flutter application flutter_generate - (1) Run `flutter packages get`; (2) Run `build_runner build` if build_runner is in dev_dependencies; (3) According to `package:intl`, take `$strings_file` and generate `${strings_file.dirname}/arb/intl_messages.arb`, then take all files matching `${strings_file.dirname}/intl_*.arb`, fix them and generate .dart files from them. (4) Generate an empty test importing all files, which would be used to calculate correct full coverage numbers. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 20 More stars = more popular project forks 25 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 268 More downloads = more users have been using the plugin for a while tests 42 The more tests a plugin has, the better Open on GitHub 454 firebase_test_lab_android via wasabeef Test your app with Firebase Test Lab with ease using fastlane Provided actions Name Category Description firebase_test_lab_android - Runs Android tests in Firebase Test Lab. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 51 More subscribers = more popular project stars 25 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 247 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 451 google_cloud_storage via Fernando Saragoca Google Cloud Storage Provided actions Name Category Description google_cloud_storage_check_file - Check if file exists in Google Cloud Storage google_cloud_storage_download - Download a file from Google Cloud Storage google_cloud_storage_upload - Upload a file to Google Cloud Storage Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 348 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 445 upgrade_super_old_xcode_project via Jan Piotrowski Upgrades super old Xcode projects to Xcode 8 Provided actions Name Category Description upgrade_super_old_xcode_project - Upgrades super old Xcode projects to Xcode 8 Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 328 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 444 clean_testflight_testers via Felix Krause Automatically remove TestFlight testers that are not actually testing your app Provided actions Name Category Description clean_testflight_testers - Automatically remove TestFlight testers that are not actually testing your app Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 26 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 287 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 435 pgyer via rexshi distribute app to pgyer beta testing service Provided actions Name Category Description pgyer - distribute app to pgyer beta testing service Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 22 More stars = more popular project forks 35 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 274 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 433 cryptex via Helmut Januschka fastlane Crypt Store Git repo Provided actions Name Category Description cryptex - Secure Git-Backed Storage cryptex_generate_keystore - Generate a new Android Keystore Score details Metric Points Description contributors 36 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 26 More stars = more popular project forks 55 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 206 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 417 instabug_official via Instabug Plugin to upload DSYMs to Instabug Dashboard. Provided actions Name Category Description instabug_official - - Score details Metric Points Description contributors 48 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 4 More stars = more popular project forks 25 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 235 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 408 notarize via Zeplin, Inc. fastlane plugin to notarize a macOS app Provided actions Name Category Description notarize deprecated Notarizes a macOS app Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 60 More subscribers = more popular project stars 64 More stars = more popular project forks 35 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 136 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 404 icon_versioning via Iulian Onofrei Overlay build information on top of your app icon Provided actions Name Category Description version_icon - Overlay build information on top of your app icon. Based on original work by Krzysztof Zab\u0142ocki (https://github.com/krzysztofzablocki/Bootstrap). Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 48 More stars = more popular project forks 20 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 115 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 394 onesky via Daniel Kiedrowski Helps to update the translations of your app using the OneSky service. Provided actions Name Category Description onesky_upload - Upload a strings file to OneSky onesky_download - Download a translation file from OneSky Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 15 More stars = more popular project forks 65 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 201 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 385 code_push via Manuel Koch CodePush functionality for fastlane Provided actions Name Category Description code_push_promote - CodePush promote code_push_login - CodePush login with accessKey code_push_release_react - CodePush release-react functionality for fastlane code_push_release_cordova - CodePush release-cordova functionality for fastlane Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 23 More stars = more popular project forks 25 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 217 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 384 jira_versions via Sandy Chapman Manage your JIRA project's releases/versions with this plugin. Provided actions Name Category Description release_jira_version - Releases a version in your JIRA project create_jira_version - Creates a new version in your JIRA project get_jira_versions - Gets a list of all versions for a JIRA project Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 14 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 240 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 380 flutter_version via tianhaoz95 A plugin to retrieve versioning information for Flutter projects. Provided actions Name Category Description flutter_version - A plugin to retrieve versioning information for Flutter projects. Score details Metric Points Description contributors 36 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 44 More stars = more popular project forks 65 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 86 More downloads = more users have been using the plugin for a while tests 39 The more tests a plugin has, the better Open on GitHub 368 retry via gmgchow Retries failed XCUITest test cases Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 318 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 365 tunes via Boris Bu\u0308gling Play music using fastlane, because you can. Provided actions Name Category Description tunes - Play music using fastlane, because you can Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 8 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 229 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 355 s3_actions via Fernando Saragoca Download and upload files to AWS S3 Provided actions Name Category Description s3_download - Download a file from AWS S3 s3_check_file - Check if file exists in AWS S3 s3_upload - Upload a file to AWS S3 Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 241 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 351 dynatrace via Dynatrace LLC This action processes and uploads your symbol files to Dynatrace Provided actions Name Category Description dynatrace_process_symbols - This action processes and uploads your symbol files to Dynatrace. Score details Metric Points Description contributors 30 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 9 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 93 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 350 gs_deliver via \u0421\u0435\u0440\u0433\u0435\u0438\u0306 \u0412\u0435\u0441\u0435\u043b\u043e\u0432\u0441\u043a\u0438\u0438\u0306 Gradoservice plugin to rule apps releases Provided actions Name Category Description gs_move_to_ready_for_sale - Gradoservice plugin to rule apps releases gs_remove_from_testflight_review - Gradoservice plugin to rule apps releases gs_get_release_notes - Gradoservice plugin to rule apps releases gs_get_app_status - Gradoservice plugin to rule apps releases gs_move_rc_to_beta_review - Gradoservice plugin to rule apps releases gs_start_external_testing - Gradoservice plugin to rule apps releases gs_reject_latest_version - Gradoservice plugin to rule apps releases gs_execute_command - Gradoservice plugin to rule apps releases Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 270 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 348 rocket_chat via Thiago Felix Send message to Rocket.Chat right from fastlane Provided actions Name Category Description rocket_chat - Send a success/error message to your RocketChat group Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 6 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 234 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 346 wpmreleasetoolkit via Lorenzo Mattei GitHub helper functions Score details Metric Points Description contributors 54 The more contributors a project has, the more likely it is it stays alive subscribers 54 More subscribers = more popular project stars 21 More stars = more popular project forks 30 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 19 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -28 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 343 patch via Jimmy Dee Apply and revert pattern-based patches to any text file. Provided actions Name Category Description apply_patch deprecated Apply pattern-based patches to any text file. revert_patch deprecated Revert the action of apply_patch patch project Apply pattern-based patches to any text file. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 25 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 173 More downloads = more users have been using the plugin for a while tests 60 The more tests a plugin has, the better Open on GitHub 335 lokalise via Abbas Jaffery Sync metadata with Lokalise Provided actions Name Category Description add_keys_to_lokalise - Add keys to lokalise lokalise - Download Lokalise localization lokalise_metadata - Upload metadata to lokalise. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 213 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 331 android_change_string_app_name via MaximusMcCann Change the app_name in the strings.xml file & revert method Provided actions Name Category Description android_change_string_app_name - Change the app_name in the strings.xml file & revert method android_change_string_app_name_revert - Revert strings.xml app_name using ANDROID_CHANGE_STRING_APP_NAME_ORIGINAL_NAME Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 234 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 329 xcode_log_parser via KrauseFx Convert the Xcode plist log to a JUnit report Provided actions Name Category Description trainer - Convert the Xcode plist log to a JUnit report. This will raise an exception if the tests failed Score details Metric Points Description contributors 30 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 102 More stars = more popular project forks 60 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -5 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 24 The more tests a plugin has, the better Open on GitHub 327 waldo via J. G. Pusey Upload build to Waldo Provided actions Name Category Description waldo testing Upload a new build to [Waldo](https://www.waldo.io) Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 5 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 157 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 325 pretty_junit via GaryJohnson Pretty JUnit test results for your Android projects. Provided actions Name Category Description pretty_junit - Pretty JUnit test results for your Android projects. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 219 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 305 get_product_bundle_id via Lyndsey Ferguson Gets PRODUCT_BUNDLE_IDENTIFIER from the first buildable target in a given scheme Provided actions Name Category Description get_product_bundle_id - Gets PRODUCT_BUNDLE_IDENTIFIER from a buildable target in an Xcode project using a provided scheme Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 6 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 176 More downloads = more users have been using the plugin for a while tests 27 The more tests a plugin has, the better Open on GitHub 304 gmail via Alexander Ignition send mail from gmail Provided actions Name Category Description gmail - A short description with < = 80 characters of what this action does Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 7 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 166 More downloads = more users have been using the plugin for a while tests 18 The more tests a plugin has, the better Open on GitHub 303 clubmate via KrauseFx Print the Club Mate logo in your build output Provided actions Name Category Description clubmate - Print a Club Mate in your build output Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 8 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 32 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 166 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 300 latest_hockeyapp_version_number via Travis Palmer Easily fetch the most recent HockeyApp version number for your app Provided actions Name Category Description latest_hockeyapp_version_number - Easily fetch the most recent HockeyApp version number for your app Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 6 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 172 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 298 jira_set_fix_version via Tommy Sadiq Hinrichsen Tags all Jira issues mentioned in git changelog with with a fix version from parameter :name Provided actions Name Category Description jira_set_fix_version - Tags all Jira issues mentioned in git changelog with with a fix version from parameter :name Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 3 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 152 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 297 cerberus via Harry Singh Cerberus is a fastlane plugin for extracting Jira issues from commit messages and sharing information on its respective Jenkins job and HockeyApp upload. Provided actions Name Category Description find_commits - Extracts additional issues from the log jira_comment - This action adds comments on Jira issues with the current build number and url of that build find_tickets - Extracts the Jira issue keys between commits release_notes - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 57 More subscribers = more popular project stars 6 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 101 More downloads = more users have been using the plugin for a while tests 30 The more tests a plugin has, the better Open on GitHub 297 ci_changelog via icyleaf Automate generate changelog between previous build failed and the latest commit of scm in CI Provided actions Name Category Description ci_changelog - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 6 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 100 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 297 google_sheet_localize via Mario Hahn Creates .strings files for iOS and strings.xml files for Android Provided actions Name Category Description google_sheet_localize - Creates .strings files for iOS and strings.xml files for Android Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 16 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -5 Lots of open issues are not a good sign usually, unless the project is really popular downloads 168 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 296 applivery via Alejandro Jimenez Upload new build to Applivery Provided actions Name Category Description applivery beta Upload new iOS or Android build to Applivery Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 12 More stars = more popular project forks 20 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 121 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 296 gs_project_flow_ios via \u0421\u0435\u0440\u0433\u0435\u0438\u0306 \u0412\u0435\u0441\u0435\u043b\u043e\u0432\u0441\u043a\u0438\u0438\u0306 Plugin contains project flow code for code sharing between projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 276 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 294 cosigner via Andr\u00e9 Pacheco Neves, Lu\u00eds Portela Afonso A fastlane plugin to help you sign your iOS builds Provided actions Name Category Description cosigner - A fastlane plugin to help you sign your iOS builds Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 39 More subscribers = more popular project stars 21 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 90 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 289 versioning_ios via Igor Lamo\u0161 iOS Versioning Plugin for Fastlane Provided actions Name Category Description ios_set_build_number - Set the Build Number of your iOS project ios_get_build_number - Get the Build Number of your iOS project ios_set_version - Set the Version of your iOS project ios_get_version - Get the Version of your iOS project Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 158 More downloads = more users have been using the plugin for a while tests 51 The more tests a plugin has, the better Open on GitHub 280 uninow-sentry via Tom Krusch Upload symbols to Sentry Provided actions Name Category Description sentry_upload_sourcemap - Upload a sourcemap to a release of a project on Sentry sentry_finalize_release - Finalize a release for a project on Sentry sentry_create_release - Create new releases for a project on Sentry sentry_upload_file - Upload files to a release of a project on Sentry sentry_upload_dsym - Upload dSYM symbolication files to Sentry sentry_set_commits - Set commits of a release sentry_upload_proguard - Upload mapping to a project on Sentry Score details Metric Points Description contributors 66 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 279 framer via DrAL3X Create images combining app screenshots with templates to make nice pictures for the App Store Provided actions Name Category Description framer - Create images combining app screenshots to templates to make a nice \\'screenshot\\' to upload in App Store and Google Play Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 31 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 51 The more tests a plugin has, the better Open on GitHub 279 changelog_generator via Fernando Saragoca Changelog generation based on merged pull requests & tags Provided actions Name Category Description generate_changelog - Changelog generation based on merged pull requests & tags generate_release_changelog - Changelog generation based on merged pull requests & tags, filtered by one or two tags Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 8 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 158 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 278 branch via Branch, Jimmy Dee Adds Branch keys, custom URI schemes and domains to iOS and Android projects. Validates the Universal Link configuration for any Xcode project. Provided actions Name Category Description update_action_docs - Generate a standard action page for each action update_readme - Update the contents of the README in this repo branch_report project Generate a brief summary or a full build report for your project. setup_branch project configuration for Xcode projects. validate_universal_links project Validates Universal Link configuration for an Xcode project. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 24 More subscribers = more popular project stars 8 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 59 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 272 get_unprovisioned_devices_from_hockey via GaryJohnson Retrieves a list of unprovisioned devices from Hockey which can be passed directly into register_devices. Provided actions Name Category Description get_unprovisioned_devices_from_hockey - Retrieves a list of unprovisioned devices from Hockey which can be passed directly into register_devices. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 24 More subscribers = more popular project stars 6 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 117 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 272 airwatch_workspaceone via Ram Awadhesh Sharan The main purpose of this plugin is to upload an IPA or an APK file to an AirWatch or Workspace ONE enterprise instance/console. Provided actions Name Category Description add_or_update_assignments - The main purpose of this action is to add a new smart group assignment to an application or to update an existing smart group assignment of an application with a given dictionary of deployment/assignment parameters. If a smart group name is provided which does not exist yet on Console, assignment for that smart group is ignored. unretire_specific_version - The main purpose of this action is to unretire a specific version of an application. This action takes a string parameter where you can specify the version number to unretire. retire_previous_versions - The main purpose of this action is to retire previous active versions of an application. This action takes a string parameter where you can specify the number of latest versions to keep if you do not want to retire all the previous active versions. delete_specific_version - The main purpose of this action is to delete a specific version of an application. This action takes a string parameter where you can specify the version number to delete. latest_version - The main purpose of this action is to find the version number of the latest version of the app on the console and output the same. It also finds and outputs arrays of active app version numbers and retired app version numbers of the app. deploy_build - The main purpose of this action is to upload an IPA or an APK file to an AirWatch or Workspace ONE enterprise console. delete_previous_versions - The main purpose of this action is to delete versions of an application. This action takes a string parameter where you can specify the number of latest versions to keep if you do not want to delete all the versions. retire_specific_version - The main purpose of this action is to retire a specific version of an application. This action takes a string parameter where you can specify the version number to retire. unretire_all_versions - The main purpose of this action is to unretire all retired versions of an application. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 6 More stars = more popular project forks 25 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 13 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 119 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 267 latest_hockey_build_number via Sergii Stotskyi, Kirill Pahnev Gets latest version number of the app with the bundle id from HockeyApp Provided actions Name Category Description latest_hockey_build_number - Gets latest version number of the app with the bundle id from HockeyApp Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 146 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 266 android_sdk_update via Philipp Burgk, Michael Ruhl Install required Android-SDK packages Provided actions Name Category Description android_sdk_update - Install and update required Android-SDK packages Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 33 More subscribers = more popular project stars 10 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 74 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 264 telegram via sergpetrov Allows post messages to telegram channel Provided actions Name Category Description telegram - Allows post messages to telegram channel Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 10 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 167 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 262 swiftlint_codequality via Mads B\u00f8geskov Converts SwiftLint reports into GitLab support CodeQuality reports Provided actions Name Category Description swiftlint_codequality - Converts SwiftLint reports into GitLab support CodeQuality reports Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 144 More downloads = more users have been using the plugin for a while tests 24 The more tests a plugin has, the better Open on GitHub 257 sharethemeal via Helmut Januschka ShareTheMeal Provided actions Name Category Description sharethemeal - Donate food via ShareTheMeal Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 7 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 116 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 252 github_job_status via Justin Singer Post the status of your test jobs to your pull requests Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 220 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 250 polidea via Piotrek Dubiel Polidea's fastlane action Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 200 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 249 icon_banner via E\u0301mile Be\u0301lair IconBanner adds custom nice-looking banners over your mobile app icons Provided actions Name Category Description icon_banner_restore - Restores the original app icons (can be used after build to clean up the repository) icon_banner - Adds custom nice-looking banners over your mobile app icons Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 155 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 248 souyuz via Felix Rudat A fastlane component to make Xamarin builds a breeze Provided actions Name Category Description app_version - Easily set or print app version with `app_version` souyuz - Easily build and sign your app using `souyuz` Score details Metric Points Description contributors 24 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 32 More stars = more popular project forks 35 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 32 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 74 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 247 semaphore via Dmitry Bespalov Semaphore CI integration Provided actions Name Category Description setup_semaphore - Semaphore CI integration Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 132 More downloads = more users have been using the plugin for a while tests 21 The more tests a plugin has, the better Open on GitHub 245 ftp via Allan Vialatte Simple ftp upload and download for Fastlane Provided actions Name Category Description ftp - Upload and Download files via FTP Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 27 More stars = more popular project forks 50 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 61 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 243 firebase_management via Ackee Unofficial tool to access Firebase project settings Provided actions Name Category Description firebase_management_add_app - Add new app to Firebase project firebase_management_list - List all Firebase projects and their apps firebase_management_download_config - Download configuration file for Firebase app Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 8 More stars = more popular project forks 25 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 66 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 243 slack_train via Felix Krause Show a train of the fastlane progress Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 223 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 241 giffy via SiarheiFiedartsou Fastlane plugin for Giffy.com API Provided actions Name Category Description giffy_random_sticker_url - Allows to obtain URL to some random GIF sticker from Giffy.com giffy_random_gif_url - Allows to obtain URL to some random funny GIF from Giffy.com Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 5 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 104 More downloads = more users have been using the plugin for a while tests 12 The more tests a plugin has, the better Open on GitHub 240 create_xcframework via Boris Bielik, Alexey Alter-Pesotskiy Fastlane plugin that creates xcframework for given list of destinations. Provided actions Name Category Description create_xcframework building Fastlane plugin that creates xcframework for given list of destinations. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 11 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 109 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 239 fir_cli via atpking upload ipa or apk to fir.im Provided actions Name Category Description fir_cli - invoke fir-cli from fastlane plugin directly. \\nfir-cli: https://github.com/FIRHQ/fir-cli Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 27 More stars = more popular project forks 20 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 73 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 238 slack_bot via Manish Rathi A fastlane plugin to post slack message using bot api token. \ud83d\ude80 Provided actions Name Category Description file_upload_to_slack - Upload a file to slack channel post_to_slack - Post a slack message fetch_files_slack - List files of any #channel using Slack bot `files.list` api. update_slack_message - Update a slack message using time-stamp(ts) value Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 7 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 108 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 238 bugsee via Dmitry Fink Bugsee symbols uploader Provided actions Name Category Description upload_symbols_to_bugsee - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 103 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 237 automated_test_emulator_run_xing via Daniel Hartwich Starts n AVDs based on JSON file config. AVDs are created and configured according to user liking before instrumentation test process (started either via shell command or gradle) and killed/deleted after test process finishes. Provided actions Name Category Description automated_test_emulator_run_xing - Starts AVD, based on AVD_setup.json file, before test launch and kills it after testing is done. Score details Metric Points Description contributors 36 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 0 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 59 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 237 upload_folder_to_s3 via teriiehina Upload a folder to S3 Provided actions Name Category Description upload_folder_to_s3 - Upload a folder to S3 Score details Metric Points Description contributors 30 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 7 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 32 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 67 More downloads = more users have been using the plugin for a while tests 18 The more tests a plugin has, the better Open on GitHub 233 instrumented_tests via Silviu Paragina New action to run instrumented tests for android. This plugin creates and boots an emulator before running a gradle command so that you can run instrumented tests against that emulator. After the gradle command is executed, the avd gets shut down and deleted. This is really helpful on CI services, keeping them clean and always having a fresh avd for testing. Provided actions Name Category Description instrumented_tests - Run android instrumented tests via a gradle command againts a newly created avd Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 14 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 95 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 233 xcconfig_actions via Maksym Grebenets Adds actions to fastlane to work with xcconfig files Provided actions Name Category Description build_settings_to_flags building Map xcconfig build settings to compiler and linker build flags read_xcconfig building Read and resolve contents of xcconfig file and return as JSON validate_xcconfig linting Validate xcconfig file Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 6 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 232 jira_transition via Valerio Mazzeo Apply a JIRA transition to issues mentioned in the changelog Provided actions Name Category Description jira_transition - Apply a JIRA transition to issues mentioned in the changelog Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 12 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 129 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 228 forsis via Azadeh Bagheri This plugin produces generic test execution reports supported by SonarQube from JUnit test reports generated by fastlane. Provided actions Name Category Description forsis - This plugin produces generic test execution reports supported by SonarQube from JUnit test reports generated by fastlane Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 11 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 85 More downloads = more users have been using the plugin for a while tests 24 The more tests a plugin has, the better Open on GitHub 228 blackberry_mam via Lyndsey Ferguson A fastlane plugin that works with Blackberry Dynamics (formerly Good Dynamics) provides Mobile Application Management Provided actions Name Category Description update_info_plist_for_blackberry_mam - updates the plist so that the built application can be deployed and managed within BlackBerry's Good Dynamics Control Center for Enterprise Mobility Management. blackberry_mam_network_check - Checks to see if the required network ports for BlackBerry Dynamics are open on the network blackberry_mam_version - Checks the version of the installed Good framework Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 227 latest_appcenter_build_number via Jack Spargo Use AppCenter API to get the latest version and build number for an App Center app Provided actions Name Category Description latest_appcenter_build_number - Gets latest version number of the app from AppCenter Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 48 More downloads = more users have been using the plugin for a while tests 48 The more tests a plugin has, the better Open on GitHub 224 uninow_sentry via Tom Krusch Upload symbols to Sentry Provided actions Name Category Description sentry_upload_sourcemap - Upload a sourcemap to a release of a project on Sentry sentry_finalize_release - Finalize a release for a project on Sentry sentry_create_release - Create new releases for a project on Sentry sentry_upload_file - Upload files to a release of a project on Sentry sentry_upload_dsym - Upload dSYM symbolication files to Sentry sentry_set_commits - Set commits of a release sentry_upload_proguard - Upload mapping to a project on Sentry Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 223 hours via Rishabh Tayal Record total time saved by fastlane Provided actions Name Category Description hours - Record total time saved by fastlane Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 85 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 220 jira_issue_details via Zaim Ramlan Get the details for the given jira issue key(s) Provided actions Name Category Description get_jira_issue - Get the details for the given jira issue key(s). Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 110 More downloads = more users have been using the plugin for a while tests 21 The more tests a plugin has, the better Open on GitHub 220 sftp via Oliver Limberg Plugin to upload files via SFTP Provided actions Name Category Description sftp_download misc download files from a remote Server via SFTP sftp_upload misc upload files to a remote Server via SFTP Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 63 The more tests a plugin has, the better Open on GitHub 220 app_info via icyleaf Teardown tool for mobile app(ipa/apk), analysis metedata like version, name, icon etc. Provided actions Name Category Description app_info - Parse and dump mobile app(ipa/apk) metedata. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 68 More downloads = more users have been using the plugin for a while tests 39 The more tests a plugin has, the better Open on GitHub 220 git_info_extract via alexander sun Extract JIRA information from git merge Provided actions Name Category Description git_info_extract - Extract JIRA information from git merge Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 144 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 220 altool via Shashikant Jagtap Upload IPA to iTunes Connect using altool Provided actions Name Category Description altool - Upload IPA to iTunes Connect using altool Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 12 More stars = more popular project forks 30 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 48 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 219 codepush via Pranit Harekar Fastlane plugin for App Center CodePush actions \ud83d\ude80 Provided actions Name Category Description codepush_exists_deployment - CodePush check if deployment exists codepush_release_react - CodePush release-react action codepush_login - CodePush login action codepush_get_deployment_key - CodePush get deployment key given deployment name codepush_list_deployment - CodePush list deployment action codepush_remove_deployment - CodePush remove deployment action codepush_logout - CodePush logout action codepush_rename_deployment - CodePush rename deployment action codepush_add_deployment - CodePush add deployment action codepush_promote - CodePush promote action Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 10 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 100 More downloads = more users have been using the plugin for a while tests 18 The more tests a plugin has, the better Open on GitHub 219 localization via Viktor Malyi Export/import app localizations with help of xcodebuild -exportLocalizations/-importLocalizations tool Provided actions Name Category Description import_localizations - Import app localizations with help of xcodebuild -importLocalizations tool export_localizations - Export app localizations with help of xcodebuild -exportLocalizations tool Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 9 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 86 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 218 setup_app_feedback_sdk via Yahoo Japan Corporation Setup the Info.plist for App Feedback SDK Provided actions Name Category Description setup_app_feedback_sdk - Setup the Info.plist for App Feedback SDK Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 101 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 217 demo_mode via Florian Rauscha Sets your connected android devices to demo mode Provided actions Name Category Description demo_mode - Sets your device to demo mode Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 64 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 216 facelift via Richard Szalay Deprecated in favor of 'fastlane-plugin-act' Provided actions Name Category Description act - Reconfigures .plists and icons inside a compiled IPA Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 17 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 72 The more tests a plugin has, the better Open on GitHub 216 xamarin_build via punksta Build xamarin android\\ios projects Provided actions Name Category Description extract_certificate - Extract certificate public key from provision profile xamarin_update_configuration - Set properties of specific build configuration in Xamarin configuration file xamarin_build - Build xamarin android and ios projects Score details Metric Points Description contributors 24 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 7 More stars = more popular project forks 40 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 33 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 215 ciutils via Nicolae Ghimbovschi Various utilities for iOS CI Provided actions Name Category Description en_build_number - Get the value for build number from environment en_install_provisioning_profiles - Copies recursively all provisioning profiles from current folder to system Provisioning Profiles en_profile_name - A short description with < = 80 characters of what this action does en_remove_keychain - Removes the keychain setup by en_setup_keychain en_ci_utils_init - Sets env variables for gym, scan, swiftlint and lizard actions en_setup_project - Updates Xcode project, plist and entitlements file if config file is provided en_setup_keychain - Creates the keychain, and imports the provided certificate en_git_changelog - Creates a change log from git commits by filtering commits by a pattern (e.g. JIRA task prefix) en_close_simulator - Closes all simulator instances en_create_sonar_reports - Creates swiftlint, lizard and oclint reports and adjusts junit reports for sonarqube (with the open source swift/objc plugin) Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 5 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 102 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 213 msbuild via Jeff Ward Build a Xamarin.iOS or Xamarin.Android project using msbuild Provided actions Name Category Description msbuild - Build a Xamarin.iOS or Xamarin.Android project using msbuild assembly_info_poke_version - Set the version in an AssemblyInfo.cs file. Optionally only set the revision number nuget_pack - Package a nuspec nuspec_poke_version - Set the version in a Nuspec file. Optionally only set the revision number Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 27 More subscribers = more popular project stars 4 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 101 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 213 huawei_appgallery via Arne Kaiser Plugin to deploy an app to the Huawei AppGallery Provided actions Name Category Description huawei_appgallery - Plugin to deploy an app to the Huawei AppGallery Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 21 More stars = more popular project forks 55 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 211 android_version_manager via Jonathan Cardoso Machado Android's App Version Managment Provided actions Name Category Description android_base - - Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 3 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 26 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 211 git_status via Bruno Coelho Show the status of one or multiple files/directories Provided actions Name Category Description git_status - Show the status of one or multiple files/directories Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 95 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 211 find_replace_string via Jonathan Ritchie Find a string in a file and replace it with a new one. Provided actions Name Category Description find_replace_string - Find and replace a string in a project file Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 125 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 210 semantic_convention_release via Jir\u030ci\u0301 Ota\u0301hal, Sergio Fierro Automated version managment and generator of release notes. Provided actions Name Category Description conventional_changelog - Uses conventional commits. It groups commits by their types and generates release notes in markdown or slack format. analyze_commits - Finds a tag of last release and determinates version of next release Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 210 secret_keeper via Daniel Jankowski secret_keeper is a wrapped on keychain access. Provided actions Name Category Description remove_item_from_keychain - Removes the credentials from the keychain on behalf of the user add_item_to_keychain - Adds the credentials to the keychain on behalf of the user read_item_from_keychain - Reads the password from the keychain for a given item Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 87 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 207 ensure_xcode_build_version via Fumiya Nakamura Ensure Xcode Build Version for working with Beta, GM and Release Provided actions Name Category Description ensure_xcode_build_version - Ensure the selected Xcode Build version with xcode-select matches a value Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 51 More downloads = more users have been using the plugin for a while tests 15 The more tests a plugin has, the better Open on GitHub 206 aws_sns via Josh Holtz Creates AWS SNS platform applications Provided actions Name Category Description aws_sns - Creates AWS SNS platform applications Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 10 More stars = more popular project forks 35 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 80 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 206 semantic_release_workflow via Phong Nguyen Automated version managment, generator of release notes, create gitlab release then notify Provided actions Name Category Description conventional_changelog - Uses conventional commits. It groups commits by their types and generates release notes in markdown or slack format. create_release - Create Gitlab release analyze_commits - Finds a tag of last release and determinates version of next release Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 206 set_jira_fix_version via yuriy-tolstoguzov Adds fix version to specified JIRA issues. Creates version if needed Provided actions Name Category Description set_jira_fix_version misc Adds fix version to specified JIRA issues. Creates version if needed jira_issue_keys_from_changelog misc Gets list of JIRA issues kyes from git log starting from specified tag Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 86 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 206 instabug via Siarhei Fiedartsou Uploads dSYM to Instabug Provided actions Name Category Description instabug - - Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 64 More downloads = more users have been using the plugin for a while tests 21 The more tests a plugin has, the better Open on GitHub 205 jira_util via %q{Alexey Martynov} %q{Create JIRA issues and manage versions with this plugin} Provided actions Name Category Description release_jira_version - Releases a version in your JIRA project get_jira_release_report_link - Return link to JIRA release report. create_jira_issue - Creates a new issue in your JIRA project update_jira_version - Creates a new version in your JIRA project create_jira_version - Creates a new version in your JIRA project get_jira_version - Finds project version in your JIRA project by id or by name Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 99 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 204 google_chat via Narlei Am\u00e9rico Moreira Send messages to Google Chat Provided actions Name Category Description google_chat - Send messages to Google Chat Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 13 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 112 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 204 code_static_analyzer via Olga Kniazska Runs different Static Analyzers and generate report Provided actions Name Category Description ruby_analyzer - This analyzer detect warnings, errors and check syntax in ruby files. This is based on rubocop cpd_analyzer - This analyzer detect copy paste code (it uses PMD CPD) clang_analyzer - A short description with < = 80 characters of what this action does warning_analyzer - This analyzer detect warnings in Xcode projects. code_static_analyzer - - Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 5 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 89 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 202 android_versioning_kts via zmunm android versioning for gradle kotlin DSL Provided actions Name Category Description get_value_from_build - - increment_version_code - Increment the version code of your project set_value_in_build - Set the value of your project get_version_name - Get the version name of your project increment_version_name - Increment the version name of your project get_version_code - Get the version code of your project Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 57 More downloads = more users have been using the plugin for a while tests 66 The more tests a plugin has, the better Open on GitHub 201 simple_loco via Yves Delcoigne A simple implementation for exporting translations from Loco. Provided actions Name Category Description simple_loco - A simple implementation for exporting translations from Loco. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 70 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 199 xcov_report via Gianfranco Manganiello Generate custom HTML for coverage Provided actions Name Category Description xcov_report - Generate custom HTML for coverage Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 45 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 199 trigger_bitrise_build via Nick Hammond Trigger a Bitrise build from Fastlane Provided actions Name Category Description trigger_bitrise_build - Trigger a Bitrise build from Fastlane Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 53 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 198 get_android_version via MaximusMcCann gets the android versionName and versionCode from the AndroidManifest.xml file located in the provided apk Provided actions Name Category Description get_android_version - Gets the android versionName, versionCode and parsed appName (label) from AndroidManifest.xml file in provided apk Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 109 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 197 bitrise_automation via Mario Cecchi Trigger builds on Bitrise, check their status and download artifacts using Fastlane Provided actions Name Category Description bitrise_build_artifacts - Get the list or full contents of the artifacts produced by a build on Bitrise trigger_bitrise_workflow - Trigger a Bitrise workflow with the specified parameters, synchronously or asynchronously bitrise_build_status - Get the status of the Bitrise build Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 36 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license -50 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 74 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 196 automated_test_emulator_run_mik via Kamil Krzyk Starts n AVDs based on JSON file config. AVDs are created and configured according to user liking before instrumentation test process (started either via shell command or gradle) and killed/deleted after test process finishes. Provided actions Name Category Description automated_test_emulator_run - Starts AVD, based on AVD_setup.json file, before test launch and kills it after testing is done. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 59 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 196 transporter via Maksym Grebenets Manage Apple iTMSTransporter installation Provided actions Name Category Description configure_transporter - Configure Apple iTMSTransporter installation update_transporter_path - Configure Fastlane to use custom Transporter installation install_transporter - Install Apple iTMSTransporter Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 18 More downloads = more users have been using the plugin for a while tests 60 The more tests a plugin has, the better Open on GitHub 196 snapshot_test via Moyuru Aizawa Compare snapshots Provided actions Name Category Description take_screenshot - Take screenshots Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 60 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 38 More downloads = more users have been using the plugin for a while tests 12 The more tests a plugin has, the better Open on GitHub 193 poeditor_export via James Campbell Exports translations from POEditor.com Provided actions Name Category Description poeditor_export - Exports translations from POEditor.com Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 8 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 64 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 192 store_sizer via Marcelo Oliveira Estimates download and install sizes for your app, also checks if sizes fit the requirements Provided actions Name Category Description store_size_xcarchive_check - Checks if the size report fits the requirements store_size_xcarchive - Estimates download and install sizes for your app Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 11 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 25 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 32 More downloads = more users have been using the plugin for a while tests 39 The more tests a plugin has, the better Open on GitHub 192 perfecto via Perfecto This plugin allows you to automatically upload ipa/apk files to Perfecto for manual/automation testing Provided actions Name Category Description perfecto - This plugin allows you to automatically upload ipa/apk files to Perfecto for manual/automation testing Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 49 More downloads = more users have been using the plugin for a while tests 42 The more tests a plugin has, the better Open on GitHub 190 twine via Jonas Rottmann A fastlane plugin providing actions related to twine Provided actions Name Category Description twine_generate building Generates all localization files specified by the configuration file twine_check building Checks the source twine file against the localization file to make sure they are in sync twine_validate building Validates all twine files mentioned in the config file Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 36 The more tests a plugin has, the better Open on GitHub 189 humanable_build_number via icyleaf Automatic generate app build number unque and human readable friendly, like yymmHHMM. both support iOS and Android. Provided actions Name Category Description humanable_build_number - Automatic generate app build number unque and human readable friendly, like yymmHHMM. both support iOS and Android. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 75 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 188 download_circleci_artifacts via Manabu OHTAKE Downloads a Circle CI artifact's Provided actions Name Category Description show_builds - This action show recent builds a Circle CI artifact's using the Circle CI API get_recent_builds - This action recent builds a Circle CI artifact's using the Circle CI API download_circleci_artifacts - This action downloads a Circle CI artifact's using the Circle CI API and puts it in a destination path. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 107 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 184 github_status via Michael Furtak Provides the ability to display and act upon GitHub server status as part of your build Provided actions Name Category Description github_status - Provides the ability to check on GitHub server status as part of your build Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 8 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 21 More downloads = more users have been using the plugin for a while tests 48 The more tests a plugin has, the better Open on GitHub 181 file_manager via Jason Nam Copy and remove files Provided actions Name Category Description remove_files - Remove files copy_files - Copy files Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 87 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 180 xml_editor via Jonathan Ritchie Generic xml editor for iOS and Android projects. Provided actions Name Category Description xml_editor - Generic XML file editor xml_add - Generic XML file add content using XPath xml_remove - Generic XML file remover using XPath xml_set_attribute - Add XML attribute using XPath Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 90 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 180 upload_to_server via Maxim Toyberman Upload IPA and APK to your own server Provided actions Name Category Description upload_to_server - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 19 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 69 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 177 build_log_info via tarappo show build log info Provided actions Name Category Description build_log_info - build log information Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 82 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 176 xcodebuild_analyze via Meniga Run code analyzer using xcodebuild Provided actions Name Category Description xcodebuild_analyze building Run code analyzer using xcodebuild xcodebuild_analyze_and_ensure_no_results building Run code analyzer using xcodebuild and fail if any vulnerability is found ensure_no_results_from_xcodebuild_analyze building Check if the are any vulnerabilities under provided analyzer output path Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 45 The more tests a plugin has, the better Open on GitHub 174 jira_issue_link via Aleksey Novikov Plugin to add remote link to jira issue Provided actions Name Category Description jira_issue_link - Plugin to add remote link to jira issue Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 4 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 94 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 174 appbox via Vineet Choudhary Deploy Development, Ad-Hoc and In-house (Enterprise) iOS applications directly to the devices from your Dropbox account. Provided actions Name Category Description appbox - Deploy Development, Ad-Hoc and In-house (Enterprise) iOS applications directly to the devices from your Dropbox account. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 7 More stars = more popular project forks 25 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 174 replace_file via Jonathan Ritchie Replace any file in your mobile project. Provided actions Name Category Description replace_file - Replace any file in your mobile project Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 93 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 174 ionic_integration via Adrian Regan Integrating Fastlane with Ionic Generated Projects Provided actions Name Category Description ionic_ios_config_snapshot - Create a Sample iOS UI Unit Test to get started with in a generated Ionic/Cordova project ionic_ios_snapshot - Bridge between Ionic/Cordova Projects and Fastlane for Automated Snapshot Generation for iOS Projects Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 22 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 17 More downloads = more users have been using the plugin for a while tests 15 The more tests a plugin has, the better Open on GitHub 173 verify_ipa via Derek Yang Verify various aspects of iOS ipa file Provided actions Name Category Description verify_ipa_files - Verify files in ipa file verify_ipa_entitlements - Verify ipa entitlements Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 51 The more tests a plugin has, the better Open on GitHub 173 xcpretty_report via Fernando Saragoca Generate xcodebuild reports using xcpretty Provided actions Name Category Description xcpretty_report - xcpretty Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 63 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 170 menigit via Meniga Missing git actions Provided actions Name Category Description add_git_remote source_control This will add a remote repository remove_git_remote source_control This will remove a remote repository ensure_no_changes source_control Raises an exception if there are uncommitted git changes at path ensure_tag_not_exists source_control Checks if the git tag with the given name not exists in the current repo set_git_config_user source_control This will set git config user Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 33 The more tests a plugin has, the better Open on GitHub 170 upload_dsym_to_bugly via liubo upload_dsym_to_bugly Provided actions Name Category Description upload_dsym_to_bugly - upload_dsym_to_bugly Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 15 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 169 clang_format via Meniga Format your C/C++/Java/JavaScript/Objective-C/Protobuf/C code with clang-format Provided actions Name Category Description clang_format - A tool to format C/C++/Java/JavaScript/Objective-C/Protobuf/C run_clang_format - Run clang format python script: https://github.com/Sarcasm/run-clang-format Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 42 The more tests a plugin has, the better Open on GitHub 169 flurry via Akash Duseja Upload dSYM symbolication files to Flurry Provided actions Name Category Description flurry_upload_dsym misc Upload dSYM symbolication files to Flurry Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 30 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 21 More downloads = more users have been using the plugin for a while tests 12 The more tests a plugin has, the better Open on GitHub 169 android_keystore via Josh Holtz Generate an Android keystore file Provided actions Name Category Description android_keystore - Generate an Android keystore file Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 63 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 168 bugsnag_sourcemaps_upload via Evgrafov Denis Helps to upload sourcemaps to Bugsnag Provided actions Name Category Description bugsnag_sourcemaps_upload - - Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 4 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 53 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 167 compilation_time_report via Tinkoff.ru Generate custom HTML report compilation time of each Swift func Provided actions Name Category Description compilation_time_report - Generate custom HTML report compilation time of each Swift func Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 24 More subscribers = more popular project stars 5 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 167 create_merge_request via masashi mizuno This will create a new merge request on GitLab. Provided actions Name Category Description create_merge_request source_control This will create a new marge request on GitLab Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 1 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 50 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 167 bluepill via tbrand Fastlane plugin to use bluepill in fastlane Provided actions Name Category Description bluepill - Plugin to use bluepill in fastlane Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 13 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 167 release_helper via Artem Ivanov release heper Provided actions Name Category Description release_helper - release heper Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 13 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 94 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 167 remove_setting via Colin Harris Fastlane plugin to remove settings from an iOS settings bundle Provided actions Name Category Description remove_setting project Fastlane plugin action to remove settings in an iOS settings bundle Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 60 The more tests a plugin has, the better Open on GitHub 166 analyze_apk via kochavi-daniel Analyzes an apk to fetch: versionCode, versionName, apk size, etc. Provided actions Name Category Description analyze_apk - Analyzes an apk to fetch: versionCode, versionName, apk size, permissions, etc. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 5 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 25 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 61 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 165 install_provisioning_profiles via Dylan Gyesbreghs Install all the provisioning profiles located in you're project. Provided actions Name Category Description install_provisioning_profiles - Install all the provisioning profiles located in you're project. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 60 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 165 validate_app via Thi Validate your build before uploading to iTunes Connect Provided actions Name Category Description validate_app - Validate your ipa file Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 11 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 54 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 165 git_switch_branch via zhangqi switch to branch Provided actions Name Category Description git_switch_branch - switch to branch Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 25 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 82 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 163 raven via Marten Klitzke Plugin to manage Releases and upload JS Sourcemaps Provided actions Name Category Description raven - Create new Sentry/Raven Release and Upload Sourcemaps Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 30 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 35 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 163 translation via Jakob Jensen Handling translations from Google sheet. Provided actions Name Category Description create_translation - Create sheet for translations in Google sheets. translation - Output translations from Google sheet into templates. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 3 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 38 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 163 try_scan via Alexey Alter-Pesotskiy The easiest way to retry your fastlane scan action Provided actions Name Category Description try_scan testing Simple way to retry your scan action Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 7 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 43 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 161 clang_analyzer via Siarhei Fiedartsou Runs Clang Static Analyzer(http://clang-analyzer.llvm.org/) and generates report Provided actions Name Category Description clang_analyzer - Runs Clang Static Analyzer(http://clang-analyzer.llvm.org/) and generates report Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 5 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 26 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 161 wait_xcrun via Maksym Grebenets Wait for Xcode toolchain to come back online after switching Xcode versions. Provided actions Name Category Description wait_xcrun - Wait for Xcode toolchain to come back online after switching Xcode versions. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 21 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 159 delete_files via GaryJohnson Deletes a file, folder or multiple files using shell glob pattern. Provided actions Name Category Description delete_files - Deletes a file, folder or multiple files using shell glob pattern. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 54 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 159 docker via Manu Wallner fastlane Actions to support building images, logging into Docker Hub, and pushing those images to the Hub Provided actions Name Category Description docker_build - Build docker images in the current directory docker_login - Login to Docker Hub ensure_docker_machine_available - Makes sure a docker machine is created and available for us to use docker_compose - Define and run multi-container applications with Docker docker_push - Push a docker image to its' repository Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 6 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 27 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 157 repack_ios via Omer Duzyol Enables your build pipeline to repack your pre-built ipa with new assets without rebuilding the native code. Provided actions Name Category Description repack_ios - Enables your build pipeline to repack your pre-built ipa with new assets without rebuilding the native code. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 10 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 157 swiftformat via Felix Mau Run swift code formatting using SwiftFormat Provided actions Name Category Description swiftformat testing Run swift code formatting using SwiftFormat Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 39 More downloads = more users have been using the plugin for a while tests 30 The more tests a plugin has, the better Open on GitHub 157 coveralls via Atsushi Nagase Send coverage information to Coveralls Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 107 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 157 create_github_issue via Ryo Sakaguchi Create GitHub issue Provided actions Name Category Description create_github_issue - Create GitHub issue Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 92 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 157 resetsims via Lui\u0301s Esteves Makes an reset on xcode simulators Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 137 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 156 branding via Stefan Natchev Add some branding to your fastlane output Provided actions Name Category Description branding - Add some branding to your fastlane output Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 11 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 26 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 156 branding via Stefan Natchev Add some branding to your fastlane output Provided actions Name Category Description branding - Add some branding to your fastlane output Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 11 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 26 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 155 xcresult_to_junit via Shane Birdsall Produces junit xml files from Xcode 11+ xcresult files Provided actions Name Category Description xcresult_to_junit - Produces junit xml files from Xcode 11+ xcresult files Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 7 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 47 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 154 firebase via Tomas Kohout Unofficial tool to access Firebase project settings Provided actions Name Category Description firebase_delete_client - An unofficial tool to access Firebase firebase_add_client - An unofficial tool to access Firebase firebase_list - An unofficial tool to access Firebase firebase_download_config - An unofficial tool to access Firebase firebase_upload_certificate - An unofficial tool to access Firebase Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 23 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 154 number_of_swift_lines via Dennis Charmington Outputs the total number of swift lines and other useful statistics Provided actions Name Category Description number_of_swift_lines - Outputs the total number of lines of swift code, number of swift files, and a list of the largest swift files, and some other useful statistics Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 75 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 154 dmg via Alexey Dvoryanskiy Easily create dmg for your Mac app Provided actions Name Category Description dmg misc Create DMG for your Mac app Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 23 More downloads = more users have been using the plugin for a while tests 27 The more tests a plugin has, the better Open on GitHub 154 mackerel_api via yutailang0119 Call a Mackerel API endpoint and get the resulting JSON response Provided actions Name Category Description mackerel_api source_control Call a Mackerel API endpoint and get the resulting JSON response Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 33 More downloads = more users have been using the plugin for a while tests 39 The more tests a plugin has, the better Open on GitHub 151 apprepo via Matej Sychra Fastlane plugin SFTP/AppRepo uploader Provided actions Name Category Description download_manifest - Runs the Apprepo plugin apprepo - - init - Initializes Repofile run - Runs the default Apprepo action submit - Submits IPA to Apprepo Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 32 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 68 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 151 android_emulator_kami via Michael Ruhl Creates and starts an Android Emulator (AVD) Provided actions Name Category Description android_emulator_kami - Creates and starts an Android Emulator (AVD) Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 21 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 149 xcode_test_reporter via Taisuke Hori Generates JUnit or HTML report from Xcode plist test report files. Provided actions Name Category Description xcode_test_reporter - Generates JUnit or HTML report from Xcode `plist` test report files Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 23 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 149 provisioning via Pawel Jankowski Helps provision your app in the CI environment Provided actions Name Category Description set_key_partition_list - Sets key partition list (required by macOS Sierra) install_profiles - Install profiles from specified directory Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 148 ipa_info via tarappo show ipa info Provided actions Name Category Description ipa_info - Show information of an ipa file. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 19 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 46 More downloads = more users have been using the plugin for a while tests 12 The more tests a plugin has, the better Open on GitHub 147 napp_distribution via Mads M\u00f8ller Upload IPA AND APK builds to Napp Distribution Provided actions Name Category Description napp_distribution - Upload builds to Napp Distribution Center Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 146 android_emulator-kami via Michael Ruhl Creates and starts an Android Emulator (AVD) Provided actions Name Category Description android_emulator_kami - Creates and starts an Android Emulator (AVD) Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 146 accessibility_test via Takeshi Tsukamoto Accessibility test with Firebase Test Lab for Android. Provided actions Name Category Description accessibility_test - Accessibility test with Firebase Test Lab for Android. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 5 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 63 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 146 ascii_art via Boris Bu\u0308gling Add some fun to your fastlane output. Provided actions Name Category Description ascii_art - Add some fun to your fastlane output. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 20 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 32 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 145 teak via Pat Wilson Fastlane plugins for the Teak SDK Provided actions Name Category Description teak_extensions - Add App Extension teak_sdk - Download the Teak SDK teak - Fastlane plugins for the Teak SDK Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 38 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 144 gitlab_release via Andrea Del Fante Fastlane wrapper of gitlab-release-tools Provided actions Name Category Description gitlab_release_changelog - - gitlab_release_close - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 56 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 144 elux_actions via Dennis Granath Plugin including actions for releasing the android SDK Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 94 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 143 moronepo via Meniga Run dart pub moronepo with fastlane! Provided actions Name Category Description moronepo_update_flutter_sdk building Runs command for all subprojects or a specified project moronepo_run building Runs command for all subprojects or a specified project moronepo_activate building Run flutter pub global activate moronepo Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 21 The more tests a plugin has, the better Open on GitHub 142 retry_tests via Gloria Chow This fastlane plugin includes the following actions: 1) multi_scan: uses scan to run Xcode tests, optionally in batches, a given number of times: only re-testing failing tests. 2) suppress_tests_from_junit: uses a junit xml report file to suppress either passing or failing tests in an Xcode Scheme. 3) suppress_tests: suppresses specific tests in a specific or all Xcode Schemes in a given project. 4) suppressed_tests: retrieves a list of tests that are suppressed in a specific or all Xcode Schemes in a project. 5) tests_from_junit: retrieves the failing and passing tests as reported in a junit xml file. 6) tests_from_xctestrun: retrieves all of the tests from xctest bundles referenced by the xctestrun file 7) collate_junit_reports: collects and correctly organizes junit reports from multiple test passes. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 80 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 141 no_u via Boris Bu\u0308gling no u Provided actions Name Category Description no_u - no u Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 5 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 17 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 141 discord_notifier via Nikos Theodosis Discord Notifier Provided actions Name Category Description discord_notifier - Discord Webhook Notifier Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 8 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 50 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 141 taiwan_number_one via andrew54068 approve or reject first if status is Pending Developer Release. Provided actions Name Category Description taiwan_number_one - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 8 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 24 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 141 emerge via Emerge Tools, Inc Fastlane plugin for Emerge Provided actions Name Category Description emerge - Fastlane plugin for Emerge Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 4 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 54 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 141 testdroid_runner via josepmc Allows to run BitBar tests on fastlane Provided actions Name Category Description testdroid_runner - BitBar Test Runner upload_testdroid - Uploads a file to bitbar Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 140 remove_git_tag via Marker Digital This will remove a specific tag from your remote branch Provided actions Name Category Description remove_git_tag source_control This will remove a tag from the remote repository Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 59 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 138 influxdb via giginet Post values to InfluxDB Provided actions Name Category Description influxdb - Post values to IndluxDB Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 137 auth0_shipper via Hernan Zalazar OSS libraries release process for Auth0 Provided actions Name Category Description perform_release - Performs the release for an Auth0 OSS library publish_release - Performs a pending release represented by the latest tag prepare_release - Prepares the release for an Auth0 OSS library Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 52 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 137 set_sonar_properties via Paldom Load and edit sonar-project.properties files Provided actions Name Category Description set_sonar_properties - Load and edit sonar properties file Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 12 The more tests a plugin has, the better Open on GitHub 136 ad_licenselint via Pierre Felgines Lint the licenses for iOS projects Provided actions Name Category Description ad_licenselint - Lint the licenses for iOS projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 21 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 136 hockey_devices via Viktoras Laukevi\u010dius Retrieves a list of devices from Hockey which can then be used with Match Provided actions Name Category Description hockey_devices - Retrieves a list of devices from Hockey which can then be used with Match Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 21 The more tests a plugin has, the better Open on GitHub 135 get_application_id_flavor via Helder Pinhal Get the applicationId of an Android project. Provided actions Name Category Description get_application_id_flavor - Get the applicationId of an Android project. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 49 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 134 property_file_write via Jan Meier writes property files Provided actions Name Category Description property_file_write - Writes value into properties file Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 29 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 134 upload_symbols_to_hockey via Justin Williams Upload dSYM symbolication files to Hockey Provided actions Name Category Description upload_symbols_to_hockey - Upload dSYM symbolication files to Hockey Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 134 ya_tu_sabes via Boris Bu\u0308gling Ya tu sabes. Provided actions Name Category Description ya_tu_sabes - Ya tu sabes. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 8 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 133 device_image_selector via Mario Zimmermann Takes the screenshots from devices which match the specified names and puts them in a new directory for frameit to process. The screenshot files can then be cleaned up after the device images are created. Provided actions Name Category Description device_image_selector - Selects screenshots with specified names for processing with frameit device_image_selector_cleanup - Cleanup screenshot files after frameit Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 133 ti_build_app via Adam Armstrong Build Axway Appcelerator Mobile Applications from within fastlane Provided actions Name Category Description ti_build_app - Build Axway Appcelerator Mobile Applications from within fastlane Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 6 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 132 napp_notifications via Mads M\u00f8ller Napp Notifications Provided actions Name Category Description napp_notifications push Napp Notifications Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 132 oclint_json_compilation_database via Meniga Run OCLint validation with oclint-json-compilation-database and fastlane :dart: :rocket: Provided actions Name Category Description oclint_json_compilation_database testing - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 39 The more tests a plugin has, the better Open on GitHub 132 certificate_expirydate via Lyndsey Ferguson Retrieves the expiry date of the given p12 certificate file Provided actions Name Category Description certificate_expirydate - Retrieves the expiry date of the given p12 certificate file Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 12 The more tests a plugin has, the better Open on GitHub 132 wechat via xiongzenghui this is a wechat api wrapper Provided actions Name Category Description wechat - this is a wechat api wrapper Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 39 The more tests a plugin has, the better Open on GitHub 131 shuttle via Shuttle Project Publish your builds on Shuttle.tools Provided actions Name Category Description shuttle - Publish your builds on [Shuttle.tools](https://www.shuttle.tools) Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 24 More subscribers = more popular project stars 6 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 19 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 131 unity_exporter via ar:met Plugin for 'fastlane' that defines an action to export iOS and Android projects via Unity3d. This allows Unity3d to more easily integrate with 'fastlane'. Provided actions Name Category Description unity_commit_version_bump - Commits a version bump, if there is any. unity_export - Exports a Unity project. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 27 The more tests a plugin has, the better Open on GitHub 131 connected via Abgier Avraha Fastlane plugin that allows you to use your App Store Connect API key to download certificates and upload apps to TestFlight Provided actions Name Category Description connected_certs - App Store Connect API Certificates Module connected_upload - App Store Connect API Uploader Module connected_auth - App Store Connect API Authentication Module Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 19 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 130 unity via safu9 Fastlane plugin for Unity Provided actions Name Category Description unity - Fastlane plugin for Unity Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 5 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 130 swift_doc via Joshua Kaplan Generate documentation, documentation coverage, or a class diagram using SwiftDoc Provided actions Name Category Description swift_doc documentation Generate documentation, documentation coverage, or a class diagram using SwiftDoc Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 2 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 42 The more tests a plugin has, the better Open on GitHub 130 match_keystore via Christopher NEY Easily sync your Android keystores across your team Provided actions Name Category Description match_keystore - Easily sync your Android keystores across your team Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 20 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -5 Lots of open issues are not a good sign usually, unless the project is really popular downloads 40 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 130 appmetrica via Yandex, LLC Upload dSYM symbolication files to AppMetrica Provided actions Name Category Description upload_symbols_to_appmetrica - Upload dSYM symbolication files to AppMetrica Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 27 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license -50 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 86 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 129 verify_two_step_session via Takashi Hasegawa Verifies the session cookie for 'Two-Step verification for Apple ID' Provided actions Name Category Description verify_two_step_session misc Verifies the session cookie for 'Two-Factor authentication/Two-Step verification for Apple ID' Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 21 The more tests a plugin has, the better Open on GitHub 129 create_bitbucket_pull_request via Issarapong Poesua This lane creates create bitbucket pull request Provided actions Name Category Description create_bitbucket_pull_request - This lane creates create bitbucket pull request Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 38 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 129 github_action via Josh Holtz Helper to setup GitHub actions for fastlane and match Provided actions Name Category Description github_action - Helper to setup GitHub actions for fastlane and match Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 129 bitbucket_auth via rlestesr Generate a OAuth Token for Bitbucket API Access. Provided actions Name Category Description bitbucket_auth - Generate a OAuth Token for Bitbucket API Access. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 15 The more tests a plugin has, the better Open on GitHub 128 firim via whlsxl firim Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 96 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 127 killsimulator via Lui\u0301s Esteves Kill all the open simulatores Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 107 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 126 build_cache via Fernando Saragoca Helper for caching builds when using 'build for testing' & 'test without building' Provided actions Name Category Description clean_build_cache_workspace - Cleans workspace by removing old builds, using last access time for comparison archive_derived_data - Archives derived data folder in a zip file for later use check_build_cache_workspace - Check if cache for current build is avaiable unarchive_derived_data - Unarchives derived data folder from a zip file Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 18 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 126 appdynamics via Artur Rybak Upload dSYM files to AppDynamics Provided actions Name Category Description appdynamics - Upload dSYM symbolication files to AppDynamics Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 1 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 35 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 125 dependency_check_ios_analyzer via Alexey Alter-Pesotskiy Fastlane wrapper around the OWASP dependency-check iOS analyzers (Swift Package Manager and CocoaPods). Provided actions Name Category Description dependency_check_ios_analyzer testing Fastlane wrapper around the OWASP dependency-check iOS analyzers (Swift Package Manager and CocoaPods). Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 2 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 17 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 125 bearychat via dvlprliu send messages to a bearychat channal Provided actions Name Category Description bearychat - send messages to a bearychat channal Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 124 find_firebase_app_id via Tigran Hambardzumyan Helper plugin which will allow to find Firebase App ID from GoogleService-Info.plist [iOS] or google-services.json [Android]. Provided actions Name Category Description find_firebase_app_id - Helper plugin which will allow to find Firebase App ID from GoogleService-Info.plist [iOS] or google-services.json [Android]. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 12 The more tests a plugin has, the better Open on GitHub 124 cordova_screenshots via Jan Piotrowski Take screenshots of your Cordova/Ionic app with fastlane Provided actions Name Category Description init_cordova_screenshots_ios - Creates an iOS UI Unit Tests in '#{CordovaScreenshots::CORDOVA_SCREENSHOTS_IOS_CONFIG_PATH}' retrofit_cordova_screenshots_android - Retrofit test into Android project retrofit_cordova_screenshots_ios - Retrofit test into iOS Xcode project init_cordova_screenshots_android - Creates an Android UI test in '#{CordovaScreenshots::CORDOVA_SCREENSHOTS_ANDROID_CONFIG_PATH}' Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 1 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -10 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 15 The more tests a plugin has, the better Open on GitHub 123 flutter_version_manager via Davor Maric Manages app versioning of Flutter project Provided actions Name Category Description flutter_version_manager - Manages app versioning of a Flutter project. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 123 msi via Paul Niezborala Create Windows Installer Provided actions Name Category Description msi - Create Windows Installer Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 123 fir via dongorigin Upload a new build to fir.im Provided actions Name Category Description fir beta Upload a new build to fir.im Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 123 localize via Wolfgang Lutz Searches the code for extractable strings and allows interactive extraction to .strings file. Provided actions Name Category Description localize - Searches the code for extractable strings and allows interactive extraction to .strings file. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 4 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 123 plural_converter via Benoit Deldicque Convert Android plural XML resource file to iOS stringsdict file. Provided actions Name Category Description plural_converter - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 30 The more tests a plugin has, the better Open on GitHub 123 queue via Josh Holtz Queue up fastlane jobs Provided actions Name Category Description queue_stop - Stops web server and worker for queueing fastlane jobs queue_start - Starts web server and worker for queueing fastlane jobs queue - Adds fastlane jobs to a queue Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 8 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 122 update_jenkins_build via icyleaf Update Description of Build Provided actions Name Category Description update_jenkins_build - Update build's description of jenkins Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 18 The more tests a plugin has, the better Open on GitHub 122 static_assets via Jakob Jensen Generate code for buildtime-safe assignments of assets. Provided actions Name Category Description unused_images - - static_images - Generate code for buildtime-safe assignments of images. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 122 supply_aptoide via wschurman Upload metadata, screenshots and binaries to Aptoide Provided actions Name Category Description supply_aptoide - Upload metadata, screenshots and binaries to Aptoide. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 122 ios_dependency_parser via kochavi-daniel Analyzes results of 'pod outdated' in a structured manner Provided actions Name Category Description parse_pod_dependencies - Analyzes 'pod outdated' results and structures it for further usage. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 121 analyze_ios_linkmap via xiongzenghui iOS parse linkmap.txt to ruby Hash Provided actions Name Category Description analyze_ios_linkmap - iOS parse linkmap.txt to ruby Hash or JSON Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 45 The more tests a plugin has, the better Open on GitHub 119 teams_bot via Hugo EXTRAT Easily alert a Microsoft Teams channel Provided actions Name Category Description teams_bot - Easily send a message to a Microsoft Teams channel through the Webhook connector Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 119 sparkplugg via Boris Bu\u0308gling Quickly try out fastlane plugins. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 32 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 119 updateplistfromstrings via Jonas Schmid Allow to take values from the localization.strings and put them into Info.plist Provided actions Name Category Description updateplistfromstrings - Update InfoPlist.strings from translation file Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 118 imessage via Alexander Ignition send imessage Provided actions Name Category Description imessage notifications send imessage Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 18 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 118 rollbar via Evgrafov Denis Helps to upload sourcemaps/dsyms/proguard mapping/deploy report to Rollbar Provided actions Name Category Description rollbar_proguard_upload - Helps to upload Proguard mappings to Rollbar rollbar_dsym_upload - Helps to upload Dsym to Rollbar rollbar_report_deploy - Helps to report deploy to Rollbar rollbar_sourcemaps_upload - Helps to upload sourcemaps to Rollbar Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 6 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 28 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 117 trello via Oscar De Moya Fastlane plugin for moving a trello card to a given list Provided actions Name Category Description trello_comment - Adds a comment to a given Trello card trello_move_card - Moves a Trello card to a given list Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 117 farol via Felipe Plets Enable your app to use Farol Platform services Provided actions Name Category Description farol_api - Integrate your app with the Farol Platform using services like push notifications farol_get_version - Enable your app to use Farol Platform services farol - Enable your app to use Farol Platform services farol_set_version - Integrate your app with the Farol Platform using services like push notifications Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 31 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 116 xcresult_actions via yutailang0119 fastlane actions for .xcresult Provided actions Name Category Description summarize_xcresult_report - Summarize about test coverage rate from `.xcresult` file Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 27 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 116 androidmanifest_editor via \u4efb\u798f\u65b0 edit meta-data in AndroidManifest.xml Provided actions Name Category Description modify_meta_data - edit meta-data in AndroidManifest.xml modify_intent_scheme - edit scheme data of intent-filter in AndroidManifest.xml androidmanifest_editor - edit meta-data in AndroidManifest.xml Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 49 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 116 analyze_ios_ipa via xiongzenghui analysis iOS app/ipa multiple data. eg: 1) ipa basic info 2) Size occupied by each component = code + resource Provided actions Name Category Description analyze_ios_ipa - analysis iOS app/ipa multiple data. eg: 1) ipa basic info 2) Size occupied by each component = code + resource Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 116 ios_readme_generate via Erik Flores Create readme for ios projects Provided actions Name Category Description ios_readme_generate - Create readme for ios projects :D Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 116 gradle_manager via Helder Pinhal Exposes some Android configurations from the gradle file. Provided actions Name Category Description get_version_name - Get the parsed Gradle file of an Android project. get_version_code - Get the parsed Gradle file of an Android project. get_gradle_data - Get the parsed Gradle file of an Android project. get_application_id - Get the parsed Gradle file of an Android project. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 115 google_analytics via Helmut Januschka Fire universal Analytics Provided actions Name Category Description google_analytics - Fire universal Analytics Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 115 xclogparser via Josh Lesch Parse Xcode or xcodebuild build and test logs with XCLogParser Provided actions Name Category Description xclogparser - Parse Xcode or xcodebuild build and test logs with XCLogParser Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 30 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 115 jira_transitions via Ostap Taran Runs transitions for specified JIRA tickets Provided actions Name Category Description jira_transitions - Runs transitions for specified JIRA tickets Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 22 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 115 bitrise via Robin AUTHIAT Fastlane plugin to trigger a bitrise build with some options Provided actions Name Category Description bitrise - Trigger a bitrise build Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 115 write_changelog_from_commits via Lewis Bright Writes a changelog by pattern matching on git commits since the last tag. Organises these into sections and creates a changelog with the same name as the current version code Provided actions Name Category Description write_changelog_from_commits - Writes a changelog file by pattern matching on git commits since the last tag. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 4 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 21 The more tests a plugin has, the better Open on GitHub 115 csv_translation via Manish Rathi A fastlane plugin to manage translation using a CSV file under git repository. \ud83d\ude80 Provided actions Name Category Description create_csv_feature_branch - Create a csv feature branch. delete_csv_translation_request - Delete a translation request based on identifier value. fetch_csv_branch - Fetch a csv file branch. create_csv_translation_request - Create a csv translation request. rebase_csv_translation_request - Rebase a translation request based on identifier value. get_csv_translation_requests - Get CSV translation requests info Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 115 yafirim via wd Yet another fastlane fir.im plugin Provided actions Name Category Description yafirim - Yet another fastlane fir.im plugin Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 114 android_version_manage via futabooo Manage Android App Versioning Provided actions Name Category Description android_set_version_code - Set the Version Code of your Android project android_commit_version_bump - This action is like a commit_version_bump action for Android android_set_version_name - Set the Version Name of your Android project Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 29 More downloads = more users have been using the plugin for a while tests 27 The more tests a plugin has, the better Open on GitHub 114 test_report via Naylin Medina customized template for iOS test reports\u001b Provided actions Name Category Description test_report - Create customized HTML template for test reports Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 113 zealot via icyleaf Upload IPA/APK/dSYM/Proguard files to Zealot which it provides a self-host Over The Air Server for deployment of Android and iOS apps. Provided actions Name Category Description zealot_version_check - Check app version exists from Zealot zealot_sync_devices - Check app version exists from Zealot zealot_debug_file - Upload dSYM/Proguard files to Zealot which it provides a self-host Over The Air Server for deployment of Android and iOS apps. zealot - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 113 mattermost via cpfriend1721994 Fastlane plugin for push messages to Mattermost Provided actions Name Category Description mattermost - Fastlane plugin for push messages to Mattermost Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 19 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 113 testfairy via Josh Holtz Upload IPA to TestFairy Provided actions Name Category Description testfairy - Upload an IPA to TestFairy Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 112 souyuz-ventaapps via Felix Rudat A fastlane component to make Xamarin builds a breeze Provided actions Name Category Description app_version - Easily set or print app version with `app_version` souyuz - Easily build and sign your app using `souyuz` Score details Metric Points Description contributors 30 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 32 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 112 upload_to_onesky via joshrlesch Upload a strings file to OneSky Provided actions Name Category Description upload_to_onesky - Upload a strings file to OneSky Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 112 twitter via rb_de0 A simple twitter plugin Provided actions Name Category Description tweet - Tweet a message specified in the parameter Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 112 podspec_dependency_versioning via Cole Dunsby Edit the versions of your podspec dependencies Provided actions Name Category Description change_podspec_dependency_version - This action will modify the version of a dependency in your podspec. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 19 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 17 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 112 download_hockey_ipa via horimislime A fastlane plugin that helps downloading .ipa from HockeyApp Provided actions Name Category Description download_hockey_ipa - A fastlane plugin that helps downloading .ipa from HockeyApp Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 25 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 111 dingtalk_robot via InfiniteReverse webhook for dingtalk robot Provided actions Name Category Description dingtalk_robot - webhook for dingtalk robot Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 111 alioss via woodwu upload ipa/apk to aliyun oos server, and scan QRcode to install app on mobile phone. Provided actions Name Category Description alioss - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -6 Lots of open issues are not a good sign usually, unless the project is really popular downloads 37 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 110 try_adb_test via Alexey Alter-Pesotskiy The easiest way to retry your Android Instrumented Tests Provided actions Name Category Description try_adb_test - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 2 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 110 version via Jason Nam Set version Provided actions Name Category Description set_version - Set version Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 110 git_commit_changelog_to_markdown via Fernando Berrios This plugin will take the output of the changelog_from_git_commits plugin and convert it into markdown Provided actions Name Category Description git_commit_changelog_to_markdown - This plugin will take the output of the 'changelog_from_git_commits' plugin and convert it into markdown Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 33 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 109 jira_build_number via Tom Elrod Insert build number into related jira issues Provided actions Name Category Description jira_build_number - Adds build number from CI as comment to associated jira issue. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 109 android_change_app_name via MaximusMcCann Changes the manifest's label attribute (appName). Stores the original name for revertinng. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 89 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 108 update_team_identifier via Jordan Bondo Updates the Team Identifier for a given target Provided actions Name Category Description update_team_identifier - Updates the Team Identifier for a given target Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 108 app_store_build_info via Rishabh Tayal Get build info from App Store Connect Provided actions Name Category Description app_store_build_info - Get build info from App Store Connect Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 22 More downloads = more users have been using the plugin for a while tests 18 The more tests a plugin has, the better Open on GitHub 108 submit_to_beta_app_review via Dan Loewenherz Submits an already processed build to Beta App Review. Provided actions Name Category Description submit_to_beta_app_review - Submits an already processed build to Beta App Review. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 108 jira_issues_release_notes via Erick Martins It generates a release note based on the issues keys and descriptions found in the commits Provided actions Name Category Description jira_release_changelog - It generates a release note based on the issues keys and descriptions found in the commits jira_comment - It generates a release note based on the issues keys found in branch name and descriptions found in the commits jira_versions - It generates a release note based on the issues keys found in branch name and descriptions found in the commits jira_issues_keys_from_commits - It generates a release note based on the issues keys found in branch name and descriptions found in the commits jira_feature_validation - It generates a release note based on the issues keys found in branch name and descriptions found in the commits jira_release_validation - It generates a release note based on the issues keys and descriptions found in the commits Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 107 run_lane via Jonathan Ritchie Run a specified fastlane lane in your project. Provided actions Name Category Description run_lane - Run a specified fastlane lane in your project Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 26 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 106 ixguard via Evgeniy Kubyshin ixguard plugin Provided actions Name Category Description ixguard - iXGuard build plugin Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 32 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 106 mocha_run_tests via Adam T Armstrong Run Mocha Tests from within fastlane Provided actions Name Category Description mocha_run_tests - Run Mocha Tests from within fastlane Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 106 git_build_versioning via Mikko Va\u0308lima\u0308ki Store build numbers in git tags for distributed sequential builds Provided actions Name Category Description reserve_git_build_number - Use git for tagging your builds for unique distributed sequential build numbers get_git_build_number - Use git for tagging your builds for unique distributed sequential build numbers Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 23 More downloads = more users have been using the plugin for a while tests 18 The more tests a plugin has, the better Open on GitHub 105 droidicon via @chrhsmt Generate required icon sizes and iconset from a master application icon Provided actions Name Category Description droidicon - Generate required icon sizes and iconset from a master application icon Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 104 update_provisioning_profile via Duy Nguyen This action will update xcodeproj with values extracted from your provisioning profile. Provided actions Name Category Description update_provisioning_profile - This action will update xcodeproj with values extracted from your provisioning profile. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 104 deploy_file_provider via Kamil Krzyk, Przemys\u0142aw Wo\u015bko Prepares metadata files with structure ready for AppStore, PlayStore deploy Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 84 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 104 au_auto_close_upload via Emil Upload artifacts to AppUnite's auto-close service Provided actions Name Category Description au_auto_close_upload - Upload artifacts to AppUnite's auto-close service Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 104 ding_talk via gaoxiang Auto send the pgyer app qr code to the ding talk. Provided actions Name Category Description ding_talk - Send the packaging information to the ding talk. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 104 react_native_release via Chris Ball Simplify releases for React Native apps. Provided actions Name Category Description create_fastlane_session - Simplify 2FA authentication for App Store Connect react_native_release - Simplify releases for React Native apps encrypt_fastlane_vars - Encrypt fastlane vars for CI decrypt_google_play_credentials - Decrypts app env vars and sets the values in the root .env file read_fastlane_session - Simplify 2FA authentication for App Store Connect create_changelog - Determines if a release should happen based on conventional commits. generate_android_keystore - Decrypts app env vars and sets the values in the root .env file accept_android_sdk_licenses - Accepts Android sdk licenses add_fastlane_var - Adds a single ENV var for fastlane to the encrypted repository encrypt_google_play_credentials - Encrypts credentials from Google Play and stores in the context repo. tag_release - Tags a release based on a prefix, version, and build numbers encrypt_app_vars - Encrypts app env vars and stores them in the context repo. determine_release_from_commits - Determines if a release should happen based on conventional commits. decrypt_android_keystore - Decrypts app env vars and sets the values in the root .env file decrypt_fastlane_vars - Decrypts fastlane ENV vars from the encrypted repo. Optionally sets them in ENV. add_app_var - Adds a single ENV var to the encrypted repository decrypt_app_vars - Decrypts app env vars and sets the values in the root .env file Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 6 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -13 Lots of open issues are not a good sign usually, unless the project is really popular downloads 26 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 103 transifex via junjie basic transifex wrapper Provided actions Name Category Description transifex - basic transifex wrapper Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 25 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 17 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 103 release via Cole Dunsby Automates the steps to create a new release for a project. Provided actions Name Category Description make_release - Automates the steps to create a new release for a framework. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 19 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 103 send_e_mail via huangj a tool to sendmail Provided actions Name Category Description send_e_mail - a tool to sendmail Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 103 apphoster via JerryFans A simple plugin to upload your ipa file to AppHost Server in fastlane. Provided actions Name Category Description apphoster - A simple plugin to upload your ipa file to AppHost Server in fastlane. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 102 phraseapp via Issarapong Poesua a phraseapp-cli tool wrapper Provided actions Name Category Description phraseapp - a phraseapp-cli tool wrapper Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 102 xliff_en_gen via alexander sun gen Localizable.strings file from xliff Provided actions Name Category Description export_xliff - export xliff for an xcode project xliff_en_gen - Overwrite project Localizable.strings file from English version xliff Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 26 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 102 ipa_install_plist_generate via xiongzenghui iOS ipa enterprise install plist generate plugn Provided actions Name Category Description ipa_install_plist_generate - iOS ipa enterprise install plist generate plugn Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 101 gitlab_changelog via Z\u030cilvinas Sebeika Get changelog using GitLab API Provided actions Name Category Description gitlab_changelog - - Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 101 buildnumber via Nick Griffith Generates unique build numbers for iOS projects. Provided actions Name Category Description buildnumber - Generates unique build numbers for iOS projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 30 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 101 kuhverij via Morten B\u00f8gh Simplified Code Coverage Provided actions Name Category Description kuhverij testing Simplified Code Coverage Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 13 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 33 The more tests a plugin has, the better Open on GitHub 100 mobileiron via Roman Ivannikov Release your builds to Mobileiron In-Hause instance. https://www.mobileiron.com Provided actions Name Category Description mobileiron - Release your app with Mobileiron Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 21 The more tests a plugin has, the better Open on GitHub 100 summonbin via Jason Nam Execute command with summonbin Provided actions Name Category Description summonbin - Execute command with summonbin Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 100 update_build_settings_key via ungacy Updated code signing settings from 'Automatic' to a specific profile Provided actions Name Category Description update_build_settings_key - Updates build settings key to a new value Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 17 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 99 unsetinfoplistvalue via David Cordero Unsets value to Info.plist of your project as native Ruby data structures Provided actions Name Category Description unset_info_plist_value project Unsets value to Info.plist of your project as native Ruby data structures Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 99 line_notify via AKKHARAWAT CHAYAPIWAT To be able to send message to Line Notify Provided actions Name Category Description line_notify - You can use this action to send message via Line Notify Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 19 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 29 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 99 android_change_package_name via yeppao Change the package name in the AndroidManifest.xml file Provided actions Name Category Description android_change_package_name - Change the package identifier in the AndroidManifest.xml file Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 31 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 99 redmine_upload via Mattia Salvetti A fastlane plugin to upload file contents to Redmine Provided actions Name Category Description redmine_file_post - Uploads a file in a Redmine Files section of a given Redmine project redmine_upload - A fastlane plugin to upload file contents to Redmine Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 98 coreos via Oliver Letterer Deploy docker services to CoreOS hosts Provided actions Name Category Description coreos_deploy - Deploy docker services to CoreOS hosts Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 17 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 98 unity3d via fuzhongqing fastlane for unity3d engine Provided actions Name Category Description unity3d building fastlane plugin for unity3d engine Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 4 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 17 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 98 analyze_ios_framework via xiongzenghui analysis ios framework in buildout or pods dir Provided actions Name Category Description analyze_ios_framework - analysis ios framework in buildout or pods dir Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 17 More downloads = more users have been using the plugin for a while tests 15 The more tests a plugin has, the better Open on GitHub 97 last_fabric_version_code via Andr\u00e9s Hern\u00e1ndez Get the last Fabric version code for your Android app Provided actions Name Category Description last_fabric_version_code - Get the last Fabric version code for your Android app Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 97 debug_file via icyleaf Compress iOS/macApp dSYM or Android Proguard(mapping/R/AndroidManifest) to zip file Provided actions Name Category Description list_dsym misc Find and generate iOS/MacOS dSYM file(s) to zip file proguard misc Find and generate Android proguard file(s) to zip file dsym misc Find and generate iOS/MacOS dSYM file(s) to zip file Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 96 clear_archived_data via Onur Y\u0131ld\u0131r\u0131m Deletes the archive file located at SharedValues::XCODEBUILD_ARCHIVE. Provided actions Name Category Description clear_archived_data - Deletes the archive file located at SharedValues::XCODEBUILD_ARCHIVE. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 96 copy via Jason Nam Copy file Provided actions Name Category Description copy - Copy file Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 96 bomb_emoji via Josh Holtz \ud83d\udca3\ud83d\udca5 No more emojis Provided actions Name Category Description bomb_emoji - No more emojis Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 96 get_last_circleci_build_number via Dawid van der Hoven fetches the last build number from circleci. Provided actions Name Category Description get_last_circleci_build_number - fetches the last build number from circleci. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 96 buddybuild via Jorge Revuelta This plugin allows the communication with the Buddybuild API. Provided actions Name Category Description buddybuild_list_apps - Retrieves all the applications for a given account in Buddybuild. buddybuild_get_latest_build_number - Retrieves the latest build number for a given Application Identifier. buddybuild_show_latest_build - Retrieves the latest build for a given Application Identifier. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 95 match_import via Serhii Batsevych Match repository custom import Provided actions Name Category Description match_export_apns - Match repository apns certs export match_export - Match repository custom export match_import - Match repository custom import match_import_apns - Match repository apns certs import match_remove_invalid_apns - Match repository apns certs remove invalid match_remove - Match repository custom export Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 95 get_application_id via Helder Pinhal Get the applicationId of an Android project. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 63 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 95 lastpass via Antoine Lamy Easily sync your Apple ID credentials stored in LastPass with your keychain using CredentialManager Provided actions Name Category Description lastpass - Easily sync your Apple ID credentials stored in LastPass with your keychain using CredentialManager Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 19 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 95 transifex_tool via maydin Transifex tool that pulls translations using transifex rest api Provided actions Name Category Description rest_pull - Transifex plugin for pull and push translations cli_pull - Transifex tool that pulls translations using transifex cli client cli_push - Transifex tool that push translations using transifex cli client Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 94 sous via Jonathan Nogueira A tool to help create and sync keystores, as well as sign apks and aabs for the play store Provided actions Name Category Description plate - This action signs apks using an existing keystore pass - This action retrieves existing keystores for the android build system Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 94 dingtalk via Kim Huang a fastlane plugin for dingtalk robot Provided actions Name Category Description dingtalk - a fastlane plugin for dingtalk. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 94 fabric_beta_unregistered_devices via Slava Kornienko SHORT Provided actions Name Category Description fabric_beta_unregistered_devices - Get unregistered devices from Fabric Beta. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 94 promo_code via marumemomo promo_code Provided actions Name Category Description promo_code - promo_code Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 93 aws_device_farm_upload via Takuma Homma Uploads specified file to AWS Device Farm project Provided actions Name Category Description aws_device_farm_upload - Uploads specified file to AWS Device Farm project Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 93 xbluepill via UladzimirKisialiou It is a fastlane plugin that allows to use bluepill (linkedin library) as a fastlane command Provided actions Name Category Description xbluepill - Fastlane plugin that allows to use bluepill (linkedin library) as a fastlane command Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 5 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 93 source_env_from_file via xiongzenghui set ENV[\"key\"]=value from file like key=value Provided actions Name Category Description source_env_from_file - set ENV['key']=value from file like key=value Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 93 check_good_version via Lyndsey Ferguson Checks the version of the installed Good framework Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 31 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 93 flint via Jyrno Ader Easily sync your keystores across your team using git Provided actions Name Category Description flint - DESCRIPTION Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 93 react_native_util via Jimmy Dee Community utilities for React Native projects Provided actions Name Category Description react_pod - Community utilities for React Native projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 93 increment_version_code_android via SimoneCorsini Increment the version code of your android project, supporting different product flavors. Provided actions Name Category Description increment_version_code_android - Increment the version code of your android project, supporting different flavors. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 92 poesie via Patrik Potoc\u030cek Exports translations from POEditor using poesie tool. Provided actions Name Category Description poesie - Exports translations from POEditor using poesie tool. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 28 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 92 apperian via Tomi Blank Allows to upload your IPA file to Apperian Provided actions Name Category Description apperian - Allows to upload your app file to Apperian Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 91 wexlane via Chris River Common tools for CI Provided actions Name Category Description android_get_version - Common tools for CI ios_get_version - Common tools for CI Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 91 xamarin via Thomas Charriere Build Xamarin Android + iOS projects Provided actions Name Category Description msbuild - Build Solutions with msbuild nuget_restore - Nuget xamarin_android - Build Xamarin Android + iOS projects xamarin_ios - Build Xamarin Android + iOS projects nuget_install - Nuget clean - Clean artifacts Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 23 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 91 android_update_package_identifier via Jonathan Nogueira Changes the applicationId inside of your build.gradle file Provided actions Name Category Description android_update_package_identifier - Changes the applicationId inside of your build.gradle file. Does not change the AndroidManifest Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 90 sunny_project via ericmartineau Sunny flutter projects Provided actions Name Category Description rename_assets - Renames assets, generates an assets.dart file to reference them. pubspec_doctor - Modify pubspec for local or git development sunny_release - - increase_version - Increment version number in pubspec.yaml file sunny_build_runner - Cleans and runs flutter build_runner sunny_build_web - Builds a web project local_packages - Checks out local dart packages finalize_version - Commit version tags release_notes - Get or retrieve release notes from git generate_icons - Generates a flutter icon set as a font dart_package_status - - curr_semver - Gets the current version from the project's pubspec.yaml file pub_release - Releases a dart package pub_publish - Executes pub publish command Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 31 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 90 copy_screenshots via yosshi4486 Copy screenshots with a specified device name. Provided actions Name Category Description copy_screenshots screenshots Copy screenshots with a specified device name. This action should be executed after `capture_ios_screenshots` action. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 2 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 90 update_app_associated_domains via Nicolas TRUTET [iOS] Replace associated domains array for the key in the entitlement file. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 58 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 89 git_authors via Viktor Rutberg List authors of a Git repository Provided actions Name Category Description git_authors - List all authors of a Git repository Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 89 google_chat_message via Douglas Garcia Send simple text messages to Google Chat Provided actions Name Category Description google_chat_message - Send simple text messages to Google Chat Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 89 aws_sns_topic via Levi Bostian Fastlane plugin to public message to SNS topic. Provided actions Name Category Description aws_sns_topic - Public a message to a AWS SNS topic. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 88 docc via Kukurijek Automate docc - documentation for swift frameworks and packages Provided actions Name Category Description docc - Automate docc - documentation for swift frameworks and packages Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 1 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 88 poeditor via Kostia Myts Upload strings to POEditor Provided actions Name Category Description upload_strings_to_poeditor - Upload strings to POEditor Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 88 goodify_info_plist via Lyndsey Ferguson This plugin will update the plist so that the built application can be deployed and managed within BlackBerry's Good Dynamics Control Center for Enterprise Mobility Management. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 56 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 88 unreleased_changelog via Manish Rathi A fastlane plugin to manage unreleased changelog using a YAML file. \ud83d\ude80 Provided actions Name Category Description get_unreleased_changelog - Get the unreleased changelog add_unreleased_changelog - Add a new entry in unreleased changelog delete_unreleased_changelog - Delete changelog entry from unreleased changelog stamp_unreleased_changelog - Stamp unreleased changelog ensure_unreleased_changelog - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 88 verify_ipa_with_app_store_connect via Onno Bergob Uses iTMSTransporter to verify an ipa with App Store Connect. Provided actions Name Category Description verify_ipa_with_app_store_connect - Uses the command line tool iTMSTransporter provided with Xcode to verify the ipa. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 1 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 30 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 88 svn_commit via cleexiang svn plugin with fastlane Provided actions Name Category Description svn_commit - Commit to svn repos with fastlane Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 88 postmark via Levi Bostian Fastlane plugin to public message to SNS topic. Provided actions Name Category Description postmark - Send emails via Postmark in fastlane! Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 88 danger_result via marumemomo Get danger data plugin. Provided actions Name Category Description danger_result - Get danger data plugin. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 87 android_reporter via Yazan Tarifi Open Android Emeulators Then Generate Report File From Tests then Upload the File To Slack Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 55 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 87 hello_test via Gianfranco Manganiello test Provided actions Name Category Description hello_test - test Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 87 ios_flavors via Zachary Davison Create multiple build flavors of an iOS .ipa file using a directory of .plist files. Provided actions Name Category Description create_ipa_flavors - Create multiple build flavors of an iOS .ipa file using a directory of .plist files create_sim_flavors - Create multiple build flavors of an iOS .app (for the simulator) using a directory of .plist files Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 87 maintenance via Jimmy Dee Maintenance actions for plugin repos. Provided actions Name Category Description rake - General-purpose rake action to invoke tasks from a Rakefile or elsewhere. update_rubocop - Automatically updates RuboCop to the latest version. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 87 fetch_version_code via CoorpAcademy Fetch (and increment) version code for given platform Provided actions Name Category Description fetch_version_code - Fetch (and increment) version code for given platform Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 18 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license -50 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 51 The more tests a plugin has, the better Open on GitHub 87 xcode_tools_select via Vincent HO-SUNE Sets the DEVELOPER_DIR environment, used by fastlane to run Xcode command line tools, to a specific Xcode version found on the current system. Provided actions Name Category Description xcode_tools_select building Set the [version] of the default Xcode Command Line Tools path to use. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 86 simulator_add_root_cert via Nico Richard Add a root cert to your simulators with Fastlane Provided actions Name Category Description simulator_add_root_cert - Easily add a root cert to your simulators with Fastlane Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 2 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 86 user_default_get via zhangqi get value like ios userDefault Provided actions Name Category Description user_default_get - get value like ios userDefault Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 25 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 86 git_status_clean via zhangqi clean git status Provided actions Name Category Description git_status_clean - clean git status Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 25 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 86 flutter_build via viniciusmo Build your flutter project directly from your lane. Provided actions Name Category Description flutter_build - Build our project directly from your lane. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 18 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 86 download_hocky_build via Anton Morozov Download newest build from HockeyApp (iOS & Android) Provided actions Name Category Description download_hocky_build - Download newest build from HockeyApp (iOS & Android) Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 86 allure_zephyr via Nikita Ianenko Publish Allure results to Zephyr Provided actions Name Category Description allure_zephyr - Publish Allure results to Zephyr Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 1 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 86 user_default_set via zhangqi fastlane save user default like ios userDefault Provided actions Name Category Description user_default_set - fastlane save user default like ios userDefault Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 25 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 85 buggly via zhuyunlong \u4e0a\u4f20Bugly Provided actions Name Category Description buggly - Upload the dSYM file to Buggly crash analyze system. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 85 discord via Matheus Gambati Discord integration with Fastlane Provided actions Name Category Description discord - Discord integration with Fastlane Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 85 pgyer_v2 via nice2m pgyer for v2 suppor Provided actions Name Category Description pgyer - distribute app to pgyer beta testing service Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 85 simplemdm via Shannon Hicks Fastlane plugin for uploading iOS builds to SimpleMDM Provided actions Name Category Description upload_to_simplemdm - Upload IPA to Simple MDM Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 0 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 84 xamversion via Jake Barnby Read and manipulate Android and iOS app versions. Provided actions Name Category Description xamversion - Read and manipulate Android and iOS app versions. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 4 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 84 generate_xliff via Kostia Myts Generates XLIFF file Provided actions Name Category Description generate_xliff - Generates XLIFF file remove_xliff_artifacts - Generates XLIFF file Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 84 schedule via marumemomo Run lane from current time Provided actions Name Category Description get_lane - Run lane from current time Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 84 testbm via Bemobile A Test plugin Provided actions Name Category Description testbm - A Test plugin bmversion - TODO bmdistribution - Distributes an app version via firebase, testflight, browsertack or the play store. bmbuild - TODO salutation - Returns hello world bminfo - TODO bmslack - Sends a message to a Slack chat specified in the SLACK_URL environment variable Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 30 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 83 flutter_dart_version_manager via Marvin Moeltgen A version manager for flutter Provided actions Name Category Description flutter_dart_version_manager - A version manager for flutter flutter_set_version - A version manager for flutter Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 83 enumerated_translations via Mads B\u00f8geskov Converts a strings file to an enum, to make it more safe to access translations. Provided actions Name Category Description enumerated_translations - Converts a strings file to an enum, to make it more safe to access translations. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 82 dependency_manager_outdated via matsuda Fastlane plugin to check project's outdated dependencies Provided actions Name Category Description cocoapods_outdated - Check outdated CocoaPods dependencies dependency_manager_outdated - Fastlane plugin to check project's outdated dependencies carthage_outdated - Check outdated Carthage dependencies Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 82 creator via David Ackerman Mobile build framework for rust-lang Provided actions Name Category Description creator_build_android - Builds apk file from rust project creator_build_ios - Builds ipa file from rust project Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 82 gitlab_tag_release via Erick Martins Simple plugin to manage gitlab releases Provided actions Name Category Description gitlab_get_release - - gitlab_create_release - - gitlab_collect_release_evidence - - gitlab_list_releases - - gitlab_delete_tag - - gitlab_update_release - - gitlab_delete_release - - Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 0 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 82 lock_keychain via Alex Antonyuk Plugin for locking unlocked keychain Provided actions Name Category Description lock_keychain - Plugin for locking unlocked keychain Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 82 xambuild via Jake Barnby Fastlane plugin to make Xamarin builds easy Provided actions Name Category Description xambuild - Easily build and sign your Xamarin iOS or Android app using `xambuild` Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 4 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 81 managed_google_play via Jan Piotrowski Create Managed Google Play Apps Provided actions Name Category Description get_managed_play_store_publishing_rights - Obtain publishing rights for custom apps on Managed Google Play Store managed_google_play - Create Managed Google Play Apps create_app_on_managed_play_store - Create Managed Google Play Apps Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -5 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 81 publish_dropbox via Tommyvanvliet This plugin publishes artifacts over to Dropbox via a generated api token from Dropbox Developer API. Provided actions Name Category Description publish_dropbox - This plugin publishes artifacts over to Dropbox via a generated api token from Dropbox Developer API. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 81 bitrise_bcsymbolmaps via Oleksandr Skrypnyk Download BCSymbolMaps from Bitrise Provided actions Name Category Description bitrise_download_bcsymbolmaps - Downloads BCSymbolMaps from Bitrise before uploading them to a crash reporting tool. bitrise_clean_bcsymbolmaps - Cleans up downloaded artifacts. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 81 upload_dsym via xiongzenghui upload dsym to your specify server Provided actions Name Category Description upload_dsym - upload dsym to your specify server Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 13 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 19 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 80 line_message via Wasith Theerapattrathamrong Use to send message to Line chat Provided actions Name Category Description line_message notifications Use to send message to Line chat Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 80 periphery via Liam Nichols Identifies unused code in Swift projects using Periphery Provided actions Name Category Description periphery - - Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 24 The more tests a plugin has, the better Open on GitHub 80 gitlab_get_max_version_branch via xiongzenghui get a max version branch from a gitlab project, like: master_5.11.9 Provided actions Name Category Description gitlab_get_max_version_branch - get a max version branch from a gitlab project, like: master_5.11.9 Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 80 depman via Andrey Shapovalov Invokes depman-scanner to programmatically run Depman analysis Provided actions Name Category Description depman testing Arcsinus Dependency manager Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 1 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 80 git_clone via xiongzenghui a wrapper for git clone command Provided actions Name Category Description git_clone source_control this is a wrapper for git clone command Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 13 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 79 build_app_for_simulator via Alexey Alter-Pesotskiy This plugin builds apps exclusively for iOS, tvOS or watchOS Simulators. Provided actions Name Category Description build_app_for_simulator building This plugin builds apps exclusively for iOS, tvOS or watchOS Simulators. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 1 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 78 download_object_from_s3 via aomathwift Download objects from AWS S3 Provided actions Name Category Description download_object_from_s3 - Download objects from AWS S3 Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 15 The more tests a plugin has, the better Open on GitHub 78 ding_talk_msg_push via asynclog dingTalk robot msg push tool Provided actions Name Category Description ding_talk_msg_push - dingTalk robot msg push tool Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 77 git_pull_branch via Bhuvanesh BS pull code from different branch Provided actions Name Category Description git_pull_branch - pull code from different branch Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 76 rename_android_package via Josh Holtz Renames Android package Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 56 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 76 release_version via Leon Keijzer This plugin makes it possible to release an already approved version in AppStore Connect Provided actions Name Category Description reject_version - This action makes it possible to reject a binary in AppStore Connect release_version - This plugin makes it possible to release an already approved version in AppStore Connect Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 76 fivethree_ionic via Marc Stammerjohann Fastlane plugin for Ionic v4 Projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 56 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 76 dropbox_upload via jason upload files to dropbox Provided actions Name Category Description dropbox_upload - upload files to dropbox Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 75 git_add_tag via xiongzenghui git add tag wrapper Provided actions Name Category Description git_add_tag source_control git add tag wrapper Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 75 sequenia_gitflow via Semen Kologrivov Script for communicating with sequenia's git repos Provided actions Name Category Description fetch_merged_tasks - Fetch merged into current branch feature tasks after last release tag Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 18 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 75 secrets via Cyril Cermak, Jo\u0308rg Nestele Securely store secrets in source code. Provided actions Name Category Description decrypt_secrets - Securely store secrets in source code encrypt_secrets - Securely store secrets in source code Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 75 import_from_url via Doruk Kangal Import another Fastfile from given url to use its lanes Provided actions Name Category Description import_from_url - Import another Fastfile from given url to use its lanes Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 75 bitwarden via Ilija Boshkov Bitwarden CLI warpper plugin Provided actions Name Category Description bitwarden_login - You can use this action to login to BitWarden and unlock the vault. bitwarden_unlock_vault - You can use this action to download an item's attachment from BitWarden. bitwarden_get_object - You can use this action to download an item's attachment from BitWarden. bitwarden_download_attachment - You can use this action to download an item's attachment from BitWarden. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 74 logme via Lui\u0301s Esteves Provides a simple way to get logs from two delta commits Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 54 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 74 gitlab_branch_diff via xiongzenghui gitlab compare two branch to get diffs Provided actions Name Category Description gitlab_branch_diff - gitlab compare two branch to get diffs Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 73 speculid via Leo Dion Use speculid to easily manage graphics in Xcode projects Provided actions Name Category Description speculid - Use speculid to Easily Manage Graphics in Xcode Projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 73 gsheet_metadata via Kevin Morais Generate metadata from Google Spreadsheet Provided actions Name Category Description gsheet_metadata - Generate metadata from Google Spreadsheet Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 73 make via xiongzenghui Linux GNU Makefile make wrapper Provided actions Name Category Description make building Linux GNU Makefile make wrapper Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 73 pgyer_jvtd via \u9648\u78ca\u7684MacBook Pro \u84b2\u516c\u82f1\u805a\u901a\u8fbe\u63d2\u4ef6 Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 53 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 73 jira_set_feature_build via Tommy Sadiq Hinrichsen Tags passed in Jira issue with a feature build url from parameter :url Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 73 resize_screenshots via Levi Bostian Resize screenshots taken from your simulator to use for Frameit. Provided actions Name Category Description resize_screenshots - Resize screenshots taken from your simulator to use for Frameit. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 73 android_channels via icyleaf Package unsign apk with channels Provided actions Name Category Description android_channels building Package apk file with channels Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 72 bugtags via wliu6 Upload symbols to Bugtags Provided actions Name Category Description bugtags - Upload symbols to Bugtags Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 72 deploy_aws_s3_cloudfront via Hector Deploy local directory to AWS S3 bucket and invalidate CloudFront Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 22 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 72 report via Bruno Migue\u0302ns After an action, like scan for instance, you're able to generate a report file. This fastlane plugin gives you a way to upload and share your report using Slack. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 40 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 72 acknowledgements via Simon Rice, Christophe Knage Use Fastlane to give credit where it's rightfully due Provided actions Name Category Description acknowledgements - Use Fastlane to give credit where it's rightfully due. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license -50 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 72 goyuyun via vincentwu08 \u4e00\u952e\u53d1\u5e03\u81f3\u4e70\u597d\u4e91 Provided actions Name Category Description goyuyun - \u4e00\u952e\u53d1\u5e03\u81f3\u4e70\u597d\u4e91 Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 72 sns_http_subscribe via mnk98 Subscribe to sns topic using http/https endpoint Provided actions Name Category Description sns_http_subscribe - - Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 71 mailjet via thibaut noah plugin to send mail notifications for build release Provided actions Name Category Description mailjet - Send a custom message to an email group with mailjet Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 13 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 71 rm_derived_data via xiongzenghui de Provided actions Name Category Description rm_derived_data building after build finish remove xx.xcworkspace/xx.xcodeproj specify DerivedDatagst/* Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 70 upload_symbols_to_shake via Shake Team Upload dSYM to Shake Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 70 app_previews via Fausto Upload app previews to the App Store Connect Provided actions Name Category Description upload_app_previews - Upload app previews to the App Store Connect Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 70 s3_cert via Josh Lesch Store and install encrypted Certs from s3 Provided actions Name Category Description s3_upload_certs - Upload encrypted certs to s3 s3_cert - Pull Certs from s3 and install them into keychain. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 70 appsigner via Valeriy Makarshin AppSigner Provided actions Name Category Description appsigner - AppSigner Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 69 get_derived_data_path via Rajiv Shah Retrieves the path of a workspace in DerivedData Provided actions Name Category Description get_derived_data_path - Retrieves the path of a workspace in DerivedData Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 69 checkbuild via Johannes Steudle This plugin will check any binary library for unwanted symbols and architectures Provided actions Name Category Description checkbuild - This plugin will check any binary library for unwanted symbols and architectures. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 69 ci_apps via JiaqiangSong Config multiple apps of CI Provided actions Name Category Description get_extensions - A short description with < = 80 characters of what this action does ci_apps - Config multiple apps of CI get_ci_apps - A short description with < = 80 characters of what this action does get_ci_app_value - A short description with < = 80 characters of what this action does get_ci_app - A short description with < = 80 characters of what this action does get_emtitlements_plist_file_path - A short description with < = 80 characters of what this action does get_target_type - A short description with < = 80 characters of what this action does get_info_plist_file_path - A short description with < = 80 characters of what this action does Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 69 appcenter_get_recent_release_version via Kitti Pariyaakkarakul Get recent release version from appcenter Provided actions Name Category Description appcenter_get_recent_release_version - Get recent release version from appcenter Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 68 gitlab_merge_request_add_note via xiongzenghui add merge request note for gitlab server api Provided actions Name Category Description gitlab_merge_request_add_note - add merge request note for gitlab server api Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 68 gitlab_merge_request_participants via xiongzenghui Get a list of merge request participants Provided actions Name Category Description gitlab_merge_request_participants - Get a list of merge request participants Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 68 redpill via omniprojects Fastlane plugin to use bluepill in fastlane Provided actions Name Category Description redpill - Plugin to use bluepill in fastlane Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license -50 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 68 avd_emulator via Guillaume Elloy This plugin is listing available android avd emulators, allowing you to start the selected one. Provided actions Name Category Description start_avd_emulator - This plugin is listing available android avd emulators, allowing you to start the selected one. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 13 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 68 cuttly_api via Yalan fastlane plugin for cuttly. Provided actions Name Category Description cuttly_api - fastlane plugin for cuttly. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 68 load_erb_config via Joaomon7eiro Fastlane plugin to read erb configuration file Provided actions Name Category Description load_erb_config - Fastlane plugin to load configuration object from yml file Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 68 git_remove_tag via xiongzenghui remove git origin and remote repo tag Provided actions Name Category Description git_remove_tag source_control remove git origin and remote repo tag Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 67 fetch_metadata_from_google_sheets via kurarararara Get App Store metadata from Google Sheets. Provided actions Name Category Description fetch_metadata_from_google_sheets - Get App Store metadata from Google Sheets. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 67 bugly via chaosky Upload dSYM to bugly. Provided actions Name Category Description bugly - Upload dSYM to bugly. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 13 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 67 bowl via Benjamin Wulff Handles uploads to BOWL backend Provided actions Name Category Description bowl - Handles uploads to BOWL backend get_gradle_property - - set_gradle_property - Set the value of your project Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 67 work_wechat via DevZhang work wecaht webhook Provided actions Name Category Description work_wechat - work wecaht webhook Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 66 microsft_teams_message_card via Dorian Cheignon Send a message card to your Microsoft teams channel Provided actions Name Category Description microsft_teams_message_card notifications Send a message card to your Microsoft teams channel Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 65 u3d via Jerome Lacoste Fastgame's u3d (a Unity3d CLI) integration Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 33 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 65 gitlab_increate_line_notes via xiongzenghui filter gitlab merge request changes files & swiftlint json, last add line code with gitlab discussion Provided actions Name Category Description gitlab_increate_line_notes - filter gitlab merge request changes files & swiftlint json, last add line code with gitlab discussion Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 65 circle_ci via Manish Rathi A fastlane plugin for Circle CI. \ud83d\ude80 Provided actions Name Category Description download_circle_ci_artifact - Download the CircleCI artifact file. trigger_circle_ci_job - Triggers a new CircleCI Job get_circle_ci_build_status - CircleCI build status get_circle_ci_artifacts - List the CircleCI artifacts. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 65 deploy_module_bintray via Bruno Oliveira Gradle action to deploy a Module from an Android project Provided actions Name Category Description deploy_module_bintray - Gradle actions to deploy a module from an Android project Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 65 gitter via Andrew Havens A Fastlane plugin for sending a message to a Gitter room. Provided actions Name Category Description gitter - Send a message to a Gitter room. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 64 google_chat_v2 via \u201cmao-karrostech\u201d google chat v2 Provided actions Name Category Description google_chat_v2 - Send message to google chat v2 Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 64 moss via Shaggon du Moss is a tool that allows developers on Apple platforms to use any frameworks as a shared cache for frameworks built with Carthage. Provided actions Name Category Description moss - moss is a tool that allows developers on Apple platforms to use any frameworks as a shared cache for frameworks built with Carthage. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 64 azuredevops_envvars via Star Leasing Company A Fastlane plugin that provides passthrough access to AzureDevOps environment variables Provided actions Name Category Description azuredevops_envvars - A Fastlane plugin that provides passthrough access to AzureDevOps environment variables Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 62 jira_ticket via Dorian Cheignon get ticket in jira board Provided actions Name Category Description jira_ticket - get ticket in jira board Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 62 jira_link via David Brooks This plugin allows you to link two tickets together in JIRA Provided actions Name Category Description jira_link misc This plugin allows you to link two tickets together in JIRA Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 62 codemagic via Mikhail Matsera Fastlane plugin to trigger a Codemagic build with some options Provided actions Name Category Description codemagic - Fastlane plugin to trigger a Codemagic build with some options Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 62 appcenter_get_version via Markus Kramm get the latest build version from the app center Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 42 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 61 retrieve_devices via Lachlan Young, BuiltByProxy retrieve all devices registered to your apple certrificate Provided actions Name Category Description retrieve_devices misc This action will retrieve a list of each device registered with Apple Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 60 app47 via Shannon Hicks Fastlane plugin for uploading builds to App47 Provided actions Name Category Description upload_to_app47 - Upload IPA to Simple MDM Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 0 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 60 asana_task via respecu asana task plugin Provided actions Name Category Description asana_task - asana task plugin Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 2 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 60 fabulove via carry \"fabulove\" distribution system fastlane plugin Provided actions Name Category Description fabulove - 'fabulove' distribution system fastlane plugin Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 59 git_import via Dmitry Frishbuter Import all required fastlane dependencies from the git repository and keep your Fastfile simple! Provided actions Name Category Description git_import - Import all required fastlane dependencies from the git repository and keep your Fastfile simple! Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 59 npm via Erick Martins A very simple plugin to run npm scripts Provided actions Name Category Description npm_test - A very simple plugin to run npm scripts npm_run - A very simple plugin to run npm scripts npm_post_install - A very simple plugin to run npm scripts npm_install - A very simple plugin to run npm scripts upgrade_package_json_version - A very simple plugin to run npm scripts npm_lint - Runs lint script Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 59 aliyunoss via yigua upload package to aliyunoss Provided actions Name Category Description aliyunoss - - Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 58 teams_message_card via Dorian Cheignon Send a message card to your Microsoft teams channel Provided actions Name Category Description teams_message_card notifications Send a message card to your Microsoft teams channel Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 56 clean_xcarchive via matsuda Fastlane plugin to remove xcarchive created when build & archive Provided actions Name Category Description clean_xcarchive - Delete the archive created at build Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 56 pgyer_cl via chenlei pgyer_cl Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 52 dingtalk_msg via fuzhongqing dingtalk robot Provided actions Name Category Description dingtalk_msg - dingtalk robot Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 52 bw_open_finder via xubowen this is tool for mac osx to open finder Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 51 open_finder via xiongzenghui this is tool for mac os x to open finder Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 51 fiv_increment_build_no via Fivethree fastlane plugin for ionic 4 Provided actions Name Category Description fivethree_ionic - Fastlane plugin for Ionic v4 Projects fiv_update_version_and_build_no - Fastlane plugin for Ionic v4 Projects fiv_update_version - A short description with < = 80 characters of what this action does fiv_increment_build_no - fastlane plugin for ionic 4 fiv_build_ionic_android - A short description with < = 80 characters of what this action does fiv_add_transparent_statusbar - You can use this action to do cool things... Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 50 itargetchecker via Catalin Prata Checks the xcode proj file for targets and points out which files from the project are not present in a certain target. Provided actions Name Category Description itargetchecker - Checks the xcodeproj file for targets and points out which files from the project are not present in a certain target. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license -50 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 47 emoji_fetcher via Felix Krause Fetch the emoji font file and copy it to a local directory Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 47 update_device_name via huyanping update device name Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 45 au_danger_gitlab via Emil Allows to use Danger on GitLab Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 45 fetch_itc_versions via Bennett Rogers Returns a listing of all app versions and their latest builds from iTunes Connect. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 45 discord_webhook_notifier via Samuel B Bispo Notify a Discord channel easuly when a build breake Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 45 jandi_webhook via respecu webhook for jandi Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 44 imagesgoldenrun via Lui\u0301s Esteves this allows comparing images from a golden run with the actual results Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 24 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 41 pixie via Piotrek Dubiel Show your build status on PIXIE! Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 21 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 40 match_android_keystore via izzis92 Get android keystores from github Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 40 pgyer-password via Kila2 distribute app to pgyer beta testing service Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 39 version_from_last_tag via Jeff Stein Perform a regex on last (latest) git tag and perform a regex to extract a version number such as Release 1.2.3 Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 19 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 39 transifex_api via alexander sun basic transifex api wrapper Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 38 profile_expiration_info via Steven Chung Returns if the provisioning profile has expired and the DateTime it expires Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 38 testin via rudy.li testin Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 37 rescan_flaky_tests via Ichiko Moro Re-run scan action for each failed test cases. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 37 appcenter_releases via Qutaibah Esa Get app releases information from AppCenter Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 37 xcode8_srgb_workaround via Siarhei Fiedartsou Converts PNGs and JPEGs in your project to sRGB format to avoid crashes when building with Xcode 8 for iOS 8 and earlier deployment target Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 37 gen_dev_workspace via Andrew Breckenridge Configures an xcworkspace with specified xcodeprojs Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 36 parse_json via Felix Krause Parse a JSON file Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 36 install_certificates via Dylan Gyesbreghs Install all the certificates located in you're project. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 36 ipa_scale via Danilo Caetano \"Checks the size of your built .ipa and warns you if you you are near the given threshold.\" Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 35 carthage_cache_res via Thi Doan A Fastlane plugin that allows to cache Carthage/Build folder in Amazon S3. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 35 test_demo via StephenCurry30 A test demo of fastlane plugin Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 35 parse_configurations via Melki It is used to parse json configration Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 35 bluepillar via Shashikant86 Fastlane Plugin to Run XCUITests in Parallel using Bluepill. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 35 carthage_cache_ftps via Wolfgang Lutz Allows to publish or install the carthage builds via ftps to avoid recompilation Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 35 bluepillarx via jterhorst Fastlane Plugin to Run XCUITests in Parallel using Bluepill. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 34 google_cloud_storage_update via Jeroen Stoker Google Cloud Storage Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 34 linear_api via Vini\u0301cius Provide an interface to access the Linear API Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 33 scipio via evandcoleman A fastlane plugin for Scipio - A caching tool for Swift Package Manager Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 33 hello_gem_kimjg via kimjg hello gem kimjg Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 33 sxc_aliyun_oss via JimmyDaddy sxc aliyun oss uploader Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 32 screenshot_notifier via Moyuru Aizawa Post screenshots to a pull request Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 32 flutter_build_increment via Matthias Seiderer Increments pubspec.yaml build version number i.e. 1.0.0+1 to 1.0.0+2 Provided actions Name Category Description flutter_build_increment - Increments pubspec.yaml build version number i.e. 1.0.0+1 to 1.0.0+2 Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 0 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 32 box via Wesley Sui library for the Box Content API Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 32 intentconfirmation via Kamil Krzyk Halts the lane invocation, asks user to confirm if he wants to continue, may require password or key. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 32 ensure_swift_version via Shashikant86 This plugin ensure version of Swift language used for project Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 31 manage_android_versions via Bruno Correia An easy way to manage your Android App versions. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 31 playship via Helmut Januschka Interact with Google Play Api Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 30 git_commit_lzx via zhenxingliu git commit all add change to git Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 29 yalantis_ci via Dima Vorona Set of utilities and useful actions to help setup CI for Yalantis projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 29 install_provisioning_profile via Alexey Martynov This plugin installs provisioning profile to Xcode Provisioning Profiles directory Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 29 jenkins_job_config via Jerome Lacoste Generate the config for a Jenkins job Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 27 figlet via Jeff Stein Wrapper around figlet which makes large ascii text words Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 27 covfefe via Jakob Jensen A templating engine for generating common file structures. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 27 devicelab_bot via Almouro Automatically install your app on your devicelab with the devicelab bot Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 26 bitly via Thang Nguyen create bit.ly short link from url Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 25 add_fix_version via Dmitry Krasulia Create and makr tickets with fix version Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 25 gitlab_increate_swiftlint via xiongzenghui Incremental Code Check using swiftlint for swift language files on gitlab platform ! Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 25 update_app_name via huyanping update app name Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 24 mobile_common via Alexander Semenov Collection of common CI actions for Android, iOS and MacOSX projects - like unit tests, app publishing, version increment, screenshots, etc. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 24 bump_android_version via Sea\u0301n Labastille Bump Android Manifest Version Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 24 current_datetime via Melki To get current date and time as string Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 24 devresponse via Helmut Januschka Enables Spaceship to deal with developer response Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 24 ram_disk via icyleaf Use a temporary ram disk to do anything else Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 24 mynewplu via lingshijun new plugin Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 24 asciii via Danielle Tomlinson Add ascii text to your fastlane output Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 23 xcodebuildonlytesting via Lu\u00eds Esteves Creates a array of tests from a junit to feed the xcodebuild only-testing Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 23 incloud_xamarin_build via punksta, torben.carstens@incloud.de Build xamarin android\\ios projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 23 xamarin_build_switch via punksta Build xamarin android\\ios projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 22 ms_teams via Thang Nguyen Send a success/error message to your Microsoft Teams channel Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 22 teamify via Ron June Valdoz MS Teams message card fastlane plugin Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 22 switchmedia_xamarin_build via punksta Build xamarin android\\ios projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 22 unp via Xu Zhen \u6d4b\u8bd5 Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 22 binary via huanglei \u7528\u4e8e\u6253iOS\u4e8c\u8fdb\u5236\u5305 Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 22 my via lujun10446 Hello fastlane plugin demo Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 21 rocket via \u4e09\u5757 rocket \u652f\u6301app\u6253\u5305\u3001\u7ec4\u4ef6\u6253\u5305\u7b49\u529f\u80fd Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 21 aomi via lihaijian this is fastlane plugin for aomi Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 21 youtrack via Semen Kologrivov Use for communicating with YouTrack (fetching issue's info, adding comments and tags etc.) Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 21 opendir via majianjie open dir Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 21 upload_to_bugly via fisherman \u5feb\u901f\u4e0a\u4f20 .dSYM \u5230 bugly Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 21 android_unpack via yejinxin Fastlane Android Unpack Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 20 feishu_bot via cook A fastlane plugin to customize your automation workflow(s) with a Feishu Bot Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 0 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 20 common_fastfile via Pawel Szymanski Gets the requested file, saves it into ./fastlane/imports and return the path Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 0 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) -10 clang_tools via squirrel-explorer A series of clang-based tools for CI/CD, including clang analyzer. Provided actions Name Category Description clang_analyzer - Analyze source codes with clang analyzer Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license -50 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub -12 retry_failed_tests via Gloria Chow Retries failed iOS tests Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license -50 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec)","title":"Available plugins"},{"location":"generated/available-plugins/#available-plugins","text":"24830","title":"Available Plugins"},{"location":"generated/actions/adb/","text":"adb Run ADB Actions see adb --help for more details adb Supported platforms android Author @hjanuschka Returns The output of the adb command 1 Example adb( command: \"shell ls\" ) Parameters Key Description Default serial Android serial of the device to use for this command '' command All commands you want to pass to the adb command, e.g. kill-server adb_path The path to your adb binary (can be left blank if the ANDROID_SDK_ROOT, ANDROID_HOME or ANDROID_SDK environment variable is set) adb * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action adb CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run adb To pass parameters, make use of the : symbol, for example fastlane run adb parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Adb"},{"location":"generated/actions/adb/#adb","text":"Run ADB Actions see adb --help for more details adb Supported platforms android Author @hjanuschka Returns The output of the adb command","title":"adb"},{"location":"generated/actions/adb/#1-example","text":"adb( command: \"shell ls\" )","title":"1 Example"},{"location":"generated/actions/adb/#parameters","text":"Key Description Default serial Android serial of the device to use for this command '' command All commands you want to pass to the adb command, e.g. kill-server adb_path The path to your adb binary (can be left blank if the ANDROID_SDK_ROOT, ANDROID_HOME or ANDROID_SDK environment variable is set) adb * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/adb/#documentation","text":"To show the documentation in your terminal, run fastlane action adb","title":"Documentation"},{"location":"generated/actions/adb/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run adb To pass parameters, make use of the : symbol, for example fastlane run adb parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/adb/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/adb_devices/","text":"adb_devices Get an array of Connected android device serials Fetches device list via adb, e.g. run an adb command on all connected devices. adb_devices Supported platforms android Author @hjanuschka Returns Returns an array of all currently connected android devices 1 Example adb_devices.each do |device| model = adb(command: \"shell getprop ro.product.model\", serial: device.serial).strip puts \"Model #{model} is connected\" end Parameters Key Description Default adb_path The path to your adb binary (can be left blank if the ANDROID_SDK_ROOT environment variable is set) adb * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action adb_devices CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run adb_devices To pass parameters, make use of the : symbol, for example fastlane run adb_devices parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Adb devices"},{"location":"generated/actions/adb_devices/#adb_devices","text":"Get an array of Connected android device serials Fetches device list via adb, e.g. run an adb command on all connected devices. adb_devices Supported platforms android Author @hjanuschka Returns Returns an array of all currently connected android devices","title":"adb_devices"},{"location":"generated/actions/adb_devices/#1-example","text":"adb_devices.each do |device| model = adb(command: \"shell getprop ro.product.model\", serial: device.serial).strip puts \"Model #{model} is connected\" end","title":"1 Example"},{"location":"generated/actions/adb_devices/#parameters","text":"Key Description Default adb_path The path to your adb binary (can be left blank if the ANDROID_SDK_ROOT environment variable is set) adb * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/adb_devices/#documentation","text":"To show the documentation in your terminal, run fastlane action adb_devices","title":"Documentation"},{"location":"generated/actions/adb_devices/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run adb_devices To pass parameters, make use of the : symbol, for example fastlane run adb_devices parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/adb_devices/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/add_extra_platforms/","text":"add_extra_platforms Modify the default list of supported platforms add_extra_platforms Supported platforms ios, android, mac Author @lacostej 1 Example add_extra_platforms( platforms: [:windows, :neogeo] ) Parameters Key Description Default platforms The optional extra platforms to support '' * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action add_extra_platforms CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run add_extra_platforms To pass parameters, make use of the : symbol, for example fastlane run add_extra_platforms parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Add extra platforms"},{"location":"generated/actions/add_extra_platforms/#add_extra_platforms","text":"Modify the default list of supported platforms add_extra_platforms Supported platforms ios, android, mac Author @lacostej","title":"add_extra_platforms"},{"location":"generated/actions/add_extra_platforms/#1-example","text":"add_extra_platforms( platforms: [:windows, :neogeo] )","title":"1 Example"},{"location":"generated/actions/add_extra_platforms/#parameters","text":"Key Description Default platforms The optional extra platforms to support '' * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/add_extra_platforms/#documentation","text":"To show the documentation in your terminal, run fastlane action add_extra_platforms","title":"Documentation"},{"location":"generated/actions/add_extra_platforms/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run add_extra_platforms To pass parameters, make use of the : symbol, for example fastlane run add_extra_platforms parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/add_extra_platforms/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/add_git_tag/","text":"add_git_tag This will add an annotated git tag to the current branch This will automatically tag your build with the following format: // , where: grouping is just to keep your tags organised under one 'folder', defaults to 'builds' lane is the name of the current fastlane lane, if chosen to be included via 'includes_lane' option, which defaults to 'true' prefix is anything you want to stick in front of the version number, e.g. 'v' postfix is anything you want to stick at the end of the version number, e.g. '-RC1' build_number is the build number, which defaults to the value emitted by the increment_build_number action For example, for build 1234 in the 'appstore' lane, it will tag the commit with builds/appstore/1234 . add_git_tag Supported platforms ios, android, mac Author @lmirosevic, @maschall 3 Examples add_git_tag # simple tag with default values add_git_tag( grouping: \"fastlane-builds\", includes_lane: true, prefix: \"v\", postfix: \"-RC1\", build_number: 123 ) # Alternatively, you can specify your own tag. Note that if you do specify a tag, all other arguments are ignored. add_git_tag( tag: \"my_custom_tag\" ) Parameters Key Description Default tag Define your own tag text. This will replace all other parameters grouping Is used to keep your tags organised under one 'folder' builds includes_lane Whether the current lane should be included in the tag and message composition, e.g. ' / / ' true prefix Anything you want to put in front of the version number (e.g. 'v') '' postfix Anything you want to put at the end of the version number (e.g. '-RC1') '' build_number The build number. Defaults to the result of increment_build_number if you're using it * message The tag message. Defaults to the tag's name * commit The commit or object where the tag will be set. Defaults to the current HEAD * force Force adding the tag false sign Make a GPG-signed tag, using the default e-mail address's key false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action add_git_tag CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run add_git_tag To pass parameters, make use of the : symbol, for example fastlane run add_git_tag parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Add git tag"},{"location":"generated/actions/add_git_tag/#add_git_tag","text":"This will add an annotated git tag to the current branch This will automatically tag your build with the following format: // , where: grouping is just to keep your tags organised under one 'folder', defaults to 'builds' lane is the name of the current fastlane lane, if chosen to be included via 'includes_lane' option, which defaults to 'true' prefix is anything you want to stick in front of the version number, e.g. 'v' postfix is anything you want to stick at the end of the version number, e.g. '-RC1' build_number is the build number, which defaults to the value emitted by the increment_build_number action For example, for build 1234 in the 'appstore' lane, it will tag the commit with builds/appstore/1234 . add_git_tag Supported platforms ios, android, mac Author @lmirosevic, @maschall","title":"add_git_tag"},{"location":"generated/actions/add_git_tag/#3-examples","text":"add_git_tag # simple tag with default values add_git_tag( grouping: \"fastlane-builds\", includes_lane: true, prefix: \"v\", postfix: \"-RC1\", build_number: 123 ) # Alternatively, you can specify your own tag. Note that if you do specify a tag, all other arguments are ignored. add_git_tag( tag: \"my_custom_tag\" )","title":"3 Examples"},{"location":"generated/actions/add_git_tag/#parameters","text":"Key Description Default tag Define your own tag text. This will replace all other parameters grouping Is used to keep your tags organised under one 'folder' builds includes_lane Whether the current lane should be included in the tag and message composition, e.g. ' / / ' true prefix Anything you want to put in front of the version number (e.g. 'v') '' postfix Anything you want to put at the end of the version number (e.g. '-RC1') '' build_number The build number. Defaults to the result of increment_build_number if you're using it * message The tag message. Defaults to the tag's name * commit The commit or object where the tag will be set. Defaults to the current HEAD * force Force adding the tag false sign Make a GPG-signed tag, using the default e-mail address's key false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/add_git_tag/#documentation","text":"To show the documentation in your terminal, run fastlane action add_git_tag","title":"Documentation"},{"location":"generated/actions/add_git_tag/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run add_git_tag To pass parameters, make use of the : symbol, for example fastlane run add_git_tag parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/add_git_tag/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/app_store_build_number/","text":"app_store_build_number Returns the current build_number of either live or edit version Returns the current build number of either the live or testflight version - it is useful for getting the build_number of the current or ready-for-sale app version, and it also works on non-live testflight version. If you need to handle more build-trains please see latest_testflight_build_number . app_store_build_number Supported platforms ios, mac Author @hjanuschka 4 Examples app_store_build_number app_store_build_number( app_identifier: \"app.identifier\", username: \"user@host.com\" ) app_store_build_number( live: false, app_identifier: \"app.identifier\", version: \"1.2.9\" ) api_key = app_store_connect_api_key( key_id: \"MyKeyID12345\", issuer_id: \"00000000-0000-0000-0000-000000000000\", key_filepath: \"./AuthKey.p8\" ) build_num = app_store_build_number( api_key: api_key ) Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * initial_build_number sets the build number to given value if no build is in current train app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your App Store Connect team if you're in multiple teams * live Query the live version (ready-for-sale) true version The version number whose latest build number we want platform The platform to use (optional) ios team_name The name of your App Store Connect team if you're in multiple teams * * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The app_store_build_number action generates the following Lane Variables: SharedValue Description SharedValues::LATEST_BUILD_NUMBER The latest build number of either live or testflight version SharedValues::LATEST_VERSION The version of the latest build number To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action app_store_build_number CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run app_store_build_number To pass parameters, make use of the : symbol, for example fastlane run app_store_build_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"App store build number"},{"location":"generated/actions/app_store_build_number/#app_store_build_number","text":"Returns the current build_number of either live or edit version Returns the current build number of either the live or testflight version - it is useful for getting the build_number of the current or ready-for-sale app version, and it also works on non-live testflight version. If you need to handle more build-trains please see latest_testflight_build_number . app_store_build_number Supported platforms ios, mac Author @hjanuschka","title":"app_store_build_number"},{"location":"generated/actions/app_store_build_number/#4-examples","text":"app_store_build_number app_store_build_number( app_identifier: \"app.identifier\", username: \"user@host.com\" ) app_store_build_number( live: false, app_identifier: \"app.identifier\", version: \"1.2.9\" ) api_key = app_store_connect_api_key( key_id: \"MyKeyID12345\", issuer_id: \"00000000-0000-0000-0000-000000000000\", key_filepath: \"./AuthKey.p8\" ) build_num = app_store_build_number( api_key: api_key )","title":"4 Examples"},{"location":"generated/actions/app_store_build_number/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * initial_build_number sets the build number to given value if no build is in current train app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your App Store Connect team if you're in multiple teams * live Query the live version (ready-for-sale) true version The version number whose latest build number we want platform The platform to use (optional) ios team_name The name of your App Store Connect team if you're in multiple teams * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/app_store_build_number/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The app_store_build_number action generates the following Lane Variables: SharedValue Description SharedValues::LATEST_BUILD_NUMBER The latest build number of either live or testflight version SharedValues::LATEST_VERSION The version of the latest build number To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/app_store_build_number/#documentation","text":"To show the documentation in your terminal, run fastlane action app_store_build_number","title":"Documentation"},{"location":"generated/actions/app_store_build_number/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run app_store_build_number To pass parameters, make use of the : symbol, for example fastlane run app_store_build_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/app_store_build_number/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/app_store_connect_api_key/","text":"app_store_connect_api_key Load the App Store Connect API token to use in other fastlane tools and actions Load the App Store Connect API token to use in other fastlane tools and actions app_store_connect_api_key Supported platforms ios, mac Author @joshdholtz 3 Examples app_store_connect_api_key( key_id: \"D83848D23\", issuer_id: \"227b0bbf-ada8-458c-9d62-3d8022b7d07f\", key_filepath: \"D83848D23.p8\" ) app_store_connect_api_key( key_id: \"D83848D23\", issuer_id: \"227b0bbf-ada8-458c-9d62-3d8022b7d07f\", key_filepath: \"D83848D23.p8\", duration: 200, in_house: true ) app_store_connect_api_key( key_id: \"D83848D23\", issuer_id: \"227b0bbf-ada8-458c-9d62-3d8022b7d07f\", key_content: \"-----BEGIN EC PRIVATE KEY-----\\nfewfawefawfe\\n-----END EC PRIVATE KEY-----\" ) Parameters Key Description Default key_id The key ID issuer_id The issuer ID key_filepath The path to the key p8 file key_content The content of the key p8 file is_key_content_base64 Whether :key_content is Base64 encoded or not false duration The token session duration 500 in_house Is App Store or Enterprise (in house) team? App Store Connect API cannot determine this on its own (yet) false set_spaceship_token Authorizes all Spaceship::ConnectAPI requests by automatically setting Spaceship::ConnectAPI.token true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The app_store_connect_api_key action generates the following Lane Variables: SharedValue Description SharedValues::APP_STORE_CONNECT_API_KEY The App Store Connect API key information used for authorization requests. This hash can be passed directly into the :api_key options on other tools or into Spaceship::ConnectAPI::Token.create method To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action app_store_connect_api_key CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run app_store_connect_api_key To pass parameters, make use of the : symbol, for example fastlane run app_store_connect_api_key parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"App store connect api key"},{"location":"generated/actions/app_store_connect_api_key/#app_store_connect_api_key","text":"Load the App Store Connect API token to use in other fastlane tools and actions Load the App Store Connect API token to use in other fastlane tools and actions app_store_connect_api_key Supported platforms ios, mac Author @joshdholtz","title":"app_store_connect_api_key"},{"location":"generated/actions/app_store_connect_api_key/#3-examples","text":"app_store_connect_api_key( key_id: \"D83848D23\", issuer_id: \"227b0bbf-ada8-458c-9d62-3d8022b7d07f\", key_filepath: \"D83848D23.p8\" ) app_store_connect_api_key( key_id: \"D83848D23\", issuer_id: \"227b0bbf-ada8-458c-9d62-3d8022b7d07f\", key_filepath: \"D83848D23.p8\", duration: 200, in_house: true ) app_store_connect_api_key( key_id: \"D83848D23\", issuer_id: \"227b0bbf-ada8-458c-9d62-3d8022b7d07f\", key_content: \"-----BEGIN EC PRIVATE KEY-----\\nfewfawefawfe\\n-----END EC PRIVATE KEY-----\" )","title":"3 Examples"},{"location":"generated/actions/app_store_connect_api_key/#parameters","text":"Key Description Default key_id The key ID issuer_id The issuer ID key_filepath The path to the key p8 file key_content The content of the key p8 file is_key_content_base64 Whether :key_content is Base64 encoded or not false duration The token session duration 500 in_house Is App Store or Enterprise (in house) team? App Store Connect API cannot determine this on its own (yet) false set_spaceship_token Authorizes all Spaceship::ConnectAPI requests by automatically setting Spaceship::ConnectAPI.token true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/app_store_connect_api_key/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The app_store_connect_api_key action generates the following Lane Variables: SharedValue Description SharedValues::APP_STORE_CONNECT_API_KEY The App Store Connect API key information used for authorization requests. This hash can be passed directly into the :api_key options on other tools or into Spaceship::ConnectAPI::Token.create method To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/app_store_connect_api_key/#documentation","text":"To show the documentation in your terminal, run fastlane action app_store_connect_api_key","title":"Documentation"},{"location":"generated/actions/app_store_connect_api_key/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run app_store_connect_api_key To pass parameters, make use of the : symbol, for example fastlane run app_store_connect_api_key parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/app_store_connect_api_key/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/appaloosa/","text":"appaloosa Upload your app to Appaloosa Store Appaloosa is a private mobile application store. This action offers a quick deployment on the platform. You can create an account, push to your existing account, or manage your user groups. We accept iOS and Android applications. appaloosa Supported platforms ios, android, mac Author @Appaloosa 1 Example appaloosa( # Path tor your IPA or APK binary: '/path/to/binary.ipa', # You can find your store\u2019s id at the bottom of the \u201cSettings\u201d page of your store store_id: 'your_store_id', # You can find your api_token at the bottom of the \u201cSettings\u201d page of your store api_token: 'your_api_key', # User group_ids visibility, if it's not specified we'll publish the app for all users in your store' group_ids: '112, 232, 387', # You can use fastlane/snapshot or specify your own screenshots folder. # If you use snapshot please specify a local and a device to upload your screenshots from. # When multiple values are specified in the Snapfile, we default to 'en-US' locale: 'en-US', # By default, the screenshots from the last device will be used device: 'iPhone6', # Screenshots' filenames should start with device's name like 'iphone6-s1.png' if device specified screenshots: '/path/to_your/screenshots' ) Parameters Key Description Default binary Binary path. Optional for ipa if you use the ipa or xcodebuild action * api_token Your API token store_id Your Store id group_ids Your app is limited to special users? Give us the group ids '' screenshots Add some screenshots application to your store or hit [enter] * locale Select the folder locale for your screenshots en-US device Select the device format for your screenshots description Your app description changelog Your app changelog * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action appaloosa CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appaloosa To pass parameters, make use of the : symbol, for example fastlane run appaloosa parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Appaloosa"},{"location":"generated/actions/appaloosa/#appaloosa","text":"Upload your app to Appaloosa Store Appaloosa is a private mobile application store. This action offers a quick deployment on the platform. You can create an account, push to your existing account, or manage your user groups. We accept iOS and Android applications. appaloosa Supported platforms ios, android, mac Author @Appaloosa","title":"appaloosa"},{"location":"generated/actions/appaloosa/#1-example","text":"appaloosa( # Path tor your IPA or APK binary: '/path/to/binary.ipa', # You can find your store\u2019s id at the bottom of the \u201cSettings\u201d page of your store store_id: 'your_store_id', # You can find your api_token at the bottom of the \u201cSettings\u201d page of your store api_token: 'your_api_key', # User group_ids visibility, if it's not specified we'll publish the app for all users in your store' group_ids: '112, 232, 387', # You can use fastlane/snapshot or specify your own screenshots folder. # If you use snapshot please specify a local and a device to upload your screenshots from. # When multiple values are specified in the Snapfile, we default to 'en-US' locale: 'en-US', # By default, the screenshots from the last device will be used device: 'iPhone6', # Screenshots' filenames should start with device's name like 'iphone6-s1.png' if device specified screenshots: '/path/to_your/screenshots' )","title":"1 Example"},{"location":"generated/actions/appaloosa/#parameters","text":"Key Description Default binary Binary path. Optional for ipa if you use the ipa or xcodebuild action * api_token Your API token store_id Your Store id group_ids Your app is limited to special users? Give us the group ids '' screenshots Add some screenshots application to your store or hit [enter] * locale Select the folder locale for your screenshots en-US device Select the device format for your screenshots description Your app description changelog Your app changelog * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/appaloosa/#documentation","text":"To show the documentation in your terminal, run fastlane action appaloosa","title":"Documentation"},{"location":"generated/actions/appaloosa/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appaloosa To pass parameters, make use of the : symbol, for example fastlane run appaloosa parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/appaloosa/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/appetize/","text":"appetize Upload your app to Appetize.io to stream it in browser If you provide a public_key , this will overwrite an existing application. If you want to have this build as a new app version, you shouldn't provide this value. To integrate appetize into your GitHub workflow check out the device_grid guide . appetize Supported platforms ios, android Author @klundberg, @giginet, @steprescott 2 Examples appetize( path: \"./MyApp.zip\", api_token: \"yourapitoken\", # get it from https://appetize.io/docs#request-api-token public_key: \"your_public_key\" # get it from https://appetize.io/dashboard ) appetize( path: \"./MyApp.zip\", api_host: \"company.appetize.io\", # only needed for enterprise hosted solution api_token: \"yourapitoken\", # get it from https://appetize.io/docs#request-api-token public_key: \"your_public_key\" # get it from https://appetize.io/dashboard ) Parameters Key Description Default api_host Appetize API host api.appetize.io api_token Appetize.io API Token url URL from which the ipa file can be fetched. Alternative to :path platform Platform. Either ios or android ios path Path to zipped build on the local filesystem. Either this or url must be specified public_key If not provided, a new app will be created. If provided, the existing build will be overwritten note Notes you wish to add to the uploaded app timeout The number of seconds to wait until automatically ending the session due to user inactivity. Must be 30, 60, 90, 120, 180, 300, 600, 1800, 3600 or 7200. Default is 120 * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The appetize action generates the following Lane Variables: SharedValue Description SharedValues::APPETIZE_API_HOST Appetize API host. SharedValues::APPETIZE_PUBLIC_KEY a public identifier for your app. Use this to update your app after it has been initially created. SharedValues::APPETIZE_APP_URL a page to test and share your app. SharedValues::APPETIZE_MANAGE_URL a page to manage your app. To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action appetize CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appetize To pass parameters, make use of the : symbol, for example fastlane run appetize parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Appetize"},{"location":"generated/actions/appetize/#appetize","text":"Upload your app to Appetize.io to stream it in browser If you provide a public_key , this will overwrite an existing application. If you want to have this build as a new app version, you shouldn't provide this value. To integrate appetize into your GitHub workflow check out the device_grid guide . appetize Supported platforms ios, android Author @klundberg, @giginet, @steprescott","title":"appetize"},{"location":"generated/actions/appetize/#2-examples","text":"appetize( path: \"./MyApp.zip\", api_token: \"yourapitoken\", # get it from https://appetize.io/docs#request-api-token public_key: \"your_public_key\" # get it from https://appetize.io/dashboard ) appetize( path: \"./MyApp.zip\", api_host: \"company.appetize.io\", # only needed for enterprise hosted solution api_token: \"yourapitoken\", # get it from https://appetize.io/docs#request-api-token public_key: \"your_public_key\" # get it from https://appetize.io/dashboard )","title":"2 Examples"},{"location":"generated/actions/appetize/#parameters","text":"Key Description Default api_host Appetize API host api.appetize.io api_token Appetize.io API Token url URL from which the ipa file can be fetched. Alternative to :path platform Platform. Either ios or android ios path Path to zipped build on the local filesystem. Either this or url must be specified public_key If not provided, a new app will be created. If provided, the existing build will be overwritten note Notes you wish to add to the uploaded app timeout The number of seconds to wait until automatically ending the session due to user inactivity. Must be 30, 60, 90, 120, 180, 300, 600, 1800, 3600 or 7200. Default is 120 * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/appetize/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The appetize action generates the following Lane Variables: SharedValue Description SharedValues::APPETIZE_API_HOST Appetize API host. SharedValues::APPETIZE_PUBLIC_KEY a public identifier for your app. Use this to update your app after it has been initially created. SharedValues::APPETIZE_APP_URL a page to test and share your app. SharedValues::APPETIZE_MANAGE_URL a page to manage your app. To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/appetize/#documentation","text":"To show the documentation in your terminal, run fastlane action appetize","title":"Documentation"},{"location":"generated/actions/appetize/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appetize To pass parameters, make use of the : symbol, for example fastlane run appetize parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/appetize/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/appetize_viewing_url_generator/","text":"appetize_viewing_url_generator Generate an URL for appetize simulator Check out the device_grid guide for more information appetize_viewing_url_generator Supported platforms ios Author @KrauseFx Returns The URL to preview the iPhone app Parameters Key Description Default public_key Public key of the app you wish to update * base_url Base URL of Appetize service https://appetize.io/embed device Device type: iphone4s, iphone5s, iphone6, iphone6plus, ipadair, iphone6s, iphone6splus, ipadair2, nexus5, nexus7 or nexus9 iphone5s scale Scale of the simulator orientation Device orientation portrait language Device language in ISO 639-1 language code, e.g. 'de' color Color of the device black launch_url Specify a deep link to open when your app is launched os_version The operating system version on which to run your app, e.g. 10.3, 8.0 params Specify params value to be passed to Appetize proxy Specify a HTTP proxy to be passed to Appetize * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action appetize_viewing_url_generator CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appetize_viewing_url_generator To pass parameters, make use of the : symbol, for example fastlane run appetize_viewing_url_generator parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Appetize viewing url generator"},{"location":"generated/actions/appetize_viewing_url_generator/#appetize_viewing_url_generator","text":"Generate an URL for appetize simulator Check out the device_grid guide for more information appetize_viewing_url_generator Supported platforms ios Author @KrauseFx Returns The URL to preview the iPhone app","title":"appetize_viewing_url_generator"},{"location":"generated/actions/appetize_viewing_url_generator/#parameters","text":"Key Description Default public_key Public key of the app you wish to update * base_url Base URL of Appetize service https://appetize.io/embed device Device type: iphone4s, iphone5s, iphone6, iphone6plus, ipadair, iphone6s, iphone6splus, ipadair2, nexus5, nexus7 or nexus9 iphone5s scale Scale of the simulator orientation Device orientation portrait language Device language in ISO 639-1 language code, e.g. 'de' color Color of the device black launch_url Specify a deep link to open when your app is launched os_version The operating system version on which to run your app, e.g. 10.3, 8.0 params Specify params value to be passed to Appetize proxy Specify a HTTP proxy to be passed to Appetize * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/appetize_viewing_url_generator/#documentation","text":"To show the documentation in your terminal, run fastlane action appetize_viewing_url_generator","title":"Documentation"},{"location":"generated/actions/appetize_viewing_url_generator/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appetize_viewing_url_generator To pass parameters, make use of the : symbol, for example fastlane run appetize_viewing_url_generator parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/appetize_viewing_url_generator/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/appium/","text":"appium Run UI test by Appium with RSpec appium Supported platforms ios, android Author @yonekawa 1 Example appium( app_path: \"appium/apps/TargetApp.app\", spec_path: \"appium/spec\", platform: \"iOS\", caps: { versionNumber: \"9.1\", deviceName: \"iPhone 6\" }, appium_lib: { wait: 10 } ) Parameters Key Description Default platform Appium platform name spec_path Path to Appium spec directory app_path Path to Appium target app file invoke_appium_server Use local Appium server with invoke automatically true host Hostname of Appium server 0.0.0.0 port HTTP port of Appium server 4723 appium_path Path to Appium executable caps Hash of caps for Appium::Driver appium_lib Hash of appium_lib for Appium::Driver * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action appium CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appium To pass parameters, make use of the : symbol, for example fastlane run appium parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Appium"},{"location":"generated/actions/appium/#appium","text":"Run UI test by Appium with RSpec appium Supported platforms ios, android Author @yonekawa","title":"appium"},{"location":"generated/actions/appium/#1-example","text":"appium( app_path: \"appium/apps/TargetApp.app\", spec_path: \"appium/spec\", platform: \"iOS\", caps: { versionNumber: \"9.1\", deviceName: \"iPhone 6\" }, appium_lib: { wait: 10 } )","title":"1 Example"},{"location":"generated/actions/appium/#parameters","text":"Key Description Default platform Appium platform name spec_path Path to Appium spec directory app_path Path to Appium target app file invoke_appium_server Use local Appium server with invoke automatically true host Hostname of Appium server 0.0.0.0 port HTTP port of Appium server 4723 appium_path Path to Appium executable caps Hash of caps for Appium::Driver appium_lib Hash of appium_lib for Appium::Driver * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/appium/#documentation","text":"To show the documentation in your terminal, run fastlane action appium","title":"Documentation"},{"location":"generated/actions/appium/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appium To pass parameters, make use of the : symbol, for example fastlane run appium parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/appium/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/appledoc/","text":"appledoc Generate Apple-like source code documentation from the source code Runs appledoc [OPTIONS] for the project appledoc Supported platforms ios, mac Author @alexmx 1 Example appledoc( project_name: \"MyProjectName\", project_company: \"Company Name\", input: [ \"MyProjectSources\", \"MyProjectSourceFile.h\" ], ignore: [ \"ignore/path/1\", \"ingore/path/2\" ], options: \"--keep-intermediate-files --search-undocumented-doc\", warnings: \"--warn-missing-output-path --warn-missing-company-id\" ) Parameters Key Description Default input Path(s) to source file directories or individual source files. Accepts a single path or an array of paths output Output path templates Template files path docset_install_path DocSet installation path include Include static doc(s) at path ignore Ignore given path exclude_output Exclude given path from output index_desc File including main index description project_name Project name project_version Project version project_company Project company company_id Company UTI (i.e. reverse DNS name) create_html Create HTML false create_docset Create documentation set false install_docset Install documentation set to Xcode false publish_docset Prepare DocSet for publishing false no_create_docset Create HTML and skip creating a DocSet false html_anchors The html anchor format to use in DocSet HTML clean_output Remove contents of output path before starting false docset_bundle_id DocSet bundle identifier docset_bundle_name DocSet bundle name docset_desc DocSet description docset_copyright DocSet copyright message docset_feed_name DocSet feed name docset_feed_url DocSet feed URL docset_feed_formats DocSet feed formats. Separated by a comma [atom,xml] docset_package_url DocSet package (.xar) URL docset_fallback_url DocSet fallback URL docset_publisher_id DocSet publisher identifier docset_publisher_name DocSet publisher name docset_min_xcode_version DocSet min. Xcode version docset_platform_family DocSet platform family docset_cert_issuer DocSet certificate issuer docset_cert_signer DocSet certificate signer docset_bundle_filename DocSet bundle filename docset_atom_filename DocSet atom feed filename docset_xml_filename DocSet xml feed filename docset_package_filename DocSet package (.xar,.tgz) filename options Documentation generation options crossref_format Cross reference template regex exit_threshold Exit code threshold below which 0 is returned 2 docs_section_title Title of the documentation section (defaults to \"Programming Guides\" warnings Documentation generation warnings logformat Log format [0-3] verbose Log verbosity level [0-6,xcode] * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The appledoc action generates the following Lane Variables: SharedValue Description SharedValues::APPLEDOC_DOCUMENTATION_OUTPUT Documentation set output path To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action appledoc CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appledoc To pass parameters, make use of the : symbol, for example fastlane run appledoc parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Appledoc"},{"location":"generated/actions/appledoc/#appledoc","text":"Generate Apple-like source code documentation from the source code Runs appledoc [OPTIONS] for the project appledoc Supported platforms ios, mac Author @alexmx","title":"appledoc"},{"location":"generated/actions/appledoc/#1-example","text":"appledoc( project_name: \"MyProjectName\", project_company: \"Company Name\", input: [ \"MyProjectSources\", \"MyProjectSourceFile.h\" ], ignore: [ \"ignore/path/1\", \"ingore/path/2\" ], options: \"--keep-intermediate-files --search-undocumented-doc\", warnings: \"--warn-missing-output-path --warn-missing-company-id\" )","title":"1 Example"},{"location":"generated/actions/appledoc/#parameters","text":"Key Description Default input Path(s) to source file directories or individual source files. Accepts a single path or an array of paths output Output path templates Template files path docset_install_path DocSet installation path include Include static doc(s) at path ignore Ignore given path exclude_output Exclude given path from output index_desc File including main index description project_name Project name project_version Project version project_company Project company company_id Company UTI (i.e. reverse DNS name) create_html Create HTML false create_docset Create documentation set false install_docset Install documentation set to Xcode false publish_docset Prepare DocSet for publishing false no_create_docset Create HTML and skip creating a DocSet false html_anchors The html anchor format to use in DocSet HTML clean_output Remove contents of output path before starting false docset_bundle_id DocSet bundle identifier docset_bundle_name DocSet bundle name docset_desc DocSet description docset_copyright DocSet copyright message docset_feed_name DocSet feed name docset_feed_url DocSet feed URL docset_feed_formats DocSet feed formats. Separated by a comma [atom,xml] docset_package_url DocSet package (.xar) URL docset_fallback_url DocSet fallback URL docset_publisher_id DocSet publisher identifier docset_publisher_name DocSet publisher name docset_min_xcode_version DocSet min. Xcode version docset_platform_family DocSet platform family docset_cert_issuer DocSet certificate issuer docset_cert_signer DocSet certificate signer docset_bundle_filename DocSet bundle filename docset_atom_filename DocSet atom feed filename docset_xml_filename DocSet xml feed filename docset_package_filename DocSet package (.xar,.tgz) filename options Documentation generation options crossref_format Cross reference template regex exit_threshold Exit code threshold below which 0 is returned 2 docs_section_title Title of the documentation section (defaults to \"Programming Guides\" warnings Documentation generation warnings logformat Log format [0-3] verbose Log verbosity level [0-6,xcode] * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/appledoc/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The appledoc action generates the following Lane Variables: SharedValue Description SharedValues::APPLEDOC_DOCUMENTATION_OUTPUT Documentation set output path To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/appledoc/#documentation","text":"To show the documentation in your terminal, run fastlane action appledoc","title":"Documentation"},{"location":"generated/actions/appledoc/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appledoc To pass parameters, make use of the : symbol, for example fastlane run appledoc parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/appledoc/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/appstore/","text":"appstore Alias for the upload_to_app_store action deliver uploads screenshots, metadata and binaries to App Store Connect. Use deliver to submit your app for App Store review. Features \u2022 Quick Start \u2022 Usage \u2022 Tips deliver is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Features Upload hundreds of localized screenshots completely automatically Upload a new ipa/pkg file to App Store Connect without Xcode from any Mac Maintain your app metadata locally and push changes back to App Store Connect Easily implement a real Continuous Deployment process using fastlane Store the configuration in git to easily deploy from any Mac, including your Continuous Integration server Get a HTML preview of the fetched metadata before uploading the app metadata and screenshots to iTC Automatically uses precheck to ensure your app has the highest chances of passing app review the first time To upload builds to TestFlight check out pilot . Quick Start The guide will create all the necessary files for you, using the existing app metadata from App Store Connect. cd [your_project_folder] fastlane deliver init Enter your App Store Connect credentials Enter your app identifier Enjoy a good drink, while the computer does all the work for you From now on, you can run fastlane deliver to deploy a new update, or just upload new app metadata and screenshots. Usage Check out your local ./fastlane/metadata and ./fastlane/screenshots folders (if you don't use fastlane it's ./metadata instead) You'll see your metadata from App Store Connect. Feel free to store the metadata in git (not the screenshots). You can now modify it locally and push the changes back to App Store Connect. Run fastlane deliver to upload the app metadata from your local machine fastlane deliver Provide the path to an ipa file to upload and submit your app for review: fastlane deliver --ipa \"App.ipa\" --submit_for_review or you can specify path to pkg file for macOS apps: fastlane deliver --pkg \"MacApp.pkg\" If you use fastlane you don't have to manually specify the path to your ipa / pkg file. This is just a small sub-set of what you can do with deliver , check out the full documentation in #more-options Download existing screenshots from App Store Connect fastlane deliver download_screenshots Download existing metadata from App Store Connect fastlane deliver download_metadata To get a list of available options run fastlane action deliver Use in a Fastfile deliver deliver( submit_for_review: true, force: true, metadata_path: \"./metadata\" ) More options View all available options and their valid values Available options All the options below can easily be added to your Deliverfile . The great thing: if you use fastlane you can use all these options from your Fastfile too, for example: deliver( submit_for_review: true, metadata_path: \"../folder\" ) app_identifier The bundle identifier (e.g. \"com.krausefx.app\") username Your Apple ID email address ipa A path to a signed ipa file, which will be uploaded. If you don't provide this value, only app metadata will be uploaded. If you want to submit the app for review make sure to either use fastlane deliver --submit_for_review or add submit_for_review true to your Deliverfile ipa(\"App.ipa\") if you use fastlane the ipa file will automatically be detected. pkg A path to a signed pkg file, which will be uploaded. Submission logic of ipa applies to pkg files. pkg(\"MacApp.pkg\") app_version Optional, as it is usually automatically detected. Specify the version that should be created / edited on App Store Connect: app_version(\"2.0\") skip_app_version_update In the case if deliver uploads your application to App Store Connect it will automatically update \"Prepare for submission\" app version (which could be found on App Store Connect->My Apps->App Store page) The option allows uploading your app without updating \"Prepare for submission\" version. This could be useful in the case if you are generating a lot of uploads while not submitting the latest build for Apple review. The default value is false. skip_app_version_update(true) submit_for_review Add this to your Deliverfile to automatically submit the app for review after uploading metadata/binary. This will select the latest build. submit_for_review(true) screenshots_path A path to a folder containing subfolders for each language. This will automatically detect the device type based on the image resolution. Also includes \uf8ff Watch Support. metadata_path Path to the metadata you want to use. The folder has to be structured like this If you run deliver init this will automatically be created for you. force force(true) If set to true , no HTML report will be generated before the actual upload. You can also pass --force when calling deliver . price_tier Pass the price tier as number. This will be active from the current day. price_tier 0 trade_representative_contact_information Trade Representative Contact information for Korean App Store. Available options: first_name , last_name , address_line1 , address_line2 , address_line3 , city_name , state , country , postal_code , phone_number , email_address , is_displayed_on_app_store . trade_representative_contact_information( first_name: \"Felix\", last_name: \"Krause\", address_line1: \"1 Infinite Loop\", address_line2: \"\", address_line3: null, city_name: \"Cupertino\", state: \"California\", country: \"United States\", postal_code: \"95014\", phone_number: \"+43 123123123\", email_address: \"github@krausefx.com\", ) You can also provide these values by creating files in a metadata/trade_representative_contact_information/ directory. The file names must match the pattern .txt (e.g. first_name.txt , address_line1.txt etc.). The contents of each file will be used as the value for the matching key. Values provided in the Deliverfile or Fastfile will be take priority over values from these files. is_displayed_on_app_store is the option on App Store Connect described as: Display Trade Representative Contact Information on the Korean App Store app_review_information Contact information for the app review team. Available options: first_name , last_name , phone_number , email_address , demo_user , demo_password , notes . app_review_information( first_name: \"Felix\", last_name: \"Krause\", phone_number: \"+43 123123123\", email_address: \"github@krausefx.com\", demo_user: \"demoUser\", demo_password: \"demoPass\", notes: \"such notes, very text\" ) You can also provide these values by creating files in a metadata/review_information/ directory. The file names must match the pattern .txt (e.g. first_name.txt , notes.txt etc.). The contents of each file will be used as the value for the matching key. Values provided in the Deliverfile or Fastfile will be take priority over values from these files. app_review_attachment_file You can provide additional information to the app review team as a file attachment. As of this writing, Apple supports following file attachment formats: .pdf, .doc, .docx, .rtf, .pages, .xls, .xlsx, .numbers, .zip, .rar, .plist, .crash, .jpg, .png, .mp4, or .avi. Provide an empty string (i.e. \"\", not null) to remove the existing attachment file (if any) from the review information being edited. app_review_attachment_file: \"./readme.txt\" submission_information Must be a hash. This is used as the last step for the deployment process, where you define if you use third party content or use encryption. A list of available options . submission_information({ add_id_info_serves_ads: true, ... }) automatic_release Should the app be released to all users once Apple approves it? If set to false , you'll have to manually release the update once it got approved. automatic_release(true) # or automatic_release(false) phased_release Enable or disable the phased releases feature of App Store Connect. If set to true , the update will be released over a 7 day period. Default behavior is to leave whatever you defined on App Store Connect. phased_release(true) # or phased_release(false) reset_ratings Reset your app's summary rating for all territories. If set to true , it will reset rating when this version is released. Default behavior is to keep existing rating. reset_ratings(true) # or reset_ratings(false) app_rating_config_path You can set the app age ratings using deliver . You'll have to create and store a JSON configuration file. Copy the template to your project folder and pass the path to the JSON file using the app_rating_config_path option. The keys/values on the top allow one of 3 strings: \"NONE\", \"INFREQUENT_OR_MILD\" or \"FREQUENT_OR_INTENSE\", and the items on the bottom allow false or true. More information in #reference . Metadata All options below are useful if you want to specify certain app metadata in your Deliverfile or Fastfile Localized Localized values should be set like this description({ 'en-US' => \"English Description here\", 'de-DE' => \"Deutsche Beschreibung hier\" }) name The title/name of the app subtitle Localized subtitle of the app subtitle( \"en-US\" => \"Awesome English subtitle here\", \"de-DE\" => \"Jetzt mit deutschen Untertiteln!\" ) description The description of the app release_notes The release_notes (What's new / Changelog) of the latest version support_url, marketing_url, privacy_url These URLs are shown in the AppStore keywords Keywords separated using a comma. keywords( \"en-US\" => \"Keyword1, Keyword2\" ) promotional_text Localized promotional text promotional_text( \"en-US\" => \"Hey, you should totally buy our app, it's the best\", \"de-DE\" => \"App kaufen bitte\" ) app_icon A path to a new app icon, which must be exactly 1024x1024px app_icon('./AppIcon.png') apple_watch_app_icon A path to a new app icon for the \uf8ff Watch, which must be exactly 1024x1024px apple_watch_app_icon('./AppleWatchAppIcon.png') platform The platform of your application (a.e. ios, osx). This option is optional. The default value is \"ios\" and deliver should be able to figure out the platform from your binary. However, in the case if multiple binaries present, you can specify a platform which you want to deliver explicitly. The available options: 'ios' 'appletvos' 'osx' Non-Localized copyright The up to date copyright information. copyright(\"#{Time.now.year} Felix Krause\") primary_category The english name of the category you want to set (e.g. Business , Books ) See #reference for a list of available categories secondary_category The english name of the secondary category you want to set primary_first_sub_category The english name of the primary first sub category you want to set primary_second_sub_category The english name of the primary second sub category you want to set secondary_first_sub_category The english name of the secondary first sub category you want to set secondary_second_sub_category The english name of the secondary second sub category you want to set Submit Build deliver allows you to promote an existing build to production. Below are examples to select a previously uploaded build and submit it for review. fastlane deliver submit_build --build_number 830 Submit build in a Fastfile lane :submit_review do deliver( build_number: '830', submit_for_review: true, automatic_release: true, force: true, # Skip HTMl report verification skip_metadata: true, skip_screenshots: true, skip_binary_upload: true ) end Omit build_number to let fastlane automatically select the latest build number for the current version being edited for release from App Store Connect. Compliance and IDFA settings Use the submission_information parameter for additional submission specifiers, including compliance and IDFA settings. Look at the Spaceship's app_submission.rb file for options. See this example . fastlane deliver submit_build --build_number 830 --submission_information \"{\\\"export_compliance_uses_encryption\\\": false, \\\"add_id_info_uses_idfa\\\": false }\" App Privacy Details Starting on December 8, 2020, Apple announced that developers are required to provide app privacy details that will help users understand an app's privacy practies. deliver does not allow for updating of this information but this can be done with the upload_app_privacy_details_to_app_store action. More information on Uploading App Privacy Details Credentials A detailed description about how your credentials are handled is available in a credentials_manager . How does this thing even work? Is magic involved? \ud83c\udfa9 Your password will be stored in the macOS keychain, but can also be passed using environment variables. (More information available on CredentialsManager ) Before actually uploading anything to iTunes, deliver will generate a HTML summary of the collected data. deliver uses the following techniques under the hood: The iTMSTransporter tool is used to upload the binary to App Store Connect. iTMSTransporter is a command line tool provided by Apple. For all metadata related actions deliver uses spaceship Tips Available language codes ar-SA, ca, cs, da, de-DE, el, en-AU, en-CA, en-GB, en-US, es-ES, es-MX, fi, fr-CA, fr-FR, he, hi, hr, hu, id, it, ja, ko, ms, nl-NL, no, pl, pt-BR, pt-PT, ro, ru, sk, sv, th, tr, uk, vi, zh-Hans, zh-Hant Available Metadata Folder Options deliver allows for metadata to be set through .txt files in the metadata folder. This metadata folder location is defaulted to ./fastlane/metadata but can be overridden through the metadata_path parameter. Below are all allowed metadata options. Non-Localized Metadata Key Editable While Live Directory Filename copyright Yes copyright.txt primary_category No primary_category.txt secondary_category No secondary_category.txt primary_first_sub_category No primary_first_sub_category.txt primary_second_sub_category No primary_second_sub_category.txt secondary_first_sub_category No secondary_first_sub_category.txt secondary_second_sub_category No secondary_second_sub_category.txt Localized Metadata Key Editable While Live Directory Filename name No // name.txt subtitle No // subtitle.txt privacy_url Yes // privacy_url.txt apple_tv_privacy_policy No // apple_tv_privacy_policy.txt description Yes // description.txt keywords No // keywords.txt release_notes Yes // release_notes.txt support_url Yes // support_url.txt marketing_url Yes // marketing_url.txt promotional_text Yes // promotional_text.txt Review Information Metadata Key Editable While Live Directory Filename Deprecated Filename first_name Yes /review_information first_name.txt review_first_name.txt last_name Yes /review_information last_name.txt review_last_name.txt phone_number Yes /review_information phone_number.txt review_phone_number.txt email_address Yes /review_information email_address.txt review_email.txt demo_user Yes /review_information demo_user.txt review_demo_user.txt demo_password Yes /review_information demo_password.txt review_demo_password.txt notes Yes /review_information notes.txt review_notes.txt Reference View all available categories, etc. Available Categories FOOD_AND_DRINK BUSINESS EDUCATION SOCIAL_NETWORKING BOOKS SPORTS FINANCE REFERENCE GRAPHICS_AND_DESIGN DEVELOPER_TOOLS HEALTH_AND_FITNESS MUSIC WEATHER TRAVEL ENTERTAINMENT STICKERS GAMES LIFESTYLE MEDICAL MAGAZINES_AND_NEWSPAPERS UTILITIES SHOPPING PRODUCTIVITY NEWS PHOTO_AND_VIDEO NAVIGATION Available Game Subcategories MZGenre.Action MZGenre.Adventure MZGenre.Arcade MZGenre.Board MZGenre.Card MZGenre.Casino MZGenre.Dice MZGenre.Educational MZGenre.Family MZGenre.Music MZGenre.Puzzle MZGenre.Racing MZGenre.RolePlaying MZGenre.Simulation MZGenre.Sports MZGenre.Strategy MZGenre.Trivia MZGenre.Word GAMES_SPORTS GAMES_WORD GAMES_MUSIC GAMES_ADVENTURE GAMES_ACTION GAMES_ROLE_PLAYING GAMES_CASUAL GAMES_BOARD GAMES_TRIVIA GAMES_CARD GAMES_PUZZLE GAMES_CASINO GAMES_STRATEGY GAMES_SIMULATION GAMES_RACING GAMES_FAMILY Available Stickers Subcategories STICKERS_PLACES_AND_OBJECTS STICKERS_EMOJI_AND_EXPRESSIONS STICKERS_CELEBRATIONS STICKERS_CELEBRITIES STICKERS_MOVIES_AND_TV STICKERS_SPORTS_AND_ACTIVITIES STICKERS_EATING_AND_DRINKING STICKERS_CHARACTERS STICKERS_ANIMALS STICKERS_FASHION STICKERS_ART STICKERS_GAMING STICKERS_KIDS_AND_FAMILY STICKERS_PEOPLE STICKERS_MUSIC Available age rating groups Non Boolean Values 0: None (Legacy value, use NONE instead) 1: Infrequent/Mild (Legacy value, use INFREQUENT_OR_MILD instead) 2: Frequent/Intense (Legacy value, use FREQUENT_OR_INTENSE instead) NONE INFREQUENT_OR_MILD FREQUENT_OR_INTENSE Keys 'alcoholTobaccoOrDrugUseOrReferences' 'contests' 'gamblingSimulated' 'medicalOrTreatmentInformation' 'profanityOrCrudeHumor' 'sexualContentGraphicAndNudity' 'sexualContentOrNudity' 'horrorOrFearThemes' 'matureOrSuggestiveThemes' 'unrestrictedWebAccess' 'violenceCartoonOrFantasy' 'violenceRealisticProlongedGraphicOrSadistic' 'violenceRealistic' 'kidsAgeBand' Boolean Keys gambling 'seventeenPlus' unrestrictedWebAccess Kids Age Values FIVE_AND_UNDER SIX_TO_EIGHT NINE_TO_ELEVEN null Keys kidsAgeBand Default values Deliver has a special default language code which allows you to provide values that are not localized, and which will be used as defaults when you don\u2019t provide a specific localized value. In order to use default , you will need to tell deliver which languages your app uses. You can do this in either of two ways: Create the folders named with the language in the metadata folder (i.e. fastlane/metadata/en-US or fastlane/metadata/de-DE) Add the following to your Deliverfile languages(['en-US','de-DE']) You can use this either in json within your Deliverfile and/or as folders in your metadata folder. deliver will take the union of both language sets from the Deliverfile and from the metadata folder and create on single set of languages which will be enabled. Imagine that you have localized data for the following language codes: en-US, de-DE, el, it You can set the following in your Deliverfile release_notes({ 'default' => \"Shiny and new\", 'de-DE' => \"glaenzend und neu\" }) Deliver will use \"Shiny and new\" for en-US, el and it. It will use \"glaenzend und neu\" for de-DE. You can do the same with folders default keywords.txt marketing_url.txt name.txt privacy_url.txt support_url.txt release_notes.txt en-US description.txt de-DE description.txt el description.txt it description.txt In this case, default values for keywords, urls, name and release notes are used in all localizations, but each language has a fully localized description Uploading screenshots for \"iPad Pro (12.9-inch) (3rd generation)\" Starting March 20, 2019 Apple's App Store requires 12.9-inch iPad Pro (3rd generation) screenshots additionally to the iPad Pro 2nd generation screenshots . As fastlane historically uses the screenshot dimensions to determine the \"display family\" of a screenshot, this poses a problem as both use the same dimensions and are recognized as the same device family. To solve this a screenshot of a 12.9-inch iPad Pro (3rd generation) must contain either the string iPad Pro (12.9-inch) (3rd generation) , IPAD_PRO_3GEN_129 , or ipadPro129 (Apple's internal naming of the display family for the 3rd generation iPad Pro) in its filename to be assigned the correct display family and to be uploaded to the correct screenshot slot in your app's metadata. Automatically create screenshots If you want to integrate deliver with snapshot , check out fastlane ! Jenkins integration Detailed instructions about how to set up deliver and fastlane in Jenkins can be found in the fastlane README . Firewall Issues deliver uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" fastlane deliver HTTP Proxy iTunes Transporter is a Java application bundled with Xcode. In addition to utilizing the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" , you need to configure the transporter application to use the proxy independently from the system proxy or any environment proxy settings. You can find the configuration file within Xcode: for Xcode11 and later TOOLS_PATH=$( xcode-select -p ) REL_PATH='../SharedFrameworks/ContentDeliveryServices.framework/Versions/A/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" for Xcode10 or earlier TOOLS_PATH=$( xcode-select -p ) REL_PATH='../Applications/Application Loader.app/Contents/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" Add necessary proxy configuration values to the net.properties according to Java Proxy Configuration . As an alternative to editing the properties files, proxy configuration can be specified on the command line directly: DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV -Dhttp.proxyHost=myproxy.com -Dhttp.proxyPort=8080\" Limit App Store Connect has a limit of 150 binary uploads per day. Editing the Deliverfile Change syntax highlighting to Ruby . Provider Short Name If you are on multiple App Store Connect teams, deliver needs a provider short name to know where to upload your binary. deliver will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option. appstore Supported platforms ios, mac Author @KrauseFx 3 Examples upload_to_app_store( force: true, # Set to true to skip verification of HTML preview itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) deliver # alias for \"upload_to_app_store\" appstore # alias for \"upload_to_app_store\" Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of your app * app_version The version that should be edited or created ipa Path to your ipa file * pkg Path to your pkg file * build_number If set the given build number (already uploaded to iTC) will be used instead of the current built one platform The platform to use (optional) ios edit_live Modify live metadata, this option disables ipa upload and screenshot upload false use_live_version Force usage of live version rather than edit version false metadata_path Path to the folder containing the metadata files screenshots_path Path to the folder containing the screenshots skip_binary_upload Skip uploading an ipa or pkg to App Store Connect false skip_screenshots Don't upload the screenshots false skip_metadata Don't upload the metadata (e.g. title, description). This will still upload screenshots false skip_app_version_update Don\u2019t create or update the app version that is being prepared for submission false force Skip verification of HTML preview file false overwrite_screenshots Clear all previously uploaded screenshots before uploading the new ones false sync_screenshots Sync screenshots with local ones. This is currently beta option so set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well false submit_for_review Submit the new version for Review after uploading everything false verify_only Verifies archive with App Store Connect without uploading false reject_if_possible Rejects the previously submitted build if it's in a state where it's possible false automatic_release Should the app be automatically released once it's approved? (Can not be used together with auto_release_date ) auto_release_date Date in milliseconds for automatically releasing on pending approval (Can not be used together with automatic_release ) phased_release Enable the phased release feature of iTC false reset_ratings Reset the summary rating when you release a new version of the application false price_tier The price tier of this application app_rating_config_path Path to the app rating's config submission_information Extra information for the submission (e.g. compliance specifications, IDFA settings) team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your Developer Portal team, if you're in multiple teams. Different from your iTC team ID! * dev_portal_team_name The name of your Developer Portal team if you're in multiple teams * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column * run_precheck_before_submit Run precheck before submitting to app review true precheck_default_rule_level The default precheck rule level unless otherwise configured :warn individual_metadata_items DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - An array of localized metadata items to upload individually by language so that errors can be identified. E.g. ['name', 'keywords', 'description']. Note: slow app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the app icon apple_watch_app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the Apple Watch app icon copyright Metadata: The copyright notice primary_category Metadata: The english name of the primary category (e.g. Business , Books ) secondary_category Metadata: The english name of the secondary category (e.g. Business , Books ) primary_first_sub_category Metadata: The english name of the primary first sub category (e.g. Educational , Puzzle ) primary_second_sub_category Metadata: The english name of the primary second sub category (e.g. Educational , Puzzle ) secondary_first_sub_category Metadata: The english name of the secondary first sub category (e.g. Educational , Puzzle ) secondary_second_sub_category Metadata: The english name of the secondary second sub category (e.g. Educational , Puzzle ) trade_representative_contact_information DEPRECATED! This is no longer used by App Store Connect - Metadata: A hash containing the trade representative contact information app_review_information Metadata: A hash containing the review information app_review_attachment_file Metadata: Path to the app review attachment file description Metadata: The localised app description name Metadata: The localised app name subtitle Metadata: The localised app subtitle keywords Metadata: An array of localised keywords promotional_text Metadata: An array of localised promotional texts release_notes Metadata: Localised release notes for this version privacy_url Metadata: Localised privacy url apple_tv_privacy_policy Metadata: Localised Apple TV privacy policy text support_url Metadata: Localised support url marketing_url Metadata: Localised marketing url languages Metadata: List of languages to activate ignore_language_directory_validation Ignore errors when invalid languages are found in metadata and screenshot directories false precheck_include_in_app_purchases Should precheck check in-app purchases? true app The (spaceship) app ID of the app you want to use/modify * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action appstore CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appstore To pass parameters, make use of the : symbol, for example fastlane run appstore parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Appstore"},{"location":"generated/actions/appstore/#appstore","text":"Alias for the upload_to_app_store action deliver uploads screenshots, metadata and binaries to App Store Connect. Use deliver to submit your app for App Store review. Features \u2022 Quick Start \u2022 Usage \u2022 Tips","title":"appstore"},{"location":"generated/actions/appstore/#features","text":"Upload hundreds of localized screenshots completely automatically Upload a new ipa/pkg file to App Store Connect without Xcode from any Mac Maintain your app metadata locally and push changes back to App Store Connect Easily implement a real Continuous Deployment process using fastlane Store the configuration in git to easily deploy from any Mac, including your Continuous Integration server Get a HTML preview of the fetched metadata before uploading the app metadata and screenshots to iTC Automatically uses precheck to ensure your app has the highest chances of passing app review the first time To upload builds to TestFlight check out pilot .","title":"Features"},{"location":"generated/actions/appstore/#quick-start","text":"The guide will create all the necessary files for you, using the existing app metadata from App Store Connect. cd [your_project_folder] fastlane deliver init Enter your App Store Connect credentials Enter your app identifier Enjoy a good drink, while the computer does all the work for you From now on, you can run fastlane deliver to deploy a new update, or just upload new app metadata and screenshots.","title":"Quick Start"},{"location":"generated/actions/appstore/#usage","text":"Check out your local ./fastlane/metadata and ./fastlane/screenshots folders (if you don't use fastlane it's ./metadata instead) You'll see your metadata from App Store Connect. Feel free to store the metadata in git (not the screenshots). You can now modify it locally and push the changes back to App Store Connect. Run fastlane deliver to upload the app metadata from your local machine fastlane deliver Provide the path to an ipa file to upload and submit your app for review: fastlane deliver --ipa \"App.ipa\" --submit_for_review or you can specify path to pkg file for macOS apps: fastlane deliver --pkg \"MacApp.pkg\" If you use fastlane you don't have to manually specify the path to your ipa / pkg file. This is just a small sub-set of what you can do with deliver , check out the full documentation in #more-options Download existing screenshots from App Store Connect fastlane deliver download_screenshots Download existing metadata from App Store Connect fastlane deliver download_metadata To get a list of available options run fastlane action deliver","title":"Usage"},{"location":"generated/actions/appstore/#more-options","text":"View all available options and their valid values","title":"More options"},{"location":"generated/actions/appstore/#available-options","text":"All the options below can easily be added to your Deliverfile . The great thing: if you use fastlane you can use all these options from your Fastfile too, for example: deliver( submit_for_review: true, metadata_path: \"../folder\" )","title":"Available options"},{"location":"generated/actions/appstore/#metadata","text":"All options below are useful if you want to specify certain app metadata in your Deliverfile or Fastfile","title":"Metadata"},{"location":"generated/actions/appstore/#submit-build","text":"deliver allows you to promote an existing build to production. Below are examples to select a previously uploaded build and submit it for review. fastlane deliver submit_build --build_number 830","title":"Submit Build"},{"location":"generated/actions/appstore/#credentials","text":"A detailed description about how your credentials are handled is available in a credentials_manager .","title":"Credentials"},{"location":"generated/actions/appstore/#tips","text":"","title":"Tips"},{"location":"generated/actions/appstore/#available-language-codes","text":"ar-SA, ca, cs, da, de-DE, el, en-AU, en-CA, en-GB, en-US, es-ES, es-MX, fi, fr-CA, fr-FR, he, hi, hr, hu, id, it, ja, ko, ms, nl-NL, no, pl, pt-BR, pt-PT, ro, ru, sk, sv, th, tr, uk, vi, zh-Hans, zh-Hant","title":"Available language codes"},{"location":"generated/actions/appstore/#available-metadata-folder-options","text":"deliver allows for metadata to be set through .txt files in the metadata folder. This metadata folder location is defaulted to ./fastlane/metadata but can be overridden through the metadata_path parameter. Below are all allowed metadata options.","title":"Available Metadata Folder Options"},{"location":"generated/actions/appstore/#reference","text":"View all available categories, etc.","title":"Reference"},{"location":"generated/actions/appstore/#default-values","text":"Deliver has a special default language code which allows you to provide values that are not localized, and which will be used as defaults when you don\u2019t provide a specific localized value. In order to use default , you will need to tell deliver which languages your app uses. You can do this in either of two ways: Create the folders named with the language in the metadata folder (i.e. fastlane/metadata/en-US or fastlane/metadata/de-DE) Add the following to your Deliverfile languages(['en-US','de-DE']) You can use this either in json within your Deliverfile and/or as folders in your metadata folder. deliver will take the union of both language sets from the Deliverfile and from the metadata folder and create on single set of languages which will be enabled. Imagine that you have localized data for the following language codes: en-US, de-DE, el, it You can set the following in your Deliverfile release_notes({ 'default' => \"Shiny and new\", 'de-DE' => \"glaenzend und neu\" }) Deliver will use \"Shiny and new\" for en-US, el and it. It will use \"glaenzend und neu\" for de-DE. You can do the same with folders default keywords.txt marketing_url.txt name.txt privacy_url.txt support_url.txt release_notes.txt en-US description.txt de-DE description.txt el description.txt it description.txt In this case, default values for keywords, urls, name and release notes are used in all localizations, but each language has a fully localized description","title":"Default values"},{"location":"generated/actions/appstore/#uploading-screenshots-for-ipad-pro-129-inch-3rd-generation","text":"Starting March 20, 2019 Apple's App Store requires 12.9-inch iPad Pro (3rd generation) screenshots additionally to the iPad Pro 2nd generation screenshots . As fastlane historically uses the screenshot dimensions to determine the \"display family\" of a screenshot, this poses a problem as both use the same dimensions and are recognized as the same device family. To solve this a screenshot of a 12.9-inch iPad Pro (3rd generation) must contain either the string iPad Pro (12.9-inch) (3rd generation) , IPAD_PRO_3GEN_129 , or ipadPro129 (Apple's internal naming of the display family for the 3rd generation iPad Pro) in its filename to be assigned the correct display family and to be uploaded to the correct screenshot slot in your app's metadata.","title":"Uploading screenshots for \"iPad Pro (12.9-inch) (3rd generation)\""},{"location":"generated/actions/appstore/#automatically-create-screenshots","text":"If you want to integrate deliver with snapshot , check out fastlane !","title":"Automatically create screenshots"},{"location":"generated/actions/appstore/#jenkins-integration","text":"Detailed instructions about how to set up deliver and fastlane in Jenkins can be found in the fastlane README .","title":"Jenkins integration"},{"location":"generated/actions/appstore/#firewall-issues","text":"deliver uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" fastlane deliver","title":"Firewall Issues"},{"location":"generated/actions/appstore/#http-proxy","text":"iTunes Transporter is a Java application bundled with Xcode. In addition to utilizing the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" , you need to configure the transporter application to use the proxy independently from the system proxy or any environment proxy settings. You can find the configuration file within Xcode: for Xcode11 and later TOOLS_PATH=$( xcode-select -p ) REL_PATH='../SharedFrameworks/ContentDeliveryServices.framework/Versions/A/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" for Xcode10 or earlier TOOLS_PATH=$( xcode-select -p ) REL_PATH='../Applications/Application Loader.app/Contents/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" Add necessary proxy configuration values to the net.properties according to Java Proxy Configuration . As an alternative to editing the properties files, proxy configuration can be specified on the command line directly: DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV -Dhttp.proxyHost=myproxy.com -Dhttp.proxyPort=8080\"","title":"HTTP Proxy"},{"location":"generated/actions/appstore/#limit","text":"App Store Connect has a limit of 150 binary uploads per day.","title":"Limit"},{"location":"generated/actions/appstore/#editing-the-deliverfile","text":"Change syntax highlighting to Ruby .","title":"Editing the Deliverfile"},{"location":"generated/actions/appstore/#provider-short-name","text":"If you are on multiple App Store Connect teams, deliver needs a provider short name to know where to upload your binary. deliver will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option. appstore Supported platforms ios, mac Author @KrauseFx","title":"Provider Short Name"},{"location":"generated/actions/appstore/#3-examples","text":"upload_to_app_store( force: true, # Set to true to skip verification of HTML preview itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) deliver # alias for \"upload_to_app_store\" appstore # alias for \"upload_to_app_store\"","title":"3 Examples"},{"location":"generated/actions/appstore/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of your app * app_version The version that should be edited or created ipa Path to your ipa file * pkg Path to your pkg file * build_number If set the given build number (already uploaded to iTC) will be used instead of the current built one platform The platform to use (optional) ios edit_live Modify live metadata, this option disables ipa upload and screenshot upload false use_live_version Force usage of live version rather than edit version false metadata_path Path to the folder containing the metadata files screenshots_path Path to the folder containing the screenshots skip_binary_upload Skip uploading an ipa or pkg to App Store Connect false skip_screenshots Don't upload the screenshots false skip_metadata Don't upload the metadata (e.g. title, description). This will still upload screenshots false skip_app_version_update Don\u2019t create or update the app version that is being prepared for submission false force Skip verification of HTML preview file false overwrite_screenshots Clear all previously uploaded screenshots before uploading the new ones false sync_screenshots Sync screenshots with local ones. This is currently beta option so set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well false submit_for_review Submit the new version for Review after uploading everything false verify_only Verifies archive with App Store Connect without uploading false reject_if_possible Rejects the previously submitted build if it's in a state where it's possible false automatic_release Should the app be automatically released once it's approved? (Can not be used together with auto_release_date ) auto_release_date Date in milliseconds for automatically releasing on pending approval (Can not be used together with automatic_release ) phased_release Enable the phased release feature of iTC false reset_ratings Reset the summary rating when you release a new version of the application false price_tier The price tier of this application app_rating_config_path Path to the app rating's config submission_information Extra information for the submission (e.g. compliance specifications, IDFA settings) team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your Developer Portal team, if you're in multiple teams. Different from your iTC team ID! * dev_portal_team_name The name of your Developer Portal team if you're in multiple teams * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column * run_precheck_before_submit Run precheck before submitting to app review true precheck_default_rule_level The default precheck rule level unless otherwise configured :warn individual_metadata_items DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - An array of localized metadata items to upload individually by language so that errors can be identified. E.g. ['name', 'keywords', 'description']. Note: slow app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the app icon apple_watch_app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the Apple Watch app icon copyright Metadata: The copyright notice primary_category Metadata: The english name of the primary category (e.g. Business , Books ) secondary_category Metadata: The english name of the secondary category (e.g. Business , Books ) primary_first_sub_category Metadata: The english name of the primary first sub category (e.g. Educational , Puzzle ) primary_second_sub_category Metadata: The english name of the primary second sub category (e.g. Educational , Puzzle ) secondary_first_sub_category Metadata: The english name of the secondary first sub category (e.g. Educational , Puzzle ) secondary_second_sub_category Metadata: The english name of the secondary second sub category (e.g. Educational , Puzzle ) trade_representative_contact_information DEPRECATED! This is no longer used by App Store Connect - Metadata: A hash containing the trade representative contact information app_review_information Metadata: A hash containing the review information app_review_attachment_file Metadata: Path to the app review attachment file description Metadata: The localised app description name Metadata: The localised app name subtitle Metadata: The localised app subtitle keywords Metadata: An array of localised keywords promotional_text Metadata: An array of localised promotional texts release_notes Metadata: Localised release notes for this version privacy_url Metadata: Localised privacy url apple_tv_privacy_policy Metadata: Localised Apple TV privacy policy text support_url Metadata: Localised support url marketing_url Metadata: Localised marketing url languages Metadata: List of languages to activate ignore_language_directory_validation Ignore errors when invalid languages are found in metadata and screenshot directories false precheck_include_in_app_purchases Should precheck check in-app purchases? true app The (spaceship) app ID of the app you want to use/modify * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/appstore/#documentation","text":"To show the documentation in your terminal, run fastlane action appstore","title":"Documentation"},{"location":"generated/actions/appstore/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run appstore To pass parameters, make use of the : symbol, for example fastlane run appstore parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/appstore/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/apteligent/","text":"apteligent Upload dSYM file to Apteligent (Crittercism) apteligent Supported platforms ios Author @Mo7amedFouad 1 Example apteligent( app_id: \"...\", api_key: \"...\" ) Parameters Key Description Default dsym dSYM.zip file to upload to Apteligent app_id Apteligent App ID key e.g. 569f5c87cb99e10e00c7xxxx api_key Apteligent App API key e.g. IXPQIi8yCbHaLliqzRoo065tH0lxxxxx * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action apteligent CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run apteligent To pass parameters, make use of the : symbol, for example fastlane run apteligent parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Apteligent"},{"location":"generated/actions/apteligent/#apteligent","text":"Upload dSYM file to Apteligent (Crittercism) apteligent Supported platforms ios Author @Mo7amedFouad","title":"apteligent"},{"location":"generated/actions/apteligent/#1-example","text":"apteligent( app_id: \"...\", api_key: \"...\" )","title":"1 Example"},{"location":"generated/actions/apteligent/#parameters","text":"Key Description Default dsym dSYM.zip file to upload to Apteligent app_id Apteligent App ID key e.g. 569f5c87cb99e10e00c7xxxx api_key Apteligent App API key e.g. IXPQIi8yCbHaLliqzRoo065tH0lxxxxx * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/apteligent/#documentation","text":"To show the documentation in your terminal, run fastlane action apteligent","title":"Documentation"},{"location":"generated/actions/apteligent/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run apteligent To pass parameters, make use of the : symbol, for example fastlane run apteligent parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/apteligent/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/artifactory/","text":"artifactory This action uploads an artifact to artifactory Connect to the artifactory server using either a username/password or an api_key artifactory Supported platforms ios, android, mac Author @koglinjg, @tommeier 2 Examples artifactory( username: \"username\", password: \"password\", endpoint: \"https://artifactory.example.com/artifactory/\", file: \"example.ipa\", # File to upload repo: \"mobile_artifacts\", # Artifactory repo repo_path: \"/ios/appname/example-major.minor.ipa\" # Path to place the artifact including its filename ) artifactory( api_key: \"api_key\", endpoint: \"https://artifactory.example.com/artifactory/\", file: \"example.ipa\", # File to upload repo: \"mobile_artifacts\", # Artifactory repo repo_path: \"/ios/appname/example-major.minor.ipa\" # Path to place the artifact including its filename ) Parameters Key Description Default file File to be uploaded to artifactory repo Artifactory repo to put the file in repo_path Path to deploy within the repo, including filename endpoint Artifactory endpoint username Artifactory username password Artifactory password api_key Artifactory API key properties Artifact properties hash {} ssl_pem_file Location of pem file to use for ssl verification ssl_verify Verify SSL true proxy_username Proxy username proxy_password Proxy password proxy_address Proxy address proxy_port Proxy port read_timeout Read timeout * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The artifactory action generates the following Lane Variables: SharedValue Description SharedValues::ARTIFACTORY_DOWNLOAD_URL The download url for file uploaded SharedValues::ARTIFACTORY_DOWNLOAD_SIZE The reported file size for file uploaded To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action artifactory CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run artifactory To pass parameters, make use of the : symbol, for example fastlane run artifactory parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Artifactory"},{"location":"generated/actions/artifactory/#artifactory","text":"This action uploads an artifact to artifactory Connect to the artifactory server using either a username/password or an api_key artifactory Supported platforms ios, android, mac Author @koglinjg, @tommeier","title":"artifactory"},{"location":"generated/actions/artifactory/#2-examples","text":"artifactory( username: \"username\", password: \"password\", endpoint: \"https://artifactory.example.com/artifactory/\", file: \"example.ipa\", # File to upload repo: \"mobile_artifacts\", # Artifactory repo repo_path: \"/ios/appname/example-major.minor.ipa\" # Path to place the artifact including its filename ) artifactory( api_key: \"api_key\", endpoint: \"https://artifactory.example.com/artifactory/\", file: \"example.ipa\", # File to upload repo: \"mobile_artifacts\", # Artifactory repo repo_path: \"/ios/appname/example-major.minor.ipa\" # Path to place the artifact including its filename )","title":"2 Examples"},{"location":"generated/actions/artifactory/#parameters","text":"Key Description Default file File to be uploaded to artifactory repo Artifactory repo to put the file in repo_path Path to deploy within the repo, including filename endpoint Artifactory endpoint username Artifactory username password Artifactory password api_key Artifactory API key properties Artifact properties hash {} ssl_pem_file Location of pem file to use for ssl verification ssl_verify Verify SSL true proxy_username Proxy username proxy_password Proxy password proxy_address Proxy address proxy_port Proxy port read_timeout Read timeout * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/artifactory/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The artifactory action generates the following Lane Variables: SharedValue Description SharedValues::ARTIFACTORY_DOWNLOAD_URL The download url for file uploaded SharedValues::ARTIFACTORY_DOWNLOAD_SIZE The reported file size for file uploaded To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/artifactory/#documentation","text":"To show the documentation in your terminal, run fastlane action artifactory","title":"Documentation"},{"location":"generated/actions/artifactory/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run artifactory To pass parameters, make use of the : symbol, for example fastlane run artifactory parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/artifactory/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/automatic_code_signing/","text":"automatic_code_signing Configures Xcode's Codesigning options Please use update_code_signing_settings action instead. Configures Xcode's Codesigning options of all targets in the project automatic_code_signing Supported platforms ios, mac Author @mathiasAichinger, @hjanuschka, @p4checo, @portellaa, @aeons Returns The current status (boolean) of codesigning after modification 8 Examples # enable automatic code signing enable_automatic_code_signing enable_automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\" ) # disable automatic code signing disable_automatic_code_signing disable_automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\" ) # also set team id disable_automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\", team_id: \"XXXX\" ) # Only specific targets disable_automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\", use_automatic_signing: false, targets: [\"demo\"] ) # via generic action automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\", use_automatic_signing: false ) automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\", use_automatic_signing: true ) Parameters Key Description Default path Path to your Xcode project * use_automatic_signing Defines if project should use automatic signing false team_id Team ID, is used when upgrading project targets Specify targets you want to toggle the signing mech. (default to all targets) code_sign_identity Code signing identity type (iPhone Developer, iPhone Distribution) profile_name Provisioning profile name to use for code signing profile_uuid Provisioning profile UUID to use for code signing bundle_identifier Application Product Bundle Identifier * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action automatic_code_signing CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run automatic_code_signing To pass parameters, make use of the : symbol, for example fastlane run automatic_code_signing parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Automatic code signing"},{"location":"generated/actions/automatic_code_signing/#automatic_code_signing","text":"Configures Xcode's Codesigning options Please use update_code_signing_settings action instead. Configures Xcode's Codesigning options of all targets in the project automatic_code_signing Supported platforms ios, mac Author @mathiasAichinger, @hjanuschka, @p4checo, @portellaa, @aeons Returns The current status (boolean) of codesigning after modification","title":"automatic_code_signing"},{"location":"generated/actions/automatic_code_signing/#8-examples","text":"# enable automatic code signing enable_automatic_code_signing enable_automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\" ) # disable automatic code signing disable_automatic_code_signing disable_automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\" ) # also set team id disable_automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\", team_id: \"XXXX\" ) # Only specific targets disable_automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\", use_automatic_signing: false, targets: [\"demo\"] ) # via generic action automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\", use_automatic_signing: false ) automatic_code_signing( path: \"demo-project/demo/demo.xcodeproj\", use_automatic_signing: true )","title":"8 Examples"},{"location":"generated/actions/automatic_code_signing/#parameters","text":"Key Description Default path Path to your Xcode project * use_automatic_signing Defines if project should use automatic signing false team_id Team ID, is used when upgrading project targets Specify targets you want to toggle the signing mech. (default to all targets) code_sign_identity Code signing identity type (iPhone Developer, iPhone Distribution) profile_name Provisioning profile name to use for code signing profile_uuid Provisioning profile UUID to use for code signing bundle_identifier Application Product Bundle Identifier * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/automatic_code_signing/#documentation","text":"To show the documentation in your terminal, run fastlane action automatic_code_signing","title":"Documentation"},{"location":"generated/actions/automatic_code_signing/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run automatic_code_signing To pass parameters, make use of the : symbol, for example fastlane run automatic_code_signing parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/automatic_code_signing/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/backup_file/","text":"backup_file This action backs up your file to \"[path].back\" backup_file Supported platforms ios, android, mac Author @gin0606 1 Example backup_file(path: \"/path/to/file\") Parameters Key Description Default path Path to the file you want to backup * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action backup_file CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run backup_file To pass parameters, make use of the : symbol, for example fastlane run backup_file parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Backup file"},{"location":"generated/actions/backup_file/#backup_file","text":"This action backs up your file to \"[path].back\" backup_file Supported platforms ios, android, mac Author @gin0606","title":"backup_file"},{"location":"generated/actions/backup_file/#1-example","text":"backup_file(path: \"/path/to/file\")","title":"1 Example"},{"location":"generated/actions/backup_file/#parameters","text":"Key Description Default path Path to the file you want to backup * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/backup_file/#documentation","text":"To show the documentation in your terminal, run fastlane action backup_file","title":"Documentation"},{"location":"generated/actions/backup_file/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run backup_file To pass parameters, make use of the : symbol, for example fastlane run backup_file parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/backup_file/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/backup_xcarchive/","text":"backup_xcarchive Save your [zipped] xcarchive elsewhere from default path backup_xcarchive Supported platforms ios, mac Author @dral3x 1 Example backup_xcarchive( xcarchive: \"/path/to/file.xcarchive\", # Optional if you use the `xcodebuild` action destination: \"/somewhere/else/\", # Where the backup should be created zip_filename: \"file.xcarchive\", # The name of the backup file zip: false, # Enable compression of the archive. Defaults to `true`. versioned: true # Create a versioned (date and app version) subfolder where to put the archive ) Parameters Key Description Default xcarchive Path to your xcarchive file. Optional if you use the xcodebuild action * destination Where your archive will be placed zip Enable compression of the archive true zip_filename Filename of the compressed archive. Will be appended by .xcarchive.zip . Default value is the output xcarchive filename * versioned Create a versioned (date and app version) subfolder where to put the archive true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The backup_xcarchive action generates the following Lane Variables: SharedValue Description SharedValues::BACKUP_XCARCHIVE_FILE Path to your saved xcarchive (compressed) file To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action backup_xcarchive CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run backup_xcarchive To pass parameters, make use of the : symbol, for example fastlane run backup_xcarchive parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Backup xcarchive"},{"location":"generated/actions/backup_xcarchive/#backup_xcarchive","text":"Save your [zipped] xcarchive elsewhere from default path backup_xcarchive Supported platforms ios, mac Author @dral3x","title":"backup_xcarchive"},{"location":"generated/actions/backup_xcarchive/#1-example","text":"backup_xcarchive( xcarchive: \"/path/to/file.xcarchive\", # Optional if you use the `xcodebuild` action destination: \"/somewhere/else/\", # Where the backup should be created zip_filename: \"file.xcarchive\", # The name of the backup file zip: false, # Enable compression of the archive. Defaults to `true`. versioned: true # Create a versioned (date and app version) subfolder where to put the archive )","title":"1 Example"},{"location":"generated/actions/backup_xcarchive/#parameters","text":"Key Description Default xcarchive Path to your xcarchive file. Optional if you use the xcodebuild action * destination Where your archive will be placed zip Enable compression of the archive true zip_filename Filename of the compressed archive. Will be appended by .xcarchive.zip . Default value is the output xcarchive filename * versioned Create a versioned (date and app version) subfolder where to put the archive true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/backup_xcarchive/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The backup_xcarchive action generates the following Lane Variables: SharedValue Description SharedValues::BACKUP_XCARCHIVE_FILE Path to your saved xcarchive (compressed) file To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/backup_xcarchive/#documentation","text":"To show the documentation in your terminal, run fastlane action backup_xcarchive","title":"Documentation"},{"location":"generated/actions/backup_xcarchive/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run backup_xcarchive To pass parameters, make use of the : symbol, for example fastlane run backup_xcarchive parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/backup_xcarchive/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/badge/","text":"badge Automatically add a badge to your app icon Please use the badge plugin instead. This action will add a light/dark badge onto your app icon. You can also provide your custom badge/overlay or add a shield for more customization. More info: https://github.com/HazAT/badge Note : If you want to reset the badge back to default, you can use sh 'git checkout -- /Assets.xcassets/' . badge Supported platforms ios, android, mac Author @DanielGri 4 Examples badge(dark: true) badge(alpha: true) badge(custom: \"/Users/xxx/Desktop/badge.png\") badge(shield: \"Version-0.0.3-blue\", no_badge: true) Parameters Key Description Default dark Adds a dark flavored badge on top of your icon custom Add your custom overlay/badge image no_badge Hides the beta badge shield Add a shield to your app icon from shields.io alpha Adds and alpha badge instead of the default beta one path Sets the root path to look for AppIcons . shield_io_timeout Set custom duration for the timeout of the shields.io request in seconds glob Glob pattern for finding image files alpha_channel Keeps/adds an alpha channel to the icon (useful for android icons) shield_gravity Position of shield on icon. Default: North - Choices include: NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast shield_no_resize Shield image will no longer be resized to aspect fill the full icon. Instead it will only be shrunk to not exceed the icon graphic * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action badge CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run badge To pass parameters, make use of the : symbol, for example fastlane run badge parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Badge"},{"location":"generated/actions/badge/#badge","text":"Automatically add a badge to your app icon Please use the badge plugin instead. This action will add a light/dark badge onto your app icon. You can also provide your custom badge/overlay or add a shield for more customization. More info: https://github.com/HazAT/badge Note : If you want to reset the badge back to default, you can use sh 'git checkout -- /Assets.xcassets/' . badge Supported platforms ios, android, mac Author @DanielGri","title":"badge"},{"location":"generated/actions/badge/#4-examples","text":"badge(dark: true) badge(alpha: true) badge(custom: \"/Users/xxx/Desktop/badge.png\") badge(shield: \"Version-0.0.3-blue\", no_badge: true)","title":"4 Examples"},{"location":"generated/actions/badge/#parameters","text":"Key Description Default dark Adds a dark flavored badge on top of your icon custom Add your custom overlay/badge image no_badge Hides the beta badge shield Add a shield to your app icon from shields.io alpha Adds and alpha badge instead of the default beta one path Sets the root path to look for AppIcons . shield_io_timeout Set custom duration for the timeout of the shields.io request in seconds glob Glob pattern for finding image files alpha_channel Keeps/adds an alpha channel to the icon (useful for android icons) shield_gravity Position of shield on icon. Default: North - Choices include: NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast shield_no_resize Shield image will no longer be resized to aspect fill the full icon. Instead it will only be shrunk to not exceed the icon graphic * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/badge/#documentation","text":"To show the documentation in your terminal, run fastlane action badge","title":"Documentation"},{"location":"generated/actions/badge/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run badge To pass parameters, make use of the : symbol, for example fastlane run badge parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/badge/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/build_and_upload_to_appetize/","text":"build_and_upload_to_appetize Generate and upload an ipa file to appetize.io This should be called from danger. More information in the device_grid guide . build_and_upload_to_appetize Supported platforms ios Author @KrauseFx Parameters Key Description Default xcodebuild Parameters that are passed to the xcodebuild action {} scheme The scheme to build. Can also be passed using the xcodebuild parameter api_token Appetize.io API Token public_key If not provided, a new app will be created. If provided, the existing build will be overwritten note Notes you wish to add to the uploaded app timeout The number of seconds to wait until automatically ending the session due to user inactivity. Must be 30, 60, 90, 120, 180, 300, 600, 1800, 3600 or 7200. Default is 120 * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action build_and_upload_to_appetize CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_and_upload_to_appetize To pass parameters, make use of the : symbol, for example fastlane run build_and_upload_to_appetize parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Build and upload to appetize"},{"location":"generated/actions/build_and_upload_to_appetize/#build_and_upload_to_appetize","text":"Generate and upload an ipa file to appetize.io This should be called from danger. More information in the device_grid guide . build_and_upload_to_appetize Supported platforms ios Author @KrauseFx","title":"build_and_upload_to_appetize"},{"location":"generated/actions/build_and_upload_to_appetize/#parameters","text":"Key Description Default xcodebuild Parameters that are passed to the xcodebuild action {} scheme The scheme to build. Can also be passed using the xcodebuild parameter api_token Appetize.io API Token public_key If not provided, a new app will be created. If provided, the existing build will be overwritten note Notes you wish to add to the uploaded app timeout The number of seconds to wait until automatically ending the session due to user inactivity. Must be 30, 60, 90, 120, 180, 300, 600, 1800, 3600 or 7200. Default is 120 * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/build_and_upload_to_appetize/#documentation","text":"To show the documentation in your terminal, run fastlane action build_and_upload_to_appetize","title":"Documentation"},{"location":"generated/actions/build_and_upload_to_appetize/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_and_upload_to_appetize To pass parameters, make use of the : symbol, for example fastlane run build_and_upload_to_appetize parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/build_and_upload_to_appetize/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/build_android_app/","text":"build_android_app Alias for the gradle action Run ./gradlew tasks to get a list of all available gradle tasks for your project build_android_app Supported platforms ios, android Author @KrauseFx, @lmirosevic Returns The output of running the gradle task 1 Example gradle( task: \"assemble\", flavor: \"WorldDomination\", build_type: \"Release\" ) To build an AAB use: gradle( task: \"bundle\", flavor: \"WorldDomination\", build_type: \"Release\" ) You can pass multiple gradle tasks: gradle( tasks: [\"assembleDebug\", \"bundleDebug\"] ) You can pass properties to gradle: gradle( # ... properties: { \"exampleNumber\" => 100, \"exampleString\" => \"1.0.0\", # ... } ) You can use this to change the version code and name of your app: gradle( # ... properties: { \"android.injected.version.code\" => 100, \"android.injected.version.name\" => \"1.0.0\", # ... } ) You can use this to automatically sign and zipalign your app: gradle( task: \"assemble\", build_type: \"Release\", print_command: false, properties: { \"android.injected.signing.store.file\" => \"keystore.jks\", \"android.injected.signing.store.password\" => \"store_password\", \"android.injected.signing.key.alias\" => \"key_alias\", \"android.injected.signing.key.password\" => \"key_password\", } ) If you need to pass sensitive information through the gradle action, and don't want the generated command to be printed before it is run, you can suppress that: gradle( # ... print_command: false ) You can also suppress printing the output generated by running the generated Gradle command: gradle( # ... print_command_output: false ) To pass any other CLI flags to gradle use: gradle( # ... flags: \"--exitcode --xml file.xml\" ) Delete the build directory, generated APKs and AABs gradle( task: \"clean\" ) Parameters Key Description Default task The gradle task you want to execute, e.g. assemble , bundle or test . For tasks such as assembleMyFlavorRelease you should use gradle(task: 'assemble', flavor: 'Myflavor', build_type: 'Release') flavor The flavor that you want the task for, e.g. MyFlavor . If you are running the assemble task in a multi-flavor project, and you rely on Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH] then you must specify a flavor here or else this value will be undefined build_type The build type that you want the task for, e.g. Release . Useful for some tasks such as assemble tasks The multiple gradle tasks that you want to execute, e.g. [assembleDebug, bundleDebug] flags All parameter flags you want to pass to the gradle command, e.g. --exitcode --xml file.xml project_dir The root directory of the gradle project . gradle_path The path to your gradlew . If you specify a relative path, it is assumed to be relative to the project_dir properties Gradle properties to be exposed to the gradle script system_properties Gradle system properties to be exposed to the gradle script serial Android serial, which device should be used for this command '' print_command Control whether the generated Gradle command is printed as output before running it (true/false) true print_command_output Control whether the output produced by given Gradle command is printed while running (true/false) true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The build_android_app action generates the following Lane Variables: SharedValue Description SharedValues::GRADLE_APK_OUTPUT_PATH The path to the newly generated apk file. Undefined in a multi-variant assemble scenario SharedValues::GRADLE_ALL_APK_OUTPUT_PATHS When running a multi-variant assemble , the array of signed apk's that were generated SharedValues::GRADLE_FLAVOR The flavor, e.g. MyFlavor SharedValues::GRADLE_BUILD_TYPE The build type, e.g. Release SharedValues::GRADLE_AAB_OUTPUT_PATH The path to the most recent Android app bundle SharedValues::GRADLE_ALL_AAB_OUTPUT_PATHS The paths to the most recent Android app bundles SharedValues::GRADLE_OUTPUT_JSON_OUTPUT_PATH The path to the most recent output.json file SharedValues::GRADLE_ALL_OUTPUT_JSON_OUTPUT_PATHS The path to the newly generated output.json files SharedValues::GRADLE_MAPPING_TXT_OUTPUT_PATH The path to the most recent mapping.txt file SharedValues::GRADLE_ALL_MAPPING_TXT_OUTPUT_PATHS The path to the newly generated mapping.txt files To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action build_android_app CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_android_app To pass parameters, make use of the : symbol, for example fastlane run build_android_app parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Build android app"},{"location":"generated/actions/build_android_app/#build_android_app","text":"Alias for the gradle action Run ./gradlew tasks to get a list of all available gradle tasks for your project build_android_app Supported platforms ios, android Author @KrauseFx, @lmirosevic Returns The output of running the gradle task","title":"build_android_app"},{"location":"generated/actions/build_android_app/#1-example","text":"gradle( task: \"assemble\", flavor: \"WorldDomination\", build_type: \"Release\" ) To build an AAB use: gradle( task: \"bundle\", flavor: \"WorldDomination\", build_type: \"Release\" ) You can pass multiple gradle tasks: gradle( tasks: [\"assembleDebug\", \"bundleDebug\"] ) You can pass properties to gradle: gradle( # ... properties: { \"exampleNumber\" => 100, \"exampleString\" => \"1.0.0\", # ... } ) You can use this to change the version code and name of your app: gradle( # ... properties: { \"android.injected.version.code\" => 100, \"android.injected.version.name\" => \"1.0.0\", # ... } ) You can use this to automatically sign and zipalign your app: gradle( task: \"assemble\", build_type: \"Release\", print_command: false, properties: { \"android.injected.signing.store.file\" => \"keystore.jks\", \"android.injected.signing.store.password\" => \"store_password\", \"android.injected.signing.key.alias\" => \"key_alias\", \"android.injected.signing.key.password\" => \"key_password\", } ) If you need to pass sensitive information through the gradle action, and don't want the generated command to be printed before it is run, you can suppress that: gradle( # ... print_command: false ) You can also suppress printing the output generated by running the generated Gradle command: gradle( # ... print_command_output: false ) To pass any other CLI flags to gradle use: gradle( # ... flags: \"--exitcode --xml file.xml\" ) Delete the build directory, generated APKs and AABs gradle( task: \"clean\" )","title":"1 Example"},{"location":"generated/actions/build_android_app/#parameters","text":"Key Description Default task The gradle task you want to execute, e.g. assemble , bundle or test . For tasks such as assembleMyFlavorRelease you should use gradle(task: 'assemble', flavor: 'Myflavor', build_type: 'Release') flavor The flavor that you want the task for, e.g. MyFlavor . If you are running the assemble task in a multi-flavor project, and you rely on Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH] then you must specify a flavor here or else this value will be undefined build_type The build type that you want the task for, e.g. Release . Useful for some tasks such as assemble tasks The multiple gradle tasks that you want to execute, e.g. [assembleDebug, bundleDebug] flags All parameter flags you want to pass to the gradle command, e.g. --exitcode --xml file.xml project_dir The root directory of the gradle project . gradle_path The path to your gradlew . If you specify a relative path, it is assumed to be relative to the project_dir properties Gradle properties to be exposed to the gradle script system_properties Gradle system properties to be exposed to the gradle script serial Android serial, which device should be used for this command '' print_command Control whether the generated Gradle command is printed as output before running it (true/false) true print_command_output Control whether the output produced by given Gradle command is printed while running (true/false) true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/build_android_app/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The build_android_app action generates the following Lane Variables: SharedValue Description SharedValues::GRADLE_APK_OUTPUT_PATH The path to the newly generated apk file. Undefined in a multi-variant assemble scenario SharedValues::GRADLE_ALL_APK_OUTPUT_PATHS When running a multi-variant assemble , the array of signed apk's that were generated SharedValues::GRADLE_FLAVOR The flavor, e.g. MyFlavor SharedValues::GRADLE_BUILD_TYPE The build type, e.g. Release SharedValues::GRADLE_AAB_OUTPUT_PATH The path to the most recent Android app bundle SharedValues::GRADLE_ALL_AAB_OUTPUT_PATHS The paths to the most recent Android app bundles SharedValues::GRADLE_OUTPUT_JSON_OUTPUT_PATH The path to the most recent output.json file SharedValues::GRADLE_ALL_OUTPUT_JSON_OUTPUT_PATHS The path to the newly generated output.json files SharedValues::GRADLE_MAPPING_TXT_OUTPUT_PATH The path to the most recent mapping.txt file SharedValues::GRADLE_ALL_MAPPING_TXT_OUTPUT_PATHS The path to the newly generated mapping.txt files To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/build_android_app/#documentation","text":"To show the documentation in your terminal, run fastlane action build_android_app","title":"Documentation"},{"location":"generated/actions/build_android_app/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_android_app To pass parameters, make use of the : symbol, for example fastlane run build_android_app parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/build_android_app/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/build_app/","text":"build_app Easily build and sign your app (via gym ) Features \u2022 Usage \u2022 Tips gym is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. What's gym? gym builds and packages iOS apps for you. It takes care of all the heavy lifting and makes it super easy to generate a signed ipa or app file \ud83d\udcaa gym is a replacement for shenzhen . Before gym xcodebuild clean archive -archivePath build/MyApp \\ -scheme MyApp xcodebuild -exportArchive \\ -exportFormat ipa \\ -archivePath \"build/MyApp.xcarchive\" \\ -exportPath \"build/MyApp.ipa\" \\ -exportProvisioningProfile \"ProvisioningProfileName\" With gym fastlane gym Why gym ? gym uses the latest APIs to build and sign your application which results in much faster build times. gym Features \ud83d\ude80 gym builds 30% faster than other build tools like shenzhen \ud83c\udfc1 Beautiful inline build output \ud83d\udcd6 Helps you resolve common build errors like code signing issues \ud83d\udea0 Sensible defaults: Automatically detect the project, its schemes and more \ud83d\udd17 Works perfectly with fastlane and other tools \ud83d\udce6 Automatically generates an ipa and a compressed dSYM file \ud83d\ude85 Don't remember any complicated build commands, just gym \ud83d\udd27 Easy and dynamic configuration using parameters and environment variables \ud83d\udcbe Store common build settings in a Gymfile \ud83d\udce4 All archives are stored and accessible in the Xcode Organizer \ud83d\udcbb Supports both iOS and Mac applications Usage fastlane gym That's all you need to build your application. If you want more control, here are some available parameters: fastlane gym --workspace \"Example.xcworkspace\" --scheme \"AppName\" --clean If you need to use a different Xcode installation, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" fastlane gym For a list of all available parameters use fastlane action gym If you run into any issues, use the verbose mode to get more information fastlane gym --verbose Set the right export method if you're not uploading to App Store or TestFlight: fastlane gym --export_method ad-hoc To pass boolean parameters make sure to use gym like this: fastlane gym --include_bitcode true --include_symbols false To access the raw xcodebuild output open ~/Library/Logs/gym Gymfile Since you might want to manually trigger a new build but don't want to specify all the parameters every time, you can store your defaults in a so called Gymfile . Run fastlane gym init to create a new configuration file. Example: scheme(\"Example\") sdk(\"iphoneos9.0\") clean(true) output_directory(\"./build\") # store the ipa in this folder output_name(\"MyApp\") # the name of the ipa file Export options Since Xcode 7, gym is using new Xcode API which allows us to specify export options using plist file. By default gym creates this file for you and you are able to modify some parameters by using export_method , export_team_id , include_symbols or include_bitcode . If you want to have more options, like creating manifest file for app thinning, you can provide your own plist file: export_options(\"./ExportOptions.plist\") or you can provide hash of values directly in the Gymfile : export_options({ method: \"ad-hoc\", manifest: { appURL: \"https://example.com/My App.ipa\", }, thinning: \"\" }) Optional: If gym can't automatically detect the provisioning profiles to use, you can pass a mapping of bundle identifiers to provisioning profiles: build_app( scheme: \"Release\", export_method: \"app-store\", export_options: { provisioningProfiles: { \"com.example.bundleid\" => \"Provisioning Profile Name\", \"com.example.bundleid2\" => \"Provisioning Profile Name 2\" } } ) Note : If you use fastlane with match you don't need to provide those values manually, unless you pass a plist file into export_options For the list of available options run xcodebuild -help . Setup code signing More information on how to get started with codesigning Docs on how to set up your Xcode project Automating the whole process gym works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :beta do scan gym(scheme: \"MyApp\") crashlytics end # error block is executed when a error occurs error do |lane, exception| slack( # message with short human friendly message message: exception.to_s, success: false, # Output containing extended log output payload: { \"Output\" => exception.error_info.to_s } ) end When gym raises an error the error_info property will contain the process output in case you want to display the error in 3rd party tools such as Slack. You can then easily switch between the beta provider (e.g. testflight , hockey , s3 and more). How does it work? gym uses the latest APIs to build and sign your application. The 2 main components are xcodebuild xcpretty When you run gym without the --silent mode it will print out every command it executes. To build the archive gym uses the following command: set -o pipefail && \\ xcodebuild -scheme 'Example' \\ -project './Example.xcodeproj' \\ -configuration 'Release' \\ -destination 'generic/platform=iOS' \\ -archivePath '/Users/felixkrause/Library/Developer/Xcode/Archives/2015-08-11/ExampleProductName 2015-08-11 18.15.30.xcarchive' \\ archive | xcpretty After building the archive it is being checked by gym . If it's valid, it gets packaged up and signed into an ipa file. gym automatically chooses a different packaging method depending on the version of Xcode you're using. Xcode 7 and above /usr/bin/xcrun path/to/xcbuild-safe.sh -exportArchive \\ -exportOptionsPlist '/tmp/gym_config_1442852529.plist' \\ -archivePath '/Users/fkrause/Library/Developer/Xcode/Archives/2015-09-21/App 2015-09-21 09.21.56.xcarchive' \\ -exportPath '/tmp/1442852529' gym makes use of the new Xcode 7 API which allows us to specify the export options using a plist file. You can find more information about the available options by running xcodebuild --help . Using this method there are no workarounds for WatchKit or Swift required, as it uses the same technique Xcode uses when exporting your binary. Note: the xcbuild-safe.sh script wraps around xcodebuild to workaround some incompatibilities. Use 'ProvisionQL' for advanced Quick Look in Finder Install ProvisionQL . It will show you ipa files like this: build_app Supported platforms ios, mac Author @KrauseFx Returns The absolute path to the generated ipa file 5 Examples build_app(scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\") build_app( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", silent: true, clean: true, output_directory: \"path/to/dir\", # Destination directory. Defaults to current directory. output_name: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) sdk: \"iOS 11.1\" # use SDK as the name or path of the base SDK when building the project. ) gym # alias for \"build_app\" build_ios_app # alias for \"build_app (only iOS options)\" build_mac_app # alias for \"build_app (only macOS options)\" Parameters Key Description Default workspace Path to the workspace file project Path to the project file scheme The project's scheme. Make sure it's marked as Shared clean Should the project be cleaned before building it? false output_directory The directory in which the ipa file should be stored in . output_name The name of the resulting ipa file configuration The configuration to use when building the app. Defaults to 'Release' * silent Hide all information that's not necessary while building false codesigning_identity The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH' skip_package_ipa Should we skip packaging the ipa? false skip_package_pkg Should we skip packaging the pkg? false include_symbols Should the ipa file include symbols? include_bitcode Should the ipa file include bitcode? export_method Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application export_options Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options export_xcargs Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" skip_build_archive Export ipa from previously built xcarchive. Uses archive_path as source skip_archive After building, don't archive, effectively not including -archivePath param skip_codesigning Build without codesigning catalyst_platform Platform to build when using a Catalyst enabled app. Valid values are: ios, macos installer_cert_name Full name of 3rd Party Mac Developer Installer or Developer ID Installer certificate. Example: 3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ) build_path The directory in which the archive should be stored in archive_path The path to the created archive derived_data_path The directory where built products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false result_bundle_path Path to the result bundle directory to create. Ignored if result_bundle if false buildlog_path The directory where to store the build log * sdk The SDK that should be used for building the application toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a) destination Use a custom destination for building the app export_team_id Optional: Sometimes you need to specify a team id when exporting the ipa file xcargs Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * build_timing_summary Create a build timing summary false disable_xcpretty DEPRECATED! Use xcodebuild_formatter: '' instead - Disable xcpretty formatting of build output xcpretty_test_format Use the test (RSpec style) format for build output xcpretty_formatter A custom xcpretty formatter to use xcpretty_report_junit Have xcpretty create a JUnit-style XML report at the provided path xcpretty_report_html Have xcpretty create a simple HTML report at the provided path xcpretty_report_json Have xcpretty create a JSON compilation database at the provided path xcpretty_utf Have xcpretty use unicode encoding when reporting builds analyze_build_time Analyze the project build time and store the output in 'culprits.txt' file skip_profile_detection Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used false xcodebuild_command Allows for override of the default xcodebuild command xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The build_app action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::PKG_OUTPUT_PATH The path to the newly generated pkg file SharedValues::DSYM_OUTPUT_PATH The path to the dSYM files SharedValues::XCODEBUILD_ARCHIVE The path to the xcodebuild archive To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action build_app CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_app To pass parameters, make use of the : symbol, for example fastlane run build_app parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Build app"},{"location":"generated/actions/build_app/#build_app","text":"Easily build and sign your app (via gym ) Features \u2022 Usage \u2022 Tips","title":"build_app"},{"location":"generated/actions/build_app/#whats-gym","text":"gym builds and packages iOS apps for you. It takes care of all the heavy lifting and makes it super easy to generate a signed ipa or app file \ud83d\udcaa gym is a replacement for shenzhen .","title":"What's gym?"},{"location":"generated/actions/build_app/#usage","text":"fastlane gym That's all you need to build your application. If you want more control, here are some available parameters: fastlane gym --workspace \"Example.xcworkspace\" --scheme \"AppName\" --clean If you need to use a different Xcode installation, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" fastlane gym For a list of all available parameters use fastlane action gym If you run into any issues, use the verbose mode to get more information fastlane gym --verbose Set the right export method if you're not uploading to App Store or TestFlight: fastlane gym --export_method ad-hoc To pass boolean parameters make sure to use gym like this: fastlane gym --include_bitcode true --include_symbols false To access the raw xcodebuild output open ~/Library/Logs/gym","title":"Usage"},{"location":"generated/actions/build_app/#gymfile","text":"Since you might want to manually trigger a new build but don't want to specify all the parameters every time, you can store your defaults in a so called Gymfile . Run fastlane gym init to create a new configuration file. Example: scheme(\"Example\") sdk(\"iphoneos9.0\") clean(true) output_directory(\"./build\") # store the ipa in this folder output_name(\"MyApp\") # the name of the ipa file","title":"Gymfile"},{"location":"generated/actions/build_app/#export-options","text":"Since Xcode 7, gym is using new Xcode API which allows us to specify export options using plist file. By default gym creates this file for you and you are able to modify some parameters by using export_method , export_team_id , include_symbols or include_bitcode . If you want to have more options, like creating manifest file for app thinning, you can provide your own plist file: export_options(\"./ExportOptions.plist\") or you can provide hash of values directly in the Gymfile : export_options({ method: \"ad-hoc\", manifest: { appURL: \"https://example.com/My App.ipa\", }, thinning: \"\" }) Optional: If gym can't automatically detect the provisioning profiles to use, you can pass a mapping of bundle identifiers to provisioning profiles: build_app( scheme: \"Release\", export_method: \"app-store\", export_options: { provisioningProfiles: { \"com.example.bundleid\" => \"Provisioning Profile Name\", \"com.example.bundleid2\" => \"Provisioning Profile Name 2\" } } ) Note : If you use fastlane with match you don't need to provide those values manually, unless you pass a plist file into export_options For the list of available options run xcodebuild -help .","title":"Export options"},{"location":"generated/actions/build_app/#setup-code-signing","text":"More information on how to get started with codesigning Docs on how to set up your Xcode project","title":"Setup code signing"},{"location":"generated/actions/build_app/#automating-the-whole-process","text":"gym works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :beta do scan gym(scheme: \"MyApp\") crashlytics end # error block is executed when a error occurs error do |lane, exception| slack( # message with short human friendly message message: exception.to_s, success: false, # Output containing extended log output payload: { \"Output\" => exception.error_info.to_s } ) end When gym raises an error the error_info property will contain the process output in case you want to display the error in 3rd party tools such as Slack. You can then easily switch between the beta provider (e.g. testflight , hockey , s3 and more).","title":"Automating the whole process"},{"location":"generated/actions/build_app/#how-does-it-work","text":"gym uses the latest APIs to build and sign your application. The 2 main components are xcodebuild xcpretty When you run gym without the --silent mode it will print out every command it executes. To build the archive gym uses the following command: set -o pipefail && \\ xcodebuild -scheme 'Example' \\ -project './Example.xcodeproj' \\ -configuration 'Release' \\ -destination 'generic/platform=iOS' \\ -archivePath '/Users/felixkrause/Library/Developer/Xcode/Archives/2015-08-11/ExampleProductName 2015-08-11 18.15.30.xcarchive' \\ archive | xcpretty After building the archive it is being checked by gym . If it's valid, it gets packaged up and signed into an ipa file. gym automatically chooses a different packaging method depending on the version of Xcode you're using.","title":"How does it work?"},{"location":"generated/actions/build_app/#use-provisionql-for-advanced-quick-look-in-finder","text":"Install ProvisionQL . It will show you ipa files like this: build_app Supported platforms ios, mac Author @KrauseFx Returns The absolute path to the generated ipa file","title":"Use 'ProvisionQL' for advanced Quick Look in Finder"},{"location":"generated/actions/build_app/#5-examples","text":"build_app(scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\") build_app( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", silent: true, clean: true, output_directory: \"path/to/dir\", # Destination directory. Defaults to current directory. output_name: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) sdk: \"iOS 11.1\" # use SDK as the name or path of the base SDK when building the project. ) gym # alias for \"build_app\" build_ios_app # alias for \"build_app (only iOS options)\" build_mac_app # alias for \"build_app (only macOS options)\"","title":"5 Examples"},{"location":"generated/actions/build_app/#parameters","text":"Key Description Default workspace Path to the workspace file project Path to the project file scheme The project's scheme. Make sure it's marked as Shared clean Should the project be cleaned before building it? false output_directory The directory in which the ipa file should be stored in . output_name The name of the resulting ipa file configuration The configuration to use when building the app. Defaults to 'Release' * silent Hide all information that's not necessary while building false codesigning_identity The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH' skip_package_ipa Should we skip packaging the ipa? false skip_package_pkg Should we skip packaging the pkg? false include_symbols Should the ipa file include symbols? include_bitcode Should the ipa file include bitcode? export_method Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application export_options Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options export_xcargs Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" skip_build_archive Export ipa from previously built xcarchive. Uses archive_path as source skip_archive After building, don't archive, effectively not including -archivePath param skip_codesigning Build without codesigning catalyst_platform Platform to build when using a Catalyst enabled app. Valid values are: ios, macos installer_cert_name Full name of 3rd Party Mac Developer Installer or Developer ID Installer certificate. Example: 3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ) build_path The directory in which the archive should be stored in archive_path The path to the created archive derived_data_path The directory where built products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false result_bundle_path Path to the result bundle directory to create. Ignored if result_bundle if false buildlog_path The directory where to store the build log * sdk The SDK that should be used for building the application toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a) destination Use a custom destination for building the app export_team_id Optional: Sometimes you need to specify a team id when exporting the ipa file xcargs Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * build_timing_summary Create a build timing summary false disable_xcpretty DEPRECATED! Use xcodebuild_formatter: '' instead - Disable xcpretty formatting of build output xcpretty_test_format Use the test (RSpec style) format for build output xcpretty_formatter A custom xcpretty formatter to use xcpretty_report_junit Have xcpretty create a JUnit-style XML report at the provided path xcpretty_report_html Have xcpretty create a simple HTML report at the provided path xcpretty_report_json Have xcpretty create a JSON compilation database at the provided path xcpretty_utf Have xcpretty use unicode encoding when reporting builds analyze_build_time Analyze the project build time and store the output in 'culprits.txt' file skip_profile_detection Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used false xcodebuild_command Allows for override of the default xcodebuild command xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/build_app/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The build_app action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::PKG_OUTPUT_PATH The path to the newly generated pkg file SharedValues::DSYM_OUTPUT_PATH The path to the dSYM files SharedValues::XCODEBUILD_ARCHIVE The path to the xcodebuild archive To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/build_app/#documentation","text":"To show the documentation in your terminal, run fastlane action build_app","title":"Documentation"},{"location":"generated/actions/build_app/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_app To pass parameters, make use of the : symbol, for example fastlane run build_app parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/build_app/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/build_ios_app/","text":"build_ios_app Alias for the build_app action but only for iOS Features \u2022 Usage \u2022 Tips gym is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. What's gym? gym builds and packages iOS apps for you. It takes care of all the heavy lifting and makes it super easy to generate a signed ipa or app file \ud83d\udcaa gym is a replacement for shenzhen . Before gym xcodebuild clean archive -archivePath build/MyApp \\ -scheme MyApp xcodebuild -exportArchive \\ -exportFormat ipa \\ -archivePath \"build/MyApp.xcarchive\" \\ -exportPath \"build/MyApp.ipa\" \\ -exportProvisioningProfile \"ProvisioningProfileName\" With gym fastlane gym Why gym ? gym uses the latest APIs to build and sign your application which results in much faster build times. gym Features \ud83d\ude80 gym builds 30% faster than other build tools like shenzhen \ud83c\udfc1 Beautiful inline build output \ud83d\udcd6 Helps you resolve common build errors like code signing issues \ud83d\udea0 Sensible defaults: Automatically detect the project, its schemes and more \ud83d\udd17 Works perfectly with fastlane and other tools \ud83d\udce6 Automatically generates an ipa and a compressed dSYM file \ud83d\ude85 Don't remember any complicated build commands, just gym \ud83d\udd27 Easy and dynamic configuration using parameters and environment variables \ud83d\udcbe Store common build settings in a Gymfile \ud83d\udce4 All archives are stored and accessible in the Xcode Organizer \ud83d\udcbb Supports both iOS and Mac applications Usage fastlane gym That's all you need to build your application. If you want more control, here are some available parameters: fastlane gym --workspace \"Example.xcworkspace\" --scheme \"AppName\" --clean If you need to use a different Xcode installation, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" fastlane gym For a list of all available parameters use fastlane action gym If you run into any issues, use the verbose mode to get more information fastlane gym --verbose Set the right export method if you're not uploading to App Store or TestFlight: fastlane gym --export_method ad-hoc To pass boolean parameters make sure to use gym like this: fastlane gym --include_bitcode true --include_symbols false To access the raw xcodebuild output open ~/Library/Logs/gym Gymfile Since you might want to manually trigger a new build but don't want to specify all the parameters every time, you can store your defaults in a so called Gymfile . Run fastlane gym init to create a new configuration file. Example: scheme(\"Example\") sdk(\"iphoneos9.0\") clean(true) output_directory(\"./build\") # store the ipa in this folder output_name(\"MyApp\") # the name of the ipa file Export options Since Xcode 7, gym is using new Xcode API which allows us to specify export options using plist file. By default gym creates this file for you and you are able to modify some parameters by using export_method , export_team_id , include_symbols or include_bitcode . If you want to have more options, like creating manifest file for app thinning, you can provide your own plist file: export_options(\"./ExportOptions.plist\") or you can provide hash of values directly in the Gymfile : export_options({ method: \"ad-hoc\", manifest: { appURL: \"https://example.com/My App.ipa\", }, thinning: \"\" }) Optional: If gym can't automatically detect the provisioning profiles to use, you can pass a mapping of bundle identifiers to provisioning profiles: build_app( scheme: \"Release\", export_method: \"app-store\", export_options: { provisioningProfiles: { \"com.example.bundleid\" => \"Provisioning Profile Name\", \"com.example.bundleid2\" => \"Provisioning Profile Name 2\" } } ) Note : If you use fastlane with match you don't need to provide those values manually, unless you pass a plist file into export_options For the list of available options run xcodebuild -help . Setup code signing More information on how to get started with codesigning Docs on how to set up your Xcode project Automating the whole process gym works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :beta do scan gym(scheme: \"MyApp\") crashlytics end # error block is executed when a error occurs error do |lane, exception| slack( # message with short human friendly message message: exception.to_s, success: false, # Output containing extended log output payload: { \"Output\" => exception.error_info.to_s } ) end When gym raises an error the error_info property will contain the process output in case you want to display the error in 3rd party tools such as Slack. You can then easily switch between the beta provider (e.g. testflight , hockey , s3 and more). How does it work? gym uses the latest APIs to build and sign your application. The 2 main components are xcodebuild xcpretty When you run gym without the --silent mode it will print out every command it executes. To build the archive gym uses the following command: set -o pipefail && \\ xcodebuild -scheme 'Example' \\ -project './Example.xcodeproj' \\ -configuration 'Release' \\ -destination 'generic/platform=iOS' \\ -archivePath '/Users/felixkrause/Library/Developer/Xcode/Archives/2015-08-11/ExampleProductName 2015-08-11 18.15.30.xcarchive' \\ archive | xcpretty After building the archive it is being checked by gym . If it's valid, it gets packaged up and signed into an ipa file. gym automatically chooses a different packaging method depending on the version of Xcode you're using. Xcode 7 and above /usr/bin/xcrun path/to/xcbuild-safe.sh -exportArchive \\ -exportOptionsPlist '/tmp/gym_config_1442852529.plist' \\ -archivePath '/Users/fkrause/Library/Developer/Xcode/Archives/2015-09-21/App 2015-09-21 09.21.56.xcarchive' \\ -exportPath '/tmp/1442852529' gym makes use of the new Xcode 7 API which allows us to specify the export options using a plist file. You can find more information about the available options by running xcodebuild --help . Using this method there are no workarounds for WatchKit or Swift required, as it uses the same technique Xcode uses when exporting your binary. Note: the xcbuild-safe.sh script wraps around xcodebuild to workaround some incompatibilities. Use 'ProvisionQL' for advanced Quick Look in Finder Install ProvisionQL . It will show you ipa files like this: build_ios_app Supported platforms ios Author @KrauseFx Returns The absolute path to the generated ipa file 5 Examples build_app(scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\") build_app( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", silent: true, clean: true, output_directory: \"path/to/dir\", # Destination directory. Defaults to current directory. output_name: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) sdk: \"iOS 11.1\" # use SDK as the name or path of the base SDK when building the project. ) gym # alias for \"build_app\" build_ios_app # alias for \"build_app (only iOS options)\" build_mac_app # alias for \"build_app (only macOS options)\" Parameters Key Description Default workspace Path to the workspace file project Path to the project file scheme The project's scheme. Make sure it's marked as Shared clean Should the project be cleaned before building it? false output_directory The directory in which the ipa file should be stored in . output_name The name of the resulting ipa file configuration The configuration to use when building the app. Defaults to 'Release' * silent Hide all information that's not necessary while building false codesigning_identity The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH' skip_package_ipa Should we skip packaging the ipa? false include_symbols Should the ipa file include symbols? include_bitcode Should the ipa file include bitcode? export_method Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application export_options Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options export_xcargs Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" skip_build_archive Export ipa from previously built xcarchive. Uses archive_path as source skip_archive After building, don't archive, effectively not including -archivePath param skip_codesigning Build without codesigning build_path The directory in which the archive should be stored in archive_path The path to the created archive derived_data_path The directory where built products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false result_bundle_path Path to the result bundle directory to create. Ignored if result_bundle if false buildlog_path The directory where to store the build log * sdk The SDK that should be used for building the application toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a) destination Use a custom destination for building the app export_team_id Optional: Sometimes you need to specify a team id when exporting the ipa file xcargs Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * build_timing_summary Create a build timing summary false disable_xcpretty DEPRECATED! Use xcodebuild_formatter: '' instead - Disable xcpretty formatting of build output xcpretty_test_format Use the test (RSpec style) format for build output xcpretty_formatter A custom xcpretty formatter to use xcpretty_report_junit Have xcpretty create a JUnit-style XML report at the provided path xcpretty_report_html Have xcpretty create a simple HTML report at the provided path xcpretty_report_json Have xcpretty create a JSON compilation database at the provided path xcpretty_utf Have xcpretty use unicode encoding when reporting builds analyze_build_time Analyze the project build time and store the output in 'culprits.txt' file skip_profile_detection Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used false xcodebuild_command Allows for override of the default xcodebuild command xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The build_ios_app action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::PKG_OUTPUT_PATH The path to the newly generated pkg file SharedValues::DSYM_OUTPUT_PATH The path to the dSYM files SharedValues::XCODEBUILD_ARCHIVE The path to the xcodebuild archive To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action build_ios_app CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_ios_app To pass parameters, make use of the : symbol, for example fastlane run build_ios_app parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Build ios app"},{"location":"generated/actions/build_ios_app/#build_ios_app","text":"Alias for the build_app action but only for iOS Features \u2022 Usage \u2022 Tips","title":"build_ios_app"},{"location":"generated/actions/build_ios_app/#whats-gym","text":"gym builds and packages iOS apps for you. It takes care of all the heavy lifting and makes it super easy to generate a signed ipa or app file \ud83d\udcaa gym is a replacement for shenzhen .","title":"What's gym?"},{"location":"generated/actions/build_ios_app/#usage","text":"fastlane gym That's all you need to build your application. If you want more control, here are some available parameters: fastlane gym --workspace \"Example.xcworkspace\" --scheme \"AppName\" --clean If you need to use a different Xcode installation, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" fastlane gym For a list of all available parameters use fastlane action gym If you run into any issues, use the verbose mode to get more information fastlane gym --verbose Set the right export method if you're not uploading to App Store or TestFlight: fastlane gym --export_method ad-hoc To pass boolean parameters make sure to use gym like this: fastlane gym --include_bitcode true --include_symbols false To access the raw xcodebuild output open ~/Library/Logs/gym","title":"Usage"},{"location":"generated/actions/build_ios_app/#gymfile","text":"Since you might want to manually trigger a new build but don't want to specify all the parameters every time, you can store your defaults in a so called Gymfile . Run fastlane gym init to create a new configuration file. Example: scheme(\"Example\") sdk(\"iphoneos9.0\") clean(true) output_directory(\"./build\") # store the ipa in this folder output_name(\"MyApp\") # the name of the ipa file","title":"Gymfile"},{"location":"generated/actions/build_ios_app/#export-options","text":"Since Xcode 7, gym is using new Xcode API which allows us to specify export options using plist file. By default gym creates this file for you and you are able to modify some parameters by using export_method , export_team_id , include_symbols or include_bitcode . If you want to have more options, like creating manifest file for app thinning, you can provide your own plist file: export_options(\"./ExportOptions.plist\") or you can provide hash of values directly in the Gymfile : export_options({ method: \"ad-hoc\", manifest: { appURL: \"https://example.com/My App.ipa\", }, thinning: \"\" }) Optional: If gym can't automatically detect the provisioning profiles to use, you can pass a mapping of bundle identifiers to provisioning profiles: build_app( scheme: \"Release\", export_method: \"app-store\", export_options: { provisioningProfiles: { \"com.example.bundleid\" => \"Provisioning Profile Name\", \"com.example.bundleid2\" => \"Provisioning Profile Name 2\" } } ) Note : If you use fastlane with match you don't need to provide those values manually, unless you pass a plist file into export_options For the list of available options run xcodebuild -help .","title":"Export options"},{"location":"generated/actions/build_ios_app/#setup-code-signing","text":"More information on how to get started with codesigning Docs on how to set up your Xcode project","title":"Setup code signing"},{"location":"generated/actions/build_ios_app/#automating-the-whole-process","text":"gym works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :beta do scan gym(scheme: \"MyApp\") crashlytics end # error block is executed when a error occurs error do |lane, exception| slack( # message with short human friendly message message: exception.to_s, success: false, # Output containing extended log output payload: { \"Output\" => exception.error_info.to_s } ) end When gym raises an error the error_info property will contain the process output in case you want to display the error in 3rd party tools such as Slack. You can then easily switch between the beta provider (e.g. testflight , hockey , s3 and more).","title":"Automating the whole process"},{"location":"generated/actions/build_ios_app/#how-does-it-work","text":"gym uses the latest APIs to build and sign your application. The 2 main components are xcodebuild xcpretty When you run gym without the --silent mode it will print out every command it executes. To build the archive gym uses the following command: set -o pipefail && \\ xcodebuild -scheme 'Example' \\ -project './Example.xcodeproj' \\ -configuration 'Release' \\ -destination 'generic/platform=iOS' \\ -archivePath '/Users/felixkrause/Library/Developer/Xcode/Archives/2015-08-11/ExampleProductName 2015-08-11 18.15.30.xcarchive' \\ archive | xcpretty After building the archive it is being checked by gym . If it's valid, it gets packaged up and signed into an ipa file. gym automatically chooses a different packaging method depending on the version of Xcode you're using.","title":"How does it work?"},{"location":"generated/actions/build_ios_app/#use-provisionql-for-advanced-quick-look-in-finder","text":"Install ProvisionQL . It will show you ipa files like this: build_ios_app Supported platforms ios Author @KrauseFx Returns The absolute path to the generated ipa file","title":"Use 'ProvisionQL' for advanced Quick Look in Finder"},{"location":"generated/actions/build_ios_app/#5-examples","text":"build_app(scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\") build_app( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", silent: true, clean: true, output_directory: \"path/to/dir\", # Destination directory. Defaults to current directory. output_name: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) sdk: \"iOS 11.1\" # use SDK as the name or path of the base SDK when building the project. ) gym # alias for \"build_app\" build_ios_app # alias for \"build_app (only iOS options)\" build_mac_app # alias for \"build_app (only macOS options)\"","title":"5 Examples"},{"location":"generated/actions/build_ios_app/#parameters","text":"Key Description Default workspace Path to the workspace file project Path to the project file scheme The project's scheme. Make sure it's marked as Shared clean Should the project be cleaned before building it? false output_directory The directory in which the ipa file should be stored in . output_name The name of the resulting ipa file configuration The configuration to use when building the app. Defaults to 'Release' * silent Hide all information that's not necessary while building false codesigning_identity The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH' skip_package_ipa Should we skip packaging the ipa? false include_symbols Should the ipa file include symbols? include_bitcode Should the ipa file include bitcode? export_method Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application export_options Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options export_xcargs Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" skip_build_archive Export ipa from previously built xcarchive. Uses archive_path as source skip_archive After building, don't archive, effectively not including -archivePath param skip_codesigning Build without codesigning build_path The directory in which the archive should be stored in archive_path The path to the created archive derived_data_path The directory where built products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false result_bundle_path Path to the result bundle directory to create. Ignored if result_bundle if false buildlog_path The directory where to store the build log * sdk The SDK that should be used for building the application toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a) destination Use a custom destination for building the app export_team_id Optional: Sometimes you need to specify a team id when exporting the ipa file xcargs Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * build_timing_summary Create a build timing summary false disable_xcpretty DEPRECATED! Use xcodebuild_formatter: '' instead - Disable xcpretty formatting of build output xcpretty_test_format Use the test (RSpec style) format for build output xcpretty_formatter A custom xcpretty formatter to use xcpretty_report_junit Have xcpretty create a JUnit-style XML report at the provided path xcpretty_report_html Have xcpretty create a simple HTML report at the provided path xcpretty_report_json Have xcpretty create a JSON compilation database at the provided path xcpretty_utf Have xcpretty use unicode encoding when reporting builds analyze_build_time Analyze the project build time and store the output in 'culprits.txt' file skip_profile_detection Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used false xcodebuild_command Allows for override of the default xcodebuild command xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/build_ios_app/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The build_ios_app action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::PKG_OUTPUT_PATH The path to the newly generated pkg file SharedValues::DSYM_OUTPUT_PATH The path to the dSYM files SharedValues::XCODEBUILD_ARCHIVE The path to the xcodebuild archive To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/build_ios_app/#documentation","text":"To show the documentation in your terminal, run fastlane action build_ios_app","title":"Documentation"},{"location":"generated/actions/build_ios_app/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_ios_app To pass parameters, make use of the : symbol, for example fastlane run build_ios_app parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/build_ios_app/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/build_mac_app/","text":"build_mac_app Alias for the build_app action but only for macOS Features \u2022 Usage \u2022 Tips gym is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. What's gym? gym builds and packages iOS apps for you. It takes care of all the heavy lifting and makes it super easy to generate a signed ipa or app file \ud83d\udcaa gym is a replacement for shenzhen . Before gym xcodebuild clean archive -archivePath build/MyApp \\ -scheme MyApp xcodebuild -exportArchive \\ -exportFormat ipa \\ -archivePath \"build/MyApp.xcarchive\" \\ -exportPath \"build/MyApp.ipa\" \\ -exportProvisioningProfile \"ProvisioningProfileName\" With gym fastlane gym Why gym ? gym uses the latest APIs to build and sign your application which results in much faster build times. gym Features \ud83d\ude80 gym builds 30% faster than other build tools like shenzhen \ud83c\udfc1 Beautiful inline build output \ud83d\udcd6 Helps you resolve common build errors like code signing issues \ud83d\udea0 Sensible defaults: Automatically detect the project, its schemes and more \ud83d\udd17 Works perfectly with fastlane and other tools \ud83d\udce6 Automatically generates an ipa and a compressed dSYM file \ud83d\ude85 Don't remember any complicated build commands, just gym \ud83d\udd27 Easy and dynamic configuration using parameters and environment variables \ud83d\udcbe Store common build settings in a Gymfile \ud83d\udce4 All archives are stored and accessible in the Xcode Organizer \ud83d\udcbb Supports both iOS and Mac applications Usage fastlane gym That's all you need to build your application. If you want more control, here are some available parameters: fastlane gym --workspace \"Example.xcworkspace\" --scheme \"AppName\" --clean If you need to use a different Xcode installation, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" fastlane gym For a list of all available parameters use fastlane action gym If you run into any issues, use the verbose mode to get more information fastlane gym --verbose Set the right export method if you're not uploading to App Store or TestFlight: fastlane gym --export_method ad-hoc To pass boolean parameters make sure to use gym like this: fastlane gym --include_bitcode true --include_symbols false To access the raw xcodebuild output open ~/Library/Logs/gym Gymfile Since you might want to manually trigger a new build but don't want to specify all the parameters every time, you can store your defaults in a so called Gymfile . Run fastlane gym init to create a new configuration file. Example: scheme(\"Example\") sdk(\"iphoneos9.0\") clean(true) output_directory(\"./build\") # store the ipa in this folder output_name(\"MyApp\") # the name of the ipa file Export options Since Xcode 7, gym is using new Xcode API which allows us to specify export options using plist file. By default gym creates this file for you and you are able to modify some parameters by using export_method , export_team_id , include_symbols or include_bitcode . If you want to have more options, like creating manifest file for app thinning, you can provide your own plist file: export_options(\"./ExportOptions.plist\") or you can provide hash of values directly in the Gymfile : export_options({ method: \"ad-hoc\", manifest: { appURL: \"https://example.com/My App.ipa\", }, thinning: \"\" }) Optional: If gym can't automatically detect the provisioning profiles to use, you can pass a mapping of bundle identifiers to provisioning profiles: build_app( scheme: \"Release\", export_method: \"app-store\", export_options: { provisioningProfiles: { \"com.example.bundleid\" => \"Provisioning Profile Name\", \"com.example.bundleid2\" => \"Provisioning Profile Name 2\" } } ) Note : If you use fastlane with match you don't need to provide those values manually, unless you pass a plist file into export_options For the list of available options run xcodebuild -help . Setup code signing More information on how to get started with codesigning Docs on how to set up your Xcode project Automating the whole process gym works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :beta do scan gym(scheme: \"MyApp\") crashlytics end # error block is executed when a error occurs error do |lane, exception| slack( # message with short human friendly message message: exception.to_s, success: false, # Output containing extended log output payload: { \"Output\" => exception.error_info.to_s } ) end When gym raises an error the error_info property will contain the process output in case you want to display the error in 3rd party tools such as Slack. You can then easily switch between the beta provider (e.g. testflight , hockey , s3 and more). How does it work? gym uses the latest APIs to build and sign your application. The 2 main components are xcodebuild xcpretty When you run gym without the --silent mode it will print out every command it executes. To build the archive gym uses the following command: set -o pipefail && \\ xcodebuild -scheme 'Example' \\ -project './Example.xcodeproj' \\ -configuration 'Release' \\ -destination 'generic/platform=iOS' \\ -archivePath '/Users/felixkrause/Library/Developer/Xcode/Archives/2015-08-11/ExampleProductName 2015-08-11 18.15.30.xcarchive' \\ archive | xcpretty After building the archive it is being checked by gym . If it's valid, it gets packaged up and signed into an ipa file. gym automatically chooses a different packaging method depending on the version of Xcode you're using. Xcode 7 and above /usr/bin/xcrun path/to/xcbuild-safe.sh -exportArchive \\ -exportOptionsPlist '/tmp/gym_config_1442852529.plist' \\ -archivePath '/Users/fkrause/Library/Developer/Xcode/Archives/2015-09-21/App 2015-09-21 09.21.56.xcarchive' \\ -exportPath '/tmp/1442852529' gym makes use of the new Xcode 7 API which allows us to specify the export options using a plist file. You can find more information about the available options by running xcodebuild --help . Using this method there are no workarounds for WatchKit or Swift required, as it uses the same technique Xcode uses when exporting your binary. Note: the xcbuild-safe.sh script wraps around xcodebuild to workaround some incompatibilities. Use 'ProvisionQL' for advanced Quick Look in Finder Install ProvisionQL . It will show you ipa files like this: build_mac_app Supported platforms mac Author @KrauseFx Returns The absolute path to the generated ipa file 5 Examples build_app(scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\") build_app( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", silent: true, clean: true, output_directory: \"path/to/dir\", # Destination directory. Defaults to current directory. output_name: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) sdk: \"iOS 11.1\" # use SDK as the name or path of the base SDK when building the project. ) gym # alias for \"build_app\" build_ios_app # alias for \"build_app (only iOS options)\" build_mac_app # alias for \"build_app (only macOS options)\" Parameters Key Description Default workspace Path to the workspace file project Path to the project file scheme The project's scheme. Make sure it's marked as Shared clean Should the project be cleaned before building it? false output_directory The directory in which the ipa file should be stored in . output_name The name of the resulting ipa file configuration The configuration to use when building the app. Defaults to 'Release' * silent Hide all information that's not necessary while building false codesigning_identity The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH' skip_package_pkg Should we skip packaging the pkg? false include_symbols Should the ipa file include symbols? include_bitcode Should the ipa file include bitcode? export_method Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application export_options Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options export_xcargs Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" skip_build_archive Export ipa from previously built xcarchive. Uses archive_path as source skip_archive After building, don't archive, effectively not including -archivePath param skip_codesigning Build without codesigning installer_cert_name Full name of 3rd Party Mac Developer Installer or Developer ID Installer certificate. Example: 3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ) build_path The directory in which the archive should be stored in archive_path The path to the created archive derived_data_path The directory where built products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false result_bundle_path Path to the result bundle directory to create. Ignored if result_bundle if false buildlog_path The directory where to store the build log * sdk The SDK that should be used for building the application toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a) destination Use a custom destination for building the app export_team_id Optional: Sometimes you need to specify a team id when exporting the ipa file xcargs Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * build_timing_summary Create a build timing summary false disable_xcpretty DEPRECATED! Use xcodebuild_formatter: '' instead - Disable xcpretty formatting of build output xcpretty_test_format Use the test (RSpec style) format for build output xcpretty_formatter A custom xcpretty formatter to use xcpretty_report_junit Have xcpretty create a JUnit-style XML report at the provided path xcpretty_report_html Have xcpretty create a simple HTML report at the provided path xcpretty_report_json Have xcpretty create a JSON compilation database at the provided path xcpretty_utf Have xcpretty use unicode encoding when reporting builds analyze_build_time Analyze the project build time and store the output in 'culprits.txt' file skip_profile_detection Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used false xcodebuild_command Allows for override of the default xcodebuild command xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The build_mac_app action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::PKG_OUTPUT_PATH The path to the newly generated pkg file SharedValues::DSYM_OUTPUT_PATH The path to the dSYM files SharedValues::XCODEBUILD_ARCHIVE The path to the xcodebuild archive To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action build_mac_app CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_mac_app To pass parameters, make use of the : symbol, for example fastlane run build_mac_app parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Build mac app"},{"location":"generated/actions/build_mac_app/#build_mac_app","text":"Alias for the build_app action but only for macOS Features \u2022 Usage \u2022 Tips","title":"build_mac_app"},{"location":"generated/actions/build_mac_app/#whats-gym","text":"gym builds and packages iOS apps for you. It takes care of all the heavy lifting and makes it super easy to generate a signed ipa or app file \ud83d\udcaa gym is a replacement for shenzhen .","title":"What's gym?"},{"location":"generated/actions/build_mac_app/#usage","text":"fastlane gym That's all you need to build your application. If you want more control, here are some available parameters: fastlane gym --workspace \"Example.xcworkspace\" --scheme \"AppName\" --clean If you need to use a different Xcode installation, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" fastlane gym For a list of all available parameters use fastlane action gym If you run into any issues, use the verbose mode to get more information fastlane gym --verbose Set the right export method if you're not uploading to App Store or TestFlight: fastlane gym --export_method ad-hoc To pass boolean parameters make sure to use gym like this: fastlane gym --include_bitcode true --include_symbols false To access the raw xcodebuild output open ~/Library/Logs/gym","title":"Usage"},{"location":"generated/actions/build_mac_app/#gymfile","text":"Since you might want to manually trigger a new build but don't want to specify all the parameters every time, you can store your defaults in a so called Gymfile . Run fastlane gym init to create a new configuration file. Example: scheme(\"Example\") sdk(\"iphoneos9.0\") clean(true) output_directory(\"./build\") # store the ipa in this folder output_name(\"MyApp\") # the name of the ipa file","title":"Gymfile"},{"location":"generated/actions/build_mac_app/#export-options","text":"Since Xcode 7, gym is using new Xcode API which allows us to specify export options using plist file. By default gym creates this file for you and you are able to modify some parameters by using export_method , export_team_id , include_symbols or include_bitcode . If you want to have more options, like creating manifest file for app thinning, you can provide your own plist file: export_options(\"./ExportOptions.plist\") or you can provide hash of values directly in the Gymfile : export_options({ method: \"ad-hoc\", manifest: { appURL: \"https://example.com/My App.ipa\", }, thinning: \"\" }) Optional: If gym can't automatically detect the provisioning profiles to use, you can pass a mapping of bundle identifiers to provisioning profiles: build_app( scheme: \"Release\", export_method: \"app-store\", export_options: { provisioningProfiles: { \"com.example.bundleid\" => \"Provisioning Profile Name\", \"com.example.bundleid2\" => \"Provisioning Profile Name 2\" } } ) Note : If you use fastlane with match you don't need to provide those values manually, unless you pass a plist file into export_options For the list of available options run xcodebuild -help .","title":"Export options"},{"location":"generated/actions/build_mac_app/#setup-code-signing","text":"More information on how to get started with codesigning Docs on how to set up your Xcode project","title":"Setup code signing"},{"location":"generated/actions/build_mac_app/#automating-the-whole-process","text":"gym works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :beta do scan gym(scheme: \"MyApp\") crashlytics end # error block is executed when a error occurs error do |lane, exception| slack( # message with short human friendly message message: exception.to_s, success: false, # Output containing extended log output payload: { \"Output\" => exception.error_info.to_s } ) end When gym raises an error the error_info property will contain the process output in case you want to display the error in 3rd party tools such as Slack. You can then easily switch between the beta provider (e.g. testflight , hockey , s3 and more).","title":"Automating the whole process"},{"location":"generated/actions/build_mac_app/#how-does-it-work","text":"gym uses the latest APIs to build and sign your application. The 2 main components are xcodebuild xcpretty When you run gym without the --silent mode it will print out every command it executes. To build the archive gym uses the following command: set -o pipefail && \\ xcodebuild -scheme 'Example' \\ -project './Example.xcodeproj' \\ -configuration 'Release' \\ -destination 'generic/platform=iOS' \\ -archivePath '/Users/felixkrause/Library/Developer/Xcode/Archives/2015-08-11/ExampleProductName 2015-08-11 18.15.30.xcarchive' \\ archive | xcpretty After building the archive it is being checked by gym . If it's valid, it gets packaged up and signed into an ipa file. gym automatically chooses a different packaging method depending on the version of Xcode you're using.","title":"How does it work?"},{"location":"generated/actions/build_mac_app/#use-provisionql-for-advanced-quick-look-in-finder","text":"Install ProvisionQL . It will show you ipa files like this: build_mac_app Supported platforms mac Author @KrauseFx Returns The absolute path to the generated ipa file","title":"Use 'ProvisionQL' for advanced Quick Look in Finder"},{"location":"generated/actions/build_mac_app/#5-examples","text":"build_app(scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\") build_app( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", silent: true, clean: true, output_directory: \"path/to/dir\", # Destination directory. Defaults to current directory. output_name: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) sdk: \"iOS 11.1\" # use SDK as the name or path of the base SDK when building the project. ) gym # alias for \"build_app\" build_ios_app # alias for \"build_app (only iOS options)\" build_mac_app # alias for \"build_app (only macOS options)\"","title":"5 Examples"},{"location":"generated/actions/build_mac_app/#parameters","text":"Key Description Default workspace Path to the workspace file project Path to the project file scheme The project's scheme. Make sure it's marked as Shared clean Should the project be cleaned before building it? false output_directory The directory in which the ipa file should be stored in . output_name The name of the resulting ipa file configuration The configuration to use when building the app. Defaults to 'Release' * silent Hide all information that's not necessary while building false codesigning_identity The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH' skip_package_pkg Should we skip packaging the pkg? false include_symbols Should the ipa file include symbols? include_bitcode Should the ipa file include bitcode? export_method Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application export_options Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options export_xcargs Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" skip_build_archive Export ipa from previously built xcarchive. Uses archive_path as source skip_archive After building, don't archive, effectively not including -archivePath param skip_codesigning Build without codesigning installer_cert_name Full name of 3rd Party Mac Developer Installer or Developer ID Installer certificate. Example: 3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ) build_path The directory in which the archive should be stored in archive_path The path to the created archive derived_data_path The directory where built products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false result_bundle_path Path to the result bundle directory to create. Ignored if result_bundle if false buildlog_path The directory where to store the build log * sdk The SDK that should be used for building the application toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a) destination Use a custom destination for building the app export_team_id Optional: Sometimes you need to specify a team id when exporting the ipa file xcargs Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * build_timing_summary Create a build timing summary false disable_xcpretty DEPRECATED! Use xcodebuild_formatter: '' instead - Disable xcpretty formatting of build output xcpretty_test_format Use the test (RSpec style) format for build output xcpretty_formatter A custom xcpretty formatter to use xcpretty_report_junit Have xcpretty create a JUnit-style XML report at the provided path xcpretty_report_html Have xcpretty create a simple HTML report at the provided path xcpretty_report_json Have xcpretty create a JSON compilation database at the provided path xcpretty_utf Have xcpretty use unicode encoding when reporting builds analyze_build_time Analyze the project build time and store the output in 'culprits.txt' file skip_profile_detection Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used false xcodebuild_command Allows for override of the default xcodebuild command xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/build_mac_app/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The build_mac_app action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::PKG_OUTPUT_PATH The path to the newly generated pkg file SharedValues::DSYM_OUTPUT_PATH The path to the dSYM files SharedValues::XCODEBUILD_ARCHIVE The path to the xcodebuild archive To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/build_mac_app/#documentation","text":"To show the documentation in your terminal, run fastlane action build_mac_app","title":"Documentation"},{"location":"generated/actions/build_mac_app/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run build_mac_app To pass parameters, make use of the : symbol, for example fastlane run build_mac_app parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/build_mac_app/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/bundle_install/","text":"bundle_install This action runs bundle install (if available) bundle_install Supported platforms ios, android, mac Author @birmacher, @koglinjg Parameters Key Description Default binstubs Generate bin stubs for bundled gems to ./bin clean Run bundle clean automatically after install false full_index Use the rubygems modern index instead of the API endpoint false gemfile Use the specified gemfile instead of Gemfile jobs Install gems using parallel workers local Do not attempt to fetch gems remotely and use the gem cache instead false deployment Install using defaults tuned for deployment and CI environments false no_cache Don't update the existing gem cache false no_prune Don't remove stale gems from the cache false path Specify a different path than the system default ($BUNDLE_PATH or $GEM_HOME). Bundler will remember this value for future installs on this machine system Install to the system location ($BUNDLE_PATH or $GEM_HOME) even if the bundle was previously installed somewhere else for this application false quiet Only output warnings and errors false retry Retry network and git requests that have failed shebang Specify a different shebang executable name than the default (usually 'ruby') standalone Make a bundle that can work without the Bundler runtime trust_policy Sets level of security when dealing with signed gems. Accepts LowSecurity , MediumSecurity and HighSecurity as values without Exclude gems that are part of the specified named group with Include gems that are part of the specified named group frozen Don't allow the Gemfile.lock to be updated after install false redownload Force download every gem, even if the required versions are already available locally false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action bundle_install CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run bundle_install To pass parameters, make use of the : symbol, for example fastlane run bundle_install parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Bundle install"},{"location":"generated/actions/bundle_install/#bundle_install","text":"This action runs bundle install (if available) bundle_install Supported platforms ios, android, mac Author @birmacher, @koglinjg","title":"bundle_install"},{"location":"generated/actions/bundle_install/#parameters","text":"Key Description Default binstubs Generate bin stubs for bundled gems to ./bin clean Run bundle clean automatically after install false full_index Use the rubygems modern index instead of the API endpoint false gemfile Use the specified gemfile instead of Gemfile jobs Install gems using parallel workers local Do not attempt to fetch gems remotely and use the gem cache instead false deployment Install using defaults tuned for deployment and CI environments false no_cache Don't update the existing gem cache false no_prune Don't remove stale gems from the cache false path Specify a different path than the system default ($BUNDLE_PATH or $GEM_HOME). Bundler will remember this value for future installs on this machine system Install to the system location ($BUNDLE_PATH or $GEM_HOME) even if the bundle was previously installed somewhere else for this application false quiet Only output warnings and errors false retry Retry network and git requests that have failed shebang Specify a different shebang executable name than the default (usually 'ruby') standalone Make a bundle that can work without the Bundler runtime trust_policy Sets level of security when dealing with signed gems. Accepts LowSecurity , MediumSecurity and HighSecurity as values without Exclude gems that are part of the specified named group with Include gems that are part of the specified named group frozen Don't allow the Gemfile.lock to be updated after install false redownload Force download every gem, even if the required versions are already available locally false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/bundle_install/#documentation","text":"To show the documentation in your terminal, run fastlane action bundle_install","title":"Documentation"},{"location":"generated/actions/bundle_install/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run bundle_install To pass parameters, make use of the : symbol, for example fastlane run bundle_install parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/bundle_install/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/capture_android_screenshots/","text":"capture_android_screenshots Automated localized screenshots of your Android app (via screengrab ) Automated localized screenshots of your Android app on every device screengrab generates localized screenshots of your Android app for different device types and languages for Google Play and can be uploaded using supply . Why should I automate this process? Create hundreds of screenshots in multiple languages on emulators or real devices, saving you hours Easily verify that localizations fit into labels on all screen dimensions to find UI mistakes before you ship You only need to configure it once for anyone on your team to run it Keep your screenshots perfectly up-to-date with every app update. Your customers deserve it! Fully integrates with fastlane and supply Installation Install the gem gem install fastlane Gradle dependency androidTestImplementation 'tools.fastlane:screengrab:x.x.x' The latest version is As of screengrab version 2.0.0, all Android test dependencies are AndroidX dependencies. This means a device with API 18+, Android 4.3 or greater is required. If you wish to capture screenshots with an older Android OS, then you must use a 1.x.x version. Configuring your Manifest Permissions Ensure that the following permissions exist in your src/debug/AndroidManifest.xml Configuring your UI Tests for Screenshots Add LocaleTestRule to your tests class to handle automatic switching of locales. If you're using Java use: java @ClassRule public static final LocaleTestRule localeTestRule = new LocaleTestRule(); If you're using Kotlin use: kotlin @Rule @JvmField val localeTestRule = LocaleTestRule() The @JvmField annotation is important. It won't work like this: kotlin companion object { @get:ClassRule val localeTestRule = LocaleTestRule() } To capture screenshots, add the following to your tests Screengrab.screenshot(\"name_of_screenshot_here\"); on the appropriate screens Generating Screenshots with screengrab Then, before running fastlane screengrab you'll need a debug and test apk You can create your APKs manually with ./gradlew assembleDebug assembleAndroidTest You can also create a lane and use build_android_app : ruby desc \"Build debug and test APK for screenshots\" lane :build_and_screengrab do build_android_app( task: 'assemble', build_type: 'Debug' ) build_android_app( task: 'assemble', build_type: 'AndroidTest' ) screengrab() end - Once complete run fastlane screengrab in your app project directory to generate screenshots - You will be prompted to provide any required parameters which are not in your Screengrabfile or provided as command line arguments - Your screenshots will be saved to fastlane/metadata/android in the directory where you ran screengrab Improved screenshot capture with UI Automator As of screengrab 0.5.0, you can specify different strategies to control the way screengrab captures screenshots. The newer strategy delegates to UI Automator which fixes a number of problems compared to the original strategy: Shadows/elevation are correctly captured for Material UI Multi-window situations are correctly captured (dialogs, etc.) Works on Android N UI Automator is the default strategy. However, UI Automator requires a device with API level >= 18 . If you need to grab screenshots on an older Android version, use the latest 1.x.x version of this library and set the DecorView ScreenshotStrategy. Screengrab.setDefaultScreenshotStrategy(new DecorViewScreenshotStrategy()); Improved screenshot capture with Falcon As of screengrab 1.2.0, you can specify a new strategy to delegate to Falcon . Falcon may work better than UI Automator in some situations and also provides similar benefits as UI Automator: Multi-window situations are correctly captured (dialogs, etc.) Works on Android N Falcon requires a device with API level >= 10 . To enable it for all screenshots by default, make the following call before your tests run: Screengrab.setDefaultScreenshotStrategy(new FalconScreenshotStrategy(activityRule.getActivity())); Advanced Screengrabfile Configuration Running fastlane screengrab init generated a Screengrabfile which can store all of your configuration options. Since most values will not change often for your project, it is recommended to store them there. The Screengrabfile is written in Ruby, so you may find it helpful to use an editor that highlights Ruby syntax to modify this file. # remove the leading '#' to uncomment lines # app_package_name('your.app.package') # use_tests_in_packages(['your.screenshot.tests.package']) # app_apk_path('path/to/your/app.apk') # tests_apk_path('path/to/your/tests.apk') locales(['en-US', 'fr-FR', 'it-IT']) # clear all previously generated screenshots in your local output directory before creating new ones clear_previous_screenshots(true) For more information about all available options run fastlane action screengrab Tips UI Tests Check out Testing UI for a Single App for an introduction to using Espresso for UI testing. Example UI Test Class (Using JUnit4) Java: @RunWith(JUnit4.class) public class JUnit4StyleTests { @ClassRule public static final LocaleTestRule localeTestRule = new LocaleTestRule(); @Rule public ActivityScenarioRule activityRule = new ActivityScenarioRule<>(MainActivity.class); @Test public void testTakeScreenshot() { Screengrab.screenshot(\"before_button_click\"); onView(withId(R.id.fab)).perform(click()); Screengrab.screenshot(\"after_button_click\"); } } Kotlin: @RunWith(JUnit4.class) class JUnit4StyleTests { @get:Rule var activityRule = ActivityScenarioRule(MainActivity::class.java) @Rule @JvmField val localeTestRule = LocaleTestRule() @Test fun testTakeScreenshot() { Screengrab.screenshot(\"before_button_click\") onView(withId(R.id.fab)).perform(click()) Screengrab.screenshot(\"after_button_click\") } } There is an example project showing how to use JUnit 3 or 4 and Espresso with the screengrab Java library to capture screenshots during a UI test run. Using JUnit 4 is preferable because of its ability to perform actions before and after the entire test class is run. This means you will change the device's locale far fewer times when compared with JUnit 3 running those commands before and after each test method. When using JUnit 3 you'll need to add a bit more code: Use LocaleUtil.changeDeviceLocaleTo(LocaleUtil.getTestLocale()); in setUp() Use LocaleUtil.changeDeviceLocaleTo(LocaleUtil.getEndingLocale()); in tearDown() Use Screengrab.screenshot(\"name_of_screenshot_here\"); to capture screenshots at the appropriate points in your tests Clean Status Bar screengrab can clean your status bar to make your screenshots even more beautiful. It is simply a wrapper that allows configuring SystemUI DemoMode in your code. Note: the clean status bar feature is only supported on devices with API level >= 23 . You can enable and disable the clean status bar at any moment during your tests. In most cases you probably want to do this in the @BeforeClass and @AfterClass methods. @BeforeClass public static void beforeAll() { CleanStatusBar.enableWithDefaults(); } @AfterClass public static void afterAll() { CleanStatusBar.disable(); } Have a look at the methods of the CleanStatusBar class to customize the status bar even more. You could for example show the Bluetooth icon and the LTE text. new CleanStatusBar() .setBluetoothState(BluetoothState.DISCONNECTED) .setMobileNetworkDataType(MobileDataType.LTE) .enable(); Advanced screengrab Launch Arguments You can provide additional arguments to your test cases on launch. These strings will be available in your tests through InstrumentationRegistry.getArguments() . screengrab( launch_arguments: [ \"username hjanuschka\", \"build_number 201\" ] ) Bundle extras = InstrumentationRegistry.getArguments(); String peerID = null; if (extras != null) { if (extras.containsKey(\"username\")) { username = extras.getString(\"username\"); System.out.println(\"Username: \" + username); } else { System.out.println(\"No username in extras\"); } } else { System.out.println(\"No extras\"); } Detecting screengrab at runtime For some apps, it is helpful to know when screengrab is running so that you can display specific data for your screenshots. For iOS fastlane users, this is much like \"FASTLANE_SNAPSHOT\". In order to do this, you'll need to have at least two product flavors of your app. Add two product flavors to the app-level build.gradle file: android { ... flavorDimensions \"mode\" productFlavors { screengrab { dimension \"mode\" } regular { dimension \"mode\" } } ... } Check for the existence of that flavor (i.e screengrab) in your app code as follows in order to use mock data or customize data for screenshots: if (BuildConfig.FLAVOR == \"screengrab\") { System.out.println(\"screengrab is running!\"); } When running screengrab , do the following to build the flavor you want as well as the test apk. Note that you use \"assembleFlavor_name\" where Flavor_name is the flavor name, capitalized (i.e. Screengrab). ./gradlew assembleScreengrab assembleAndroidTest Run screengrab : fastlane screengrab screengrab will ask you to select the debug and test apps (which you can then add to your Screengrabfile to skip this step later). The debug apk should be somewhere like this: app/build/outputs/apk/screengrab/debug/app-screengrab-debug.apk The test apk should be somewhere like this: app/build/outputs/apk/androidTest/screengrab/debug/app-screengrab-debug-androidTest.apk Sit back and enjoy your new screenshots! Note: while this could also be done by creating a new build variant (i.e. debug, release and creating a new one called screengrab), Android only allows one build type to be tested which defaults to debug. That's why we use product flavors. capture_android_screenshots Supported platforms android Author @asfalcone, @i2amsam, @mfurtak 3 Examples capture_android_screenshots screengrab # alias for \"capture_android_screenshots\" capture_android_screenshots( locales: [\"en-US\", \"fr-FR\", \"ja-JP\"], clear_previous_screenshots: true, app_apk_path: \"build/outputs/apk/example-debug.apk\", tests_apk_path: \"build/outputs/apk/example-debug-androidTest-unaligned.apk\" ) Parameters Key Description Default android_home Path to the root of your Android SDK installation, e.g. ~/tools/android-sdk-macosx * build_tools_version DEPRECATED! The Android build tools version to use, e.g. '23.0.2' locales A list of locales which should be used [\"en-US\"] clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running screengrab false output_directory The directory where to store the screenshots fastlane/metadata/android skip_open_summary Don't open the summary after running screengrab * app_package_name The package name of the app under test (e.g. com.yourcompany.yourapp) * tests_package_name The package name of the tests bundle (e.g. com.yourcompany.yourapp.test) use_tests_in_packages Only run tests in these Java packages use_tests_in_classes Only run tests in these Java classes launch_arguments Additional launch arguments test_instrumentation_runner The fully qualified class name of your test instrumentation runner androidx.test.runner.AndroidJUnitRunner ending_locale DEPRECATED! Return the device to this locale after running tests en-US use_adb_root DEPRECATED! Restarts the adb daemon using adb root to allow access to screenshots directories on device. Use if getting 'Permission denied' errors false app_apk_path The path to the APK for the app under test * tests_apk_path The path to the APK for the tests bundle * specific_device Use the device or emulator with the given serial number or qualifier device_type Type of device used for screenshots. Matches Google Play Types (phone, sevenInch, tenInch, tv, wear) phone exit_on_test_failure Whether or not to exit Screengrab on test failure. Exiting on failure will not copy screenshots to local machine nor open screenshots summary true reinstall_app Enabling this option will automatically uninstall the application before running it false use_timestamp_suffix Add timestamp suffix to screenshot filename true adb_host Configure the host used by adb to connect, allows running on remote devices farm * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The capture_android_screenshots action generates the following Lane Variables: SharedValue Description SharedValues::SCREENGRAB_OUTPUT_DIRECTORY The path to the output directory To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action capture_android_screenshots CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run capture_android_screenshots To pass parameters, make use of the : symbol, for example fastlane run capture_android_screenshots parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Capture android screenshots"},{"location":"generated/actions/capture_android_screenshots/#capture_android_screenshots","text":"Automated localized screenshots of your Android app (via screengrab )","title":"capture_android_screenshots"},{"location":"generated/actions/capture_android_screenshots/#installation","text":"Install the gem gem install fastlane","title":"Installation"},{"location":"generated/actions/capture_android_screenshots/#generating-screenshots-with-screengrab","text":"Then, before running fastlane screengrab you'll need a debug and test apk You can create your APKs manually with ./gradlew assembleDebug assembleAndroidTest You can also create a lane and use build_android_app : ruby desc \"Build debug and test APK for screenshots\" lane :build_and_screengrab do build_android_app( task: 'assemble', build_type: 'Debug' ) build_android_app( task: 'assemble', build_type: 'AndroidTest' ) screengrab() end - Once complete run fastlane screengrab in your app project directory to generate screenshots - You will be prompted to provide any required parameters which are not in your Screengrabfile or provided as command line arguments - Your screenshots will be saved to fastlane/metadata/android in the directory where you ran screengrab","title":"Generating Screenshots with screengrab"},{"location":"generated/actions/capture_android_screenshots/#improved-screenshot-capture-with-ui-automator","text":"As of screengrab 0.5.0, you can specify different strategies to control the way screengrab captures screenshots. The newer strategy delegates to UI Automator which fixes a number of problems compared to the original strategy: Shadows/elevation are correctly captured for Material UI Multi-window situations are correctly captured (dialogs, etc.) Works on Android N UI Automator is the default strategy. However, UI Automator requires a device with API level >= 18 . If you need to grab screenshots on an older Android version, use the latest 1.x.x version of this library and set the DecorView ScreenshotStrategy. Screengrab.setDefaultScreenshotStrategy(new DecorViewScreenshotStrategy());","title":"Improved screenshot capture with UI Automator"},{"location":"generated/actions/capture_android_screenshots/#improved-screenshot-capture-with-falcon","text":"As of screengrab 1.2.0, you can specify a new strategy to delegate to Falcon . Falcon may work better than UI Automator in some situations and also provides similar benefits as UI Automator: Multi-window situations are correctly captured (dialogs, etc.) Works on Android N Falcon requires a device with API level >= 10 . To enable it for all screenshots by default, make the following call before your tests run: Screengrab.setDefaultScreenshotStrategy(new FalconScreenshotStrategy(activityRule.getActivity()));","title":"Improved screenshot capture with Falcon"},{"location":"generated/actions/capture_android_screenshots/#advanced-screengrabfile-configuration","text":"Running fastlane screengrab init generated a Screengrabfile which can store all of your configuration options. Since most values will not change often for your project, it is recommended to store them there. The Screengrabfile is written in Ruby, so you may find it helpful to use an editor that highlights Ruby syntax to modify this file. # remove the leading '#' to uncomment lines # app_package_name('your.app.package') # use_tests_in_packages(['your.screenshot.tests.package']) # app_apk_path('path/to/your/app.apk') # tests_apk_path('path/to/your/tests.apk') locales(['en-US', 'fr-FR', 'it-IT']) # clear all previously generated screenshots in your local output directory before creating new ones clear_previous_screenshots(true) For more information about all available options run fastlane action screengrab","title":"Advanced Screengrabfile Configuration"},{"location":"generated/actions/capture_android_screenshots/#tips","text":"","title":"Tips"},{"location":"generated/actions/capture_android_screenshots/#ui-tests","text":"Check out Testing UI for a Single App for an introduction to using Espresso for UI testing.","title":"UI Tests"},{"location":"generated/actions/capture_android_screenshots/#clean-status-bar","text":"screengrab can clean your status bar to make your screenshots even more beautiful. It is simply a wrapper that allows configuring SystemUI DemoMode in your code. Note: the clean status bar feature is only supported on devices with API level >= 23 . You can enable and disable the clean status bar at any moment during your tests. In most cases you probably want to do this in the @BeforeClass and @AfterClass methods. @BeforeClass public static void beforeAll() { CleanStatusBar.enableWithDefaults(); } @AfterClass public static void afterAll() { CleanStatusBar.disable(); } Have a look at the methods of the CleanStatusBar class to customize the status bar even more. You could for example show the Bluetooth icon and the LTE text. new CleanStatusBar() .setBluetoothState(BluetoothState.DISCONNECTED) .setMobileNetworkDataType(MobileDataType.LTE) .enable();","title":"Clean Status Bar"},{"location":"generated/actions/capture_android_screenshots/#advanced-screengrab","text":"Launch Arguments You can provide additional arguments to your test cases on launch. These strings will be available in your tests through InstrumentationRegistry.getArguments() . screengrab( launch_arguments: [ \"username hjanuschka\", \"build_number 201\" ] ) Bundle extras = InstrumentationRegistry.getArguments(); String peerID = null; if (extras != null) { if (extras.containsKey(\"username\")) { username = extras.getString(\"username\"); System.out.println(\"Username: \" + username); } else { System.out.println(\"No username in extras\"); } } else { System.out.println(\"No extras\"); } Detecting screengrab at runtime For some apps, it is helpful to know when screengrab is running so that you can display specific data for your screenshots. For iOS fastlane users, this is much like \"FASTLANE_SNAPSHOT\". In order to do this, you'll need to have at least two product flavors of your app. Add two product flavors to the app-level build.gradle file: android { ... flavorDimensions \"mode\" productFlavors { screengrab { dimension \"mode\" } regular { dimension \"mode\" } } ... } Check for the existence of that flavor (i.e screengrab) in your app code as follows in order to use mock data or customize data for screenshots: if (BuildConfig.FLAVOR == \"screengrab\") { System.out.println(\"screengrab is running!\"); } When running screengrab , do the following to build the flavor you want as well as the test apk. Note that you use \"assembleFlavor_name\" where Flavor_name is the flavor name, capitalized (i.e. Screengrab). ./gradlew assembleScreengrab assembleAndroidTest Run screengrab : fastlane screengrab screengrab will ask you to select the debug and test apps (which you can then add to your Screengrabfile to skip this step later). The debug apk should be somewhere like this: app/build/outputs/apk/screengrab/debug/app-screengrab-debug.apk The test apk should be somewhere like this: app/build/outputs/apk/androidTest/screengrab/debug/app-screengrab-debug-androidTest.apk Sit back and enjoy your new screenshots! Note: while this could also be done by creating a new build variant (i.e. debug, release and creating a new one called screengrab), Android only allows one build type to be tested which defaults to debug. That's why we use product flavors. capture_android_screenshots Supported platforms android Author @asfalcone, @i2amsam, @mfurtak","title":"Advanced screengrab"},{"location":"generated/actions/capture_android_screenshots/#3-examples","text":"capture_android_screenshots screengrab # alias for \"capture_android_screenshots\" capture_android_screenshots( locales: [\"en-US\", \"fr-FR\", \"ja-JP\"], clear_previous_screenshots: true, app_apk_path: \"build/outputs/apk/example-debug.apk\", tests_apk_path: \"build/outputs/apk/example-debug-androidTest-unaligned.apk\" )","title":"3 Examples"},{"location":"generated/actions/capture_android_screenshots/#parameters","text":"Key Description Default android_home Path to the root of your Android SDK installation, e.g. ~/tools/android-sdk-macosx * build_tools_version DEPRECATED! The Android build tools version to use, e.g. '23.0.2' locales A list of locales which should be used [\"en-US\"] clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running screengrab false output_directory The directory where to store the screenshots fastlane/metadata/android skip_open_summary Don't open the summary after running screengrab * app_package_name The package name of the app under test (e.g. com.yourcompany.yourapp) * tests_package_name The package name of the tests bundle (e.g. com.yourcompany.yourapp.test) use_tests_in_packages Only run tests in these Java packages use_tests_in_classes Only run tests in these Java classes launch_arguments Additional launch arguments test_instrumentation_runner The fully qualified class name of your test instrumentation runner androidx.test.runner.AndroidJUnitRunner ending_locale DEPRECATED! Return the device to this locale after running tests en-US use_adb_root DEPRECATED! Restarts the adb daemon using adb root to allow access to screenshots directories on device. Use if getting 'Permission denied' errors false app_apk_path The path to the APK for the app under test * tests_apk_path The path to the APK for the tests bundle * specific_device Use the device or emulator with the given serial number or qualifier device_type Type of device used for screenshots. Matches Google Play Types (phone, sevenInch, tenInch, tv, wear) phone exit_on_test_failure Whether or not to exit Screengrab on test failure. Exiting on failure will not copy screenshots to local machine nor open screenshots summary true reinstall_app Enabling this option will automatically uninstall the application before running it false use_timestamp_suffix Add timestamp suffix to screenshot filename true adb_host Configure the host used by adb to connect, allows running on remote devices farm * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/capture_android_screenshots/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The capture_android_screenshots action generates the following Lane Variables: SharedValue Description SharedValues::SCREENGRAB_OUTPUT_DIRECTORY The path to the output directory To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/capture_android_screenshots/#documentation","text":"To show the documentation in your terminal, run fastlane action capture_android_screenshots","title":"Documentation"},{"location":"generated/actions/capture_android_screenshots/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run capture_android_screenshots To pass parameters, make use of the : symbol, for example fastlane run capture_android_screenshots parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/capture_android_screenshots/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/capture_ios_screenshots/","text":"capture_ios_screenshots Generate new localized screenshots on multiple devices (via snapshot ) Automate taking localized screenshots of your iOS, tvOS, and watchOS apps on every device Check out the new fastlane documentation on how to generate screenshots snapshot generates localized iOS, tvOS, and watchOS screenshots for different device types and languages for the App Store and can be uploaded using ( deliver ). You have to manually create 20 (languages) x 6 (devices) x 5 (screenshots) = 600 screenshots . It's hard to get everything right! New screenshots with every (design) update No loading indicators Same content / screens Clean Status Bar Uploading screenshots ( deliver is your friend) More information about creating perfect screenshots . snapshot runs completely in the background - you can do something else, while your computer takes the screenshots for you. Features \u2022 UI Tests \u2022 Quick Start \u2022 Usage \u2022 Tips \u2022 How? Features Create hundreds of screenshots in multiple languages on all simulators Take screenshots in multiple device simulators concurrently to cut down execution time (Xcode 9 only) Configure it once, store the configuration in git Do something else, while the computer takes the screenshots for you Integrates with fastlane and deliver Generates a beautiful web page, which shows all screenshots on all devices. This is perfect to send to QA or the marketing team snapshot automatically waits for network requests to be finished before taking a screenshot (we don't want loading images in the App Store screenshots) After snapshot successfully created new screenshots, it will generate a beautiful HTML file to get a quick overview of all screens: Why? This tool automatically switches the language and device type and runs UI Tests for every combination. Why should I automate this process? It takes hours to take screenshots You get a great overview of all your screens, running on all available simulators without the need to manually start it hundreds of times Easy verification for translators (without an iDevice) that translations do make sense in real App context Easy verification that localizations fit into labels on all screen dimensions It is an integration test: You can test for UI elements and other things inside your scripts Be so nice, and provide new screenshots with every App Store update. Your customers deserve it You realize, there is a spelling mistake in one of the screens? Well, just correct it and re-run the script UI Tests Getting started This project uses Apple's newly announced UI Tests. We will not go into detail on how to write scripts. Here a few links to get started: WWDC 2015 Introduction to UI Tests A first look into UI Tests UI Testing in Xcode 7 HSTestingBackchannel : \u2018Cheat\u2019 by communicating directly with your app Automating App Store screenshots using fastlane snapshot and frameit Quick Start Create a new UI Test target in your Xcode project ( top part of this article ) Run fastlane snapshot init in your project folder Add the ./SnapshotHelper.swift to your UI Test target (You can move the file anywhere you want) (Xcode 8 only) add the ./SnapshotHelperXcode8.swift to your UI Test target (Objective C only) add the bridging header to your test class: #import \"MYUITests-Swift.h\" (The bridging header is named after your test target with -Swift.h appended.) In your UI Test class, click the Record button on the bottom left and record your interaction To take a snapshot, call the following between interactions Swift: snapshot(\"01LoginScreen\") Objective C: [Snapshot snapshot:@\"01LoginScreen\" timeWaitingForIdle:10]; Add the following code to your setUp() method: Swift: let app = XCUIApplication() setupSnapshot(app) app.launch() Objective C: XCUIApplication *app = [[XCUIApplication alloc] init]; [Snapshot setupSnapshot:app waitForAnimations:NO]; [app launch]; Make sure you only have one launch call in your test class, as Xcode adds one automatically on new test files. You can try the snapshot example project by cloning this repo. To quick start your UI tests, you can use the UI Test recorder. You only have to interact with the simulator, and Xcode will generate the UI Test code for you. You can find the red record button on the bottom of the screen (more information in this blog post ) Usage fastlane snapshot Your screenshots will be stored in the ./screenshots/ folder by default (or ./fastlane/screenshots if you're using fastlane ) New with Xcode 9, snapshot can run multiple simulators concurrently. This is the default behavior in order to take your screenshots as quickly as possible. This can be disabled to run each device, one at a time, by setting the :concurrent_simulators option to false . Note: While running snapshot with Xcode 9, the simulators will not be visibly spawned. So, while you won't see the simulators running your tests, they will, in fact, be taking your screenshots. If any error occurs while running the snapshot script on a device, that device will not have any screenshots, and snapshot will continue with the next device or language. To stop the flow after the first error, run fastlane snapshot --stop_after_first_error Also by default, snapshot will open the HTML after all is done. This can be skipped with the following command fastlane snapshot --stop_after_first_error --skip_open_summary There are a lot of options available that define how to build your app, for example fastlane snapshot --scheme \"UITests\" --configuration \"Release\" --sdk \"iphonesimulator\" Reinstall the app before running snapshot fastlane snapshot --reinstall_app --app_identifier \"tools.fastlane.app\" By default snapshot automatically retries running UI Tests if they fail. This is due to randomly failing UI Tests (e.g. #2517 ). You can adapt this number using fastlane snapshot --number_of_retries 3 Add photos and/or videos to the simulator before running snapshot fastlane snapshot --add_photos MyTestApp/Assets/demo.jpg --add_videos MyTestApp/Assets/demo.mp4 For a list for all available options run fastlane action snapshot After running snapshot you will get a nice summary: Snapfile All of the available options can also be stored in a configuration file called the Snapfile . Since most values will not change often for your project, it is recommended to store them there: First make sure to have a Snapfile (you get it for free when running fastlane snapshot init ) The Snapfile can contain all the options that are also available on fastlane action snapshot scheme(\"UITests\") devices([ \"iPad (7th generation)\", \"iPad Air (3rd generation)\", \"iPad Pro (11-inch)\", \"iPad Pro (12.9-inch) (3rd generation)\", \"iPad Pro (9.7-inch)\", \"iPhone 11\", \"iPhone 11 Pro\", \"iPhone 11 Pro Max\", \"iPhone 8\", \"iPhone 8 Plus\" ]) languages([ \"en-US\", \"de-DE\", \"es-ES\", [\"pt\", \"pt_BR\"] # Portuguese with Brazilian locale ]) launch_arguments([\"-username Felix\"]) # The directory in which the screenshots should be stored output_directory('./screenshots') clear_previous_screenshots(true) override_status_bar(true) add_photos([\"MyTestApp/Assets/demo.jpg\"]) Completely reset all simulators You can run this command in the terminal to delete and re-create all iOS and tvOS simulators: fastlane snapshot reset_simulators Warning : This will delete all your simulators and replace by new ones! This is useful, if you run into weird problems when running snapshot . You can use the environment variable SNAPSHOT_FORCE_DELETE to stop asking for confirmation before deleting. SNAPSHOT_FORCE_DELETE=1 fastlane snapshot reset_simulators Update snapshot helpers Some updates require the helper files to be updated. snapshot will automatically warn you and tell you how to update. Basically you can run fastlane snapshot update to update your SnapshotHelper.swift files. In case you modified your SnapshotHelper.swift and want to manually update the file, check out SnapshotHelper.swift . Launch Arguments You can provide additional arguments to your app on launch. These strings will be available in your app (e.g. not in the testing target) through ProcessInfo.processInfo.arguments . Alternatively, use user-default syntax ( -key value ) and they will be available as key-value pairs in UserDefaults.standard . launch_arguments([ \"-firstName Felix -lastName Krause\" ]) name.text = UserDefaults.standard.string(forKey: \"firstName\") // name.text = \"Felix\" snapshot includes -FASTLANE_SNAPSHOT YES , which will set a temporary user default for the key FASTLANE_SNAPSHOT , you may use this to detect when the app is run by snapshot . if UserDefaults.standard.bool(forKey: \"FASTLANE_SNAPSHOT\") { // runtime check that we are in snapshot mode } Specify multiple argument strings and snapshot will generate screenshots for each combination of arguments, devices, and languages. This is useful for comparing the same screenshots with different feature flags, dynamic text sizes, and different data sets. # Snapfile for A/B Test Comparison launch_arguments([ \"-secretFeatureEnabled YES\", \"-secretFeatureEnabled NO\" ]) Xcode Environment Variables snapshot includes FASTLANE_SNAPSHOT=YES and FASTLANE_LANGUAGE= as arguments when executing xcodebuild . This means you may use these environment variables in a custom build phase run script to do any additional configuration. How does it work? The easiest solution would be to just render the UIWindow into a file. That's not possible because UI Tests don't run on a main thread. So snapshot uses a different approach: When you run unit tests in Xcode, the reporter generates a plist file, documenting all events that occurred during the tests ( More Information ). Additionally, Xcode generates screenshots before, during and after each of these events. There is no way to manually trigger a screenshot event. The screenshots and the plist files are stored in the DerivedData directory, which snapshot stores in a temporary folder. When the user calls snapshot(...) in the UI Tests (Swift or Objective C) the script actually does a rotation to .Unknown which doesn't have any effect on the actual app, but is enough to trigger a screenshot. It has no effect to the application and is not something you would do in your tests. The goal was to find some event that a user would never trigger, so that we know it's from snapshot . On tvOS, there is no orientation so we ask for a count of app views with type \"Browser\" (which should never exist on tvOS). snapshot then iterates through all test events and check where we either did this weird rotation (on iOS) or searched for browsers (on tvOS). Once snapshot has all events triggered by snapshot it collects a ordered list of all the file names of the actual screenshots of the application. In the test output, the Swift snapshot function will print out something like this snapshot: [some random text here] snapshot finds all these entries using a regex. The number of snapshot outputs in the terminal and the number of snapshot events in the plist file should be the same. Knowing that, snapshot automatically matches these 2 lists to identify the name of each of these screenshots. They are then copied over to the output directory and separated by language and device. 2 thing have to be passed on from snapshot to the xcodebuild command line tool: The device type is passed via the destination parameter of the xcodebuild parameter The language is passed via a temporary file which is written by snapshot before running the tests and read by the UI Tests when launching the application If you find a better way to do any of this, please submit an issue on GitHub or even a pull request :+1: Radar 23062925 has been resolved with Xcode 8.3, so it's now possible to actually take screenshots from the simulator. We'll keep using the old approach for now, since many of you still want to use older versions of Xcode. Tips Check out the new fastlane documentation on how to generate screenshots Frame the screenshots If you want to add frames around the screenshots and even put a title on top, check out frameit . Available language codes ALL_LANGUAGES = [\"da\", \"de-DE\", \"el\", \"en-AU\", \"en-CA\", \"en-GB\", \"en-US\", \"es-ES\", \"es-MX\", \"fi\", \"fr-CA\", \"fr-FR\", \"id\", \"it\", \"ja\", \"ko\", \"ms\", \"nl-NL\", \"no\", \"pt-BR\", \"pt-PT\", \"ru\", \"sv\", \"th\", \"tr\", \"vi\", \"zh-Hans\", \"zh-Hant\"] To get more information about language and locale codes please read Internationalization and Localization Guide . Use a clean status bar You can set override_status_bar to true to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available. Editing the Snapfile Change syntax highlighting to Ruby . Simulator doesn't launch the application When the app dies directly after the application is launched there might be 2 problems The simulator is somehow in a broken state and you need to re-create it. You can use snapshot reset_simulators to reset all simulators (this will remove all installed apps) A restart helps very often Determine language To detect the currently used localization in your tests, access the deviceLanguage variable from SnapshotHelper.swift . Speed up snapshots A lot of time in UI tests is spent waiting for animations. You can disable UIView animations in your app to make the tests faster: if ProcessInfo().arguments.contains(\"SKIP_ANIMATIONS\") { UIView.setAnimationsEnabled(false) } This requires you to pass the launch argument like so: snapshot(launch_arguments: [\"SKIP_ANIMATIONS\"]) By default, snapshot will wait for a short time for the animations to finish. If you're skipping the animations, this wait time is unnecessary and can be skipped: setupSnapshot(app, waitForAnimations: false) capture_ios_screenshots Supported platforms ios, mac Author @KrauseFx 3 Examples capture_ios_screenshots snapshot # alias for \"capture_ios_screenshots\" capture_ios_screenshots( skip_open_summary: true, clean: true ) Parameters Key Description Default workspace Path the workspace file project Path the project file xcargs Pass additional arguments to xcodebuild for the test phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app devices A list of devices you want to take the screenshots from languages A list of languages which should be used [\"en-US\"] launch_arguments A list of launch arguments which should be used [\"\"] output_directory The directory where to store the screenshots * output_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false ios_version By default, the latest version should be used automatically. If you want to change it, do it here skip_open_summary Don't open the HTML summary after running snapshot false skip_helper_version_check Do not check for most recent SnapshotHelper code false clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running snapshot false reinstall_app Enabling this option will automatically uninstall the application before running it false erase_simulator Enabling this option will automatically erase the simulator before running the application false headless Enabling this option will prevent displaying the simulator window true override_status_bar Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception (Adjust 'SNAPSHOT_SIMULATOR_WAIT_FOR_BOOT_TIMEOUT' environment variable if override status bar is not working. Might be because simulator is not fully booted. Defaults to 10 seconds) false override_status_bar_arguments Fully customize the status bar by setting each option here. Requires override_status_bar to be set to true . See xcrun simctl status_bar --help localize_simulator Enabling this option will configure the Simulator's system language false dark_mode Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark) app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * add_photos A list of photos that should be added to the simulator before running the application add_videos A list of videos that should be added to the simulator before running the application html_template A path to screenshots.html template buildlog_path The directory where to store the build log * clean Should the project be cleaned before building it? false test_without_building Test without building, requires a derived data path configuration The configuration to use when building the app. Defaults to 'Release' * sdk The SDK that should be used for building the application scheme The scheme you want to use, this must be the scheme for the UI Tests number_of_retries The number of times a test can fail before snapshot should stop retrying 1 stop_after_first_error Should snapshot stop immediately after the tests completely failed on one device? false derived_data_path The directory where build products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false test_target_name The name of the target you want to test (if you desire to override the Target Application from Xcode) namespace_log_files Separate the log files per device and per language concurrent_simulators Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9 true disable_slide_to_type Disable the simulator from showing the 'Slide to type' prompt false cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false testplan The testplan associated with the scheme that should be used for testing only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * xcpretty_args DEPRECATED! Use xcodebuild_formatter: '' instead - Additional xcpretty arguments disable_xcpretty Disable xcpretty formatting of build suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The capture_ios_screenshots action generates the following Lane Variables: SharedValue Description SharedValues::SNAPSHOT_SCREENSHOTS_PATH The path to the screenshots To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action capture_ios_screenshots CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run capture_ios_screenshots To pass parameters, make use of the : symbol, for example fastlane run capture_ios_screenshots parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Capture ios screenshots"},{"location":"generated/actions/capture_ios_screenshots/#capture_ios_screenshots","text":"Generate new localized screenshots on multiple devices (via snapshot )","title":"capture_ios_screenshots"},{"location":"generated/actions/capture_ios_screenshots/#features","text":"Create hundreds of screenshots in multiple languages on all simulators Take screenshots in multiple device simulators concurrently to cut down execution time (Xcode 9 only) Configure it once, store the configuration in git Do something else, while the computer takes the screenshots for you Integrates with fastlane and deliver Generates a beautiful web page, which shows all screenshots on all devices. This is perfect to send to QA or the marketing team snapshot automatically waits for network requests to be finished before taking a screenshot (we don't want loading images in the App Store screenshots) After snapshot successfully created new screenshots, it will generate a beautiful HTML file to get a quick overview of all screens:","title":"Features"},{"location":"generated/actions/capture_ios_screenshots/#why","text":"This tool automatically switches the language and device type and runs UI Tests for every combination.","title":"Why?"},{"location":"generated/actions/capture_ios_screenshots/#ui-tests","text":"","title":"UI Tests"},{"location":"generated/actions/capture_ios_screenshots/#getting-started","text":"This project uses Apple's newly announced UI Tests. We will not go into detail on how to write scripts. Here a few links to get started: WWDC 2015 Introduction to UI Tests A first look into UI Tests UI Testing in Xcode 7 HSTestingBackchannel : \u2018Cheat\u2019 by communicating directly with your app Automating App Store screenshots using fastlane snapshot and frameit","title":"Getting started"},{"location":"generated/actions/capture_ios_screenshots/#quick-start","text":"Create a new UI Test target in your Xcode project ( top part of this article ) Run fastlane snapshot init in your project folder Add the ./SnapshotHelper.swift to your UI Test target (You can move the file anywhere you want) (Xcode 8 only) add the ./SnapshotHelperXcode8.swift to your UI Test target (Objective C only) add the bridging header to your test class: #import \"MYUITests-Swift.h\" (The bridging header is named after your test target with -Swift.h appended.) In your UI Test class, click the Record button on the bottom left and record your interaction To take a snapshot, call the following between interactions Swift: snapshot(\"01LoginScreen\") Objective C: [Snapshot snapshot:@\"01LoginScreen\" timeWaitingForIdle:10]; Add the following code to your setUp() method: Swift: let app = XCUIApplication() setupSnapshot(app) app.launch() Objective C: XCUIApplication *app = [[XCUIApplication alloc] init]; [Snapshot setupSnapshot:app waitForAnimations:NO]; [app launch]; Make sure you only have one launch call in your test class, as Xcode adds one automatically on new test files. You can try the snapshot example project by cloning this repo. To quick start your UI tests, you can use the UI Test recorder. You only have to interact with the simulator, and Xcode will generate the UI Test code for you. You can find the red record button on the bottom of the screen (more information in this blog post )","title":"Quick Start"},{"location":"generated/actions/capture_ios_screenshots/#usage","text":"fastlane snapshot Your screenshots will be stored in the ./screenshots/ folder by default (or ./fastlane/screenshots if you're using fastlane ) New with Xcode 9, snapshot can run multiple simulators concurrently. This is the default behavior in order to take your screenshots as quickly as possible. This can be disabled to run each device, one at a time, by setting the :concurrent_simulators option to false . Note: While running snapshot with Xcode 9, the simulators will not be visibly spawned. So, while you won't see the simulators running your tests, they will, in fact, be taking your screenshots. If any error occurs while running the snapshot script on a device, that device will not have any screenshots, and snapshot will continue with the next device or language. To stop the flow after the first error, run fastlane snapshot --stop_after_first_error Also by default, snapshot will open the HTML after all is done. This can be skipped with the following command fastlane snapshot --stop_after_first_error --skip_open_summary There are a lot of options available that define how to build your app, for example fastlane snapshot --scheme \"UITests\" --configuration \"Release\" --sdk \"iphonesimulator\" Reinstall the app before running snapshot fastlane snapshot --reinstall_app --app_identifier \"tools.fastlane.app\" By default snapshot automatically retries running UI Tests if they fail. This is due to randomly failing UI Tests (e.g. #2517 ). You can adapt this number using fastlane snapshot --number_of_retries 3 Add photos and/or videos to the simulator before running snapshot fastlane snapshot --add_photos MyTestApp/Assets/demo.jpg --add_videos MyTestApp/Assets/demo.mp4 For a list for all available options run fastlane action snapshot After running snapshot you will get a nice summary:","title":"Usage"},{"location":"generated/actions/capture_ios_screenshots/#snapfile","text":"All of the available options can also be stored in a configuration file called the Snapfile . Since most values will not change often for your project, it is recommended to store them there: First make sure to have a Snapfile (you get it for free when running fastlane snapshot init ) The Snapfile can contain all the options that are also available on fastlane action snapshot scheme(\"UITests\") devices([ \"iPad (7th generation)\", \"iPad Air (3rd generation)\", \"iPad Pro (11-inch)\", \"iPad Pro (12.9-inch) (3rd generation)\", \"iPad Pro (9.7-inch)\", \"iPhone 11\", \"iPhone 11 Pro\", \"iPhone 11 Pro Max\", \"iPhone 8\", \"iPhone 8 Plus\" ]) languages([ \"en-US\", \"de-DE\", \"es-ES\", [\"pt\", \"pt_BR\"] # Portuguese with Brazilian locale ]) launch_arguments([\"-username Felix\"]) # The directory in which the screenshots should be stored output_directory('./screenshots') clear_previous_screenshots(true) override_status_bar(true) add_photos([\"MyTestApp/Assets/demo.jpg\"])","title":"Snapfile"},{"location":"generated/actions/capture_ios_screenshots/#update-snapshot-helpers","text":"Some updates require the helper files to be updated. snapshot will automatically warn you and tell you how to update. Basically you can run fastlane snapshot update to update your SnapshotHelper.swift files. In case you modified your SnapshotHelper.swift and want to manually update the file, check out SnapshotHelper.swift .","title":"Update snapshot helpers"},{"location":"generated/actions/capture_ios_screenshots/#launch-arguments","text":"You can provide additional arguments to your app on launch. These strings will be available in your app (e.g. not in the testing target) through ProcessInfo.processInfo.arguments . Alternatively, use user-default syntax ( -key value ) and they will be available as key-value pairs in UserDefaults.standard . launch_arguments([ \"-firstName Felix -lastName Krause\" ]) name.text = UserDefaults.standard.string(forKey: \"firstName\") // name.text = \"Felix\" snapshot includes -FASTLANE_SNAPSHOT YES , which will set a temporary user default for the key FASTLANE_SNAPSHOT , you may use this to detect when the app is run by snapshot . if UserDefaults.standard.bool(forKey: \"FASTLANE_SNAPSHOT\") { // runtime check that we are in snapshot mode } Specify multiple argument strings and snapshot will generate screenshots for each combination of arguments, devices, and languages. This is useful for comparing the same screenshots with different feature flags, dynamic text sizes, and different data sets. # Snapfile for A/B Test Comparison launch_arguments([ \"-secretFeatureEnabled YES\", \"-secretFeatureEnabled NO\" ])","title":"Launch Arguments"},{"location":"generated/actions/capture_ios_screenshots/#xcode-environment-variables","text":"snapshot includes FASTLANE_SNAPSHOT=YES and FASTLANE_LANGUAGE= as arguments when executing xcodebuild . This means you may use these environment variables in a custom build phase run script to do any additional configuration.","title":"Xcode Environment Variables"},{"location":"generated/actions/capture_ios_screenshots/#how-does-it-work","text":"The easiest solution would be to just render the UIWindow into a file. That's not possible because UI Tests don't run on a main thread. So snapshot uses a different approach: When you run unit tests in Xcode, the reporter generates a plist file, documenting all events that occurred during the tests ( More Information ). Additionally, Xcode generates screenshots before, during and after each of these events. There is no way to manually trigger a screenshot event. The screenshots and the plist files are stored in the DerivedData directory, which snapshot stores in a temporary folder. When the user calls snapshot(...) in the UI Tests (Swift or Objective C) the script actually does a rotation to .Unknown which doesn't have any effect on the actual app, but is enough to trigger a screenshot. It has no effect to the application and is not something you would do in your tests. The goal was to find some event that a user would never trigger, so that we know it's from snapshot . On tvOS, there is no orientation so we ask for a count of app views with type \"Browser\" (which should never exist on tvOS). snapshot then iterates through all test events and check where we either did this weird rotation (on iOS) or searched for browsers (on tvOS). Once snapshot has all events triggered by snapshot it collects a ordered list of all the file names of the actual screenshots of the application. In the test output, the Swift snapshot function will print out something like this snapshot: [some random text here] snapshot finds all these entries using a regex. The number of snapshot outputs in the terminal and the number of snapshot events in the plist file should be the same. Knowing that, snapshot automatically matches these 2 lists to identify the name of each of these screenshots. They are then copied over to the output directory and separated by language and device. 2 thing have to be passed on from snapshot to the xcodebuild command line tool: The device type is passed via the destination parameter of the xcodebuild parameter The language is passed via a temporary file which is written by snapshot before running the tests and read by the UI Tests when launching the application If you find a better way to do any of this, please submit an issue on GitHub or even a pull request :+1: Radar 23062925 has been resolved with Xcode 8.3, so it's now possible to actually take screenshots from the simulator. We'll keep using the old approach for now, since many of you still want to use older versions of Xcode.","title":"How does it work?"},{"location":"generated/actions/capture_ios_screenshots/#tips","text":"","title":"Tips"},{"location":"generated/actions/capture_ios_screenshots/#frame-the-screenshots","text":"If you want to add frames around the screenshots and even put a title on top, check out frameit .","title":"Frame the screenshots"},{"location":"generated/actions/capture_ios_screenshots/#available-language-codes","text":"ALL_LANGUAGES = [\"da\", \"de-DE\", \"el\", \"en-AU\", \"en-CA\", \"en-GB\", \"en-US\", \"es-ES\", \"es-MX\", \"fi\", \"fr-CA\", \"fr-FR\", \"id\", \"it\", \"ja\", \"ko\", \"ms\", \"nl-NL\", \"no\", \"pt-BR\", \"pt-PT\", \"ru\", \"sv\", \"th\", \"tr\", \"vi\", \"zh-Hans\", \"zh-Hant\"] To get more information about language and locale codes please read Internationalization and Localization Guide .","title":"Available language codes"},{"location":"generated/actions/capture_ios_screenshots/#use-a-clean-status-bar","text":"You can set override_status_bar to true to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available.","title":"Use a clean status bar"},{"location":"generated/actions/capture_ios_screenshots/#editing-the-snapfile","text":"Change syntax highlighting to Ruby .","title":"Editing the Snapfile"},{"location":"generated/actions/capture_ios_screenshots/#determine-language","text":"To detect the currently used localization in your tests, access the deviceLanguage variable from SnapshotHelper.swift .","title":"Determine language"},{"location":"generated/actions/capture_ios_screenshots/#speed-up-snapshots","text":"A lot of time in UI tests is spent waiting for animations. You can disable UIView animations in your app to make the tests faster: if ProcessInfo().arguments.contains(\"SKIP_ANIMATIONS\") { UIView.setAnimationsEnabled(false) } This requires you to pass the launch argument like so: snapshot(launch_arguments: [\"SKIP_ANIMATIONS\"]) By default, snapshot will wait for a short time for the animations to finish. If you're skipping the animations, this wait time is unnecessary and can be skipped: setupSnapshot(app, waitForAnimations: false) capture_ios_screenshots Supported platforms ios, mac Author @KrauseFx","title":"Speed up snapshots"},{"location":"generated/actions/capture_ios_screenshots/#3-examples","text":"capture_ios_screenshots snapshot # alias for \"capture_ios_screenshots\" capture_ios_screenshots( skip_open_summary: true, clean: true )","title":"3 Examples"},{"location":"generated/actions/capture_ios_screenshots/#parameters","text":"Key Description Default workspace Path the workspace file project Path the project file xcargs Pass additional arguments to xcodebuild for the test phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app devices A list of devices you want to take the screenshots from languages A list of languages which should be used [\"en-US\"] launch_arguments A list of launch arguments which should be used [\"\"] output_directory The directory where to store the screenshots * output_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false ios_version By default, the latest version should be used automatically. If you want to change it, do it here skip_open_summary Don't open the HTML summary after running snapshot false skip_helper_version_check Do not check for most recent SnapshotHelper code false clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running snapshot false reinstall_app Enabling this option will automatically uninstall the application before running it false erase_simulator Enabling this option will automatically erase the simulator before running the application false headless Enabling this option will prevent displaying the simulator window true override_status_bar Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception (Adjust 'SNAPSHOT_SIMULATOR_WAIT_FOR_BOOT_TIMEOUT' environment variable if override status bar is not working. Might be because simulator is not fully booted. Defaults to 10 seconds) false override_status_bar_arguments Fully customize the status bar by setting each option here. Requires override_status_bar to be set to true . See xcrun simctl status_bar --help localize_simulator Enabling this option will configure the Simulator's system language false dark_mode Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark) app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * add_photos A list of photos that should be added to the simulator before running the application add_videos A list of videos that should be added to the simulator before running the application html_template A path to screenshots.html template buildlog_path The directory where to store the build log * clean Should the project be cleaned before building it? false test_without_building Test without building, requires a derived data path configuration The configuration to use when building the app. Defaults to 'Release' * sdk The SDK that should be used for building the application scheme The scheme you want to use, this must be the scheme for the UI Tests number_of_retries The number of times a test can fail before snapshot should stop retrying 1 stop_after_first_error Should snapshot stop immediately after the tests completely failed on one device? false derived_data_path The directory where build products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false test_target_name The name of the target you want to test (if you desire to override the Target Application from Xcode) namespace_log_files Separate the log files per device and per language concurrent_simulators Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9 true disable_slide_to_type Disable the simulator from showing the 'Slide to type' prompt false cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false testplan The testplan associated with the scheme that should be used for testing only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * xcpretty_args DEPRECATED! Use xcodebuild_formatter: '' instead - Additional xcpretty arguments disable_xcpretty Disable xcpretty formatting of build suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/capture_ios_screenshots/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The capture_ios_screenshots action generates the following Lane Variables: SharedValue Description SharedValues::SNAPSHOT_SCREENSHOTS_PATH The path to the screenshots To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/capture_ios_screenshots/#documentation","text":"To show the documentation in your terminal, run fastlane action capture_ios_screenshots","title":"Documentation"},{"location":"generated/actions/capture_ios_screenshots/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run capture_ios_screenshots To pass parameters, make use of the : symbol, for example fastlane run capture_ios_screenshots parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/capture_ios_screenshots/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/capture_screenshots/","text":"capture_screenshots Alias for the capture_ios_screenshots action Automate taking localized screenshots of your iOS, tvOS, and watchOS apps on every device Check out the new fastlane documentation on how to generate screenshots snapshot generates localized iOS, tvOS, and watchOS screenshots for different device types and languages for the App Store and can be uploaded using ( deliver ). You have to manually create 20 (languages) x 6 (devices) x 5 (screenshots) = 600 screenshots . It's hard to get everything right! New screenshots with every (design) update No loading indicators Same content / screens Clean Status Bar Uploading screenshots ( deliver is your friend) More information about creating perfect screenshots . snapshot runs completely in the background - you can do something else, while your computer takes the screenshots for you. Features \u2022 UI Tests \u2022 Quick Start \u2022 Usage \u2022 Tips \u2022 How? Features Create hundreds of screenshots in multiple languages on all simulators Take screenshots in multiple device simulators concurrently to cut down execution time (Xcode 9 only) Configure it once, store the configuration in git Do something else, while the computer takes the screenshots for you Integrates with fastlane and deliver Generates a beautiful web page, which shows all screenshots on all devices. This is perfect to send to QA or the marketing team snapshot automatically waits for network requests to be finished before taking a screenshot (we don't want loading images in the App Store screenshots) After snapshot successfully created new screenshots, it will generate a beautiful HTML file to get a quick overview of all screens: Why? This tool automatically switches the language and device type and runs UI Tests for every combination. Why should I automate this process? It takes hours to take screenshots You get a great overview of all your screens, running on all available simulators without the need to manually start it hundreds of times Easy verification for translators (without an iDevice) that translations do make sense in real App context Easy verification that localizations fit into labels on all screen dimensions It is an integration test: You can test for UI elements and other things inside your scripts Be so nice, and provide new screenshots with every App Store update. Your customers deserve it You realize, there is a spelling mistake in one of the screens? Well, just correct it and re-run the script UI Tests Getting started This project uses Apple's newly announced UI Tests. We will not go into detail on how to write scripts. Here a few links to get started: WWDC 2015 Introduction to UI Tests A first look into UI Tests UI Testing in Xcode 7 HSTestingBackchannel : \u2018Cheat\u2019 by communicating directly with your app Automating App Store screenshots using fastlane snapshot and frameit Quick Start Create a new UI Test target in your Xcode project ( top part of this article ) Run fastlane snapshot init in your project folder Add the ./SnapshotHelper.swift to your UI Test target (You can move the file anywhere you want) (Xcode 8 only) add the ./SnapshotHelperXcode8.swift to your UI Test target (Objective C only) add the bridging header to your test class: #import \"MYUITests-Swift.h\" (The bridging header is named after your test target with -Swift.h appended.) In your UI Test class, click the Record button on the bottom left and record your interaction To take a snapshot, call the following between interactions Swift: snapshot(\"01LoginScreen\") Objective C: [Snapshot snapshot:@\"01LoginScreen\" timeWaitingForIdle:10]; Add the following code to your setUp() method: Swift: let app = XCUIApplication() setupSnapshot(app) app.launch() Objective C: XCUIApplication *app = [[XCUIApplication alloc] init]; [Snapshot setupSnapshot:app waitForAnimations:NO]; [app launch]; Make sure you only have one launch call in your test class, as Xcode adds one automatically on new test files. You can try the snapshot example project by cloning this repo. To quick start your UI tests, you can use the UI Test recorder. You only have to interact with the simulator, and Xcode will generate the UI Test code for you. You can find the red record button on the bottom of the screen (more information in this blog post ) Usage fastlane snapshot Your screenshots will be stored in the ./screenshots/ folder by default (or ./fastlane/screenshots if you're using fastlane ) New with Xcode 9, snapshot can run multiple simulators concurrently. This is the default behavior in order to take your screenshots as quickly as possible. This can be disabled to run each device, one at a time, by setting the :concurrent_simulators option to false . Note: While running snapshot with Xcode 9, the simulators will not be visibly spawned. So, while you won't see the simulators running your tests, they will, in fact, be taking your screenshots. If any error occurs while running the snapshot script on a device, that device will not have any screenshots, and snapshot will continue with the next device or language. To stop the flow after the first error, run fastlane snapshot --stop_after_first_error Also by default, snapshot will open the HTML after all is done. This can be skipped with the following command fastlane snapshot --stop_after_first_error --skip_open_summary There are a lot of options available that define how to build your app, for example fastlane snapshot --scheme \"UITests\" --configuration \"Release\" --sdk \"iphonesimulator\" Reinstall the app before running snapshot fastlane snapshot --reinstall_app --app_identifier \"tools.fastlane.app\" By default snapshot automatically retries running UI Tests if they fail. This is due to randomly failing UI Tests (e.g. #2517 ). You can adapt this number using fastlane snapshot --number_of_retries 3 Add photos and/or videos to the simulator before running snapshot fastlane snapshot --add_photos MyTestApp/Assets/demo.jpg --add_videos MyTestApp/Assets/demo.mp4 For a list for all available options run fastlane action snapshot After running snapshot you will get a nice summary: Snapfile All of the available options can also be stored in a configuration file called the Snapfile . Since most values will not change often for your project, it is recommended to store them there: First make sure to have a Snapfile (you get it for free when running fastlane snapshot init ) The Snapfile can contain all the options that are also available on fastlane action snapshot scheme(\"UITests\") devices([ \"iPad (7th generation)\", \"iPad Air (3rd generation)\", \"iPad Pro (11-inch)\", \"iPad Pro (12.9-inch) (3rd generation)\", \"iPad Pro (9.7-inch)\", \"iPhone 11\", \"iPhone 11 Pro\", \"iPhone 11 Pro Max\", \"iPhone 8\", \"iPhone 8 Plus\" ]) languages([ \"en-US\", \"de-DE\", \"es-ES\", [\"pt\", \"pt_BR\"] # Portuguese with Brazilian locale ]) launch_arguments([\"-username Felix\"]) # The directory in which the screenshots should be stored output_directory('./screenshots') clear_previous_screenshots(true) override_status_bar(true) add_photos([\"MyTestApp/Assets/demo.jpg\"]) Completely reset all simulators You can run this command in the terminal to delete and re-create all iOS and tvOS simulators: fastlane snapshot reset_simulators Warning : This will delete all your simulators and replace by new ones! This is useful, if you run into weird problems when running snapshot . You can use the environment variable SNAPSHOT_FORCE_DELETE to stop asking for confirmation before deleting. SNAPSHOT_FORCE_DELETE=1 fastlane snapshot reset_simulators Update snapshot helpers Some updates require the helper files to be updated. snapshot will automatically warn you and tell you how to update. Basically you can run fastlane snapshot update to update your SnapshotHelper.swift files. In case you modified your SnapshotHelper.swift and want to manually update the file, check out SnapshotHelper.swift . Launch Arguments You can provide additional arguments to your app on launch. These strings will be available in your app (e.g. not in the testing target) through ProcessInfo.processInfo.arguments . Alternatively, use user-default syntax ( -key value ) and they will be available as key-value pairs in UserDefaults.standard . launch_arguments([ \"-firstName Felix -lastName Krause\" ]) name.text = UserDefaults.standard.string(forKey: \"firstName\") // name.text = \"Felix\" snapshot includes -FASTLANE_SNAPSHOT YES , which will set a temporary user default for the key FASTLANE_SNAPSHOT , you may use this to detect when the app is run by snapshot . if UserDefaults.standard.bool(forKey: \"FASTLANE_SNAPSHOT\") { // runtime check that we are in snapshot mode } Specify multiple argument strings and snapshot will generate screenshots for each combination of arguments, devices, and languages. This is useful for comparing the same screenshots with different feature flags, dynamic text sizes, and different data sets. # Snapfile for A/B Test Comparison launch_arguments([ \"-secretFeatureEnabled YES\", \"-secretFeatureEnabled NO\" ]) Xcode Environment Variables snapshot includes FASTLANE_SNAPSHOT=YES and FASTLANE_LANGUAGE= as arguments when executing xcodebuild . This means you may use these environment variables in a custom build phase run script to do any additional configuration. How does it work? The easiest solution would be to just render the UIWindow into a file. That's not possible because UI Tests don't run on a main thread. So snapshot uses a different approach: When you run unit tests in Xcode, the reporter generates a plist file, documenting all events that occurred during the tests ( More Information ). Additionally, Xcode generates screenshots before, during and after each of these events. There is no way to manually trigger a screenshot event. The screenshots and the plist files are stored in the DerivedData directory, which snapshot stores in a temporary folder. When the user calls snapshot(...) in the UI Tests (Swift or Objective C) the script actually does a rotation to .Unknown which doesn't have any effect on the actual app, but is enough to trigger a screenshot. It has no effect to the application and is not something you would do in your tests. The goal was to find some event that a user would never trigger, so that we know it's from snapshot . On tvOS, there is no orientation so we ask for a count of app views with type \"Browser\" (which should never exist on tvOS). snapshot then iterates through all test events and check where we either did this weird rotation (on iOS) or searched for browsers (on tvOS). Once snapshot has all events triggered by snapshot it collects a ordered list of all the file names of the actual screenshots of the application. In the test output, the Swift snapshot function will print out something like this snapshot: [some random text here] snapshot finds all these entries using a regex. The number of snapshot outputs in the terminal and the number of snapshot events in the plist file should be the same. Knowing that, snapshot automatically matches these 2 lists to identify the name of each of these screenshots. They are then copied over to the output directory and separated by language and device. 2 thing have to be passed on from snapshot to the xcodebuild command line tool: The device type is passed via the destination parameter of the xcodebuild parameter The language is passed via a temporary file which is written by snapshot before running the tests and read by the UI Tests when launching the application If you find a better way to do any of this, please submit an issue on GitHub or even a pull request :+1: Radar 23062925 has been resolved with Xcode 8.3, so it's now possible to actually take screenshots from the simulator. We'll keep using the old approach for now, since many of you still want to use older versions of Xcode. Tips Check out the new fastlane documentation on how to generate screenshots Frame the screenshots If you want to add frames around the screenshots and even put a title on top, check out frameit . Available language codes ALL_LANGUAGES = [\"da\", \"de-DE\", \"el\", \"en-AU\", \"en-CA\", \"en-GB\", \"en-US\", \"es-ES\", \"es-MX\", \"fi\", \"fr-CA\", \"fr-FR\", \"id\", \"it\", \"ja\", \"ko\", \"ms\", \"nl-NL\", \"no\", \"pt-BR\", \"pt-PT\", \"ru\", \"sv\", \"th\", \"tr\", \"vi\", \"zh-Hans\", \"zh-Hant\"] To get more information about language and locale codes please read Internationalization and Localization Guide . Use a clean status bar You can set override_status_bar to true to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available. Editing the Snapfile Change syntax highlighting to Ruby . Simulator doesn't launch the application When the app dies directly after the application is launched there might be 2 problems The simulator is somehow in a broken state and you need to re-create it. You can use snapshot reset_simulators to reset all simulators (this will remove all installed apps) A restart helps very often Determine language To detect the currently used localization in your tests, access the deviceLanguage variable from SnapshotHelper.swift . Speed up snapshots A lot of time in UI tests is spent waiting for animations. You can disable UIView animations in your app to make the tests faster: if ProcessInfo().arguments.contains(\"SKIP_ANIMATIONS\") { UIView.setAnimationsEnabled(false) } This requires you to pass the launch argument like so: snapshot(launch_arguments: [\"SKIP_ANIMATIONS\"]) By default, snapshot will wait for a short time for the animations to finish. If you're skipping the animations, this wait time is unnecessary and can be skipped: setupSnapshot(app, waitForAnimations: false) capture_screenshots Supported platforms ios, mac Author @KrauseFx 3 Examples capture_ios_screenshots snapshot # alias for \"capture_ios_screenshots\" capture_ios_screenshots( skip_open_summary: true, clean: true ) Parameters Key Description Default workspace Path the workspace file project Path the project file xcargs Pass additional arguments to xcodebuild for the test phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app devices A list of devices you want to take the screenshots from languages A list of languages which should be used [\"en-US\"] launch_arguments A list of launch arguments which should be used [\"\"] output_directory The directory where to store the screenshots * output_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false ios_version By default, the latest version should be used automatically. If you want to change it, do it here skip_open_summary Don't open the HTML summary after running snapshot false skip_helper_version_check Do not check for most recent SnapshotHelper code false clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running snapshot false reinstall_app Enabling this option will automatically uninstall the application before running it false erase_simulator Enabling this option will automatically erase the simulator before running the application false headless Enabling this option will prevent displaying the simulator window true override_status_bar Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception (Adjust 'SNAPSHOT_SIMULATOR_WAIT_FOR_BOOT_TIMEOUT' environment variable if override status bar is not working. Might be because simulator is not fully booted. Defaults to 10 seconds) false override_status_bar_arguments Fully customize the status bar by setting each option here. Requires override_status_bar to be set to true . See xcrun simctl status_bar --help localize_simulator Enabling this option will configure the Simulator's system language false dark_mode Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark) app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * add_photos A list of photos that should be added to the simulator before running the application add_videos A list of videos that should be added to the simulator before running the application html_template A path to screenshots.html template buildlog_path The directory where to store the build log * clean Should the project be cleaned before building it? false test_without_building Test without building, requires a derived data path configuration The configuration to use when building the app. Defaults to 'Release' * sdk The SDK that should be used for building the application scheme The scheme you want to use, this must be the scheme for the UI Tests number_of_retries The number of times a test can fail before snapshot should stop retrying 1 stop_after_first_error Should snapshot stop immediately after the tests completely failed on one device? false derived_data_path The directory where build products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false test_target_name The name of the target you want to test (if you desire to override the Target Application from Xcode) namespace_log_files Separate the log files per device and per language concurrent_simulators Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9 true disable_slide_to_type Disable the simulator from showing the 'Slide to type' prompt false cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false testplan The testplan associated with the scheme that should be used for testing only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * xcpretty_args DEPRECATED! Use xcodebuild_formatter: '' instead - Additional xcpretty arguments disable_xcpretty Disable xcpretty formatting of build suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The capture_screenshots action generates the following Lane Variables: SharedValue Description SharedValues::SNAPSHOT_SCREENSHOTS_PATH The path to the screenshots To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action capture_screenshots CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run capture_screenshots To pass parameters, make use of the : symbol, for example fastlane run capture_screenshots parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Capture screenshots"},{"location":"generated/actions/capture_screenshots/#capture_screenshots","text":"Alias for the capture_ios_screenshots action","title":"capture_screenshots"},{"location":"generated/actions/capture_screenshots/#features","text":"Create hundreds of screenshots in multiple languages on all simulators Take screenshots in multiple device simulators concurrently to cut down execution time (Xcode 9 only) Configure it once, store the configuration in git Do something else, while the computer takes the screenshots for you Integrates with fastlane and deliver Generates a beautiful web page, which shows all screenshots on all devices. This is perfect to send to QA or the marketing team snapshot automatically waits for network requests to be finished before taking a screenshot (we don't want loading images in the App Store screenshots) After snapshot successfully created new screenshots, it will generate a beautiful HTML file to get a quick overview of all screens:","title":"Features"},{"location":"generated/actions/capture_screenshots/#why","text":"This tool automatically switches the language and device type and runs UI Tests for every combination.","title":"Why?"},{"location":"generated/actions/capture_screenshots/#ui-tests","text":"","title":"UI Tests"},{"location":"generated/actions/capture_screenshots/#getting-started","text":"This project uses Apple's newly announced UI Tests. We will not go into detail on how to write scripts. Here a few links to get started: WWDC 2015 Introduction to UI Tests A first look into UI Tests UI Testing in Xcode 7 HSTestingBackchannel : \u2018Cheat\u2019 by communicating directly with your app Automating App Store screenshots using fastlane snapshot and frameit","title":"Getting started"},{"location":"generated/actions/capture_screenshots/#quick-start","text":"Create a new UI Test target in your Xcode project ( top part of this article ) Run fastlane snapshot init in your project folder Add the ./SnapshotHelper.swift to your UI Test target (You can move the file anywhere you want) (Xcode 8 only) add the ./SnapshotHelperXcode8.swift to your UI Test target (Objective C only) add the bridging header to your test class: #import \"MYUITests-Swift.h\" (The bridging header is named after your test target with -Swift.h appended.) In your UI Test class, click the Record button on the bottom left and record your interaction To take a snapshot, call the following between interactions Swift: snapshot(\"01LoginScreen\") Objective C: [Snapshot snapshot:@\"01LoginScreen\" timeWaitingForIdle:10]; Add the following code to your setUp() method: Swift: let app = XCUIApplication() setupSnapshot(app) app.launch() Objective C: XCUIApplication *app = [[XCUIApplication alloc] init]; [Snapshot setupSnapshot:app waitForAnimations:NO]; [app launch]; Make sure you only have one launch call in your test class, as Xcode adds one automatically on new test files. You can try the snapshot example project by cloning this repo. To quick start your UI tests, you can use the UI Test recorder. You only have to interact with the simulator, and Xcode will generate the UI Test code for you. You can find the red record button on the bottom of the screen (more information in this blog post )","title":"Quick Start"},{"location":"generated/actions/capture_screenshots/#usage","text":"fastlane snapshot Your screenshots will be stored in the ./screenshots/ folder by default (or ./fastlane/screenshots if you're using fastlane ) New with Xcode 9, snapshot can run multiple simulators concurrently. This is the default behavior in order to take your screenshots as quickly as possible. This can be disabled to run each device, one at a time, by setting the :concurrent_simulators option to false . Note: While running snapshot with Xcode 9, the simulators will not be visibly spawned. So, while you won't see the simulators running your tests, they will, in fact, be taking your screenshots. If any error occurs while running the snapshot script on a device, that device will not have any screenshots, and snapshot will continue with the next device or language. To stop the flow after the first error, run fastlane snapshot --stop_after_first_error Also by default, snapshot will open the HTML after all is done. This can be skipped with the following command fastlane snapshot --stop_after_first_error --skip_open_summary There are a lot of options available that define how to build your app, for example fastlane snapshot --scheme \"UITests\" --configuration \"Release\" --sdk \"iphonesimulator\" Reinstall the app before running snapshot fastlane snapshot --reinstall_app --app_identifier \"tools.fastlane.app\" By default snapshot automatically retries running UI Tests if they fail. This is due to randomly failing UI Tests (e.g. #2517 ). You can adapt this number using fastlane snapshot --number_of_retries 3 Add photos and/or videos to the simulator before running snapshot fastlane snapshot --add_photos MyTestApp/Assets/demo.jpg --add_videos MyTestApp/Assets/demo.mp4 For a list for all available options run fastlane action snapshot After running snapshot you will get a nice summary:","title":"Usage"},{"location":"generated/actions/capture_screenshots/#snapfile","text":"All of the available options can also be stored in a configuration file called the Snapfile . Since most values will not change often for your project, it is recommended to store them there: First make sure to have a Snapfile (you get it for free when running fastlane snapshot init ) The Snapfile can contain all the options that are also available on fastlane action snapshot scheme(\"UITests\") devices([ \"iPad (7th generation)\", \"iPad Air (3rd generation)\", \"iPad Pro (11-inch)\", \"iPad Pro (12.9-inch) (3rd generation)\", \"iPad Pro (9.7-inch)\", \"iPhone 11\", \"iPhone 11 Pro\", \"iPhone 11 Pro Max\", \"iPhone 8\", \"iPhone 8 Plus\" ]) languages([ \"en-US\", \"de-DE\", \"es-ES\", [\"pt\", \"pt_BR\"] # Portuguese with Brazilian locale ]) launch_arguments([\"-username Felix\"]) # The directory in which the screenshots should be stored output_directory('./screenshots') clear_previous_screenshots(true) override_status_bar(true) add_photos([\"MyTestApp/Assets/demo.jpg\"])","title":"Snapfile"},{"location":"generated/actions/capture_screenshots/#update-snapshot-helpers","text":"Some updates require the helper files to be updated. snapshot will automatically warn you and tell you how to update. Basically you can run fastlane snapshot update to update your SnapshotHelper.swift files. In case you modified your SnapshotHelper.swift and want to manually update the file, check out SnapshotHelper.swift .","title":"Update snapshot helpers"},{"location":"generated/actions/capture_screenshots/#launch-arguments","text":"You can provide additional arguments to your app on launch. These strings will be available in your app (e.g. not in the testing target) through ProcessInfo.processInfo.arguments . Alternatively, use user-default syntax ( -key value ) and they will be available as key-value pairs in UserDefaults.standard . launch_arguments([ \"-firstName Felix -lastName Krause\" ]) name.text = UserDefaults.standard.string(forKey: \"firstName\") // name.text = \"Felix\" snapshot includes -FASTLANE_SNAPSHOT YES , which will set a temporary user default for the key FASTLANE_SNAPSHOT , you may use this to detect when the app is run by snapshot . if UserDefaults.standard.bool(forKey: \"FASTLANE_SNAPSHOT\") { // runtime check that we are in snapshot mode } Specify multiple argument strings and snapshot will generate screenshots for each combination of arguments, devices, and languages. This is useful for comparing the same screenshots with different feature flags, dynamic text sizes, and different data sets. # Snapfile for A/B Test Comparison launch_arguments([ \"-secretFeatureEnabled YES\", \"-secretFeatureEnabled NO\" ])","title":"Launch Arguments"},{"location":"generated/actions/capture_screenshots/#xcode-environment-variables","text":"snapshot includes FASTLANE_SNAPSHOT=YES and FASTLANE_LANGUAGE= as arguments when executing xcodebuild . This means you may use these environment variables in a custom build phase run script to do any additional configuration.","title":"Xcode Environment Variables"},{"location":"generated/actions/capture_screenshots/#how-does-it-work","text":"The easiest solution would be to just render the UIWindow into a file. That's not possible because UI Tests don't run on a main thread. So snapshot uses a different approach: When you run unit tests in Xcode, the reporter generates a plist file, documenting all events that occurred during the tests ( More Information ). Additionally, Xcode generates screenshots before, during and after each of these events. There is no way to manually trigger a screenshot event. The screenshots and the plist files are stored in the DerivedData directory, which snapshot stores in a temporary folder. When the user calls snapshot(...) in the UI Tests (Swift or Objective C) the script actually does a rotation to .Unknown which doesn't have any effect on the actual app, but is enough to trigger a screenshot. It has no effect to the application and is not something you would do in your tests. The goal was to find some event that a user would never trigger, so that we know it's from snapshot . On tvOS, there is no orientation so we ask for a count of app views with type \"Browser\" (which should never exist on tvOS). snapshot then iterates through all test events and check where we either did this weird rotation (on iOS) or searched for browsers (on tvOS). Once snapshot has all events triggered by snapshot it collects a ordered list of all the file names of the actual screenshots of the application. In the test output, the Swift snapshot function will print out something like this snapshot: [some random text here] snapshot finds all these entries using a regex. The number of snapshot outputs in the terminal and the number of snapshot events in the plist file should be the same. Knowing that, snapshot automatically matches these 2 lists to identify the name of each of these screenshots. They are then copied over to the output directory and separated by language and device. 2 thing have to be passed on from snapshot to the xcodebuild command line tool: The device type is passed via the destination parameter of the xcodebuild parameter The language is passed via a temporary file which is written by snapshot before running the tests and read by the UI Tests when launching the application If you find a better way to do any of this, please submit an issue on GitHub or even a pull request :+1: Radar 23062925 has been resolved with Xcode 8.3, so it's now possible to actually take screenshots from the simulator. We'll keep using the old approach for now, since many of you still want to use older versions of Xcode.","title":"How does it work?"},{"location":"generated/actions/capture_screenshots/#tips","text":"","title":"Tips"},{"location":"generated/actions/capture_screenshots/#frame-the-screenshots","text":"If you want to add frames around the screenshots and even put a title on top, check out frameit .","title":"Frame the screenshots"},{"location":"generated/actions/capture_screenshots/#available-language-codes","text":"ALL_LANGUAGES = [\"da\", \"de-DE\", \"el\", \"en-AU\", \"en-CA\", \"en-GB\", \"en-US\", \"es-ES\", \"es-MX\", \"fi\", \"fr-CA\", \"fr-FR\", \"id\", \"it\", \"ja\", \"ko\", \"ms\", \"nl-NL\", \"no\", \"pt-BR\", \"pt-PT\", \"ru\", \"sv\", \"th\", \"tr\", \"vi\", \"zh-Hans\", \"zh-Hant\"] To get more information about language and locale codes please read Internationalization and Localization Guide .","title":"Available language codes"},{"location":"generated/actions/capture_screenshots/#use-a-clean-status-bar","text":"You can set override_status_bar to true to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available.","title":"Use a clean status bar"},{"location":"generated/actions/capture_screenshots/#editing-the-snapfile","text":"Change syntax highlighting to Ruby .","title":"Editing the Snapfile"},{"location":"generated/actions/capture_screenshots/#determine-language","text":"To detect the currently used localization in your tests, access the deviceLanguage variable from SnapshotHelper.swift .","title":"Determine language"},{"location":"generated/actions/capture_screenshots/#speed-up-snapshots","text":"A lot of time in UI tests is spent waiting for animations. You can disable UIView animations in your app to make the tests faster: if ProcessInfo().arguments.contains(\"SKIP_ANIMATIONS\") { UIView.setAnimationsEnabled(false) } This requires you to pass the launch argument like so: snapshot(launch_arguments: [\"SKIP_ANIMATIONS\"]) By default, snapshot will wait for a short time for the animations to finish. If you're skipping the animations, this wait time is unnecessary and can be skipped: setupSnapshot(app, waitForAnimations: false) capture_screenshots Supported platforms ios, mac Author @KrauseFx","title":"Speed up snapshots"},{"location":"generated/actions/capture_screenshots/#3-examples","text":"capture_ios_screenshots snapshot # alias for \"capture_ios_screenshots\" capture_ios_screenshots( skip_open_summary: true, clean: true )","title":"3 Examples"},{"location":"generated/actions/capture_screenshots/#parameters","text":"Key Description Default workspace Path the workspace file project Path the project file xcargs Pass additional arguments to xcodebuild for the test phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app devices A list of devices you want to take the screenshots from languages A list of languages which should be used [\"en-US\"] launch_arguments A list of launch arguments which should be used [\"\"] output_directory The directory where to store the screenshots * output_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false ios_version By default, the latest version should be used automatically. If you want to change it, do it here skip_open_summary Don't open the HTML summary after running snapshot false skip_helper_version_check Do not check for most recent SnapshotHelper code false clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running snapshot false reinstall_app Enabling this option will automatically uninstall the application before running it false erase_simulator Enabling this option will automatically erase the simulator before running the application false headless Enabling this option will prevent displaying the simulator window true override_status_bar Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception (Adjust 'SNAPSHOT_SIMULATOR_WAIT_FOR_BOOT_TIMEOUT' environment variable if override status bar is not working. Might be because simulator is not fully booted. Defaults to 10 seconds) false override_status_bar_arguments Fully customize the status bar by setting each option here. Requires override_status_bar to be set to true . See xcrun simctl status_bar --help localize_simulator Enabling this option will configure the Simulator's system language false dark_mode Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark) app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * add_photos A list of photos that should be added to the simulator before running the application add_videos A list of videos that should be added to the simulator before running the application html_template A path to screenshots.html template buildlog_path The directory where to store the build log * clean Should the project be cleaned before building it? false test_without_building Test without building, requires a derived data path configuration The configuration to use when building the app. Defaults to 'Release' * sdk The SDK that should be used for building the application scheme The scheme you want to use, this must be the scheme for the UI Tests number_of_retries The number of times a test can fail before snapshot should stop retrying 1 stop_after_first_error Should snapshot stop immediately after the tests completely failed on one device? false derived_data_path The directory where build products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false test_target_name The name of the target you want to test (if you desire to override the Target Application from Xcode) namespace_log_files Separate the log files per device and per language concurrent_simulators Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9 true disable_slide_to_type Disable the simulator from showing the 'Slide to type' prompt false cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false testplan The testplan associated with the scheme that should be used for testing only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * xcpretty_args DEPRECATED! Use xcodebuild_formatter: '' instead - Additional xcpretty arguments disable_xcpretty Disable xcpretty formatting of build suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/capture_screenshots/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The capture_screenshots action generates the following Lane Variables: SharedValue Description SharedValues::SNAPSHOT_SCREENSHOTS_PATH The path to the screenshots To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/capture_screenshots/#documentation","text":"To show the documentation in your terminal, run fastlane action capture_screenshots","title":"Documentation"},{"location":"generated/actions/capture_screenshots/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run capture_screenshots To pass parameters, make use of the : symbol, for example fastlane run capture_screenshots parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/capture_screenshots/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/carthage/","text":"carthage Runs carthage for your project carthage Supported platforms ios, mac Author @bassrock, @petester42, @jschmid, @JaviSoto, @uny, @phatblat, @bfcrampton, @antondomashnev, @gbrhaz 2 Examples carthage carthage( frameworks: [\"MyFramework1\", \"MyFramework2\"], # Specify which frameworks to archive (only for the archive command) output: \"MyFrameworkBundle.framework.zip\", # Specify the output archive name (only for the archive command) command: \"bootstrap\", # One of: build, bootstrap, update, archive. (default: bootstrap) dependencies: [\"Alamofire\", \"Notice\"],# Specify which dependencies to update or build (only for update, build and bootstrap commands) use_ssh: false, # Use SSH for downloading GitHub repositories. use_submodules: false, # Add dependencies as Git submodules. use_binaries: true, # Check out dependency repositories even when prebuilt frameworks exist no_build: false, # When bootstrapping Carthage do not build no_skip_current: false, # Don't skip building the current project (only for frameworks) verbose: false, # Print xcodebuild output inline platform: \"all\", # Define which platform to build for (one of \u2018all\u2019, \u2018Mac\u2019, \u2018iOS\u2019, \u2018watchOS\u2019, \u2018tvOS\u2018, or comma-separated values of the formers except for \u2018all\u2019) configuration: \"Release\", # Build configuration to use when building cache_builds: true, # By default Carthage will rebuild a dependency regardless of whether its the same resolved version as before. toolchain: \"com.apple.dt.toolchain.Swift_2_3\", # Specify the xcodebuild toolchain new_resolver: false, # Use the new resolver to resolve dependency graph log_path: \"carthage.log\" # Path to the xcode build output ) Parameters Key Description Default command Carthage command (one of: build, bootstrap, update, archive) bootstrap dependencies Carthage dependencies to update, build or bootstrap [] use_ssh Use SSH for downloading GitHub repositories use_submodules Add dependencies as Git submodules use_netrc Use .netrc for downloading frameworks use_binaries Check out dependency repositories even when prebuilt frameworks exist no_checkout When bootstrapping Carthage do not checkout no_build When bootstrapping Carthage do not build no_skip_current Don't skip building the Carthage project (in addition to its dependencies) derived_data Use derived data folder at path verbose Print xcodebuild output inline platform Define which platform to build for cache_builds By default Carthage will rebuild a dependency regardless of whether it's the same resolved version as before. Passing the --cache-builds will cause carthage to avoid rebuilding a dependency if it can false frameworks Framework name or names to archive, could be applied only along with the archive command [] output Output name for the archive, could be applied only along with the archive command. Use following format *.framework.zip configuration Define which build configuration to use when building toolchain Define which xcodebuild toolchain to use when building project_directory Define the directory containing the Carthage project new_resolver Use new resolver when resolving dependency graph log_path Path to the xcode build output use_xcframeworks Create xcframework bundles instead of one framework per platform (requires Xcode 12+) false archive Archive built frameworks from the current project false executable Path to the carthage executable on your machine carthage * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action carthage CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run carthage To pass parameters, make use of the : symbol, for example fastlane run carthage parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Carthage"},{"location":"generated/actions/carthage/#carthage","text":"Runs carthage for your project carthage Supported platforms ios, mac Author @bassrock, @petester42, @jschmid, @JaviSoto, @uny, @phatblat, @bfcrampton, @antondomashnev, @gbrhaz","title":"carthage"},{"location":"generated/actions/carthage/#2-examples","text":"carthage carthage( frameworks: [\"MyFramework1\", \"MyFramework2\"], # Specify which frameworks to archive (only for the archive command) output: \"MyFrameworkBundle.framework.zip\", # Specify the output archive name (only for the archive command) command: \"bootstrap\", # One of: build, bootstrap, update, archive. (default: bootstrap) dependencies: [\"Alamofire\", \"Notice\"],# Specify which dependencies to update or build (only for update, build and bootstrap commands) use_ssh: false, # Use SSH for downloading GitHub repositories. use_submodules: false, # Add dependencies as Git submodules. use_binaries: true, # Check out dependency repositories even when prebuilt frameworks exist no_build: false, # When bootstrapping Carthage do not build no_skip_current: false, # Don't skip building the current project (only for frameworks) verbose: false, # Print xcodebuild output inline platform: \"all\", # Define which platform to build for (one of \u2018all\u2019, \u2018Mac\u2019, \u2018iOS\u2019, \u2018watchOS\u2019, \u2018tvOS\u2018, or comma-separated values of the formers except for \u2018all\u2019) configuration: \"Release\", # Build configuration to use when building cache_builds: true, # By default Carthage will rebuild a dependency regardless of whether its the same resolved version as before. toolchain: \"com.apple.dt.toolchain.Swift_2_3\", # Specify the xcodebuild toolchain new_resolver: false, # Use the new resolver to resolve dependency graph log_path: \"carthage.log\" # Path to the xcode build output )","title":"2 Examples"},{"location":"generated/actions/carthage/#parameters","text":"Key Description Default command Carthage command (one of: build, bootstrap, update, archive) bootstrap dependencies Carthage dependencies to update, build or bootstrap [] use_ssh Use SSH for downloading GitHub repositories use_submodules Add dependencies as Git submodules use_netrc Use .netrc for downloading frameworks use_binaries Check out dependency repositories even when prebuilt frameworks exist no_checkout When bootstrapping Carthage do not checkout no_build When bootstrapping Carthage do not build no_skip_current Don't skip building the Carthage project (in addition to its dependencies) derived_data Use derived data folder at path verbose Print xcodebuild output inline platform Define which platform to build for cache_builds By default Carthage will rebuild a dependency regardless of whether it's the same resolved version as before. Passing the --cache-builds will cause carthage to avoid rebuilding a dependency if it can false frameworks Framework name or names to archive, could be applied only along with the archive command [] output Output name for the archive, could be applied only along with the archive command. Use following format *.framework.zip configuration Define which build configuration to use when building toolchain Define which xcodebuild toolchain to use when building project_directory Define the directory containing the Carthage project new_resolver Use new resolver when resolving dependency graph log_path Path to the xcode build output use_xcframeworks Create xcframework bundles instead of one framework per platform (requires Xcode 12+) false archive Archive built frameworks from the current project false executable Path to the carthage executable on your machine carthage * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/carthage/#documentation","text":"To show the documentation in your terminal, run fastlane action carthage","title":"Documentation"},{"location":"generated/actions/carthage/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run carthage To pass parameters, make use of the : symbol, for example fastlane run carthage parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/carthage/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/cert/","text":"cert Alias for the get_certificates action Why? \u2022 Usage \u2022 How does it work? \u2022 Tips cert is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. In the gif we used cert && sigh , which will first create an iOS code signing certificate and then a provisioning profile for your app if cert succeeded. Usage Note : It is recommended to use match according to the codesigning.guide for generating and maintaining your certificates. Use cert directly only if you want full control over what's going on and know more about codesigning. fastlane cert This will check if any of the available signing certificates is installed on your local machine. Only if a new certificate needs to be created, cert will Create a new private key Create a new signing request Generate, downloads and installs the certificate Import all the generated files into your Keychain cert will never revoke your existing certificates. If you can't create any more certificates, cert will raise an exception, which means, you have to revoke one of the existing certificates to make room for a new one. You can pass your Apple ID: fastlane cert -u cert@krausefx.com For a list of available commands run fastlane action cert Keep in mind, there is no way for cert to download existing certificates + private keys from the Apple Developer Portal, as the private key never leaves your computer. Environment Variables Run fastlane action cert to get a list of all available environment variables. Use with sigh cert becomes really interesting when used in fastlane in combination with sigh . Update your Fastfile to contain the following code: lane :beta do cert sigh(force: true) end force: true will make sure to re-generate the provisioning profile on each run. This will result in sigh always using the correct signing certificate, which is installed on the local machine. How is my password stored? cert uses the password manager from fastlane . Take a look the CredentialsManager README for more information. Tips Use 'ProvisionQL' for advanced Quick Look in Finder Install ProvisionQL . It will show you mobileprovision files like this: cert Supported platforms ios Author @KrauseFx 3 Examples get_certificates cert # alias for \"get_certificates\" get_certificates( development: true, username: \"user@email.com\" ) Parameters Key Description Default development Create a development certificate instead of a distribution one false type Create specific certificate type (takes precedence over :development) force Create a certificate even if an existing certificate exists false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * filename The filename of certificate to store output_path The path to a directory in which all certificates and private keys should be stored . keychain_path Path to a custom keychain * keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false platform Set the provisioning profile's platform (ios, macos, tvos) ios * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The cert action generates the following Lane Variables: SharedValue Description SharedValues::CERT_FILE_PATH The path to the certificate SharedValues::CERT_CERTIFICATE_ID The id of the certificate To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action cert CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run cert To pass parameters, make use of the : symbol, for example fastlane run cert parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Cert"},{"location":"generated/actions/cert/#cert","text":"Alias for the get_certificates action Why? \u2022 Usage \u2022 How does it work? \u2022 Tips","title":"cert"},{"location":"generated/actions/cert/#usage","text":"Note : It is recommended to use match according to the codesigning.guide for generating and maintaining your certificates. Use cert directly only if you want full control over what's going on and know more about codesigning. fastlane cert This will check if any of the available signing certificates is installed on your local machine. Only if a new certificate needs to be created, cert will Create a new private key Create a new signing request Generate, downloads and installs the certificate Import all the generated files into your Keychain cert will never revoke your existing certificates. If you can't create any more certificates, cert will raise an exception, which means, you have to revoke one of the existing certificates to make room for a new one. You can pass your Apple ID: fastlane cert -u cert@krausefx.com For a list of available commands run fastlane action cert Keep in mind, there is no way for cert to download existing certificates + private keys from the Apple Developer Portal, as the private key never leaves your computer.","title":"Usage"},{"location":"generated/actions/cert/#environment-variables","text":"Run fastlane action cert to get a list of all available environment variables.","title":"Environment Variables"},{"location":"generated/actions/cert/#use-with-sigh","text":"cert becomes really interesting when used in fastlane in combination with sigh . Update your Fastfile to contain the following code: lane :beta do cert sigh(force: true) end force: true will make sure to re-generate the provisioning profile on each run. This will result in sigh always using the correct signing certificate, which is installed on the local machine.","title":"Use with sigh"},{"location":"generated/actions/cert/#how-is-my-password-stored","text":"cert uses the password manager from fastlane . Take a look the CredentialsManager README for more information.","title":"How is my password stored?"},{"location":"generated/actions/cert/#tips","text":"","title":"Tips"},{"location":"generated/actions/cert/#use-provisionql-for-advanced-quick-look-in-finder","text":"Install ProvisionQL . It will show you mobileprovision files like this: cert Supported platforms ios Author @KrauseFx","title":"Use 'ProvisionQL' for advanced Quick Look in Finder"},{"location":"generated/actions/cert/#3-examples","text":"get_certificates cert # alias for \"get_certificates\" get_certificates( development: true, username: \"user@email.com\" )","title":"3 Examples"},{"location":"generated/actions/cert/#parameters","text":"Key Description Default development Create a development certificate instead of a distribution one false type Create specific certificate type (takes precedence over :development) force Create a certificate even if an existing certificate exists false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * filename The filename of certificate to store output_path The path to a directory in which all certificates and private keys should be stored . keychain_path Path to a custom keychain * keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false platform Set the provisioning profile's platform (ios, macos, tvos) ios * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/cert/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The cert action generates the following Lane Variables: SharedValue Description SharedValues::CERT_FILE_PATH The path to the certificate SharedValues::CERT_CERTIFICATE_ID The id of the certificate To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/cert/#documentation","text":"To show the documentation in your terminal, run fastlane action cert","title":"Documentation"},{"location":"generated/actions/cert/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run cert To pass parameters, make use of the : symbol, for example fastlane run cert parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/cert/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/changelog_from_git_commits/","text":"changelog_from_git_commits Collect git commit messages into a changelog By default, messages will be collected back to the last tag, but the range can be controlled changelog_from_git_commits Supported platforms ios, android, mac Author @mfurtak, @asfalcone, @SiarheiFedartsou, @allewun Returns Returns a String containing your formatted git commits 2 Examples changelog_from_git_commits changelog_from_git_commits( between: [\"7b092b3\", \"HEAD\"], # Optional, lets you specify a revision/tag range between which to collect commit info pretty: \"- (%ae) %s\",# Optional, lets you provide a custom format to apply to each commit when generating the changelog text date_format: \"short\",# Optional, lets you provide an additional date format to dates within the pretty-formatted string match_lightweight_tag: false, # Optional, lets you ignore lightweight (non-annotated) tags when searching for the last tag merge_commit_filtering: \"exclude_merges\" # Optional, lets you filter out merge commits ) Parameters Key Description Default between Array containing two Git revision values between which to collect messages, you mustn't use it with :commits_count key at the same time commits_count Number of commits to include in changelog, you mustn't use it with :between key at the same time path Path of the git repository ./ pretty The format applied to each commit while generating the collected value %B date_format The date format applied to each commit while generating the collected value ancestry_path Whether or not to use ancestry-path param false tag_match_pattern A glob(7) pattern to match against when finding the last git tag match_lightweight_tag Whether or not to match a lightweight tag when searching for the last one true quiet Whether or not to disable changelog output false include_merges DEPRECATED! Use :merge_commit_filtering instead - Whether or not to include any commits that are merges merge_commit_filtering Controls inclusion of merge commits when collecting the changelog. Valid values: 'include_merges', 'exclude_merges', 'only_include_merges' include_merges * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The changelog_from_git_commits action generates the following Lane Variables: SharedValue Description SharedValues::FL_CHANGELOG The changelog string generated from the collected git commit messages To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action changelog_from_git_commits CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run changelog_from_git_commits To pass parameters, make use of the : symbol, for example fastlane run changelog_from_git_commits parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Changelog from git commits"},{"location":"generated/actions/changelog_from_git_commits/#changelog_from_git_commits","text":"Collect git commit messages into a changelog By default, messages will be collected back to the last tag, but the range can be controlled changelog_from_git_commits Supported platforms ios, android, mac Author @mfurtak, @asfalcone, @SiarheiFedartsou, @allewun Returns Returns a String containing your formatted git commits","title":"changelog_from_git_commits"},{"location":"generated/actions/changelog_from_git_commits/#2-examples","text":"changelog_from_git_commits changelog_from_git_commits( between: [\"7b092b3\", \"HEAD\"], # Optional, lets you specify a revision/tag range between which to collect commit info pretty: \"- (%ae) %s\",# Optional, lets you provide a custom format to apply to each commit when generating the changelog text date_format: \"short\",# Optional, lets you provide an additional date format to dates within the pretty-formatted string match_lightweight_tag: false, # Optional, lets you ignore lightweight (non-annotated) tags when searching for the last tag merge_commit_filtering: \"exclude_merges\" # Optional, lets you filter out merge commits )","title":"2 Examples"},{"location":"generated/actions/changelog_from_git_commits/#parameters","text":"Key Description Default between Array containing two Git revision values between which to collect messages, you mustn't use it with :commits_count key at the same time commits_count Number of commits to include in changelog, you mustn't use it with :between key at the same time path Path of the git repository ./ pretty The format applied to each commit while generating the collected value %B date_format The date format applied to each commit while generating the collected value ancestry_path Whether or not to use ancestry-path param false tag_match_pattern A glob(7) pattern to match against when finding the last git tag match_lightweight_tag Whether or not to match a lightweight tag when searching for the last one true quiet Whether or not to disable changelog output false include_merges DEPRECATED! Use :merge_commit_filtering instead - Whether or not to include any commits that are merges merge_commit_filtering Controls inclusion of merge commits when collecting the changelog. Valid values: 'include_merges', 'exclude_merges', 'only_include_merges' include_merges * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/changelog_from_git_commits/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The changelog_from_git_commits action generates the following Lane Variables: SharedValue Description SharedValues::FL_CHANGELOG The changelog string generated from the collected git commit messages To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/changelog_from_git_commits/#documentation","text":"To show the documentation in your terminal, run fastlane action changelog_from_git_commits","title":"Documentation"},{"location":"generated/actions/changelog_from_git_commits/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run changelog_from_git_commits To pass parameters, make use of the : symbol, for example fastlane run changelog_from_git_commits parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/changelog_from_git_commits/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/chatwork/","text":"chatwork Send a success/error message to ChatWork Information on how to obtain an API token: http://developer.chatwork.com/ja/authenticate.html chatwork Supported platforms ios, android, mac Author @astronaughts 1 Example chatwork( message: \"App successfully released!\", roomid: 12345, success: true, api_token: \"Your Token\" ) Parameters Key Description Default api_token ChatWork API Token message The message to post on ChatWork roomid The room ID success Was this build successful? (true/false) true * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action chatwork CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run chatwork To pass parameters, make use of the : symbol, for example fastlane run chatwork parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Chatwork"},{"location":"generated/actions/chatwork/#chatwork","text":"Send a success/error message to ChatWork Information on how to obtain an API token: http://developer.chatwork.com/ja/authenticate.html chatwork Supported platforms ios, android, mac Author @astronaughts","title":"chatwork"},{"location":"generated/actions/chatwork/#1-example","text":"chatwork( message: \"App successfully released!\", roomid: 12345, success: true, api_token: \"Your Token\" )","title":"1 Example"},{"location":"generated/actions/chatwork/#parameters","text":"Key Description Default api_token ChatWork API Token message The message to post on ChatWork roomid The room ID success Was this build successful? (true/false) true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/chatwork/#documentation","text":"To show the documentation in your terminal, run fastlane action chatwork","title":"Documentation"},{"location":"generated/actions/chatwork/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run chatwork To pass parameters, make use of the : symbol, for example fastlane run chatwork parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/chatwork/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/check_app_store_metadata/","text":"check_app_store_metadata Check your app's metadata before you submit your app to review (via precheck ) precheck Check your app using a community driven set of App Store review rules to avoid being rejected Apple rejects builds for many avoidable metadata issues like including swear words \ud83d\ude2e, other companies\u2019 trademarks, or even mentioning an iOS bug \ud83d\udc1b. fastlane precheck takes a lot of the guess work out by scanning your app\u2019s details in App Store Connect for avoidable problems. fastlane precheck helps you get your app through app review without rejections so you can ship faster \ud83d\ude80 Features \u2022 Usage \u2022 Example \u2022 How does it work? Features precheck Features \ud83d\udc1b \uf8ff product bug mentions \ud83d\ude45 Swear word checker \ud83e\udd16 Mentioning other platforms \ud83d\ude35 URL reachability checker \ud83d\udcdd Placeholder/test words/mentioning future features \ud83d\udcc5 Copyright date checking \ud83d\ude48 Customizable word list checking \ud83d\udce2 You can decide if you want to warn about potential problems and continue or have fastlane show an error and stop after all scans are done Usage Run fastlane precheck to check the app metadata from App Store Connect fastlane precheck To get a list of available options run fastlane action precheck Example Since you might want to manually trigger precheck but don't want to specify all the parameters every time, you can store your defaults in a so called Precheckfile . Run fastlane precheck init to create a new configuration file. Example: # indicates that your metadata will not be checked by this rule negative_apple_sentiment(level: :skip) # when triggered, this rule will warn you of a potential problem curse_words(level: :warn) # show error and prevent any further commands from running after fastlane precheck finishes unreachable_urls(level: :error) # pass in whatever words you want to check for custom_text(data: [\"chrome\", \"webos\"], level: :warn) Use with fastlane precheck is fully integrated with deliver another fastlane tool. Update your Fastfile to contain the following code: lane :production do # ... # by default deliver will call precheck and warn you of any problems # if you want precheck to halt submitting to app review, you can pass # precheck_default_rule_level: :error deliver(precheck_default_rule_level: :error) # ... end # or if you prefer, you can run precheck alone lane :check_metadata do precheck end How does it work? precheck will access App Store Connect to download your app's metadata. It uses spaceship to communicate with Apple's web services. Want to improve precheck's rules? Please submit an issue on GitHub and provide information about your App Store rejection! Make sure you scrub out any personally identifiable information since this will be public. check_app_store_metadata Supported platforms ios Author @taquitos Returns true if precheck passes, else, false 2 Examples check_app_store_metadata( negative_apple_sentiment: [level: :skip], # Set to skip to not run the `negative_apple_sentiment` rule curse_words: [level: :warn] # Set to warn to only warn on curse word check failures ) precheck # alias for \"check_app_store_metadata\" Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * platform The platform to use (optional) ios default_rule_level The default rule level unless otherwise configured :error include_in_app_purchases Should check in-app purchases? true use_live Should force check live app? false negative_apple_sentiment mentioning \uf8ff in a way that could be considered negative placeholder_text using placeholder text (e.g.:\"lorem ipsum\", \"text here\", etc...) other_platforms mentioning other platforms, like Android or Blackberry future_functionality mentioning features or content that is not currently available in your app test_words using text indicating this release is a test curse_words including words that might be considered objectionable free_stuff_in_iap using text indicating that your IAP is free custom_text mentioning any of the user-specified words passed to custom_text(data: [words]) copyright_date using a copyright date that is any different from this current year, or missing a date unreachable_urls unreachable URLs in app metadata * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action check_app_store_metadata CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run check_app_store_metadata To pass parameters, make use of the : symbol, for example fastlane run check_app_store_metadata parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Check app store metadata"},{"location":"generated/actions/check_app_store_metadata/#check_app_store_metadata","text":"Check your app's metadata before you submit your app to review (via precheck )","title":"check_app_store_metadata"},{"location":"generated/actions/check_app_store_metadata/#precheck","text":"","title":"precheck"},{"location":"generated/actions/check_app_store_metadata/#features","text":"precheck Features \ud83d\udc1b \uf8ff product bug mentions \ud83d\ude45 Swear word checker \ud83e\udd16 Mentioning other platforms \ud83d\ude35 URL reachability checker \ud83d\udcdd Placeholder/test words/mentioning future features \ud83d\udcc5 Copyright date checking \ud83d\ude48 Customizable word list checking \ud83d\udce2 You can decide if you want to warn about potential problems and continue or have fastlane show an error and stop after all scans are done","title":"Features"},{"location":"generated/actions/check_app_store_metadata/#usage","text":"Run fastlane precheck to check the app metadata from App Store Connect fastlane precheck To get a list of available options run fastlane action precheck","title":"Usage"},{"location":"generated/actions/check_app_store_metadata/#example","text":"Since you might want to manually trigger precheck but don't want to specify all the parameters every time, you can store your defaults in a so called Precheckfile . Run fastlane precheck init to create a new configuration file. Example: # indicates that your metadata will not be checked by this rule negative_apple_sentiment(level: :skip) # when triggered, this rule will warn you of a potential problem curse_words(level: :warn) # show error and prevent any further commands from running after fastlane precheck finishes unreachable_urls(level: :error) # pass in whatever words you want to check for custom_text(data: [\"chrome\", \"webos\"], level: :warn)","title":"Example"},{"location":"generated/actions/check_app_store_metadata/#how-does-it-work","text":"precheck will access App Store Connect to download your app's metadata. It uses spaceship to communicate with Apple's web services.","title":"How does it work?"},{"location":"generated/actions/check_app_store_metadata/#want-to-improve-prechecks-rules","text":"Please submit an issue on GitHub and provide information about your App Store rejection! Make sure you scrub out any personally identifiable information since this will be public. check_app_store_metadata Supported platforms ios Author @taquitos Returns true if precheck passes, else, false","title":"Want to improve precheck's rules?"},{"location":"generated/actions/check_app_store_metadata/#2-examples","text":"check_app_store_metadata( negative_apple_sentiment: [level: :skip], # Set to skip to not run the `negative_apple_sentiment` rule curse_words: [level: :warn] # Set to warn to only warn on curse word check failures ) precheck # alias for \"check_app_store_metadata\"","title":"2 Examples"},{"location":"generated/actions/check_app_store_metadata/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * platform The platform to use (optional) ios default_rule_level The default rule level unless otherwise configured :error include_in_app_purchases Should check in-app purchases? true use_live Should force check live app? false negative_apple_sentiment mentioning \uf8ff in a way that could be considered negative placeholder_text using placeholder text (e.g.:\"lorem ipsum\", \"text here\", etc...) other_platforms mentioning other platforms, like Android or Blackberry future_functionality mentioning features or content that is not currently available in your app test_words using text indicating this release is a test curse_words including words that might be considered objectionable free_stuff_in_iap using text indicating that your IAP is free custom_text mentioning any of the user-specified words passed to custom_text(data: [words]) copyright_date using a copyright date that is any different from this current year, or missing a date unreachable_urls unreachable URLs in app metadata * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/check_app_store_metadata/#documentation","text":"To show the documentation in your terminal, run fastlane action check_app_store_metadata","title":"Documentation"},{"location":"generated/actions/check_app_store_metadata/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run check_app_store_metadata To pass parameters, make use of the : symbol, for example fastlane run check_app_store_metadata parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/check_app_store_metadata/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/clean_build_artifacts/","text":"clean_build_artifacts Deletes files created as result of running gym, cert, sigh or download_dsyms This action deletes the files that get created in your repo as a result of running the gym and sigh commands. It doesn't delete the fastlane/report.xml though, this is probably more suited for the .gitignore. Useful if you quickly want to send out a test build by dropping down to the command line and typing something like fastlane beta , without leaving your repo in a messy state afterwards. clean_build_artifacts Supported platforms ios, mac Author @lmirosevic 1 Example clean_build_artifacts Parameters Key Description Default exclude_pattern Exclude all files from clearing that match the given Regex pattern: e.g. '.*.mobileprovision' * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action clean_build_artifacts CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run clean_build_artifacts To pass parameters, make use of the : symbol, for example fastlane run clean_build_artifacts parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Clean build artifacts"},{"location":"generated/actions/clean_build_artifacts/#clean_build_artifacts","text":"Deletes files created as result of running gym, cert, sigh or download_dsyms This action deletes the files that get created in your repo as a result of running the gym and sigh commands. It doesn't delete the fastlane/report.xml though, this is probably more suited for the .gitignore. Useful if you quickly want to send out a test build by dropping down to the command line and typing something like fastlane beta , without leaving your repo in a messy state afterwards. clean_build_artifacts Supported platforms ios, mac Author @lmirosevic","title":"clean_build_artifacts"},{"location":"generated/actions/clean_build_artifacts/#1-example","text":"clean_build_artifacts","title":"1 Example"},{"location":"generated/actions/clean_build_artifacts/#parameters","text":"Key Description Default exclude_pattern Exclude all files from clearing that match the given Regex pattern: e.g. '.*.mobileprovision' * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/clean_build_artifacts/#documentation","text":"To show the documentation in your terminal, run fastlane action clean_build_artifacts","title":"Documentation"},{"location":"generated/actions/clean_build_artifacts/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run clean_build_artifacts To pass parameters, make use of the : symbol, for example fastlane run clean_build_artifacts parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/clean_build_artifacts/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/clean_cocoapods_cache/","text":"clean_cocoapods_cache Remove the cache for pods clean_cocoapods_cache Supported platforms ios, mac Author @alexmx 2 Examples clean_cocoapods_cache clean_cocoapods_cache(name: \"CACHED_POD\") Parameters Key Description Default name Pod name to be removed from cache no_ansi Show output without ANSI codes false verbose Show more debugging information false silent Show nothing false allow_root Allows CocoaPods to run as root false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action clean_cocoapods_cache CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run clean_cocoapods_cache To pass parameters, make use of the : symbol, for example fastlane run clean_cocoapods_cache parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Clean cocoapods cache"},{"location":"generated/actions/clean_cocoapods_cache/#clean_cocoapods_cache","text":"Remove the cache for pods clean_cocoapods_cache Supported platforms ios, mac Author @alexmx","title":"clean_cocoapods_cache"},{"location":"generated/actions/clean_cocoapods_cache/#2-examples","text":"clean_cocoapods_cache clean_cocoapods_cache(name: \"CACHED_POD\")","title":"2 Examples"},{"location":"generated/actions/clean_cocoapods_cache/#parameters","text":"Key Description Default name Pod name to be removed from cache no_ansi Show output without ANSI codes false verbose Show more debugging information false silent Show nothing false allow_root Allows CocoaPods to run as root false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/clean_cocoapods_cache/#documentation","text":"To show the documentation in your terminal, run fastlane action clean_cocoapods_cache","title":"Documentation"},{"location":"generated/actions/clean_cocoapods_cache/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run clean_cocoapods_cache To pass parameters, make use of the : symbol, for example fastlane run clean_cocoapods_cache parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/clean_cocoapods_cache/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/clear_derived_data/","text":"clear_derived_data Deletes the Xcode Derived Data Deletes the Derived Data from path set on Xcode or a supplied path clear_derived_data Supported platforms ios, mac Author @KrauseFx 2 Examples clear_derived_data clear_derived_data(derived_data_path: \"/custom/\") Parameters Key Description Default derived_data_path Custom path for derivedData * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action clear_derived_data CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run clear_derived_data To pass parameters, make use of the : symbol, for example fastlane run clear_derived_data parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Clear derived data"},{"location":"generated/actions/clear_derived_data/#clear_derived_data","text":"Deletes the Xcode Derived Data Deletes the Derived Data from path set on Xcode or a supplied path clear_derived_data Supported platforms ios, mac Author @KrauseFx","title":"clear_derived_data"},{"location":"generated/actions/clear_derived_data/#2-examples","text":"clear_derived_data clear_derived_data(derived_data_path: \"/custom/\")","title":"2 Examples"},{"location":"generated/actions/clear_derived_data/#parameters","text":"Key Description Default derived_data_path Custom path for derivedData * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/clear_derived_data/#documentation","text":"To show the documentation in your terminal, run fastlane action clear_derived_data","title":"Documentation"},{"location":"generated/actions/clear_derived_data/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run clear_derived_data To pass parameters, make use of the : symbol, for example fastlane run clear_derived_data parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/clear_derived_data/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/clipboard/","text":"clipboard Copies a given string into the clipboard. Works only on macOS clipboard Supported platforms ios, android, mac Author @KrauseFx, @joshdholtz, @rogerluan 2 Examples clipboard(value: \"https://docs.fastlane.tools/\") clipboard(value: lane_context[SharedValues::HOCKEY_DOWNLOAD_LINK] || \"\") Parameters Key Description Default value The string that should be copied into the clipboard * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action clipboard CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run clipboard To pass parameters, make use of the : symbol, for example fastlane run clipboard parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Clipboard"},{"location":"generated/actions/clipboard/#clipboard","text":"Copies a given string into the clipboard. Works only on macOS clipboard Supported platforms ios, android, mac Author @KrauseFx, @joshdholtz, @rogerluan","title":"clipboard"},{"location":"generated/actions/clipboard/#2-examples","text":"clipboard(value: \"https://docs.fastlane.tools/\") clipboard(value: lane_context[SharedValues::HOCKEY_DOWNLOAD_LINK] || \"\")","title":"2 Examples"},{"location":"generated/actions/clipboard/#parameters","text":"Key Description Default value The string that should be copied into the clipboard * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/clipboard/#documentation","text":"To show the documentation in your terminal, run fastlane action clipboard","title":"Documentation"},{"location":"generated/actions/clipboard/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run clipboard To pass parameters, make use of the : symbol, for example fastlane run clipboard parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/clipboard/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/cloc/","text":"cloc Generates a Code Count that can be read by Jenkins (xml format) This action will run cloc to generate a SLOC report that the Jenkins SLOCCount plugin can read. See https://wiki.jenkins-ci.org/display/JENKINS/SLOCCount+Plugin and https://github.com/AlDanial/cloc for more information. cloc Supported platforms ios, mac Author @intere 1 Example cloc( exclude_dir: \"ThirdParty,Resources\", output_directory: \"reports\", source_directory: \"MyCoolApp\" ) Parameters Key Description Default binary_path Where the cloc binary lives on your system (full path including 'cloc') /usr/local/bin/cloc exclude_dir Comma separated list of directories to exclude output_directory Where to put the generated report file build source_directory Where to look for the source code (relative to the project root folder) '' xml Should we generate an XML File (if false, it will generate a plain text file)? true * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action cloc CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run cloc To pass parameters, make use of the : symbol, for example fastlane run cloc parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Cloc"},{"location":"generated/actions/cloc/#cloc","text":"Generates a Code Count that can be read by Jenkins (xml format) This action will run cloc to generate a SLOC report that the Jenkins SLOCCount plugin can read. See https://wiki.jenkins-ci.org/display/JENKINS/SLOCCount+Plugin and https://github.com/AlDanial/cloc for more information. cloc Supported platforms ios, mac Author @intere","title":"cloc"},{"location":"generated/actions/cloc/#1-example","text":"cloc( exclude_dir: \"ThirdParty,Resources\", output_directory: \"reports\", source_directory: \"MyCoolApp\" )","title":"1 Example"},{"location":"generated/actions/cloc/#parameters","text":"Key Description Default binary_path Where the cloc binary lives on your system (full path including 'cloc') /usr/local/bin/cloc exclude_dir Comma separated list of directories to exclude output_directory Where to put the generated report file build source_directory Where to look for the source code (relative to the project root folder) '' xml Should we generate an XML File (if false, it will generate a plain text file)? true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/cloc/#documentation","text":"To show the documentation in your terminal, run fastlane action cloc","title":"Documentation"},{"location":"generated/actions/cloc/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run cloc To pass parameters, make use of the : symbol, for example fastlane run cloc parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/cloc/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/clubmate/","text":"clubmate Print a Club Mate in your build output clubmate | -----|---- Supported platforms | ios, android, mac Author | @KrauseFx To show the documentation in your terminal, run fastlane action clubmate View source code Back to actions","title":"Clubmate"},{"location":"generated/actions/clubmate/#clubmate","text":"Print a Club Mate in your build output clubmate | -----|---- Supported platforms | ios, android, mac Author | @KrauseFx To show the documentation in your terminal, run fastlane action clubmate View source code Back to actions","title":"clubmate"},{"location":"generated/actions/cocoapods/","text":"cocoapods Runs pod install for the project If you use CocoaPods you can use the cocoapods integration to run pod install before building your app. cocoapods Supported platforms ios, mac Author @KrauseFx, @tadpol, @birmacher, @Liquidsoul 2 Examples cocoapods cocoapods( clean_install: true, podfile: \"./CustomPodfile\" ) Parameters Key Description Default repo_update Add --repo-update flag to pod install command false clean_install Execute a full pod installation ignoring the content of the project cache false silent Execute command without logging output false verbose Show more debugging information false ansi Show output with ANSI codes true use_bundle_exec Use bundle exec when there is a Gemfile presented true podfile Explicitly specify the path to the Cocoapods' Podfile. You can either set it to the Podfile's path or to the folder containing the Podfile file error_callback A callback invoked with the command output if there is a non-zero exit status try_repo_update_on_error Retry with --repo-update if action was finished with error false deployment Disallow any changes to the Podfile or the Podfile.lock during installation false allow_root Allows CocoaPods to run as root false clean DEPRECATED! (Option renamed as clean_install) Remove SCM directories true integrate DEPRECATED! (Option removed from cocoapods) Integrate the Pods libraries into the Xcode project(s) true * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action cocoapods CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run cocoapods To pass parameters, make use of the : symbol, for example fastlane run cocoapods parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Cocoapods"},{"location":"generated/actions/cocoapods/#cocoapods","text":"Runs pod install for the project If you use CocoaPods you can use the cocoapods integration to run pod install before building your app. cocoapods Supported platforms ios, mac Author @KrauseFx, @tadpol, @birmacher, @Liquidsoul","title":"cocoapods"},{"location":"generated/actions/cocoapods/#2-examples","text":"cocoapods cocoapods( clean_install: true, podfile: \"./CustomPodfile\" )","title":"2 Examples"},{"location":"generated/actions/cocoapods/#parameters","text":"Key Description Default repo_update Add --repo-update flag to pod install command false clean_install Execute a full pod installation ignoring the content of the project cache false silent Execute command without logging output false verbose Show more debugging information false ansi Show output with ANSI codes true use_bundle_exec Use bundle exec when there is a Gemfile presented true podfile Explicitly specify the path to the Cocoapods' Podfile. You can either set it to the Podfile's path or to the folder containing the Podfile file error_callback A callback invoked with the command output if there is a non-zero exit status try_repo_update_on_error Retry with --repo-update if action was finished with error false deployment Disallow any changes to the Podfile or the Podfile.lock during installation false allow_root Allows CocoaPods to run as root false clean DEPRECATED! (Option renamed as clean_install) Remove SCM directories true integrate DEPRECATED! (Option removed from cocoapods) Integrate the Pods libraries into the Xcode project(s) true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/cocoapods/#documentation","text":"To show the documentation in your terminal, run fastlane action cocoapods","title":"Documentation"},{"location":"generated/actions/cocoapods/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run cocoapods To pass parameters, make use of the : symbol, for example fastlane run cocoapods parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/cocoapods/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/commit_github_file/","text":"commit_github_file This will commit a file directly on GitHub via the API Commits a file directly to GitHub. You must provide your GitHub Personal token (get one from https://github.com/settings/tokens/new ), the repository name and the relative file path from the root git project. Out parameters provide the commit sha created, which can be used for later usage for examples such as releases, the direct download link and the full response JSON. Documentation: https://developer.github.com/v3/repos/contents/#create-a-file . commit_github_file Supported platforms ios, android, mac Author @tommeier Returns A hash containing all relevant information for this commit Access things like 'html_url', 'sha', 'message' 1 Example response = commit_github_file( repository_name: \"fastlane/fastlane\", server_url: \"https://api.github.com\", api_token: ENV[\"GITHUB_TOKEN\"], message: \"Add my new file\", branch: \"master\", path: \"assets/my_new_file.xcarchive\" ) Parameters Key Description Default repository_name The path to your repo, e.g. 'fastlane/fastlane' server_url The server url. e.g. 'https://your.internal.github.host/api/v3' (Default: 'https://api.github.com') https://api.github.com api_token Personal API Token for GitHub - generate one at https://github.com/settings/tokens * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable branch The branch that the file should be committed on (default: master) master path The relative path to your file from project root e.g. assets/my_app.xcarchive message The commit message. Defaults to the file name * secure Optionally disable secure requests (ssl_verify_peer) true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The commit_github_file action generates the following Lane Variables: SharedValue Description SharedValues::COMMIT_GITHUB_FILE_HTML_LINK Link to your committed file SharedValues::COMMIT_GITHUB_FILE_SHA Commit SHA generated SharedValues::COMMIT_GITHUB_FILE_JSON The whole commit JSON object response To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action commit_github_file CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run commit_github_file To pass parameters, make use of the : symbol, for example fastlane run commit_github_file parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Commit github file"},{"location":"generated/actions/commit_github_file/#commit_github_file","text":"This will commit a file directly on GitHub via the API Commits a file directly to GitHub. You must provide your GitHub Personal token (get one from https://github.com/settings/tokens/new ), the repository name and the relative file path from the root git project. Out parameters provide the commit sha created, which can be used for later usage for examples such as releases, the direct download link and the full response JSON. Documentation: https://developer.github.com/v3/repos/contents/#create-a-file . commit_github_file Supported platforms ios, android, mac Author @tommeier Returns A hash containing all relevant information for this commit Access things like 'html_url', 'sha', 'message'","title":"commit_github_file"},{"location":"generated/actions/commit_github_file/#1-example","text":"response = commit_github_file( repository_name: \"fastlane/fastlane\", server_url: \"https://api.github.com\", api_token: ENV[\"GITHUB_TOKEN\"], message: \"Add my new file\", branch: \"master\", path: \"assets/my_new_file.xcarchive\" )","title":"1 Example"},{"location":"generated/actions/commit_github_file/#parameters","text":"Key Description Default repository_name The path to your repo, e.g. 'fastlane/fastlane' server_url The server url. e.g. 'https://your.internal.github.host/api/v3' (Default: 'https://api.github.com') https://api.github.com api_token Personal API Token for GitHub - generate one at https://github.com/settings/tokens * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable branch The branch that the file should be committed on (default: master) master path The relative path to your file from project root e.g. assets/my_app.xcarchive message The commit message. Defaults to the file name * secure Optionally disable secure requests (ssl_verify_peer) true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/commit_github_file/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The commit_github_file action generates the following Lane Variables: SharedValue Description SharedValues::COMMIT_GITHUB_FILE_HTML_LINK Link to your committed file SharedValues::COMMIT_GITHUB_FILE_SHA Commit SHA generated SharedValues::COMMIT_GITHUB_FILE_JSON The whole commit JSON object response To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/commit_github_file/#documentation","text":"To show the documentation in your terminal, run fastlane action commit_github_file","title":"Documentation"},{"location":"generated/actions/commit_github_file/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run commit_github_file To pass parameters, make use of the : symbol, for example fastlane run commit_github_file parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/commit_github_file/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/commit_version_bump/","text":"commit_version_bump Creates a 'Version Bump' commit. Run after increment_build_number This action will create a 'Version Bump' commit in your repo. Useful in conjunction with increment_build_number . It checks the repo to make sure that only the relevant files have changed. These are the files that increment_build_number ( agvtool ) touches: All .plist files The .xcodeproj/project.pbxproj file Then commits those files to the repo. Customize the message with the :message option. It defaults to 'Version Bump'. If you have other uncommitted changes in your repo, this action will fail. If you started off in a clean repo, and used the ipa and or sigh actions, then you can use the clean_build_artifacts action to clean those temporary files up before running this action. commit_version_bump Supported platforms ios, mac Author @lmirosevic 8 Examples commit_version_bump commit_version_bump( message: \"Version Bump\",# create a commit with a custom message xcodeproj: \"./path/to/MyProject.xcodeproj\" # optional, if you have multiple Xcode project files, you must specify your main project here ) commit_version_bump( settings: true # Include Settings.bundle/Root.plist ) commit_version_bump( settings: \"About.plist\" # Include Settings.bundle/About.plist ) commit_version_bump( settings: %w[About.plist Root.plist] # Include more than one plist from Settings.bundle ) commit_version_bump( include: %w[package.json custom.cfg] # include other updated files as part of the version bump ) commit_version_bump( ignore: /OtherProject/ # ignore files matching a regular expression ) commit_version_bump( no_verify: true # optional, default: false ) Parameters Key Description Default message The commit message when committing the version bump xcodeproj The path to your project file (Not the workspace). If you have only one, this is optional force Forces the commit, even if other files than the ones containing the version number have been modified false settings Include Settings.bundle/Root.plist with version bump false ignore A regular expression used to filter matched plist files to be modified include A list of extra files to be included in the version bump (string array or comma-separated string) [] no_verify Whether or not to use --no-verify false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The commit_version_bump action generates the following Lane Variables: SharedValue Description SharedValues::MODIFIED_FILES The list of paths of modified files To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action commit_version_bump CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run commit_version_bump To pass parameters, make use of the : symbol, for example fastlane run commit_version_bump parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Commit version bump"},{"location":"generated/actions/commit_version_bump/#commit_version_bump","text":"Creates a 'Version Bump' commit. Run after increment_build_number This action will create a 'Version Bump' commit in your repo. Useful in conjunction with increment_build_number . It checks the repo to make sure that only the relevant files have changed. These are the files that increment_build_number ( agvtool ) touches: All .plist files The .xcodeproj/project.pbxproj file Then commits those files to the repo. Customize the message with the :message option. It defaults to 'Version Bump'. If you have other uncommitted changes in your repo, this action will fail. If you started off in a clean repo, and used the ipa and or sigh actions, then you can use the clean_build_artifacts action to clean those temporary files up before running this action. commit_version_bump Supported platforms ios, mac Author @lmirosevic","title":"commit_version_bump"},{"location":"generated/actions/commit_version_bump/#8-examples","text":"commit_version_bump commit_version_bump( message: \"Version Bump\",# create a commit with a custom message xcodeproj: \"./path/to/MyProject.xcodeproj\" # optional, if you have multiple Xcode project files, you must specify your main project here ) commit_version_bump( settings: true # Include Settings.bundle/Root.plist ) commit_version_bump( settings: \"About.plist\" # Include Settings.bundle/About.plist ) commit_version_bump( settings: %w[About.plist Root.plist] # Include more than one plist from Settings.bundle ) commit_version_bump( include: %w[package.json custom.cfg] # include other updated files as part of the version bump ) commit_version_bump( ignore: /OtherProject/ # ignore files matching a regular expression ) commit_version_bump( no_verify: true # optional, default: false )","title":"8 Examples"},{"location":"generated/actions/commit_version_bump/#parameters","text":"Key Description Default message The commit message when committing the version bump xcodeproj The path to your project file (Not the workspace). If you have only one, this is optional force Forces the commit, even if other files than the ones containing the version number have been modified false settings Include Settings.bundle/Root.plist with version bump false ignore A regular expression used to filter matched plist files to be modified include A list of extra files to be included in the version bump (string array or comma-separated string) [] no_verify Whether or not to use --no-verify false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/commit_version_bump/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The commit_version_bump action generates the following Lane Variables: SharedValue Description SharedValues::MODIFIED_FILES The list of paths of modified files To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/commit_version_bump/#documentation","text":"To show the documentation in your terminal, run fastlane action commit_version_bump","title":"Documentation"},{"location":"generated/actions/commit_version_bump/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run commit_version_bump To pass parameters, make use of the : symbol, for example fastlane run commit_version_bump parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/commit_version_bump/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/copy_artifacts/","text":"copy_artifacts Copy and save your build artifacts (useful when you use reset_git_repo) This action copies artifacts to a target directory. It's useful if you have a CI that will pick up these artifacts and attach them to the build. Useful e.g. for storing your .ipa s, .dSYM.zip s, .mobileprovision s, .cert s. Make sure your :target_path is ignored from git, and if you use reset_git_repo , make sure the artifacts are added to the exclude list. copy_artifacts Supported platforms ios, android, mac Author @lmirosevic 2 Examples copy_artifacts( target_path: \"artifacts\", artifacts: [\"*.cer\", \"*.mobileprovision\", \"*.ipa\", \"*.dSYM.zip\", \"path/to/file.txt\", \"another/path/*.extension\"] ) # Reset the git repo to a clean state, but leave our artifacts in place reset_git_repo( exclude: \"artifacts\" ) # Copy the .ipa created by _gym_ if it was successfully created artifacts = [] artifacts << lane_context[SharedValues::IPA_OUTPUT_PATH] if lane_context[SharedValues::IPA_OUTPUT_PATH] copy_artifacts( artifacts: artifacts ) Parameters Key Description Default keep_original Set this to false if you want move, rather than copy, the found artifacts true target_path The directory in which you want your artifacts placed artifacts artifacts An array of file patterns of the files/folders you want to preserve [] fail_on_missing Fail when a source file isn't found false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action copy_artifacts CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run copy_artifacts To pass parameters, make use of the : symbol, for example fastlane run copy_artifacts parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Copy artifacts"},{"location":"generated/actions/copy_artifacts/#copy_artifacts","text":"Copy and save your build artifacts (useful when you use reset_git_repo) This action copies artifacts to a target directory. It's useful if you have a CI that will pick up these artifacts and attach them to the build. Useful e.g. for storing your .ipa s, .dSYM.zip s, .mobileprovision s, .cert s. Make sure your :target_path is ignored from git, and if you use reset_git_repo , make sure the artifacts are added to the exclude list. copy_artifacts Supported platforms ios, android, mac Author @lmirosevic","title":"copy_artifacts"},{"location":"generated/actions/copy_artifacts/#2-examples","text":"copy_artifacts( target_path: \"artifacts\", artifacts: [\"*.cer\", \"*.mobileprovision\", \"*.ipa\", \"*.dSYM.zip\", \"path/to/file.txt\", \"another/path/*.extension\"] ) # Reset the git repo to a clean state, but leave our artifacts in place reset_git_repo( exclude: \"artifacts\" ) # Copy the .ipa created by _gym_ if it was successfully created artifacts = [] artifacts << lane_context[SharedValues::IPA_OUTPUT_PATH] if lane_context[SharedValues::IPA_OUTPUT_PATH] copy_artifacts( artifacts: artifacts )","title":"2 Examples"},{"location":"generated/actions/copy_artifacts/#parameters","text":"Key Description Default keep_original Set this to false if you want move, rather than copy, the found artifacts true target_path The directory in which you want your artifacts placed artifacts artifacts An array of file patterns of the files/folders you want to preserve [] fail_on_missing Fail when a source file isn't found false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/copy_artifacts/#documentation","text":"To show the documentation in your terminal, run fastlane action copy_artifacts","title":"Documentation"},{"location":"generated/actions/copy_artifacts/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run copy_artifacts To pass parameters, make use of the : symbol, for example fastlane run copy_artifacts parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/copy_artifacts/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/create_app_on_managed_play_store/","text":"create_app_on_managed_play_store Create Managed Google Play Apps Create new apps on Managed Google Play. create_app_on_managed_play_store Supported platforms android Author @janpio 1 Example create_app_on_managed_play_store( json_key: 'path/to/you/json/key/file', developer_account_id: 'developer_account_id', # obtained using the `get_managed_play_store_publishing_rights` action (or looking at the Play Console url) app_title: 'Your app title', language: 'en_US', # primary app language in BCP 47 format apk: '/files/app-release.apk' ) Parameters Key Description Default json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * developer_account_id The ID of your Google Play Console account. Can be obtained from the URL when you log in ( https://play.google.com/apps/publish/?account=... or when you 'Obtain private app publishing rights' (https://developers.google.com/android/work/play/custom-app-api/get-started#retrieve_the_developer_account_id) * apk Path to the APK file to upload * app_title App Title language Default app language (e.g. 'en_US') en_US root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action create_app_on_managed_play_store CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_app_on_managed_play_store To pass parameters, make use of the : symbol, for example fastlane run create_app_on_managed_play_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Create app on managed play store"},{"location":"generated/actions/create_app_on_managed_play_store/#create_app_on_managed_play_store","text":"Create Managed Google Play Apps Create new apps on Managed Google Play. create_app_on_managed_play_store Supported platforms android Author @janpio","title":"create_app_on_managed_play_store"},{"location":"generated/actions/create_app_on_managed_play_store/#1-example","text":"create_app_on_managed_play_store( json_key: 'path/to/you/json/key/file', developer_account_id: 'developer_account_id', # obtained using the `get_managed_play_store_publishing_rights` action (or looking at the Play Console url) app_title: 'Your app title', language: 'en_US', # primary app language in BCP 47 format apk: '/files/app-release.apk' )","title":"1 Example"},{"location":"generated/actions/create_app_on_managed_play_store/#parameters","text":"Key Description Default json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * developer_account_id The ID of your Google Play Console account. Can be obtained from the URL when you log in ( https://play.google.com/apps/publish/?account=... or when you 'Obtain private app publishing rights' (https://developers.google.com/android/work/play/custom-app-api/get-started#retrieve_the_developer_account_id) * apk Path to the APK file to upload * app_title App Title language Default app language (e.g. 'en_US') en_US root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/create_app_on_managed_play_store/#documentation","text":"To show the documentation in your terminal, run fastlane action create_app_on_managed_play_store","title":"Documentation"},{"location":"generated/actions/create_app_on_managed_play_store/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_app_on_managed_play_store To pass parameters, make use of the : symbol, for example fastlane run create_app_on_managed_play_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/create_app_on_managed_play_store/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/create_app_online/","text":"create_app_online Creates the given application on iTC and the Dev Portal (via produce ) Create new iOS apps on App Store Connect and Apple Developer Portal using your command line produce creates new iOS apps on both the Apple Developer Portal and App Store Connect with the minimum required information. Features \u2022 Usage \u2022 How does it work? Features Create new apps on both App Store Connect and the Apple Developer Portal Modify Application Services on the Apple Developer Portal Create App Groups on the Apple Developer Portal Associate apps with App Groups on the Apple Developer Portal Create iCloud Containers on the Apple Developer Portal Associate apps with iCloud Containers on the Apple Developer Portal Create Merchant Identifiers on the Apple Developer Portal Associate apps with Merchant Identifiers on the Apple Developer Portal Support for multiple Apple accounts , storing your credentials securely in the Keychain Usage Creating a new application fastlane produce To get a list of all available parameters: fastlane produce --help Commands: (* default) associate_group Associate with a group, which is created if needed or simply located otherwise associate_merchant Associate with a merchant for use with Apple Pay. Apple Pay will be enabled for this app create * Creates a new app on App Store Connect and the Apple Developer Portal disable_services Disable specific Application Services for a specific app on the Apple Developer Portal enable_services Enable specific Application Services for a specific app on the Apple Developer Portal group Ensure that a specific App Group exists cloud_container Ensure that a specific iCloud Container exists help Display global or [command] help documentation merchant Ensure that a specific Merchant exists Global Options: --verbose -h, --help Display help documentation -v, --version Display version information Options for create: -u, --username STRING Your Apple ID Username (PRODUCE_USERNAME) -a, --app_identifier STRING App Identifier (Bundle ID, e.g. com.krausefx.app) (PRODUCE_APP_IDENTIFIER) -e, --bundle_identifier_suffix STRING App Identifier Suffix (Ignored if App Identifier does not ends with .*) (PRODUCE_APP_IDENTIFIER_SUFFIX) -q, --app_name STRING App Name (PRODUCE_APP_NAME) -z, --app_version STRING Initial version number (e.g. '1.0') (PRODUCE_VERSION) -y, --sku STRING SKU Number (e.g. '1234') (PRODUCE_SKU) -j, --platform STRING The platform to use (optional) (PRODUCE_PLATFORM) -m, --language STRING Primary Language (e.g. 'English', 'German') (PRODUCE_LANGUAGE) -c, --company_name STRING The name of your company. It's used to set company name on App Store Connect team's app pages. Only required if it's the first app you create (PRODUCE_COMPANY_NAME) -i, --skip_itc [VALUE] Skip the creation of the app on App Store Connect (PRODUCE_SKIP_ITC) -d, --skip_devcenter [VALUE] Skip the creation of the app on the Apple Developer Portal (PRODUCE_SKIP_DEVCENTER) -s, --itc_users ARRAY Array of App Store Connect users. If provided, you can limit access to this newly created app for users with the App Manager, Developer, Marketer or Sales roles (ITC_USERS) -b, --team_id STRING The ID of your Developer Portal team if you're in multiple teams (PRODUCE_TEAM_ID) -l, --team_name STRING The name of your Developer Portal team if you're in multiple teams (PRODUCE_TEAM_NAME) -k, --itc_team_id [VALUE] The ID of your App Store Connect team if you're in multiple teams (PRODUCE_ITC_TEAM_ID) -p, --itc_team_name STRING The name of your App Store Connect team if you're in multiple teams (PRODUCE_ITC_TEAM_NAME) Enabling / Disabling Application Services If you want to enable Application Services for an App ID (HomeKit and HealthKit in this example): fastlane produce enable_services --homekit --healthkit If you want to disable Application Services for an App ID (iCloud in this case): fastlane produce disable_services --icloud If you want to create a new App Group: fastlane produce group -g group.krausefx -n \"Example App Group\" If you want to associate an app with an App Group: fastlane produce associate_group -a com.krausefx.app group.krausefx If you want to create a new iCloud Container: fastlane produce cloud_container -g iCloud.com.krausefx.app -n \"Example iCloud Container\" If you want to associate an app with an iCloud Container: fastlane produce associate_cloud_container -a com.krausefx.app iCloud.com.krausefx.app If you want to associate an app with multiple iCloud Containers: fastlane produce associate_cloud_container -a com.krausefx.app iCloud.com.krausefx.app1 iCloud.com.krausefx.app2 Parameters Get a list of all available options using fastlane produce enable_services --help --access-wifi Enable Access Wifi --app-attest Enable App Attest --app-group Enable App Group --apple-pay Enable Apple Pay --associated-domains Enable Associated Domains --auto-fill-credential Enable Auto Fill Credential --class-kit Enable Class Kit --icloud STRING Enable iCloud, suitable values are \"xcode5_compatible\" and \"xcode6_compatible\" --custom-network-protocol Enable Custom Network Protocol --data-protection STRING Enable Data Protection, suitable values are \"complete\", \"unlessopen\" and \"untilfirstauth\" --extended-virtual-address-space Enable Extended Virtual Address Space --game-center STRING Enable Game Center, suitable values are \"ios\" and \"macos --health-kit Enable Health Kit --hls-interstitial-preview Enable Hls Interstitial Preview --home-kit Enable Home Kit --hotspot Enable Hotspot --in-app-purchase Enable In App Purchase --inter-app-audio Enable Inter App Audio --low-latency-hls Enable Low Latency Hls --managed-associated-domains Enable Managed Associated Domains --maps Enable Maps --multipath Enable Multipath --network-extension Enable Network Extension --nfc-tag-reading Enable NFC Tag Reading --personal-vpn Enable Personal VPN --passbook Enable Passbook (deprecated) --push-notification Enable Push Notification --sign-in-with-apple Enable Sign In With Apple --siri-kit Enable Siri Kit --system-extension Enable System Extension --user-management Enable User Management --vpn-configuration Enable Vpn Configuration (deprecated) --wallet Enable Wallet --wireless-accessory Enable Wireless Accessory --car-play-audio-app Enable Car Play Audio App --car-play-messaging-app Enable Car Play Messaging App --car-play-navigation-app Enable Car Play Navigation App --car-play-voip-calling-app Enable Car Play Voip Calling App --critical-alerts Enable Critical Alerts --hotspot-helper Enable Hotspot Helper --driver-kit Enable DriverKit --driver-kit-endpoint-security Enable DriverKit Endpoint Security --driver-kit-family-hid-device Enable DriverKit Family HID Device --driver-kit-family-networking Enable DriverKit Family Networking --driver-kit-family-serial Enable DriverKit Family Serial --driver-kit-hid-event-service Enable DriverKit HID EventService --driver-kit-transport-hid Enable DriverKit Transport HID --multitasking-camera-access Enable Multitasking Camera Access --sf-universal-link-api Enable SFUniversalLink API --vp9-decoder Enable VP9 Decoder --music-kit Enable MusicKit --shazam-kit Enable ShazamKit --communication-notifications Enable Communication Notifications --group-activities Enable Group Activities --health-kit-estimate-recalibration Enable HealthKit Estimate Recalibration --time-sensitive-notifications Enable Time Sensitive Notifications fastlane produce disable_services --help --access-wifi Disable Access Wifi --app-attest Disable App Attest --app-group Disable App Group --apple-pay Disable Apple Pay --associated-domains Disable Associated Domains --auto-fill-credential Disable Auto Fill Credential --class-kit Disable Class Kit --icloud STRING Disable iCloud --custom-network-protocol Disable Custom Network Protocol --data-protection STRING Disable Data Protection --extended-virtual-address-space Disable Extended Virtual Address Space --game-center STRING Disable Game Center --health-kit Disable Health Kit --hls-interstitial-preview Disable Hls Interstitial Preview --home-kit Disable Home Kit --hotspot Disable Hotspot --in-app-purchase Disable In App Purchase --inter-app-audio Disable Inter App Audio --low-latency-hls Disable Low Latency Hls --managed-associated-domains Disable Managed Associated Domains --maps Disable Maps --multipath Disable Multipath --network-extension Disable Network Extension --nfc-tag-reading Disable NFC Tag Reading --personal-vpn Disable Personal VPN --passbook Disable Passbook (deprecated) --push-notification Disable Push Notification --sign-in-with-apple Disable Sign In With Apple --siri-kit Disable Siri Kit --system-extension Disable System Extension --user-management Disable User Management --vpn-configuration Disable Vpn Configuration (deprecated) --wallet Disable Wallet --wireless-accessory Disable Wireless Accessory --car-play-audio-app Disable Car Play Audio App --car-play-messaging-app Disable Car Play Messaging App --car-play-navigation-app Disable Car Play Navigation App --car-play-voip-calling-app Disable Car Play Voip Calling App --critical-alerts Disable Critical Alerts --hotspot-helper Disable Hotspot Helper --driver-kit Disable DriverKit --driver-kit-endpoint-security Disable DriverKit Endpoint Security --driver-kit-family-hid-device Disable DriverKit Family HID Device --driver-kit-family-networking Disable DriverKit Family Networking --driver-kit-family-serial Disable DriverKit Family Serial --driver-kit-hid-event-service Disable DriverKit HID EventService --driver-kit-transport-hid Disable DriverKit Transport HID --multitasking-camera-access Disable Multitasking Camera Access --sf-universal-link-api Disable SFUniversalLink API --vp9-decoder Disable VP9 Decoder --music-kit Disable MusicKit --shazam-kit Disable ShazamKit --communication-notifications Disable Communication Notifications --group-activities Disable Group Activities --health-kit-estimate-recalibration Disable HealthKit Estimate Recalibration --time-sensitive-notifications Disable Time Sensitive Notifications Creating Apple Pay merchants and associating them with an App ID If you want to create a new Apple Pay Merchant Identifier: fastlane produce merchant -o merchant.com.example.production -r \"Example Merchant Production\" Use --help for more information about all available parameters fastlane produce merchant --help If you want to associate an app with a Merchant Identifier: fastlane produce associate_merchant -a com.krausefx.app merchant.com.example.production If you want to associate an app with multiple Merchant Identifiers: fastlane produce associate_merchant -a com.krausefx.app merchant.com.example.production merchant.com.example.sandbox Use --help for more information about all available parameters fastlane produce associate_merchant --help Environment Variables All available values can also be passed using environment variables, run fastlane produce --help to get a list of all available parameters. fastlane Integration Your Fastfile should look like this lane :release do produce( username: 'felix@krausefx.com', app_identifier: 'com.krausefx.app', app_name: 'MyApp', language: 'English', app_version: '1.0', sku: '123', team_name: 'SunApps GmbH', # only necessary when in multiple teams # Optional # App services can be enabled during app creation enable_services: { access_wifi: \"on\", # Valid values: \"on\", \"off\" app_attest: \"on\", # Valid values: \"on\", \"off\" app_group: \"on\", # Valid values: \"on\", \"off\" apple_pay: \"on\", # Valid values: \"on\", \"off\" associated_domains: \"on\", # Valid values: \"on\", \"off\" auto_fill_credential: \"on\", # Valid values: \"on\", \"off\" car_play_audio_app: \"on\", # Valid values: \"on\", \"off\" car_play_messaging_app: \"on\", # Valid values: \"on\", \"off\" car_play_navigation_app: \"on\", # Valid values: \"on\", \"off\" car_play_voip_calling_app: \"on\", # Valid values: \"on\", \"off\" class_kit: \"on\", # Valid values: \"on\", \"off\" icloud: \"xcode5_compatible\", # Valid values: \"xcode5_compatible\", \"xcode6_compatible\", \"off\" critical_alerts: \"on\", # Valid values: \"on\", \"off\" custom_network_protocol: \"on\", # Valid values: \"on\", \"off\" data_protection: \"complete\", # Valid values: \"complete\", \"unlessopen\", \"untilfirstauth\", \"off\" extended_virtual_address_space: \"on\", # Valid values: \"on\", \"off\" file_provider_testing_mode: \"on\", # Valid values: \"on\", \"off\" fonts: \"on\", # Valid values: \"on\", \"off\" game_center: \"ios\", # Valid values: \"ios\", \"macos\", off\" health_kit: \"on\", # Valid values: \"on\", \"off\" hls_interstitial_preview: \"on\", # Valid values: \"on\", \"off\" home_kit: \"on\", # Valid values: \"on\", \"off\" hotspot: \"on\", # Valid values: \"on\", \"off\" hotspot_helper: \"on\", # Valid values: \"on\", \"off\" in_app_purchase: \"on\", # Valid values: \"on\", \"off\" inter_app_audio: \"on\", # Valid values: \"on\", \"off\" low_latency_hls: \"on\", # Valid values: \"on\", \"off\" managed_associated_domains: \"on\", # Valid values: \"on\", \"off\" maps: \"on\", # Valid values: \"on\", \"off\" multipath: \"on\", # Valid values: \"on\", \"off\" network_extension: \"on\", # Valid values: \"on\", \"off\" nfc_tag_reading: \"on\", # Valid values: \"on\", \"off\" passbook: \"on\", # Valid values: \"on\", \"off\" (deprecated) personal_vpn: \"on\", # Valid values: \"on\", \"off\" push_notification: \"on\", # Valid values: \"on\", \"off\" sign_in_with_apple: \"on\", # Valid values: \"on\", \"off\" siri_kit: \"on\", # Valid values: \"on\", \"off\" system_extension: \"on\", # Valid values: \"on\", \"off\" user_management: \"on\", # Valid values: \"on\", \"off\" vpn_configuration: \"on\", # Valid values: \"on\", \"off\" (deprecated) wallet: \"on\", # Valid values: \"on\", \"off\" wireless_accessory: \"on\", # Valid values: \"on\", \"off\" driver_kit: \"on\", # Valid values: \"on\", \"off\" driver_kit_endpoint_security: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_hid_device: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_networking: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_serial: \"on\", # Valid values: \"on\", \"off\" driver_kit_hid_event_service: \"on\", # Valid values: \"on\", \"off\" driver_kit_transport_hid: \"on\", # Valid values: \"on\", \"off\" multitasking_camera_access: \"on\", # Valid values: \"on\", \"off\" sf_universal_link_api: \"on\", # Valid values: \"on\", \"off\" vp9_decoder: \"on\", # Valid values: \"on\", \"off\" music_kit: \"on\", # Valid values: \"on\", \"off\" shazam_kit: \"on\", # Valid values: \"on\", \"off\" communication_notifications: \"on\", # Valid values: \"on\", \"off\" group_activities: \"on\", # Valid values: \"on\", \"off\" health_kit_estimate_recalibration: \"on\", # Valid values: \"on\", \"off\" time_sensitive_notifications: \"on\", # Valid values: \"on\", \"off\" } ) deliver end To use the newly generated app in deliver , you need to add this line to your Deliverfile : apple_id(ENV['PRODUCE_APPLE_ID']) This will tell deliver , which App ID to use, since the app is not yet available in the App Store. You'll still have to fill out the remaining information (like screenshots, app description and pricing). You can use deliver to upload your app metadata using a CLI How is my password stored? produce uses the password manager from fastlane . Take a look the CredentialsManager README for more information. create_app_online Supported platforms ios Author @KrauseFx 2 Examples create_app_online( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", app_name: \"MyApp\", language: \"English\", app_version: \"1.0\", sku: \"123\", team_name: \"SunApps GmbH\" # Only necessary when in multiple teams. ) produce # alias for \"create_app_online\" Parameters Key Description Default username Your Apple ID Username * app_identifier App Identifier (Bundle ID, e.g. com.krausefx.app) * bundle_identifier_suffix App Identifier Suffix (Ignored if App Identifier does not end with .*) app_name App Name app_version Initial version number (e.g. '1.0') sku SKU Number (e.g. '1234') * platform The platform to use (optional) ios platforms The platforms to use (optional) language Primary Language (e.g. 'en-US', 'fr-FR') English company_name The name of your company. It's used to set company name on App Store Connect team's app pages. Only required if it's the first app you create skip_itc Skip the creation of the app on App Store Connect false itc_users Array of App Store Connect users. If provided, you can limit access to this newly created app for users with the App Manager, Developer, Marketer or Sales roles enabled_features DEPRECATED! Please use enable_services instead - Array with Spaceship App Services {} enable_services Array with Spaceship App Services (e.g. access_wifi: (on|off), app_attest: (on|off), app_group: (on|off), apple_pay: (on|off), associated_domains: (on|off), auto_fill_credential: (on|off), class_kit: (on|off), icloud: (legacy|cloudkit), custom_network_protocol: (on|off), data_protection: (complete|unlessopen|untilfirstauth), extended_virtual_address_space: (on|off), family_controls: (on|off), file_provider_testing_mode: (on|off), fonts: (on|off), game_center: (ios|mac), health_kit: (on|off), hls_interstitial_preview: (on|off), home_kit: (on|off), hotspot: (on|off), in_app_purchase: (on|off), inter_app_audio: (on|off), low_latency_hls: (on|off), managed_associated_domains: (on|off), maps: (on|off), multipath: (on|off), network_extension: (on|off), nfc_tag_reading: (on|off), personal_vpn: (on|off), passbook: (on|off), push_notification: (on|off), sign_in_with_apple: (on), siri_kit: (on|off), system_extension: (on|off), user_management: (on|off), vpn_configuration: (on|off), wallet: (on|off), wireless_accessory: (on|off), car_play_audio_app: (on|off), car_play_messaging_app: (on|off), car_play_navigation_app: (on|off), car_play_voip_calling_app: (on|off), critical_alerts: (on|off), hotspot_helper: (on|off), driver_kit: (on|off), driver_kit_endpoint_security: (on|off), driver_kit_family_hid_device: (on|off), driver_kit_family_networking: (on|off), driver_kit_family_serial: (on|off), driver_kit_hid_event_service: (on|off), driver_kit_transport_hid: (on|off), multitasking_camera_access: (on|off), sf_universal_link_api: (on|off), vp9_decoder: (on|off), music_kit: (on|off), shazam_kit: (on|off), communication_notifications: (on|off), group_activities: (on|off), health_kit_estimate_recalibration: (on|off), time_sensitive_notifications: (on|off)) {} skip_devcenter Skip the creation of the app on the Apple Developer Portal false team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * itc_team_id The ID of your App Store Connect team if you're in multiple teams * itc_team_name The name of your App Store Connect team if you're in multiple teams * * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The create_app_online action generates the following Lane Variables: SharedValue Description SharedValues::PRODUCE_APPLE_ID The Apple ID of the newly created app. You probably need it for deliver To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action create_app_online CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_app_online To pass parameters, make use of the : symbol, for example fastlane run create_app_online parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Create app online"},{"location":"generated/actions/create_app_online/#create_app_online","text":"Creates the given application on iTC and the Dev Portal (via produce )","title":"create_app_online"},{"location":"generated/actions/create_app_online/#features","text":"Create new apps on both App Store Connect and the Apple Developer Portal Modify Application Services on the Apple Developer Portal Create App Groups on the Apple Developer Portal Associate apps with App Groups on the Apple Developer Portal Create iCloud Containers on the Apple Developer Portal Associate apps with iCloud Containers on the Apple Developer Portal Create Merchant Identifiers on the Apple Developer Portal Associate apps with Merchant Identifiers on the Apple Developer Portal Support for multiple Apple accounts , storing your credentials securely in the Keychain","title":"Features"},{"location":"generated/actions/create_app_online/#usage","text":"","title":"Usage"},{"location":"generated/actions/create_app_online/#creating-a-new-application","text":"fastlane produce To get a list of all available parameters: fastlane produce --help Commands: (* default) associate_group Associate with a group, which is created if needed or simply located otherwise associate_merchant Associate with a merchant for use with Apple Pay. Apple Pay will be enabled for this app create * Creates a new app on App Store Connect and the Apple Developer Portal disable_services Disable specific Application Services for a specific app on the Apple Developer Portal enable_services Enable specific Application Services for a specific app on the Apple Developer Portal group Ensure that a specific App Group exists cloud_container Ensure that a specific iCloud Container exists help Display global or [command] help documentation merchant Ensure that a specific Merchant exists Global Options: --verbose -h, --help Display help documentation -v, --version Display version information Options for create: -u, --username STRING Your Apple ID Username (PRODUCE_USERNAME) -a, --app_identifier STRING App Identifier (Bundle ID, e.g. com.krausefx.app) (PRODUCE_APP_IDENTIFIER) -e, --bundle_identifier_suffix STRING App Identifier Suffix (Ignored if App Identifier does not ends with .*) (PRODUCE_APP_IDENTIFIER_SUFFIX) -q, --app_name STRING App Name (PRODUCE_APP_NAME) -z, --app_version STRING Initial version number (e.g. '1.0') (PRODUCE_VERSION) -y, --sku STRING SKU Number (e.g. '1234') (PRODUCE_SKU) -j, --platform STRING The platform to use (optional) (PRODUCE_PLATFORM) -m, --language STRING Primary Language (e.g. 'English', 'German') (PRODUCE_LANGUAGE) -c, --company_name STRING The name of your company. It's used to set company name on App Store Connect team's app pages. Only required if it's the first app you create (PRODUCE_COMPANY_NAME) -i, --skip_itc [VALUE] Skip the creation of the app on App Store Connect (PRODUCE_SKIP_ITC) -d, --skip_devcenter [VALUE] Skip the creation of the app on the Apple Developer Portal (PRODUCE_SKIP_DEVCENTER) -s, --itc_users ARRAY Array of App Store Connect users. If provided, you can limit access to this newly created app for users with the App Manager, Developer, Marketer or Sales roles (ITC_USERS) -b, --team_id STRING The ID of your Developer Portal team if you're in multiple teams (PRODUCE_TEAM_ID) -l, --team_name STRING The name of your Developer Portal team if you're in multiple teams (PRODUCE_TEAM_NAME) -k, --itc_team_id [VALUE] The ID of your App Store Connect team if you're in multiple teams (PRODUCE_ITC_TEAM_ID) -p, --itc_team_name STRING The name of your App Store Connect team if you're in multiple teams (PRODUCE_ITC_TEAM_NAME)","title":"Creating a new application"},{"location":"generated/actions/create_app_online/#enabling-disabling-application-services","text":"If you want to enable Application Services for an App ID (HomeKit and HealthKit in this example): fastlane produce enable_services --homekit --healthkit If you want to disable Application Services for an App ID (iCloud in this case): fastlane produce disable_services --icloud If you want to create a new App Group: fastlane produce group -g group.krausefx -n \"Example App Group\" If you want to associate an app with an App Group: fastlane produce associate_group -a com.krausefx.app group.krausefx If you want to create a new iCloud Container: fastlane produce cloud_container -g iCloud.com.krausefx.app -n \"Example iCloud Container\" If you want to associate an app with an iCloud Container: fastlane produce associate_cloud_container -a com.krausefx.app iCloud.com.krausefx.app If you want to associate an app with multiple iCloud Containers: fastlane produce associate_cloud_container -a com.krausefx.app iCloud.com.krausefx.app1 iCloud.com.krausefx.app2","title":"Enabling / Disabling Application Services"},{"location":"generated/actions/create_app_online/#parameters","text":"Get a list of all available options using fastlane produce enable_services --help --access-wifi Enable Access Wifi --app-attest Enable App Attest --app-group Enable App Group --apple-pay Enable Apple Pay --associated-domains Enable Associated Domains --auto-fill-credential Enable Auto Fill Credential --class-kit Enable Class Kit --icloud STRING Enable iCloud, suitable values are \"xcode5_compatible\" and \"xcode6_compatible\" --custom-network-protocol Enable Custom Network Protocol --data-protection STRING Enable Data Protection, suitable values are \"complete\", \"unlessopen\" and \"untilfirstauth\" --extended-virtual-address-space Enable Extended Virtual Address Space --game-center STRING Enable Game Center, suitable values are \"ios\" and \"macos --health-kit Enable Health Kit --hls-interstitial-preview Enable Hls Interstitial Preview --home-kit Enable Home Kit --hotspot Enable Hotspot --in-app-purchase Enable In App Purchase --inter-app-audio Enable Inter App Audio --low-latency-hls Enable Low Latency Hls --managed-associated-domains Enable Managed Associated Domains --maps Enable Maps --multipath Enable Multipath --network-extension Enable Network Extension --nfc-tag-reading Enable NFC Tag Reading --personal-vpn Enable Personal VPN --passbook Enable Passbook (deprecated) --push-notification Enable Push Notification --sign-in-with-apple Enable Sign In With Apple --siri-kit Enable Siri Kit --system-extension Enable System Extension --user-management Enable User Management --vpn-configuration Enable Vpn Configuration (deprecated) --wallet Enable Wallet --wireless-accessory Enable Wireless Accessory --car-play-audio-app Enable Car Play Audio App --car-play-messaging-app Enable Car Play Messaging App --car-play-navigation-app Enable Car Play Navigation App --car-play-voip-calling-app Enable Car Play Voip Calling App --critical-alerts Enable Critical Alerts --hotspot-helper Enable Hotspot Helper --driver-kit Enable DriverKit --driver-kit-endpoint-security Enable DriverKit Endpoint Security --driver-kit-family-hid-device Enable DriverKit Family HID Device --driver-kit-family-networking Enable DriverKit Family Networking --driver-kit-family-serial Enable DriverKit Family Serial --driver-kit-hid-event-service Enable DriverKit HID EventService --driver-kit-transport-hid Enable DriverKit Transport HID --multitasking-camera-access Enable Multitasking Camera Access --sf-universal-link-api Enable SFUniversalLink API --vp9-decoder Enable VP9 Decoder --music-kit Enable MusicKit --shazam-kit Enable ShazamKit --communication-notifications Enable Communication Notifications --group-activities Enable Group Activities --health-kit-estimate-recalibration Enable HealthKit Estimate Recalibration --time-sensitive-notifications Enable Time Sensitive Notifications fastlane produce disable_services --help --access-wifi Disable Access Wifi --app-attest Disable App Attest --app-group Disable App Group --apple-pay Disable Apple Pay --associated-domains Disable Associated Domains --auto-fill-credential Disable Auto Fill Credential --class-kit Disable Class Kit --icloud STRING Disable iCloud --custom-network-protocol Disable Custom Network Protocol --data-protection STRING Disable Data Protection --extended-virtual-address-space Disable Extended Virtual Address Space --game-center STRING Disable Game Center --health-kit Disable Health Kit --hls-interstitial-preview Disable Hls Interstitial Preview --home-kit Disable Home Kit --hotspot Disable Hotspot --in-app-purchase Disable In App Purchase --inter-app-audio Disable Inter App Audio --low-latency-hls Disable Low Latency Hls --managed-associated-domains Disable Managed Associated Domains --maps Disable Maps --multipath Disable Multipath --network-extension Disable Network Extension --nfc-tag-reading Disable NFC Tag Reading --personal-vpn Disable Personal VPN --passbook Disable Passbook (deprecated) --push-notification Disable Push Notification --sign-in-with-apple Disable Sign In With Apple --siri-kit Disable Siri Kit --system-extension Disable System Extension --user-management Disable User Management --vpn-configuration Disable Vpn Configuration (deprecated) --wallet Disable Wallet --wireless-accessory Disable Wireless Accessory --car-play-audio-app Disable Car Play Audio App --car-play-messaging-app Disable Car Play Messaging App --car-play-navigation-app Disable Car Play Navigation App --car-play-voip-calling-app Disable Car Play Voip Calling App --critical-alerts Disable Critical Alerts --hotspot-helper Disable Hotspot Helper --driver-kit Disable DriverKit --driver-kit-endpoint-security Disable DriverKit Endpoint Security --driver-kit-family-hid-device Disable DriverKit Family HID Device --driver-kit-family-networking Disable DriverKit Family Networking --driver-kit-family-serial Disable DriverKit Family Serial --driver-kit-hid-event-service Disable DriverKit HID EventService --driver-kit-transport-hid Disable DriverKit Transport HID --multitasking-camera-access Disable Multitasking Camera Access --sf-universal-link-api Disable SFUniversalLink API --vp9-decoder Disable VP9 Decoder --music-kit Disable MusicKit --shazam-kit Disable ShazamKit --communication-notifications Disable Communication Notifications --group-activities Disable Group Activities --health-kit-estimate-recalibration Disable HealthKit Estimate Recalibration --time-sensitive-notifications Disable Time Sensitive Notifications","title":"Parameters"},{"location":"generated/actions/create_app_online/#creating-apple-pay-merchants-and-associating-them-with-an-app-id","text":"If you want to create a new Apple Pay Merchant Identifier: fastlane produce merchant -o merchant.com.example.production -r \"Example Merchant Production\" Use --help for more information about all available parameters fastlane produce merchant --help If you want to associate an app with a Merchant Identifier: fastlane produce associate_merchant -a com.krausefx.app merchant.com.example.production If you want to associate an app with multiple Merchant Identifiers: fastlane produce associate_merchant -a com.krausefx.app merchant.com.example.production merchant.com.example.sandbox Use --help for more information about all available parameters fastlane produce associate_merchant --help","title":"Creating Apple Pay merchants and associating them with an App ID"},{"location":"generated/actions/create_app_online/#environment-variables","text":"All available values can also be passed using environment variables, run fastlane produce --help to get a list of all available parameters.","title":"Environment Variables"},{"location":"generated/actions/create_app_online/#fastlane-integration","text":"Your Fastfile should look like this lane :release do produce( username: 'felix@krausefx.com', app_identifier: 'com.krausefx.app', app_name: 'MyApp', language: 'English', app_version: '1.0', sku: '123', team_name: 'SunApps GmbH', # only necessary when in multiple teams # Optional # App services can be enabled during app creation enable_services: { access_wifi: \"on\", # Valid values: \"on\", \"off\" app_attest: \"on\", # Valid values: \"on\", \"off\" app_group: \"on\", # Valid values: \"on\", \"off\" apple_pay: \"on\", # Valid values: \"on\", \"off\" associated_domains: \"on\", # Valid values: \"on\", \"off\" auto_fill_credential: \"on\", # Valid values: \"on\", \"off\" car_play_audio_app: \"on\", # Valid values: \"on\", \"off\" car_play_messaging_app: \"on\", # Valid values: \"on\", \"off\" car_play_navigation_app: \"on\", # Valid values: \"on\", \"off\" car_play_voip_calling_app: \"on\", # Valid values: \"on\", \"off\" class_kit: \"on\", # Valid values: \"on\", \"off\" icloud: \"xcode5_compatible\", # Valid values: \"xcode5_compatible\", \"xcode6_compatible\", \"off\" critical_alerts: \"on\", # Valid values: \"on\", \"off\" custom_network_protocol: \"on\", # Valid values: \"on\", \"off\" data_protection: \"complete\", # Valid values: \"complete\", \"unlessopen\", \"untilfirstauth\", \"off\" extended_virtual_address_space: \"on\", # Valid values: \"on\", \"off\" file_provider_testing_mode: \"on\", # Valid values: \"on\", \"off\" fonts: \"on\", # Valid values: \"on\", \"off\" game_center: \"ios\", # Valid values: \"ios\", \"macos\", off\" health_kit: \"on\", # Valid values: \"on\", \"off\" hls_interstitial_preview: \"on\", # Valid values: \"on\", \"off\" home_kit: \"on\", # Valid values: \"on\", \"off\" hotspot: \"on\", # Valid values: \"on\", \"off\" hotspot_helper: \"on\", # Valid values: \"on\", \"off\" in_app_purchase: \"on\", # Valid values: \"on\", \"off\" inter_app_audio: \"on\", # Valid values: \"on\", \"off\" low_latency_hls: \"on\", # Valid values: \"on\", \"off\" managed_associated_domains: \"on\", # Valid values: \"on\", \"off\" maps: \"on\", # Valid values: \"on\", \"off\" multipath: \"on\", # Valid values: \"on\", \"off\" network_extension: \"on\", # Valid values: \"on\", \"off\" nfc_tag_reading: \"on\", # Valid values: \"on\", \"off\" passbook: \"on\", # Valid values: \"on\", \"off\" (deprecated) personal_vpn: \"on\", # Valid values: \"on\", \"off\" push_notification: \"on\", # Valid values: \"on\", \"off\" sign_in_with_apple: \"on\", # Valid values: \"on\", \"off\" siri_kit: \"on\", # Valid values: \"on\", \"off\" system_extension: \"on\", # Valid values: \"on\", \"off\" user_management: \"on\", # Valid values: \"on\", \"off\" vpn_configuration: \"on\", # Valid values: \"on\", \"off\" (deprecated) wallet: \"on\", # Valid values: \"on\", \"off\" wireless_accessory: \"on\", # Valid values: \"on\", \"off\" driver_kit: \"on\", # Valid values: \"on\", \"off\" driver_kit_endpoint_security: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_hid_device: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_networking: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_serial: \"on\", # Valid values: \"on\", \"off\" driver_kit_hid_event_service: \"on\", # Valid values: \"on\", \"off\" driver_kit_transport_hid: \"on\", # Valid values: \"on\", \"off\" multitasking_camera_access: \"on\", # Valid values: \"on\", \"off\" sf_universal_link_api: \"on\", # Valid values: \"on\", \"off\" vp9_decoder: \"on\", # Valid values: \"on\", \"off\" music_kit: \"on\", # Valid values: \"on\", \"off\" shazam_kit: \"on\", # Valid values: \"on\", \"off\" communication_notifications: \"on\", # Valid values: \"on\", \"off\" group_activities: \"on\", # Valid values: \"on\", \"off\" health_kit_estimate_recalibration: \"on\", # Valid values: \"on\", \"off\" time_sensitive_notifications: \"on\", # Valid values: \"on\", \"off\" } ) deliver end To use the newly generated app in deliver , you need to add this line to your Deliverfile : apple_id(ENV['PRODUCE_APPLE_ID']) This will tell deliver , which App ID to use, since the app is not yet available in the App Store. You'll still have to fill out the remaining information (like screenshots, app description and pricing). You can use deliver to upload your app metadata using a CLI","title":"fastlane Integration"},{"location":"generated/actions/create_app_online/#how-is-my-password-stored","text":"produce uses the password manager from fastlane . Take a look the CredentialsManager README for more information. create_app_online Supported platforms ios Author @KrauseFx","title":"How is my password stored?"},{"location":"generated/actions/create_app_online/#2-examples","text":"create_app_online( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", app_name: \"MyApp\", language: \"English\", app_version: \"1.0\", sku: \"123\", team_name: \"SunApps GmbH\" # Only necessary when in multiple teams. ) produce # alias for \"create_app_online\"","title":"2 Examples"},{"location":"generated/actions/create_app_online/#parameters_1","text":"Key Description Default username Your Apple ID Username * app_identifier App Identifier (Bundle ID, e.g. com.krausefx.app) * bundle_identifier_suffix App Identifier Suffix (Ignored if App Identifier does not end with .*) app_name App Name app_version Initial version number (e.g. '1.0') sku SKU Number (e.g. '1234') * platform The platform to use (optional) ios platforms The platforms to use (optional) language Primary Language (e.g. 'en-US', 'fr-FR') English company_name The name of your company. It's used to set company name on App Store Connect team's app pages. Only required if it's the first app you create skip_itc Skip the creation of the app on App Store Connect false itc_users Array of App Store Connect users. If provided, you can limit access to this newly created app for users with the App Manager, Developer, Marketer or Sales roles enabled_features DEPRECATED! Please use enable_services instead - Array with Spaceship App Services {} enable_services Array with Spaceship App Services (e.g. access_wifi: (on|off), app_attest: (on|off), app_group: (on|off), apple_pay: (on|off), associated_domains: (on|off), auto_fill_credential: (on|off), class_kit: (on|off), icloud: (legacy|cloudkit), custom_network_protocol: (on|off), data_protection: (complete|unlessopen|untilfirstauth), extended_virtual_address_space: (on|off), family_controls: (on|off), file_provider_testing_mode: (on|off), fonts: (on|off), game_center: (ios|mac), health_kit: (on|off), hls_interstitial_preview: (on|off), home_kit: (on|off), hotspot: (on|off), in_app_purchase: (on|off), inter_app_audio: (on|off), low_latency_hls: (on|off), managed_associated_domains: (on|off), maps: (on|off), multipath: (on|off), network_extension: (on|off), nfc_tag_reading: (on|off), personal_vpn: (on|off), passbook: (on|off), push_notification: (on|off), sign_in_with_apple: (on), siri_kit: (on|off), system_extension: (on|off), user_management: (on|off), vpn_configuration: (on|off), wallet: (on|off), wireless_accessory: (on|off), car_play_audio_app: (on|off), car_play_messaging_app: (on|off), car_play_navigation_app: (on|off), car_play_voip_calling_app: (on|off), critical_alerts: (on|off), hotspot_helper: (on|off), driver_kit: (on|off), driver_kit_endpoint_security: (on|off), driver_kit_family_hid_device: (on|off), driver_kit_family_networking: (on|off), driver_kit_family_serial: (on|off), driver_kit_hid_event_service: (on|off), driver_kit_transport_hid: (on|off), multitasking_camera_access: (on|off), sf_universal_link_api: (on|off), vp9_decoder: (on|off), music_kit: (on|off), shazam_kit: (on|off), communication_notifications: (on|off), group_activities: (on|off), health_kit_estimate_recalibration: (on|off), time_sensitive_notifications: (on|off)) {} skip_devcenter Skip the creation of the app on the Apple Developer Portal false team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * itc_team_id The ID of your App Store Connect team if you're in multiple teams * itc_team_name The name of your App Store Connect team if you're in multiple teams * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/create_app_online/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The create_app_online action generates the following Lane Variables: SharedValue Description SharedValues::PRODUCE_APPLE_ID The Apple ID of the newly created app. You probably need it for deliver To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/create_app_online/#documentation","text":"To show the documentation in your terminal, run fastlane action create_app_online","title":"Documentation"},{"location":"generated/actions/create_app_online/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_app_online To pass parameters, make use of the : symbol, for example fastlane run create_app_online parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/create_app_online/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/create_keychain/","text":"create_keychain Create a new Keychain create_keychain Supported platforms ios, android, mac Author @gin0606 1 Example create_keychain( name: \"KeychainName\", default_keychain: true, unlock: true, timeout: 3600, lock_when_sleeps: true ) Parameters Key Description Default name Keychain name path Path to keychain password Password for the keychain default_keychain Should the newly created Keychain be the new system default keychain false unlock Unlock keychain after create false timeout timeout interval in seconds. Set 0 if you want to specify \"no time-out\" 300 lock_when_sleeps Lock keychain when the system sleeps false lock_after_timeout Lock keychain after timeout interval false add_to_search_list Add keychain to search list true require_create Fail the action if the Keychain already exists false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The create_keychain action generates the following Lane Variables: SharedValue Description SharedValues::ORIGINAL_DEFAULT_KEYCHAIN The path to the default keychain SharedValues::KEYCHAIN_PATH The path of the keychain To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action create_keychain CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_keychain To pass parameters, make use of the : symbol, for example fastlane run create_keychain parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Create keychain"},{"location":"generated/actions/create_keychain/#create_keychain","text":"Create a new Keychain create_keychain Supported platforms ios, android, mac Author @gin0606","title":"create_keychain"},{"location":"generated/actions/create_keychain/#1-example","text":"create_keychain( name: \"KeychainName\", default_keychain: true, unlock: true, timeout: 3600, lock_when_sleeps: true )","title":"1 Example"},{"location":"generated/actions/create_keychain/#parameters","text":"Key Description Default name Keychain name path Path to keychain password Password for the keychain default_keychain Should the newly created Keychain be the new system default keychain false unlock Unlock keychain after create false timeout timeout interval in seconds. Set 0 if you want to specify \"no time-out\" 300 lock_when_sleeps Lock keychain when the system sleeps false lock_after_timeout Lock keychain after timeout interval false add_to_search_list Add keychain to search list true require_create Fail the action if the Keychain already exists false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/create_keychain/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The create_keychain action generates the following Lane Variables: SharedValue Description SharedValues::ORIGINAL_DEFAULT_KEYCHAIN The path to the default keychain SharedValues::KEYCHAIN_PATH The path of the keychain To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/create_keychain/#documentation","text":"To show the documentation in your terminal, run fastlane action create_keychain","title":"Documentation"},{"location":"generated/actions/create_keychain/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_keychain To pass parameters, make use of the : symbol, for example fastlane run create_keychain parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/create_keychain/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/create_pull_request/","text":"create_pull_request This will create a new pull request on GitHub create_pull_request Supported platforms ios, android, mac Author @seei, @tommeier, @marumemomo, @elneruda, @kagemiku Returns The pull request URL when successful 1 Example create_pull_request( api_token: \"secret\", # optional, defaults to ENV[\"GITHUB_API_TOKEN\"] repo: \"fastlane/fastlane\", title: \"Amazing new feature\", head: \"my-feature\", # optional, defaults to current branch name base: \"master\", # optional, defaults to \"master\" body: \"Please pull this in!\", # optional api_url: \"http://yourdomain/api/v3\" # optional, for GitHub Enterprise, defaults to \"https://api.github.com\" ) Parameters Key Description Default api_token Personal API Token for GitHub - generate one at https://github.com/settings/tokens * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable repo The name of the repository you want to submit the pull request to title The title of the pull request body The contents of the pull request draft Indicates whether the pull request is a draft labels The labels for the pull request milestone The milestone ID (Integer) for the pull request head The name of the branch where your changes are implemented (defaults to the current branch name) * base The name of the branch you want your changes pulled into (defaults to master ) master api_url The URL of GitHub API - used when the Enterprise (default to https://api.github.com ) https://api.github.com assignees The assignees for the pull request reviewers The reviewers (slug) for the pull request team_reviewers The team reviewers (slug) for the pull request * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The create_pull_request action generates the following Lane Variables: SharedValue Description SharedValues::CREATE_PULL_REQUEST_HTML_URL The HTML URL to the created pull request SharedValues::CREATE_PULL_REQUEST_NUMBER The identifier number of the created pull request To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action create_pull_request CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_pull_request To pass parameters, make use of the : symbol, for example fastlane run create_pull_request parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Create pull request"},{"location":"generated/actions/create_pull_request/#create_pull_request","text":"This will create a new pull request on GitHub create_pull_request Supported platforms ios, android, mac Author @seei, @tommeier, @marumemomo, @elneruda, @kagemiku Returns The pull request URL when successful","title":"create_pull_request"},{"location":"generated/actions/create_pull_request/#1-example","text":"create_pull_request( api_token: \"secret\", # optional, defaults to ENV[\"GITHUB_API_TOKEN\"] repo: \"fastlane/fastlane\", title: \"Amazing new feature\", head: \"my-feature\", # optional, defaults to current branch name base: \"master\", # optional, defaults to \"master\" body: \"Please pull this in!\", # optional api_url: \"http://yourdomain/api/v3\" # optional, for GitHub Enterprise, defaults to \"https://api.github.com\" )","title":"1 Example"},{"location":"generated/actions/create_pull_request/#parameters","text":"Key Description Default api_token Personal API Token for GitHub - generate one at https://github.com/settings/tokens * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable repo The name of the repository you want to submit the pull request to title The title of the pull request body The contents of the pull request draft Indicates whether the pull request is a draft labels The labels for the pull request milestone The milestone ID (Integer) for the pull request head The name of the branch where your changes are implemented (defaults to the current branch name) * base The name of the branch you want your changes pulled into (defaults to master ) master api_url The URL of GitHub API - used when the Enterprise (default to https://api.github.com ) https://api.github.com assignees The assignees for the pull request reviewers The reviewers (slug) for the pull request team_reviewers The team reviewers (slug) for the pull request * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/create_pull_request/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The create_pull_request action generates the following Lane Variables: SharedValue Description SharedValues::CREATE_PULL_REQUEST_HTML_URL The HTML URL to the created pull request SharedValues::CREATE_PULL_REQUEST_NUMBER The identifier number of the created pull request To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/create_pull_request/#documentation","text":"To show the documentation in your terminal, run fastlane action create_pull_request","title":"Documentation"},{"location":"generated/actions/create_pull_request/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_pull_request To pass parameters, make use of the : symbol, for example fastlane run create_pull_request parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/create_pull_request/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/create_xcframework/","text":"create_xcframework Package multiple build configs of a library/framework into a single xcframework Utility for packaging multiple build configurations of a given library or framework into a single xcframework. If you want to package several frameworks just provide one of: * An array containing the list of frameworks using the :frameworks parameter (if they have no associated dSYMs): ['FrameworkA.framework', 'FrameworkB.framework'] * A hash containing the list of frameworks with their dSYMs using the :frameworks_with_dsyms parameter: { 'FrameworkA.framework' => {}, 'FrameworkB.framework' => { dsyms: 'FrameworkB.framework.dSYM' } } If you want to package several libraries just provide one of: * An array containing the list of libraries using the :libraries parameter (if they have no associated headers or dSYMs): ['LibraryA.so', 'LibraryB.so'] * A hash containing the list of libraries with their headers and dSYMs using the :libraries_with_headers_or_dsyms parameter: { 'LibraryA.so' => { dsyms: 'libraryA.so.dSYM' }, 'LibraryB.so' => { headers: 'headers' } } Finally specify the location of the xcframework to be generated using the :output parameter. create_xcframework Supported platforms ios, mac Author @jgongo 4 Examples create_xcframework(frameworks: ['FrameworkA.framework', 'FrameworkB.framework'], output: 'UniversalFramework.xcframework') create_xcframework(frameworks_with_dsyms: {'FrameworkA.framework' => {}, 'FrameworkB.framework' => { dsyms: 'FrameworkB.framework.dSYM' } }, output: 'UniversalFramework.xcframework') create_xcframework(libraries: ['LibraryA.so', 'LibraryB.so'], output: 'UniversalFramework.xcframework') create_xcframework(libraries_with_headers_or_dsyms: { 'LibraryA.so' => { dsyms: 'libraryA.so.dSYM' }, 'LibraryB.so' => { headers: 'LibraryBHeaders' } }, output: 'UniversalFramework.xcframework') Parameters Key Description Default frameworks Frameworks (without dSYMs) to add to the target xcframework frameworks_with_dsyms Frameworks (with dSYMs) to add to the target xcframework libraries Libraries (without headers or dSYMs) to add to the target xcframework libraries_with_headers_or_dsyms Libraries (with headers or dSYMs) to add to the target xcframework output The path to write the xcframework to allow_internal_distribution Specifies that the created xcframework contains information not suitable for public distribution false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The create_xcframework action generates the following Lane Variables: SharedValue Description SharedValues::XCFRAMEWORK_PATH Location of the generated xcframework To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action create_xcframework CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_xcframework To pass parameters, make use of the : symbol, for example fastlane run create_xcframework parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Create xcframework"},{"location":"generated/actions/create_xcframework/#create_xcframework","text":"Package multiple build configs of a library/framework into a single xcframework Utility for packaging multiple build configurations of a given library or framework into a single xcframework. If you want to package several frameworks just provide one of: * An array containing the list of frameworks using the :frameworks parameter (if they have no associated dSYMs): ['FrameworkA.framework', 'FrameworkB.framework'] * A hash containing the list of frameworks with their dSYMs using the :frameworks_with_dsyms parameter: { 'FrameworkA.framework' => {}, 'FrameworkB.framework' => { dsyms: 'FrameworkB.framework.dSYM' } } If you want to package several libraries just provide one of: * An array containing the list of libraries using the :libraries parameter (if they have no associated headers or dSYMs): ['LibraryA.so', 'LibraryB.so'] * A hash containing the list of libraries with their headers and dSYMs using the :libraries_with_headers_or_dsyms parameter: { 'LibraryA.so' => { dsyms: 'libraryA.so.dSYM' }, 'LibraryB.so' => { headers: 'headers' } } Finally specify the location of the xcframework to be generated using the :output parameter. create_xcframework Supported platforms ios, mac Author @jgongo","title":"create_xcframework"},{"location":"generated/actions/create_xcframework/#4-examples","text":"create_xcframework(frameworks: ['FrameworkA.framework', 'FrameworkB.framework'], output: 'UniversalFramework.xcframework') create_xcframework(frameworks_with_dsyms: {'FrameworkA.framework' => {}, 'FrameworkB.framework' => { dsyms: 'FrameworkB.framework.dSYM' } }, output: 'UniversalFramework.xcframework') create_xcframework(libraries: ['LibraryA.so', 'LibraryB.so'], output: 'UniversalFramework.xcframework') create_xcframework(libraries_with_headers_or_dsyms: { 'LibraryA.so' => { dsyms: 'libraryA.so.dSYM' }, 'LibraryB.so' => { headers: 'LibraryBHeaders' } }, output: 'UniversalFramework.xcframework')","title":"4 Examples"},{"location":"generated/actions/create_xcframework/#parameters","text":"Key Description Default frameworks Frameworks (without dSYMs) to add to the target xcframework frameworks_with_dsyms Frameworks (with dSYMs) to add to the target xcframework libraries Libraries (without headers or dSYMs) to add to the target xcframework libraries_with_headers_or_dsyms Libraries (with headers or dSYMs) to add to the target xcframework output The path to write the xcframework to allow_internal_distribution Specifies that the created xcframework contains information not suitable for public distribution false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/create_xcframework/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The create_xcframework action generates the following Lane Variables: SharedValue Description SharedValues::XCFRAMEWORK_PATH Location of the generated xcframework To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/create_xcframework/#documentation","text":"To show the documentation in your terminal, run fastlane action create_xcframework","title":"Documentation"},{"location":"generated/actions/create_xcframework/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run create_xcframework To pass parameters, make use of the : symbol, for example fastlane run create_xcframework parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/create_xcframework/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/danger/","text":"danger Runs danger for the project Formalize your Pull Request etiquette. More information: https://github.com/danger/danger . danger Supported platforms ios, android, mac Author @KrauseFx 2 Examples danger danger( danger_id: \"unit-tests\", dangerfile: \"tests/MyOtherDangerFile\", github_api_token: ENV[\"GITHUB_API_TOKEN\"], verbose: true ) Parameters Key Description Default use_bundle_exec Use bundle exec when there is a Gemfile presented true verbose Show more debugging information false danger_id The identifier of this Danger instance dangerfile The location of your Dangerfile github_api_token GitHub API token for danger github_enterprise_host GitHub host URL for GitHub Enterprise github_enterprise_api_base_url GitHub API base URL for GitHub Enterprise fail_on_errors Should always fail the build process, defaults to false false new_comment Makes Danger post a new comment instead of editing its previous one false remove_previous_comments Makes Danger remove all previous comment and create a new one in the end of the list false base A branch/tag/commit to use as the base of the diff. [master|dev|stable] head A branch/tag/commit to use as the head. [master|dev|stable] pr Run danger on a specific pull request. e.g. \"https://github.com/danger/danger/pull/518\" fail_if_no_pr Fail Danger execution if no PR is found false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action danger CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run danger To pass parameters, make use of the : symbol, for example fastlane run danger parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Danger"},{"location":"generated/actions/danger/#danger","text":"Runs danger for the project Formalize your Pull Request etiquette. More information: https://github.com/danger/danger . danger Supported platforms ios, android, mac Author @KrauseFx","title":"danger"},{"location":"generated/actions/danger/#2-examples","text":"danger danger( danger_id: \"unit-tests\", dangerfile: \"tests/MyOtherDangerFile\", github_api_token: ENV[\"GITHUB_API_TOKEN\"], verbose: true )","title":"2 Examples"},{"location":"generated/actions/danger/#parameters","text":"Key Description Default use_bundle_exec Use bundle exec when there is a Gemfile presented true verbose Show more debugging information false danger_id The identifier of this Danger instance dangerfile The location of your Dangerfile github_api_token GitHub API token for danger github_enterprise_host GitHub host URL for GitHub Enterprise github_enterprise_api_base_url GitHub API base URL for GitHub Enterprise fail_on_errors Should always fail the build process, defaults to false false new_comment Makes Danger post a new comment instead of editing its previous one false remove_previous_comments Makes Danger remove all previous comment and create a new one in the end of the list false base A branch/tag/commit to use as the base of the diff. [master|dev|stable] head A branch/tag/commit to use as the head. [master|dev|stable] pr Run danger on a specific pull request. e.g. \"https://github.com/danger/danger/pull/518\" fail_if_no_pr Fail Danger execution if no PR is found false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/danger/#documentation","text":"To show the documentation in your terminal, run fastlane action danger","title":"Documentation"},{"location":"generated/actions/danger/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run danger To pass parameters, make use of the : symbol, for example fastlane run danger parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/danger/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/debug/","text":"debug Print out an overview of the lane context values debug Supported platforms ios, android, mac Author @KrauseFx 1 Example debug Documentation To show the documentation in your terminal, run fastlane action debug CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run debug To pass parameters, make use of the : symbol, for example fastlane run debug parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Debug"},{"location":"generated/actions/debug/#debug","text":"Print out an overview of the lane context values debug Supported platforms ios, android, mac Author @KrauseFx","title":"debug"},{"location":"generated/actions/debug/#1-example","text":"debug","title":"1 Example"},{"location":"generated/actions/debug/#documentation","text":"To show the documentation in your terminal, run fastlane action debug","title":"Documentation"},{"location":"generated/actions/debug/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run debug To pass parameters, make use of the : symbol, for example fastlane run debug parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/debug/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/default_platform/","text":"default_platform Defines a default platform to not have to specify the platform default_platform Supported platforms ios, android, mac Author @KrauseFx 1 Example default_platform(:android) Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The default_platform action generates the following Lane Variables: SharedValue Description SharedValues::DEFAULT_PLATFORM The default platform To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action default_platform CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run default_platform To pass parameters, make use of the : symbol, for example fastlane run default_platform parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Default platform"},{"location":"generated/actions/default_platform/#default_platform","text":"Defines a default platform to not have to specify the platform default_platform Supported platforms ios, android, mac Author @KrauseFx","title":"default_platform"},{"location":"generated/actions/default_platform/#1-example","text":"default_platform(:android)","title":"1 Example"},{"location":"generated/actions/default_platform/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The default_platform action generates the following Lane Variables: SharedValue Description SharedValues::DEFAULT_PLATFORM The default platform To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/default_platform/#documentation","text":"To show the documentation in your terminal, run fastlane action default_platform","title":"Documentation"},{"location":"generated/actions/default_platform/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run default_platform To pass parameters, make use of the : symbol, for example fastlane run default_platform parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/default_platform/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/delete_keychain/","text":"delete_keychain Delete keychains and remove them from the search list Keychains can be deleted after being created with create_keychain delete_keychain Supported platforms ios, android, mac Author @gin0606, @koenpunt 2 Examples delete_keychain(name: \"KeychainName\") delete_keychain(keychain_path: \"/keychains/project.keychain\") Parameters Key Description Default name Keychain name keychain_path Keychain path * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action delete_keychain CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run delete_keychain To pass parameters, make use of the : symbol, for example fastlane run delete_keychain parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Delete keychain"},{"location":"generated/actions/delete_keychain/#delete_keychain","text":"Delete keychains and remove them from the search list Keychains can be deleted after being created with create_keychain delete_keychain Supported platforms ios, android, mac Author @gin0606, @koenpunt","title":"delete_keychain"},{"location":"generated/actions/delete_keychain/#2-examples","text":"delete_keychain(name: \"KeychainName\") delete_keychain(keychain_path: \"/keychains/project.keychain\")","title":"2 Examples"},{"location":"generated/actions/delete_keychain/#parameters","text":"Key Description Default name Keychain name keychain_path Keychain path * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/delete_keychain/#documentation","text":"To show the documentation in your terminal, run fastlane action delete_keychain","title":"Documentation"},{"location":"generated/actions/delete_keychain/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run delete_keychain To pass parameters, make use of the : symbol, for example fastlane run delete_keychain parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/delete_keychain/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/deliver/","text":"deliver Alias for the upload_to_app_store action deliver uploads screenshots, metadata and binaries to App Store Connect. Use deliver to submit your app for App Store review. Features \u2022 Quick Start \u2022 Usage \u2022 Tips deliver is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Features Upload hundreds of localized screenshots completely automatically Upload a new ipa/pkg file to App Store Connect without Xcode from any Mac Maintain your app metadata locally and push changes back to App Store Connect Easily implement a real Continuous Deployment process using fastlane Store the configuration in git to easily deploy from any Mac, including your Continuous Integration server Get a HTML preview of the fetched metadata before uploading the app metadata and screenshots to iTC Automatically uses precheck to ensure your app has the highest chances of passing app review the first time To upload builds to TestFlight check out pilot . Quick Start The guide will create all the necessary files for you, using the existing app metadata from App Store Connect. cd [your_project_folder] fastlane deliver init Enter your App Store Connect credentials Enter your app identifier Enjoy a good drink, while the computer does all the work for you From now on, you can run fastlane deliver to deploy a new update, or just upload new app metadata and screenshots. Usage Check out your local ./fastlane/metadata and ./fastlane/screenshots folders (if you don't use fastlane it's ./metadata instead) You'll see your metadata from App Store Connect. Feel free to store the metadata in git (not the screenshots). You can now modify it locally and push the changes back to App Store Connect. Run fastlane deliver to upload the app metadata from your local machine fastlane deliver Provide the path to an ipa file to upload and submit your app for review: fastlane deliver --ipa \"App.ipa\" --submit_for_review or you can specify path to pkg file for macOS apps: fastlane deliver --pkg \"MacApp.pkg\" If you use fastlane you don't have to manually specify the path to your ipa / pkg file. This is just a small sub-set of what you can do with deliver , check out the full documentation in #more-options Download existing screenshots from App Store Connect fastlane deliver download_screenshots Download existing metadata from App Store Connect fastlane deliver download_metadata To get a list of available options run fastlane action deliver Use in a Fastfile deliver deliver( submit_for_review: true, force: true, metadata_path: \"./metadata\" ) More options View all available options and their valid values Available options All the options below can easily be added to your Deliverfile . The great thing: if you use fastlane you can use all these options from your Fastfile too, for example: deliver( submit_for_review: true, metadata_path: \"../folder\" ) app_identifier The bundle identifier (e.g. \"com.krausefx.app\") username Your Apple ID email address ipa A path to a signed ipa file, which will be uploaded. If you don't provide this value, only app metadata will be uploaded. If you want to submit the app for review make sure to either use fastlane deliver --submit_for_review or add submit_for_review true to your Deliverfile ipa(\"App.ipa\") if you use fastlane the ipa file will automatically be detected. pkg A path to a signed pkg file, which will be uploaded. Submission logic of ipa applies to pkg files. pkg(\"MacApp.pkg\") app_version Optional, as it is usually automatically detected. Specify the version that should be created / edited on App Store Connect: app_version(\"2.0\") skip_app_version_update In the case if deliver uploads your application to App Store Connect it will automatically update \"Prepare for submission\" app version (which could be found on App Store Connect->My Apps->App Store page) The option allows uploading your app without updating \"Prepare for submission\" version. This could be useful in the case if you are generating a lot of uploads while not submitting the latest build for Apple review. The default value is false. skip_app_version_update(true) submit_for_review Add this to your Deliverfile to automatically submit the app for review after uploading metadata/binary. This will select the latest build. submit_for_review(true) screenshots_path A path to a folder containing subfolders for each language. This will automatically detect the device type based on the image resolution. Also includes \uf8ff Watch Support. metadata_path Path to the metadata you want to use. The folder has to be structured like this If you run deliver init this will automatically be created for you. force force(true) If set to true , no HTML report will be generated before the actual upload. You can also pass --force when calling deliver . price_tier Pass the price tier as number. This will be active from the current day. price_tier 0 trade_representative_contact_information Trade Representative Contact information for Korean App Store. Available options: first_name , last_name , address_line1 , address_line2 , address_line3 , city_name , state , country , postal_code , phone_number , email_address , is_displayed_on_app_store . trade_representative_contact_information( first_name: \"Felix\", last_name: \"Krause\", address_line1: \"1 Infinite Loop\", address_line2: \"\", address_line3: null, city_name: \"Cupertino\", state: \"California\", country: \"United States\", postal_code: \"95014\", phone_number: \"+43 123123123\", email_address: \"github@krausefx.com\", ) You can also provide these values by creating files in a metadata/trade_representative_contact_information/ directory. The file names must match the pattern .txt (e.g. first_name.txt , address_line1.txt etc.). The contents of each file will be used as the value for the matching key. Values provided in the Deliverfile or Fastfile will be take priority over values from these files. is_displayed_on_app_store is the option on App Store Connect described as: Display Trade Representative Contact Information on the Korean App Store app_review_information Contact information for the app review team. Available options: first_name , last_name , phone_number , email_address , demo_user , demo_password , notes . app_review_information( first_name: \"Felix\", last_name: \"Krause\", phone_number: \"+43 123123123\", email_address: \"github@krausefx.com\", demo_user: \"demoUser\", demo_password: \"demoPass\", notes: \"such notes, very text\" ) You can also provide these values by creating files in a metadata/review_information/ directory. The file names must match the pattern .txt (e.g. first_name.txt , notes.txt etc.). The contents of each file will be used as the value for the matching key. Values provided in the Deliverfile or Fastfile will be take priority over values from these files. app_review_attachment_file You can provide additional information to the app review team as a file attachment. As of this writing, Apple supports following file attachment formats: .pdf, .doc, .docx, .rtf, .pages, .xls, .xlsx, .numbers, .zip, .rar, .plist, .crash, .jpg, .png, .mp4, or .avi. Provide an empty string (i.e. \"\", not null) to remove the existing attachment file (if any) from the review information being edited. app_review_attachment_file: \"./readme.txt\" submission_information Must be a hash. This is used as the last step for the deployment process, where you define if you use third party content or use encryption. A list of available options . submission_information({ add_id_info_serves_ads: true, ... }) automatic_release Should the app be released to all users once Apple approves it? If set to false , you'll have to manually release the update once it got approved. automatic_release(true) # or automatic_release(false) phased_release Enable or disable the phased releases feature of App Store Connect. If set to true , the update will be released over a 7 day period. Default behavior is to leave whatever you defined on App Store Connect. phased_release(true) # or phased_release(false) reset_ratings Reset your app's summary rating for all territories. If set to true , it will reset rating when this version is released. Default behavior is to keep existing rating. reset_ratings(true) # or reset_ratings(false) app_rating_config_path You can set the app age ratings using deliver . You'll have to create and store a JSON configuration file. Copy the template to your project folder and pass the path to the JSON file using the app_rating_config_path option. The keys/values on the top allow one of 3 strings: \"NONE\", \"INFREQUENT_OR_MILD\" or \"FREQUENT_OR_INTENSE\", and the items on the bottom allow false or true. More information in #reference . Metadata All options below are useful if you want to specify certain app metadata in your Deliverfile or Fastfile Localized Localized values should be set like this description({ 'en-US' => \"English Description here\", 'de-DE' => \"Deutsche Beschreibung hier\" }) name The title/name of the app subtitle Localized subtitle of the app subtitle( \"en-US\" => \"Awesome English subtitle here\", \"de-DE\" => \"Jetzt mit deutschen Untertiteln!\" ) description The description of the app release_notes The release_notes (What's new / Changelog) of the latest version support_url, marketing_url, privacy_url These URLs are shown in the AppStore keywords Keywords separated using a comma. keywords( \"en-US\" => \"Keyword1, Keyword2\" ) promotional_text Localized promotional text promotional_text( \"en-US\" => \"Hey, you should totally buy our app, it's the best\", \"de-DE\" => \"App kaufen bitte\" ) app_icon A path to a new app icon, which must be exactly 1024x1024px app_icon('./AppIcon.png') apple_watch_app_icon A path to a new app icon for the \uf8ff Watch, which must be exactly 1024x1024px apple_watch_app_icon('./AppleWatchAppIcon.png') platform The platform of your application (a.e. ios, osx). This option is optional. The default value is \"ios\" and deliver should be able to figure out the platform from your binary. However, in the case if multiple binaries present, you can specify a platform which you want to deliver explicitly. The available options: 'ios' 'appletvos' 'osx' Non-Localized copyright The up to date copyright information. copyright(\"#{Time.now.year} Felix Krause\") primary_category The english name of the category you want to set (e.g. Business , Books ) See #reference for a list of available categories secondary_category The english name of the secondary category you want to set primary_first_sub_category The english name of the primary first sub category you want to set primary_second_sub_category The english name of the primary second sub category you want to set secondary_first_sub_category The english name of the secondary first sub category you want to set secondary_second_sub_category The english name of the secondary second sub category you want to set Submit Build deliver allows you to promote an existing build to production. Below are examples to select a previously uploaded build and submit it for review. fastlane deliver submit_build --build_number 830 Submit build in a Fastfile lane :submit_review do deliver( build_number: '830', submit_for_review: true, automatic_release: true, force: true, # Skip HTMl report verification skip_metadata: true, skip_screenshots: true, skip_binary_upload: true ) end Omit build_number to let fastlane automatically select the latest build number for the current version being edited for release from App Store Connect. Compliance and IDFA settings Use the submission_information parameter for additional submission specifiers, including compliance and IDFA settings. Look at the Spaceship's app_submission.rb file for options. See this example . fastlane deliver submit_build --build_number 830 --submission_information \"{\\\"export_compliance_uses_encryption\\\": false, \\\"add_id_info_uses_idfa\\\": false }\" App Privacy Details Starting on December 8, 2020, Apple announced that developers are required to provide app privacy details that will help users understand an app's privacy practies. deliver does not allow for updating of this information but this can be done with the upload_app_privacy_details_to_app_store action. More information on Uploading App Privacy Details Credentials A detailed description about how your credentials are handled is available in a credentials_manager . How does this thing even work? Is magic involved? \ud83c\udfa9 Your password will be stored in the macOS keychain, but can also be passed using environment variables. (More information available on CredentialsManager ) Before actually uploading anything to iTunes, deliver will generate a HTML summary of the collected data. deliver uses the following techniques under the hood: The iTMSTransporter tool is used to upload the binary to App Store Connect. iTMSTransporter is a command line tool provided by Apple. For all metadata related actions deliver uses spaceship Tips Available language codes ar-SA, ca, cs, da, de-DE, el, en-AU, en-CA, en-GB, en-US, es-ES, es-MX, fi, fr-CA, fr-FR, he, hi, hr, hu, id, it, ja, ko, ms, nl-NL, no, pl, pt-BR, pt-PT, ro, ru, sk, sv, th, tr, uk, vi, zh-Hans, zh-Hant Available Metadata Folder Options deliver allows for metadata to be set through .txt files in the metadata folder. This metadata folder location is defaulted to ./fastlane/metadata but can be overridden through the metadata_path parameter. Below are all allowed metadata options. Non-Localized Metadata Key Editable While Live Directory Filename copyright Yes copyright.txt primary_category No primary_category.txt secondary_category No secondary_category.txt primary_first_sub_category No primary_first_sub_category.txt primary_second_sub_category No primary_second_sub_category.txt secondary_first_sub_category No secondary_first_sub_category.txt secondary_second_sub_category No secondary_second_sub_category.txt Localized Metadata Key Editable While Live Directory Filename name No // name.txt subtitle No // subtitle.txt privacy_url Yes // privacy_url.txt apple_tv_privacy_policy No // apple_tv_privacy_policy.txt description Yes // description.txt keywords No // keywords.txt release_notes Yes // release_notes.txt support_url Yes // support_url.txt marketing_url Yes // marketing_url.txt promotional_text Yes // promotional_text.txt Review Information Metadata Key Editable While Live Directory Filename Deprecated Filename first_name Yes /review_information first_name.txt review_first_name.txt last_name Yes /review_information last_name.txt review_last_name.txt phone_number Yes /review_information phone_number.txt review_phone_number.txt email_address Yes /review_information email_address.txt review_email.txt demo_user Yes /review_information demo_user.txt review_demo_user.txt demo_password Yes /review_information demo_password.txt review_demo_password.txt notes Yes /review_information notes.txt review_notes.txt Reference View all available categories, etc. Available Categories FOOD_AND_DRINK BUSINESS EDUCATION SOCIAL_NETWORKING BOOKS SPORTS FINANCE REFERENCE GRAPHICS_AND_DESIGN DEVELOPER_TOOLS HEALTH_AND_FITNESS MUSIC WEATHER TRAVEL ENTERTAINMENT STICKERS GAMES LIFESTYLE MEDICAL MAGAZINES_AND_NEWSPAPERS UTILITIES SHOPPING PRODUCTIVITY NEWS PHOTO_AND_VIDEO NAVIGATION Available Game Subcategories MZGenre.Action MZGenre.Adventure MZGenre.Arcade MZGenre.Board MZGenre.Card MZGenre.Casino MZGenre.Dice MZGenre.Educational MZGenre.Family MZGenre.Music MZGenre.Puzzle MZGenre.Racing MZGenre.RolePlaying MZGenre.Simulation MZGenre.Sports MZGenre.Strategy MZGenre.Trivia MZGenre.Word GAMES_SPORTS GAMES_WORD GAMES_MUSIC GAMES_ADVENTURE GAMES_ACTION GAMES_ROLE_PLAYING GAMES_CASUAL GAMES_BOARD GAMES_TRIVIA GAMES_CARD GAMES_PUZZLE GAMES_CASINO GAMES_STRATEGY GAMES_SIMULATION GAMES_RACING GAMES_FAMILY Available Stickers Subcategories STICKERS_PLACES_AND_OBJECTS STICKERS_EMOJI_AND_EXPRESSIONS STICKERS_CELEBRATIONS STICKERS_CELEBRITIES STICKERS_MOVIES_AND_TV STICKERS_SPORTS_AND_ACTIVITIES STICKERS_EATING_AND_DRINKING STICKERS_CHARACTERS STICKERS_ANIMALS STICKERS_FASHION STICKERS_ART STICKERS_GAMING STICKERS_KIDS_AND_FAMILY STICKERS_PEOPLE STICKERS_MUSIC Available age rating groups Non Boolean Values 0: None (Legacy value, use NONE instead) 1: Infrequent/Mild (Legacy value, use INFREQUENT_OR_MILD instead) 2: Frequent/Intense (Legacy value, use FREQUENT_OR_INTENSE instead) NONE INFREQUENT_OR_MILD FREQUENT_OR_INTENSE Keys 'alcoholTobaccoOrDrugUseOrReferences' 'contests' 'gamblingSimulated' 'medicalOrTreatmentInformation' 'profanityOrCrudeHumor' 'sexualContentGraphicAndNudity' 'sexualContentOrNudity' 'horrorOrFearThemes' 'matureOrSuggestiveThemes' 'unrestrictedWebAccess' 'violenceCartoonOrFantasy' 'violenceRealisticProlongedGraphicOrSadistic' 'violenceRealistic' 'kidsAgeBand' Boolean Keys gambling 'seventeenPlus' unrestrictedWebAccess Kids Age Values FIVE_AND_UNDER SIX_TO_EIGHT NINE_TO_ELEVEN null Keys kidsAgeBand Default values Deliver has a special default language code which allows you to provide values that are not localized, and which will be used as defaults when you don\u2019t provide a specific localized value. In order to use default , you will need to tell deliver which languages your app uses. You can do this in either of two ways: Create the folders named with the language in the metadata folder (i.e. fastlane/metadata/en-US or fastlane/metadata/de-DE) Add the following to your Deliverfile languages(['en-US','de-DE']) You can use this either in json within your Deliverfile and/or as folders in your metadata folder. deliver will take the union of both language sets from the Deliverfile and from the metadata folder and create on single set of languages which will be enabled. Imagine that you have localized data for the following language codes: en-US, de-DE, el, it You can set the following in your Deliverfile release_notes({ 'default' => \"Shiny and new\", 'de-DE' => \"glaenzend und neu\" }) Deliver will use \"Shiny and new\" for en-US, el and it. It will use \"glaenzend und neu\" for de-DE. You can do the same with folders default keywords.txt marketing_url.txt name.txt privacy_url.txt support_url.txt release_notes.txt en-US description.txt de-DE description.txt el description.txt it description.txt In this case, default values for keywords, urls, name and release notes are used in all localizations, but each language has a fully localized description Uploading screenshots for \"iPad Pro (12.9-inch) (3rd generation)\" Starting March 20, 2019 Apple's App Store requires 12.9-inch iPad Pro (3rd generation) screenshots additionally to the iPad Pro 2nd generation screenshots . As fastlane historically uses the screenshot dimensions to determine the \"display family\" of a screenshot, this poses a problem as both use the same dimensions and are recognized as the same device family. To solve this a screenshot of a 12.9-inch iPad Pro (3rd generation) must contain either the string iPad Pro (12.9-inch) (3rd generation) , IPAD_PRO_3GEN_129 , or ipadPro129 (Apple's internal naming of the display family for the 3rd generation iPad Pro) in its filename to be assigned the correct display family and to be uploaded to the correct screenshot slot in your app's metadata. Automatically create screenshots If you want to integrate deliver with snapshot , check out fastlane ! Jenkins integration Detailed instructions about how to set up deliver and fastlane in Jenkins can be found in the fastlane README . Firewall Issues deliver uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" fastlane deliver HTTP Proxy iTunes Transporter is a Java application bundled with Xcode. In addition to utilizing the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" , you need to configure the transporter application to use the proxy independently from the system proxy or any environment proxy settings. You can find the configuration file within Xcode: for Xcode11 and later TOOLS_PATH=$( xcode-select -p ) REL_PATH='../SharedFrameworks/ContentDeliveryServices.framework/Versions/A/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" for Xcode10 or earlier TOOLS_PATH=$( xcode-select -p ) REL_PATH='../Applications/Application Loader.app/Contents/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" Add necessary proxy configuration values to the net.properties according to Java Proxy Configuration . As an alternative to editing the properties files, proxy configuration can be specified on the command line directly: DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV -Dhttp.proxyHost=myproxy.com -Dhttp.proxyPort=8080\" Limit App Store Connect has a limit of 150 binary uploads per day. Editing the Deliverfile Change syntax highlighting to Ruby . Provider Short Name If you are on multiple App Store Connect teams, deliver needs a provider short name to know where to upload your binary. deliver will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option. deliver Supported platforms ios, mac Author @KrauseFx 3 Examples upload_to_app_store( force: true, # Set to true to skip verification of HTML preview itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) deliver # alias for \"upload_to_app_store\" appstore # alias for \"upload_to_app_store\" Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of your app * app_version The version that should be edited or created ipa Path to your ipa file * pkg Path to your pkg file * build_number If set the given build number (already uploaded to iTC) will be used instead of the current built one platform The platform to use (optional) ios edit_live Modify live metadata, this option disables ipa upload and screenshot upload false use_live_version Force usage of live version rather than edit version false metadata_path Path to the folder containing the metadata files screenshots_path Path to the folder containing the screenshots skip_binary_upload Skip uploading an ipa or pkg to App Store Connect false skip_screenshots Don't upload the screenshots false skip_metadata Don't upload the metadata (e.g. title, description). This will still upload screenshots false skip_app_version_update Don\u2019t create or update the app version that is being prepared for submission false force Skip verification of HTML preview file false overwrite_screenshots Clear all previously uploaded screenshots before uploading the new ones false sync_screenshots Sync screenshots with local ones. This is currently beta option so set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well false submit_for_review Submit the new version for Review after uploading everything false verify_only Verifies archive with App Store Connect without uploading false reject_if_possible Rejects the previously submitted build if it's in a state where it's possible false automatic_release Should the app be automatically released once it's approved? (Can not be used together with auto_release_date ) auto_release_date Date in milliseconds for automatically releasing on pending approval (Can not be used together with automatic_release ) phased_release Enable the phased release feature of iTC false reset_ratings Reset the summary rating when you release a new version of the application false price_tier The price tier of this application app_rating_config_path Path to the app rating's config submission_information Extra information for the submission (e.g. compliance specifications, IDFA settings) team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your Developer Portal team, if you're in multiple teams. Different from your iTC team ID! * dev_portal_team_name The name of your Developer Portal team if you're in multiple teams * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column * run_precheck_before_submit Run precheck before submitting to app review true precheck_default_rule_level The default precheck rule level unless otherwise configured :warn individual_metadata_items DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - An array of localized metadata items to upload individually by language so that errors can be identified. E.g. ['name', 'keywords', 'description']. Note: slow app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the app icon apple_watch_app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the Apple Watch app icon copyright Metadata: The copyright notice primary_category Metadata: The english name of the primary category (e.g. Business , Books ) secondary_category Metadata: The english name of the secondary category (e.g. Business , Books ) primary_first_sub_category Metadata: The english name of the primary first sub category (e.g. Educational , Puzzle ) primary_second_sub_category Metadata: The english name of the primary second sub category (e.g. Educational , Puzzle ) secondary_first_sub_category Metadata: The english name of the secondary first sub category (e.g. Educational , Puzzle ) secondary_second_sub_category Metadata: The english name of the secondary second sub category (e.g. Educational , Puzzle ) trade_representative_contact_information DEPRECATED! This is no longer used by App Store Connect - Metadata: A hash containing the trade representative contact information app_review_information Metadata: A hash containing the review information app_review_attachment_file Metadata: Path to the app review attachment file description Metadata: The localised app description name Metadata: The localised app name subtitle Metadata: The localised app subtitle keywords Metadata: An array of localised keywords promotional_text Metadata: An array of localised promotional texts release_notes Metadata: Localised release notes for this version privacy_url Metadata: Localised privacy url apple_tv_privacy_policy Metadata: Localised Apple TV privacy policy text support_url Metadata: Localised support url marketing_url Metadata: Localised marketing url languages Metadata: List of languages to activate ignore_language_directory_validation Ignore errors when invalid languages are found in metadata and screenshot directories false precheck_include_in_app_purchases Should precheck check in-app purchases? true app The (spaceship) app ID of the app you want to use/modify * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action deliver CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run deliver To pass parameters, make use of the : symbol, for example fastlane run deliver parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Deliver"},{"location":"generated/actions/deliver/#deliver","text":"Alias for the upload_to_app_store action deliver uploads screenshots, metadata and binaries to App Store Connect. Use deliver to submit your app for App Store review. Features \u2022 Quick Start \u2022 Usage \u2022 Tips","title":"deliver"},{"location":"generated/actions/deliver/#features","text":"Upload hundreds of localized screenshots completely automatically Upload a new ipa/pkg file to App Store Connect without Xcode from any Mac Maintain your app metadata locally and push changes back to App Store Connect Easily implement a real Continuous Deployment process using fastlane Store the configuration in git to easily deploy from any Mac, including your Continuous Integration server Get a HTML preview of the fetched metadata before uploading the app metadata and screenshots to iTC Automatically uses precheck to ensure your app has the highest chances of passing app review the first time To upload builds to TestFlight check out pilot .","title":"Features"},{"location":"generated/actions/deliver/#quick-start","text":"The guide will create all the necessary files for you, using the existing app metadata from App Store Connect. cd [your_project_folder] fastlane deliver init Enter your App Store Connect credentials Enter your app identifier Enjoy a good drink, while the computer does all the work for you From now on, you can run fastlane deliver to deploy a new update, or just upload new app metadata and screenshots.","title":"Quick Start"},{"location":"generated/actions/deliver/#usage","text":"Check out your local ./fastlane/metadata and ./fastlane/screenshots folders (if you don't use fastlane it's ./metadata instead) You'll see your metadata from App Store Connect. Feel free to store the metadata in git (not the screenshots). You can now modify it locally and push the changes back to App Store Connect. Run fastlane deliver to upload the app metadata from your local machine fastlane deliver Provide the path to an ipa file to upload and submit your app for review: fastlane deliver --ipa \"App.ipa\" --submit_for_review or you can specify path to pkg file for macOS apps: fastlane deliver --pkg \"MacApp.pkg\" If you use fastlane you don't have to manually specify the path to your ipa / pkg file. This is just a small sub-set of what you can do with deliver , check out the full documentation in #more-options Download existing screenshots from App Store Connect fastlane deliver download_screenshots Download existing metadata from App Store Connect fastlane deliver download_metadata To get a list of available options run fastlane action deliver","title":"Usage"},{"location":"generated/actions/deliver/#more-options","text":"View all available options and their valid values","title":"More options"},{"location":"generated/actions/deliver/#available-options","text":"All the options below can easily be added to your Deliverfile . The great thing: if you use fastlane you can use all these options from your Fastfile too, for example: deliver( submit_for_review: true, metadata_path: \"../folder\" )","title":"Available options"},{"location":"generated/actions/deliver/#metadata","text":"All options below are useful if you want to specify certain app metadata in your Deliverfile or Fastfile","title":"Metadata"},{"location":"generated/actions/deliver/#submit-build","text":"deliver allows you to promote an existing build to production. Below are examples to select a previously uploaded build and submit it for review. fastlane deliver submit_build --build_number 830","title":"Submit Build"},{"location":"generated/actions/deliver/#credentials","text":"A detailed description about how your credentials are handled is available in a credentials_manager .","title":"Credentials"},{"location":"generated/actions/deliver/#tips","text":"","title":"Tips"},{"location":"generated/actions/deliver/#available-language-codes","text":"ar-SA, ca, cs, da, de-DE, el, en-AU, en-CA, en-GB, en-US, es-ES, es-MX, fi, fr-CA, fr-FR, he, hi, hr, hu, id, it, ja, ko, ms, nl-NL, no, pl, pt-BR, pt-PT, ro, ru, sk, sv, th, tr, uk, vi, zh-Hans, zh-Hant","title":"Available language codes"},{"location":"generated/actions/deliver/#available-metadata-folder-options","text":"deliver allows for metadata to be set through .txt files in the metadata folder. This metadata folder location is defaulted to ./fastlane/metadata but can be overridden through the metadata_path parameter. Below are all allowed metadata options.","title":"Available Metadata Folder Options"},{"location":"generated/actions/deliver/#reference","text":"View all available categories, etc.","title":"Reference"},{"location":"generated/actions/deliver/#default-values","text":"Deliver has a special default language code which allows you to provide values that are not localized, and which will be used as defaults when you don\u2019t provide a specific localized value. In order to use default , you will need to tell deliver which languages your app uses. You can do this in either of two ways: Create the folders named with the language in the metadata folder (i.e. fastlane/metadata/en-US or fastlane/metadata/de-DE) Add the following to your Deliverfile languages(['en-US','de-DE']) You can use this either in json within your Deliverfile and/or as folders in your metadata folder. deliver will take the union of both language sets from the Deliverfile and from the metadata folder and create on single set of languages which will be enabled. Imagine that you have localized data for the following language codes: en-US, de-DE, el, it You can set the following in your Deliverfile release_notes({ 'default' => \"Shiny and new\", 'de-DE' => \"glaenzend und neu\" }) Deliver will use \"Shiny and new\" for en-US, el and it. It will use \"glaenzend und neu\" for de-DE. You can do the same with folders default keywords.txt marketing_url.txt name.txt privacy_url.txt support_url.txt release_notes.txt en-US description.txt de-DE description.txt el description.txt it description.txt In this case, default values for keywords, urls, name and release notes are used in all localizations, but each language has a fully localized description","title":"Default values"},{"location":"generated/actions/deliver/#uploading-screenshots-for-ipad-pro-129-inch-3rd-generation","text":"Starting March 20, 2019 Apple's App Store requires 12.9-inch iPad Pro (3rd generation) screenshots additionally to the iPad Pro 2nd generation screenshots . As fastlane historically uses the screenshot dimensions to determine the \"display family\" of a screenshot, this poses a problem as both use the same dimensions and are recognized as the same device family. To solve this a screenshot of a 12.9-inch iPad Pro (3rd generation) must contain either the string iPad Pro (12.9-inch) (3rd generation) , IPAD_PRO_3GEN_129 , or ipadPro129 (Apple's internal naming of the display family for the 3rd generation iPad Pro) in its filename to be assigned the correct display family and to be uploaded to the correct screenshot slot in your app's metadata.","title":"Uploading screenshots for \"iPad Pro (12.9-inch) (3rd generation)\""},{"location":"generated/actions/deliver/#automatically-create-screenshots","text":"If you want to integrate deliver with snapshot , check out fastlane !","title":"Automatically create screenshots"},{"location":"generated/actions/deliver/#jenkins-integration","text":"Detailed instructions about how to set up deliver and fastlane in Jenkins can be found in the fastlane README .","title":"Jenkins integration"},{"location":"generated/actions/deliver/#firewall-issues","text":"deliver uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" fastlane deliver","title":"Firewall Issues"},{"location":"generated/actions/deliver/#http-proxy","text":"iTunes Transporter is a Java application bundled with Xcode. In addition to utilizing the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" , you need to configure the transporter application to use the proxy independently from the system proxy or any environment proxy settings. You can find the configuration file within Xcode: for Xcode11 and later TOOLS_PATH=$( xcode-select -p ) REL_PATH='../SharedFrameworks/ContentDeliveryServices.framework/Versions/A/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" for Xcode10 or earlier TOOLS_PATH=$( xcode-select -p ) REL_PATH='../Applications/Application Loader.app/Contents/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" Add necessary proxy configuration values to the net.properties according to Java Proxy Configuration . As an alternative to editing the properties files, proxy configuration can be specified on the command line directly: DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV -Dhttp.proxyHost=myproxy.com -Dhttp.proxyPort=8080\"","title":"HTTP Proxy"},{"location":"generated/actions/deliver/#limit","text":"App Store Connect has a limit of 150 binary uploads per day.","title":"Limit"},{"location":"generated/actions/deliver/#editing-the-deliverfile","text":"Change syntax highlighting to Ruby .","title":"Editing the Deliverfile"},{"location":"generated/actions/deliver/#provider-short-name","text":"If you are on multiple App Store Connect teams, deliver needs a provider short name to know where to upload your binary. deliver will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option. deliver Supported platforms ios, mac Author @KrauseFx","title":"Provider Short Name"},{"location":"generated/actions/deliver/#3-examples","text":"upload_to_app_store( force: true, # Set to true to skip verification of HTML preview itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) deliver # alias for \"upload_to_app_store\" appstore # alias for \"upload_to_app_store\"","title":"3 Examples"},{"location":"generated/actions/deliver/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of your app * app_version The version that should be edited or created ipa Path to your ipa file * pkg Path to your pkg file * build_number If set the given build number (already uploaded to iTC) will be used instead of the current built one platform The platform to use (optional) ios edit_live Modify live metadata, this option disables ipa upload and screenshot upload false use_live_version Force usage of live version rather than edit version false metadata_path Path to the folder containing the metadata files screenshots_path Path to the folder containing the screenshots skip_binary_upload Skip uploading an ipa or pkg to App Store Connect false skip_screenshots Don't upload the screenshots false skip_metadata Don't upload the metadata (e.g. title, description). This will still upload screenshots false skip_app_version_update Don\u2019t create or update the app version that is being prepared for submission false force Skip verification of HTML preview file false overwrite_screenshots Clear all previously uploaded screenshots before uploading the new ones false sync_screenshots Sync screenshots with local ones. This is currently beta option so set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well false submit_for_review Submit the new version for Review after uploading everything false verify_only Verifies archive with App Store Connect without uploading false reject_if_possible Rejects the previously submitted build if it's in a state where it's possible false automatic_release Should the app be automatically released once it's approved? (Can not be used together with auto_release_date ) auto_release_date Date in milliseconds for automatically releasing on pending approval (Can not be used together with automatic_release ) phased_release Enable the phased release feature of iTC false reset_ratings Reset the summary rating when you release a new version of the application false price_tier The price tier of this application app_rating_config_path Path to the app rating's config submission_information Extra information for the submission (e.g. compliance specifications, IDFA settings) team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your Developer Portal team, if you're in multiple teams. Different from your iTC team ID! * dev_portal_team_name The name of your Developer Portal team if you're in multiple teams * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column * run_precheck_before_submit Run precheck before submitting to app review true precheck_default_rule_level The default precheck rule level unless otherwise configured :warn individual_metadata_items DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - An array of localized metadata items to upload individually by language so that errors can be identified. E.g. ['name', 'keywords', 'description']. Note: slow app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the app icon apple_watch_app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the Apple Watch app icon copyright Metadata: The copyright notice primary_category Metadata: The english name of the primary category (e.g. Business , Books ) secondary_category Metadata: The english name of the secondary category (e.g. Business , Books ) primary_first_sub_category Metadata: The english name of the primary first sub category (e.g. Educational , Puzzle ) primary_second_sub_category Metadata: The english name of the primary second sub category (e.g. Educational , Puzzle ) secondary_first_sub_category Metadata: The english name of the secondary first sub category (e.g. Educational , Puzzle ) secondary_second_sub_category Metadata: The english name of the secondary second sub category (e.g. Educational , Puzzle ) trade_representative_contact_information DEPRECATED! This is no longer used by App Store Connect - Metadata: A hash containing the trade representative contact information app_review_information Metadata: A hash containing the review information app_review_attachment_file Metadata: Path to the app review attachment file description Metadata: The localised app description name Metadata: The localised app name subtitle Metadata: The localised app subtitle keywords Metadata: An array of localised keywords promotional_text Metadata: An array of localised promotional texts release_notes Metadata: Localised release notes for this version privacy_url Metadata: Localised privacy url apple_tv_privacy_policy Metadata: Localised Apple TV privacy policy text support_url Metadata: Localised support url marketing_url Metadata: Localised marketing url languages Metadata: List of languages to activate ignore_language_directory_validation Ignore errors when invalid languages are found in metadata and screenshot directories false precheck_include_in_app_purchases Should precheck check in-app purchases? true app The (spaceship) app ID of the app you want to use/modify * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/deliver/#documentation","text":"To show the documentation in your terminal, run fastlane action deliver","title":"Documentation"},{"location":"generated/actions/deliver/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run deliver To pass parameters, make use of the : symbol, for example fastlane run deliver parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/deliver/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/deploygate/","text":"deploygate Upload a new build to DeployGate You can retrieve your username and API token on your settings page . More information about the available options can be found in the DeployGate Push API document . deploygate Supported platforms ios, android Author @tnj, @tomorrowkey 2 Examples deploygate( api_token: \"...\", user: \"target username or organization name\", ipa: \"./ipa_file.ipa\", message: \"Build #{lane_context[SharedValues::BUILD_NUMBER]}\", distribution_key: \"(Optional) Target Distribution Key\", distribution_name: \"(Optional) Target Distribution Name\" ) deploygate( api_token: \"...\", user: \"target username or organization name\", apk: \"./apk_file.apk\", message: \"Build #{lane_context[SharedValues::BUILD_NUMBER]}\", distribution_key: \"(Optional) Target Distribution Key\", distribution_name: \"(Optional) Target Distribution Name\" ) Parameters Key Description Default api_token Deploygate API Token user Target username or organization name ipa Path to your IPA file. Optional if you use the gym or xcodebuild action * apk Path to your APK file * message Release Notes No changelog provided distribution_key Target Distribution Key release_note Release note for distribution page disable_notify Disables Push notification emails false distribution_name Target Distribution Name * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The deploygate action generates the following Lane Variables: SharedValue Description SharedValues::DEPLOYGATE_URL URL of the newly uploaded build SharedValues::DEPLOYGATE_REVISION auto incremented revision number SharedValues::DEPLOYGATE_APP_INFO Contains app revision, bundle identifier, etc. To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action deploygate CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run deploygate To pass parameters, make use of the : symbol, for example fastlane run deploygate parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Deploygate"},{"location":"generated/actions/deploygate/#deploygate","text":"Upload a new build to DeployGate You can retrieve your username and API token on your settings page . More information about the available options can be found in the DeployGate Push API document . deploygate Supported platforms ios, android Author @tnj, @tomorrowkey","title":"deploygate"},{"location":"generated/actions/deploygate/#2-examples","text":"deploygate( api_token: \"...\", user: \"target username or organization name\", ipa: \"./ipa_file.ipa\", message: \"Build #{lane_context[SharedValues::BUILD_NUMBER]}\", distribution_key: \"(Optional) Target Distribution Key\", distribution_name: \"(Optional) Target Distribution Name\" ) deploygate( api_token: \"...\", user: \"target username or organization name\", apk: \"./apk_file.apk\", message: \"Build #{lane_context[SharedValues::BUILD_NUMBER]}\", distribution_key: \"(Optional) Target Distribution Key\", distribution_name: \"(Optional) Target Distribution Name\" )","title":"2 Examples"},{"location":"generated/actions/deploygate/#parameters","text":"Key Description Default api_token Deploygate API Token user Target username or organization name ipa Path to your IPA file. Optional if you use the gym or xcodebuild action * apk Path to your APK file * message Release Notes No changelog provided distribution_key Target Distribution Key release_note Release note for distribution page disable_notify Disables Push notification emails false distribution_name Target Distribution Name * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/deploygate/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The deploygate action generates the following Lane Variables: SharedValue Description SharedValues::DEPLOYGATE_URL URL of the newly uploaded build SharedValues::DEPLOYGATE_REVISION auto incremented revision number SharedValues::DEPLOYGATE_APP_INFO Contains app revision, bundle identifier, etc. To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/deploygate/#documentation","text":"To show the documentation in your terminal, run fastlane action deploygate","title":"Documentation"},{"location":"generated/actions/deploygate/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run deploygate To pass parameters, make use of the : symbol, for example fastlane run deploygate parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/deploygate/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/dotgpg_environment/","text":"dotgpg_environment Reads in production secrets set in a dotgpg file and puts them in ENV More information about dotgpg can be found at https://github.com/ConradIrwin/dotgpg . dotgpg_environment Supported platforms ios, android, mac Author @simonlevy5 1 Example dotgpg_environment(dotgpg_file: './path/to/gpgfile') Parameters Key Description Default dotgpg_file Path to your gpg file * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action dotgpg_environment CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run dotgpg_environment To pass parameters, make use of the : symbol, for example fastlane run dotgpg_environment parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Dotgpg environment"},{"location":"generated/actions/dotgpg_environment/#dotgpg_environment","text":"Reads in production secrets set in a dotgpg file and puts them in ENV More information about dotgpg can be found at https://github.com/ConradIrwin/dotgpg . dotgpg_environment Supported platforms ios, android, mac Author @simonlevy5","title":"dotgpg_environment"},{"location":"generated/actions/dotgpg_environment/#1-example","text":"dotgpg_environment(dotgpg_file: './path/to/gpgfile')","title":"1 Example"},{"location":"generated/actions/dotgpg_environment/#parameters","text":"Key Description Default dotgpg_file Path to your gpg file * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/dotgpg_environment/#documentation","text":"To show the documentation in your terminal, run fastlane action dotgpg_environment","title":"Documentation"},{"location":"generated/actions/dotgpg_environment/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run dotgpg_environment To pass parameters, make use of the : symbol, for example fastlane run dotgpg_environment parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/dotgpg_environment/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/download/","text":"download Download a file from a remote server (e.g. JSON file) Specify the URL to download and get the content as a return value. Automatically parses JSON into a Ruby data structure. For more advanced networking code, use the Ruby functions instead: http://docs.ruby-lang.org/en/2.0.0/Net/HTTP.html . download Supported platforms ios, android, mac Author @KrauseFx 1 Example data = download(url: \"https://host.com/api.json\") Parameters Key Description Default url The URL that should be downloaded * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The download action generates the following Lane Variables: SharedValue Description SharedValues::DOWNLOAD_CONTENT The content of the file we just downloaded To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action download CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download To pass parameters, make use of the : symbol, for example fastlane run download parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Download"},{"location":"generated/actions/download/#download","text":"Download a file from a remote server (e.g. JSON file) Specify the URL to download and get the content as a return value. Automatically parses JSON into a Ruby data structure. For more advanced networking code, use the Ruby functions instead: http://docs.ruby-lang.org/en/2.0.0/Net/HTTP.html . download Supported platforms ios, android, mac Author @KrauseFx","title":"download"},{"location":"generated/actions/download/#1-example","text":"data = download(url: \"https://host.com/api.json\")","title":"1 Example"},{"location":"generated/actions/download/#parameters","text":"Key Description Default url The URL that should be downloaded * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/download/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The download action generates the following Lane Variables: SharedValue Description SharedValues::DOWNLOAD_CONTENT The content of the file we just downloaded To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/download/#documentation","text":"To show the documentation in your terminal, run fastlane action download","title":"Documentation"},{"location":"generated/actions/download/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download To pass parameters, make use of the : symbol, for example fastlane run download parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/download/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/download_app_privacy_details_from_app_store/","text":"download_app_privacy_details_from_app_store Download App Privacy Details from an app in App Store Connect Download App Privacy Details from an app in App Store Connect. For more detail information, view https://docs.fastlane.tools/uploading-app-privacy-details download_app_privacy_details_from_app_store Supported platforms ios, mac Author @igor-makarov 2 Examples download_app_privacy_details_from_app_store( username: \"your@email.com\", team_name: \"Your Team\", app_identifier: \"com.your.bundle\" ) download_app_privacy_details_from_app_store( username: \"your@email.com\", team_name: \"Your Team\", app_identifier: \"com.your.bundle\", output_json_path: \"fastlane/app_data_usages.json\" ) Parameters Key Description Default username Your Apple ID Username for App Store Connect * app_identifier The bundle identifier of your app * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * output_json_path Path to the app usage data JSON file generated by interactive questions ./fastlane/app_privacy_details.json * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action download_app_privacy_details_from_app_store CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download_app_privacy_details_from_app_store To pass parameters, make use of the : symbol, for example fastlane run download_app_privacy_details_from_app_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Download app privacy details from app store"},{"location":"generated/actions/download_app_privacy_details_from_app_store/#download_app_privacy_details_from_app_store","text":"Download App Privacy Details from an app in App Store Connect Download App Privacy Details from an app in App Store Connect. For more detail information, view https://docs.fastlane.tools/uploading-app-privacy-details download_app_privacy_details_from_app_store Supported platforms ios, mac Author @igor-makarov","title":"download_app_privacy_details_from_app_store"},{"location":"generated/actions/download_app_privacy_details_from_app_store/#2-examples","text":"download_app_privacy_details_from_app_store( username: \"your@email.com\", team_name: \"Your Team\", app_identifier: \"com.your.bundle\" ) download_app_privacy_details_from_app_store( username: \"your@email.com\", team_name: \"Your Team\", app_identifier: \"com.your.bundle\", output_json_path: \"fastlane/app_data_usages.json\" )","title":"2 Examples"},{"location":"generated/actions/download_app_privacy_details_from_app_store/#parameters","text":"Key Description Default username Your Apple ID Username for App Store Connect * app_identifier The bundle identifier of your app * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * output_json_path Path to the app usage data JSON file generated by interactive questions ./fastlane/app_privacy_details.json * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/download_app_privacy_details_from_app_store/#documentation","text":"To show the documentation in your terminal, run fastlane action download_app_privacy_details_from_app_store","title":"Documentation"},{"location":"generated/actions/download_app_privacy_details_from_app_store/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download_app_privacy_details_from_app_store To pass parameters, make use of the : symbol, for example fastlane run download_app_privacy_details_from_app_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/download_app_privacy_details_from_app_store/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/download_dsyms/","text":"download_dsyms Download dSYM files from App Store Connect for Bitcode apps This action downloads dSYM files from App Store Connect after the ipa gets re-compiled by Apple. Useful if you have Bitcode enabled. lane :refresh_dsyms do download_dsyms # Download dSYM files from iTC upload_symbols_to_crashlytics # Upload them to Crashlytics clean_build_artifacts # Delete the local dSYM files end download_dsyms Supported platforms ios Author @KrauseFx 6 Examples download_dsyms download_dsyms(version: \"1.0.0\", build_number: \"345\") download_dsyms(version: \"1.0.1\", build_number: 42) download_dsyms(version: \"live\") download_dsyms(min_version: \"1.2.3\") download_dsyms(after_uploaded_date: \"2020-09-11T19:00:00+01:00\") Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option) * username Your Apple ID Username for App Store Connect * app_identifier The bundle identifier of your app * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * platform The app platform for dSYMs you wish to download (ios, appletvos) :ios version The app version for dSYMs you wish to download, pass in 'latest' to download only the latest build's dSYMs or 'live' to download only the live version dSYMs build_number The app build_number for dSYMs you wish to download min_version The minimum app version for dSYMs you wish to download after_uploaded_date The uploaded date after which you wish to download dSYMs output_directory Where to save the download dSYMs, defaults to the current path wait_for_dsym_processing Wait for dSYMs to process false wait_timeout Number of seconds to wait for dSYMs to process 300 * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The download_dsyms action generates the following Lane Variables: SharedValue Description SharedValues::DSYM_PATHS An array to all the zipped dSYM files SharedValues::DSYM_LATEST_UPLOADED_DATE Date of the most recent uploaded time of successfully downloaded dSYM files To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action download_dsyms CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download_dsyms To pass parameters, make use of the : symbol, for example fastlane run download_dsyms parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Download dsyms"},{"location":"generated/actions/download_dsyms/#download_dsyms","text":"Download dSYM files from App Store Connect for Bitcode apps This action downloads dSYM files from App Store Connect after the ipa gets re-compiled by Apple. Useful if you have Bitcode enabled. lane :refresh_dsyms do download_dsyms # Download dSYM files from iTC upload_symbols_to_crashlytics # Upload them to Crashlytics clean_build_artifacts # Delete the local dSYM files end download_dsyms Supported platforms ios Author @KrauseFx","title":"download_dsyms"},{"location":"generated/actions/download_dsyms/#6-examples","text":"download_dsyms download_dsyms(version: \"1.0.0\", build_number: \"345\") download_dsyms(version: \"1.0.1\", build_number: 42) download_dsyms(version: \"live\") download_dsyms(min_version: \"1.2.3\") download_dsyms(after_uploaded_date: \"2020-09-11T19:00:00+01:00\")","title":"6 Examples"},{"location":"generated/actions/download_dsyms/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option) * username Your Apple ID Username for App Store Connect * app_identifier The bundle identifier of your app * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * platform The app platform for dSYMs you wish to download (ios, appletvos) :ios version The app version for dSYMs you wish to download, pass in 'latest' to download only the latest build's dSYMs or 'live' to download only the live version dSYMs build_number The app build_number for dSYMs you wish to download min_version The minimum app version for dSYMs you wish to download after_uploaded_date The uploaded date after which you wish to download dSYMs output_directory Where to save the download dSYMs, defaults to the current path wait_for_dsym_processing Wait for dSYMs to process false wait_timeout Number of seconds to wait for dSYMs to process 300 * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/download_dsyms/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The download_dsyms action generates the following Lane Variables: SharedValue Description SharedValues::DSYM_PATHS An array to all the zipped dSYM files SharedValues::DSYM_LATEST_UPLOADED_DATE Date of the most recent uploaded time of successfully downloaded dSYM files To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/download_dsyms/#documentation","text":"To show the documentation in your terminal, run fastlane action download_dsyms","title":"Documentation"},{"location":"generated/actions/download_dsyms/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download_dsyms To pass parameters, make use of the : symbol, for example fastlane run download_dsyms parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/download_dsyms/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/download_from_play_store/","text":"download_from_play_store Download metadata and binaries from Google Play (via supply ) More information: https://docs.fastlane.tools/actions/download_from_play_store/ download_from_play_store Supported platforms android Author @janpio 1 Example download_from_play_store Parameters Key Description Default package_name The package name of the application to use * version_name Version name (used when uploading new apks/aabs) - defaults to 'versionName' in build.gradle or AndroidManifest.xml * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production metadata_path Path to the directory containing the metadata files * key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action download_from_play_store CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download_from_play_store To pass parameters, make use of the : symbol, for example fastlane run download_from_play_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Download from play store"},{"location":"generated/actions/download_from_play_store/#download_from_play_store","text":"Download metadata and binaries from Google Play (via supply ) More information: https://docs.fastlane.tools/actions/download_from_play_store/ download_from_play_store Supported platforms android Author @janpio","title":"download_from_play_store"},{"location":"generated/actions/download_from_play_store/#1-example","text":"download_from_play_store","title":"1 Example"},{"location":"generated/actions/download_from_play_store/#parameters","text":"Key Description Default package_name The package name of the application to use * version_name Version name (used when uploading new apks/aabs) - defaults to 'versionName' in build.gradle or AndroidManifest.xml * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production metadata_path Path to the directory containing the metadata files * key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/download_from_play_store/#documentation","text":"To show the documentation in your terminal, run fastlane action download_from_play_store","title":"Documentation"},{"location":"generated/actions/download_from_play_store/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download_from_play_store To pass parameters, make use of the : symbol, for example fastlane run download_from_play_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/download_from_play_store/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/download_universal_apk_from_google_play/","text":"download_universal_apk_from_google_play Download the Universal APK of a given version code from the Google Play Console Download the universal APK of a given version code from the Google Play Console. This uses fastlane supply (and the AndroidPublisher Google API) to download the Universal APK generated by Google after you uploaded an .aab bundle to the Play Console. See https://developers.google.com/android-publisher/api-ref/rest/v3/generatedapks/list download_universal_apk_from_google_play Supported platforms android Author @Automattic Returns The path to the downloaded Universal APK. The action will raise an exception if it failed to find or download the APK in Google Play Parameters Key Description Default package_name The package name of the application to use * version_code The versionCode for which to download the generated APK * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 destination The path on disk where to download the Generated Universal APK certificate_sha256_hash The SHA256 hash of the signing key for which to download the Universal, Code-Signed APK for. Use 'xx:xx:xx:\u2026' format (32 hex bytes separated by colons), as printed by keytool -list -keystore . Only useful to provide if you have multiple signing keys configured on GPC, to specify which generated APK to download * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action download_universal_apk_from_google_play CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download_universal_apk_from_google_play To pass parameters, make use of the : symbol, for example fastlane run download_universal_apk_from_google_play parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Download universal apk from google play"},{"location":"generated/actions/download_universal_apk_from_google_play/#download_universal_apk_from_google_play","text":"Download the Universal APK of a given version code from the Google Play Console Download the universal APK of a given version code from the Google Play Console. This uses fastlane supply (and the AndroidPublisher Google API) to download the Universal APK generated by Google after you uploaded an .aab bundle to the Play Console. See https://developers.google.com/android-publisher/api-ref/rest/v3/generatedapks/list download_universal_apk_from_google_play Supported platforms android Author @Automattic Returns The path to the downloaded Universal APK. The action will raise an exception if it failed to find or download the APK in Google Play","title":"download_universal_apk_from_google_play"},{"location":"generated/actions/download_universal_apk_from_google_play/#parameters","text":"Key Description Default package_name The package name of the application to use * version_code The versionCode for which to download the generated APK * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 destination The path on disk where to download the Generated Universal APK certificate_sha256_hash The SHA256 hash of the signing key for which to download the Universal, Code-Signed APK for. Use 'xx:xx:xx:\u2026' format (32 hex bytes separated by colons), as printed by keytool -list -keystore . Only useful to provide if you have multiple signing keys configured on GPC, to specify which generated APK to download * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/download_universal_apk_from_google_play/#documentation","text":"To show the documentation in your terminal, run fastlane action download_universal_apk_from_google_play","title":"Documentation"},{"location":"generated/actions/download_universal_apk_from_google_play/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run download_universal_apk_from_google_play To pass parameters, make use of the : symbol, for example fastlane run download_universal_apk_from_google_play parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/download_universal_apk_from_google_play/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/dsym_zip/","text":"dsym_zip Creates a zipped dSYM in the project root from the .xcarchive You can manually specify the path to the xcarchive (not needed if you use xcodebuild / xcarchive to build your archive) dsym_zip Supported platforms ios, mac Author @lmirosevic 2 Examples dsym_zip dsym_zip( archive_path: \"MyApp.xcarchive\" ) Parameters Key Description Default archive_path Path to your xcarchive file. Optional if you use the xcodebuild action * dsym_path Path for generated dsym. Optional, default is your apps root directory all Whether or not all dSYM files are to be included. Optional, default is false in which only your app dSYM is included false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The dsym_zip action generates the following Lane Variables: SharedValue Description SharedValues::DSYM_ZIP_PATH The named of the zipped dSYM To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action dsym_zip CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run dsym_zip To pass parameters, make use of the : symbol, for example fastlane run dsym_zip parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Dsym zip"},{"location":"generated/actions/dsym_zip/#dsym_zip","text":"Creates a zipped dSYM in the project root from the .xcarchive You can manually specify the path to the xcarchive (not needed if you use xcodebuild / xcarchive to build your archive) dsym_zip Supported platforms ios, mac Author @lmirosevic","title":"dsym_zip"},{"location":"generated/actions/dsym_zip/#2-examples","text":"dsym_zip dsym_zip( archive_path: \"MyApp.xcarchive\" )","title":"2 Examples"},{"location":"generated/actions/dsym_zip/#parameters","text":"Key Description Default archive_path Path to your xcarchive file. Optional if you use the xcodebuild action * dsym_path Path for generated dsym. Optional, default is your apps root directory all Whether or not all dSYM files are to be included. Optional, default is false in which only your app dSYM is included false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/dsym_zip/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The dsym_zip action generates the following Lane Variables: SharedValue Description SharedValues::DSYM_ZIP_PATH The named of the zipped dSYM To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/dsym_zip/#documentation","text":"To show the documentation in your terminal, run fastlane action dsym_zip","title":"Documentation"},{"location":"generated/actions/dsym_zip/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run dsym_zip To pass parameters, make use of the : symbol, for example fastlane run dsym_zip parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/dsym_zip/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/echo/","text":"echo Alias for the puts action echo Supported platforms ios, android, mac Author @KrauseFx 1 Example puts \"Hi there\" Parameters Key Description Default message Message to be printed out * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action echo CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run echo To pass parameters, make use of the : symbol, for example fastlane run echo parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Echo"},{"location":"generated/actions/echo/#echo","text":"Alias for the puts action echo Supported platforms ios, android, mac Author @KrauseFx","title":"echo"},{"location":"generated/actions/echo/#1-example","text":"puts \"Hi there\"","title":"1 Example"},{"location":"generated/actions/echo/#parameters","text":"Key Description Default message Message to be printed out * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/echo/#documentation","text":"To show the documentation in your terminal, run fastlane action echo","title":"Documentation"},{"location":"generated/actions/echo/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run echo To pass parameters, make use of the : symbol, for example fastlane run echo parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/echo/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/ensure_bundle_exec/","text":"ensure_bundle_exec Raises an exception if not using bundle exec to run fastlane This action will check if you are using bundle exec to run fastlane. You can put it into before_all to make sure that fastlane is ran using the bundle exec fastlane command. ensure_bundle_exec Supported platforms ios, android, mac Author @rishabhtayal 1 Example ensure_bundle_exec Documentation To show the documentation in your terminal, run fastlane action ensure_bundle_exec CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_bundle_exec To pass parameters, make use of the : symbol, for example fastlane run ensure_bundle_exec parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Ensure bundle exec"},{"location":"generated/actions/ensure_bundle_exec/#ensure_bundle_exec","text":"Raises an exception if not using bundle exec to run fastlane This action will check if you are using bundle exec to run fastlane. You can put it into before_all to make sure that fastlane is ran using the bundle exec fastlane command. ensure_bundle_exec Supported platforms ios, android, mac Author @rishabhtayal","title":"ensure_bundle_exec"},{"location":"generated/actions/ensure_bundle_exec/#1-example","text":"ensure_bundle_exec","title":"1 Example"},{"location":"generated/actions/ensure_bundle_exec/#documentation","text":"To show the documentation in your terminal, run fastlane action ensure_bundle_exec","title":"Documentation"},{"location":"generated/actions/ensure_bundle_exec/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_bundle_exec To pass parameters, make use of the : symbol, for example fastlane run ensure_bundle_exec parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/ensure_bundle_exec/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/ensure_env_vars/","text":"ensure_env_vars Raises an exception if the specified env vars are not set This action will check if some environment variables are set. ensure_env_vars Supported platforms ios, android, mac Author @revolter 1 Example ensure_env_vars( env_vars: ['GITHUB_USER_NAME', 'GITHUB_API_TOKEN'] ) Parameters Key Description Default env_vars The environment variables names that should be checked * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action ensure_env_vars CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_env_vars To pass parameters, make use of the : symbol, for example fastlane run ensure_env_vars parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Ensure env vars"},{"location":"generated/actions/ensure_env_vars/#ensure_env_vars","text":"Raises an exception if the specified env vars are not set This action will check if some environment variables are set. ensure_env_vars Supported platforms ios, android, mac Author @revolter","title":"ensure_env_vars"},{"location":"generated/actions/ensure_env_vars/#1-example","text":"ensure_env_vars( env_vars: ['GITHUB_USER_NAME', 'GITHUB_API_TOKEN'] )","title":"1 Example"},{"location":"generated/actions/ensure_env_vars/#parameters","text":"Key Description Default env_vars The environment variables names that should be checked * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/ensure_env_vars/#documentation","text":"To show the documentation in your terminal, run fastlane action ensure_env_vars","title":"Documentation"},{"location":"generated/actions/ensure_env_vars/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_env_vars To pass parameters, make use of the : symbol, for example fastlane run ensure_env_vars parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/ensure_env_vars/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/ensure_git_branch/","text":"ensure_git_branch Raises an exception if not on a specific git branch This action will check if your git repo is checked out to a specific branch. You may only want to make releases from a specific branch, so ensure_git_branch will stop a lane if it was accidentally executed on an incorrect branch. ensure_git_branch Supported platforms ios, android, mac Author @dbachrach, @Liquidsoul 2 Examples ensure_git_branch # defaults to `master` branch ensure_git_branch( branch: 'develop' ) Parameters Key Description Default branch The branch that should be checked for. String that can be either the full name of the branch or a regex e.g. ^feature/.*$ to match master * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action ensure_git_branch CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_git_branch To pass parameters, make use of the : symbol, for example fastlane run ensure_git_branch parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Ensure git branch"},{"location":"generated/actions/ensure_git_branch/#ensure_git_branch","text":"Raises an exception if not on a specific git branch This action will check if your git repo is checked out to a specific branch. You may only want to make releases from a specific branch, so ensure_git_branch will stop a lane if it was accidentally executed on an incorrect branch. ensure_git_branch Supported platforms ios, android, mac Author @dbachrach, @Liquidsoul","title":"ensure_git_branch"},{"location":"generated/actions/ensure_git_branch/#2-examples","text":"ensure_git_branch # defaults to `master` branch ensure_git_branch( branch: 'develop' )","title":"2 Examples"},{"location":"generated/actions/ensure_git_branch/#parameters","text":"Key Description Default branch The branch that should be checked for. String that can be either the full name of the branch or a regex e.g. ^feature/.*$ to match master * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/ensure_git_branch/#documentation","text":"To show the documentation in your terminal, run fastlane action ensure_git_branch","title":"Documentation"},{"location":"generated/actions/ensure_git_branch/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_git_branch To pass parameters, make use of the : symbol, for example fastlane run ensure_git_branch parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/ensure_git_branch/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/ensure_git_status_clean/","text":"ensure_git_status_clean Raises an exception if there are uncommitted git changes A sanity check to make sure you are working in a repo that is clean. Especially useful to put at the beginning of your Fastfile in the before_all block, if some of your other actions will touch your filesystem, do things to your git repo, or just as a general reminder to save your work. Also needed as a prerequisite for some other actions like reset_git_repo . ensure_git_status_clean Supported platforms ios, android, mac Author @lmirosevic, @antondomashnev 1 Example ensure_git_status_clean Parameters Key Description Default show_uncommitted_changes The flag whether to show uncommitted changes if the repo is dirty false show_diff The flag whether to show the git diff if the repo is dirty false ignored The handling mode of the ignored files. The available options are: 'traditional' , 'none' (default) and 'matching' . Specifying 'none' to this parameter is the same as not specifying the parameter at all, which means that no ignored file will be used to check if the repo is dirty or not. Specifying 'traditional' or 'matching' causes some ignored files to be used to check if the repo is dirty or not (more info in the official docs: https://git-scm.com/docs/git-status#Documentation/git-status.txt---ignoredltmodegt) ignore_files Array of files to ignore * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The ensure_git_status_clean action generates the following Lane Variables: SharedValue Description SharedValues::GIT_REPO_WAS_CLEAN_ON_START Stores the fact that the git repo was clean at some point To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action ensure_git_status_clean CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_git_status_clean To pass parameters, make use of the : symbol, for example fastlane run ensure_git_status_clean parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Ensure git status clean"},{"location":"generated/actions/ensure_git_status_clean/#ensure_git_status_clean","text":"Raises an exception if there are uncommitted git changes A sanity check to make sure you are working in a repo that is clean. Especially useful to put at the beginning of your Fastfile in the before_all block, if some of your other actions will touch your filesystem, do things to your git repo, or just as a general reminder to save your work. Also needed as a prerequisite for some other actions like reset_git_repo . ensure_git_status_clean Supported platforms ios, android, mac Author @lmirosevic, @antondomashnev","title":"ensure_git_status_clean"},{"location":"generated/actions/ensure_git_status_clean/#1-example","text":"ensure_git_status_clean","title":"1 Example"},{"location":"generated/actions/ensure_git_status_clean/#parameters","text":"Key Description Default show_uncommitted_changes The flag whether to show uncommitted changes if the repo is dirty false show_diff The flag whether to show the git diff if the repo is dirty false ignored The handling mode of the ignored files. The available options are: 'traditional' , 'none' (default) and 'matching' . Specifying 'none' to this parameter is the same as not specifying the parameter at all, which means that no ignored file will be used to check if the repo is dirty or not. Specifying 'traditional' or 'matching' causes some ignored files to be used to check if the repo is dirty or not (more info in the official docs: https://git-scm.com/docs/git-status#Documentation/git-status.txt---ignoredltmodegt) ignore_files Array of files to ignore * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/ensure_git_status_clean/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The ensure_git_status_clean action generates the following Lane Variables: SharedValue Description SharedValues::GIT_REPO_WAS_CLEAN_ON_START Stores the fact that the git repo was clean at some point To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/ensure_git_status_clean/#documentation","text":"To show the documentation in your terminal, run fastlane action ensure_git_status_clean","title":"Documentation"},{"location":"generated/actions/ensure_git_status_clean/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_git_status_clean To pass parameters, make use of the : symbol, for example fastlane run ensure_git_status_clean parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/ensure_git_status_clean/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/ensure_no_debug_code/","text":"ensure_no_debug_code Ensures the given text is nowhere in the code base You don't want any debug code to slip into production. This can be used to check if there is any debug code still in your codebase or if you have things like // TO DO or similar. ensure_no_debug_code Supported platforms ios, android, mac Author @KrauseFx 5 Examples ensure_no_debug_code(text: \"// TODO\") ensure_no_debug_code(text: \"Log.v\", extension: \"java\") ensure_no_debug_code(text: \"NSLog\", path: \"./lib\", extension: \"m\") ensure_no_debug_code(text: \"(^#define DEBUG|NSLog)\", path: \"./lib\", extension: \"m\") ensure_no_debug_code(text: \"<<<<<<\", extensions: [\"m\", \"swift\", \"java\"]) Parameters Key Description Default text The text that must not be in the code base path The directory containing all the source files . extension The extension that should be searched for extensions An array of file extensions that should be searched for exclude Exclude a certain pattern from the search exclude_dirs An array of dirs that should not be included in the search * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action ensure_no_debug_code CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_no_debug_code To pass parameters, make use of the : symbol, for example fastlane run ensure_no_debug_code parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Ensure no debug code"},{"location":"generated/actions/ensure_no_debug_code/#ensure_no_debug_code","text":"Ensures the given text is nowhere in the code base You don't want any debug code to slip into production. This can be used to check if there is any debug code still in your codebase or if you have things like // TO DO or similar. ensure_no_debug_code Supported platforms ios, android, mac Author @KrauseFx","title":"ensure_no_debug_code"},{"location":"generated/actions/ensure_no_debug_code/#5-examples","text":"ensure_no_debug_code(text: \"// TODO\") ensure_no_debug_code(text: \"Log.v\", extension: \"java\") ensure_no_debug_code(text: \"NSLog\", path: \"./lib\", extension: \"m\") ensure_no_debug_code(text: \"(^#define DEBUG|NSLog)\", path: \"./lib\", extension: \"m\") ensure_no_debug_code(text: \"<<<<<<\", extensions: [\"m\", \"swift\", \"java\"])","title":"5 Examples"},{"location":"generated/actions/ensure_no_debug_code/#parameters","text":"Key Description Default text The text that must not be in the code base path The directory containing all the source files . extension The extension that should be searched for extensions An array of file extensions that should be searched for exclude Exclude a certain pattern from the search exclude_dirs An array of dirs that should not be included in the search * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/ensure_no_debug_code/#documentation","text":"To show the documentation in your terminal, run fastlane action ensure_no_debug_code","title":"Documentation"},{"location":"generated/actions/ensure_no_debug_code/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_no_debug_code To pass parameters, make use of the : symbol, for example fastlane run ensure_no_debug_code parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/ensure_no_debug_code/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/ensure_xcode_version/","text":"ensure_xcode_version Ensure the right version of Xcode is used The xcode-install gem, which this action depends on, has been sunset. Please migrate to xcodes . You can find a migration guide here: xcpretty/xcode-install/MIGRATION.md If building your app requires a specific version of Xcode, you can invoke this command before using gym. For example, to ensure that a beta version of Xcode is not accidentally selected to build, which would make uploading to TestFlight fail. You can either manually provide a specific version using version: or you make use of the .xcode-version file. Using the strict parameter, you can either verify the full set of version numbers strictly (i.e. 11.3.1 ) or only a subset of them (i.e. 11.3 or 11 ). ensure_xcode_version Supported platforms ios, mac Author @JaviSoto, @KrauseFx 1 Example ensure_xcode_version(version: \"12.5\") Parameters Key Description Default version Xcode version to verify that is selected strict Should the version be verified strictly (all 3 version numbers), or matching only the given version numbers (i.e. 11.3 == 11.3.x ) true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The ensure_xcode_version action generates the following Lane Variables: SharedValue Description SharedValues::FL_ENSURE_XCODE_VERSION Xcode version to verify that is selected To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action ensure_xcode_version CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_xcode_version To pass parameters, make use of the : symbol, for example fastlane run ensure_xcode_version parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Ensure xcode version"},{"location":"generated/actions/ensure_xcode_version/#ensure_xcode_version","text":"Ensure the right version of Xcode is used The xcode-install gem, which this action depends on, has been sunset. Please migrate to xcodes . You can find a migration guide here: xcpretty/xcode-install/MIGRATION.md If building your app requires a specific version of Xcode, you can invoke this command before using gym. For example, to ensure that a beta version of Xcode is not accidentally selected to build, which would make uploading to TestFlight fail. You can either manually provide a specific version using version: or you make use of the .xcode-version file. Using the strict parameter, you can either verify the full set of version numbers strictly (i.e. 11.3.1 ) or only a subset of them (i.e. 11.3 or 11 ). ensure_xcode_version Supported platforms ios, mac Author @JaviSoto, @KrauseFx","title":"ensure_xcode_version"},{"location":"generated/actions/ensure_xcode_version/#1-example","text":"ensure_xcode_version(version: \"12.5\")","title":"1 Example"},{"location":"generated/actions/ensure_xcode_version/#parameters","text":"Key Description Default version Xcode version to verify that is selected strict Should the version be verified strictly (all 3 version numbers), or matching only the given version numbers (i.e. 11.3 == 11.3.x ) true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/ensure_xcode_version/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The ensure_xcode_version action generates the following Lane Variables: SharedValue Description SharedValues::FL_ENSURE_XCODE_VERSION Xcode version to verify that is selected To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/ensure_xcode_version/#documentation","text":"To show the documentation in your terminal, run fastlane action ensure_xcode_version","title":"Documentation"},{"location":"generated/actions/ensure_xcode_version/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ensure_xcode_version To pass parameters, make use of the : symbol, for example fastlane run ensure_xcode_version parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/ensure_xcode_version/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/environment_variable/","text":"environment_variable Sets/gets env vars for Fastlane.swift. Don't use in ruby, use ENV[key] = val environment_variable Supported platforms ios, android, mac Author @taquitos Parameters Key Description Default set Set the environment variables named get Get the environment variable named remove Remove the environment variable named * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action environment_variable CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run environment_variable To pass parameters, make use of the : symbol, for example fastlane run environment_variable parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Environment variable"},{"location":"generated/actions/environment_variable/#environment_variable","text":"Sets/gets env vars for Fastlane.swift. Don't use in ruby, use ENV[key] = val environment_variable Supported platforms ios, android, mac Author @taquitos","title":"environment_variable"},{"location":"generated/actions/environment_variable/#parameters","text":"Key Description Default set Set the environment variables named get Get the environment variable named remove Remove the environment variable named * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/environment_variable/#documentation","text":"To show the documentation in your terminal, run fastlane action environment_variable","title":"Documentation"},{"location":"generated/actions/environment_variable/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run environment_variable To pass parameters, make use of the : symbol, for example fastlane run environment_variable parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/environment_variable/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/erb/","text":"erb Allows to Generate output files based on ERB templates Renders an ERB template with :placeholders given as a hash via parameter. If no :destination is set, it returns the rendered template as string. erb Supported platforms ios, android, mac Author @hjanuschka 1 Example # Example `erb` template: # Variable1 <%= var1 %> # Variable2 <%= var2 %> # <% for item in var3 %> # <%= item %> # <% end %> erb( template: \"1.erb\", destination: \"/tmp/rendered.out\", placeholders: { :var1 => 123, :var2 => \"string\", :var3 => [\"element1\", \"element2\"] } ) Parameters Key Description Default template ERB Template File destination Destination file placeholders Placeholders given as a hash {} trim_mode Trim mode applied to the ERB * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action erb CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run erb To pass parameters, make use of the : symbol, for example fastlane run erb parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Erb"},{"location":"generated/actions/erb/#erb","text":"Allows to Generate output files based on ERB templates Renders an ERB template with :placeholders given as a hash via parameter. If no :destination is set, it returns the rendered template as string. erb Supported platforms ios, android, mac Author @hjanuschka","title":"erb"},{"location":"generated/actions/erb/#1-example","text":"# Example `erb` template: # Variable1 <%= var1 %> # Variable2 <%= var2 %> # <% for item in var3 %> # <%= item %> # <% end %> erb( template: \"1.erb\", destination: \"/tmp/rendered.out\", placeholders: { :var1 => 123, :var2 => \"string\", :var3 => [\"element1\", \"element2\"] } )","title":"1 Example"},{"location":"generated/actions/erb/#parameters","text":"Key Description Default template ERB Template File destination Destination file placeholders Placeholders given as a hash {} trim_mode Trim mode applied to the ERB * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/erb/#documentation","text":"To show the documentation in your terminal, run fastlane action erb","title":"Documentation"},{"location":"generated/actions/erb/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run erb To pass parameters, make use of the : symbol, for example fastlane run erb parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/erb/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/fastlane_version/","text":"fastlane_version Alias for the min_fastlane_version action Add this to your Fastfile to require a certain version of fastlane . Use it if you use an action that just recently came out and you need it. fastlane_version Supported platforms ios, android, mac Author @KrauseFx 1 Example min_fastlane_version(\"1.50.0\") Documentation To show the documentation in your terminal, run fastlane action fastlane_version CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run fastlane_version To pass parameters, make use of the : symbol, for example fastlane run fastlane_version parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Fastlane version"},{"location":"generated/actions/fastlane_version/#fastlane_version","text":"Alias for the min_fastlane_version action Add this to your Fastfile to require a certain version of fastlane . Use it if you use an action that just recently came out and you need it. fastlane_version Supported platforms ios, android, mac Author @KrauseFx","title":"fastlane_version"},{"location":"generated/actions/fastlane_version/#1-example","text":"min_fastlane_version(\"1.50.0\")","title":"1 Example"},{"location":"generated/actions/fastlane_version/#documentation","text":"To show the documentation in your terminal, run fastlane action fastlane_version","title":"Documentation"},{"location":"generated/actions/fastlane_version/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run fastlane_version To pass parameters, make use of the : symbol, for example fastlane run fastlane_version parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/fastlane_version/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/flock/","text":"flock Send a message to a Flock group To obtain the token, create a new incoming message webhook in your Flock admin panel. flock Supported platforms ios, android, mac Author @Manav 1 Example flock( message: \"Hello\", token: \"xxx\" ) Parameters Key Description Default message Message text token Token for the Flock incoming webhook base_url Base URL of the Flock incoming message webhook https://api.flock.co/hooks/sendMessage * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action flock CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run flock To pass parameters, make use of the : symbol, for example fastlane run flock parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Flock"},{"location":"generated/actions/flock/#flock","text":"Send a message to a Flock group To obtain the token, create a new incoming message webhook in your Flock admin panel. flock Supported platforms ios, android, mac Author @Manav","title":"flock"},{"location":"generated/actions/flock/#1-example","text":"flock( message: \"Hello\", token: \"xxx\" )","title":"1 Example"},{"location":"generated/actions/flock/#parameters","text":"Key Description Default message Message text token Token for the Flock incoming webhook base_url Base URL of the Flock incoming message webhook https://api.flock.co/hooks/sendMessage * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/flock/#documentation","text":"To show the documentation in your terminal, run fastlane action flock","title":"Documentation"},{"location":"generated/actions/flock/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run flock To pass parameters, make use of the : symbol, for example fastlane run flock parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/flock/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/frame_screenshots/","text":"frame_screenshots Adds device frames around all screenshots (via frameit ) Easily put your screenshots into the right device frames frameit allows you to put a gorgeous device frame around your iOS, macOS and Android screenshots just by running one simple command. Use frameit to prepare perfect screenshots for the App Store, your website, QA or emails. Features \u2022 Usage \u2022 Tips frameit is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Features Frame screenshot Put a gorgeous device frame around your iOS, macOS and Android screenshots just by running one simple command. Support for: iPhone, iPad and Mac Set of Android devices Portrait and Landscape modes Several device frame colors The complete and updated list of supported devices and colors can be found here Here is a nice gif, that shows frameit in action: Advanced Features Put framed screenshot on colored background, define padding add text above or under framed screenshot keyword + text choose text font and color multi line text \"intelligent\" positioning of text that always looks good(ish) Results The frameit 2.0 update was kindly sponsored by MindNode , seen in the screenshots above. The first time that frameit is executed the frames will be downloaded automatically. Originally the frames are coming from Facebook frameset and they are kept on this repo . More information about this process and how to update the frames can be found here Usage Basic Usage Why should you have to use Photoshop, just to add a frame around your screenshots? Just navigate to your folder of screenshots and use the following command (iOS and Mac OS are default platforms for backward compatibility): fastlane frameit To frame Android screenshots: fastlane frameit android To use the silver version of the frames: fastlane frameit silver To download the latest frames fastlane frameit download_frames Note: When using frameit without titles on top, the screenshots will have the full resolution, which means they can't be uploaded to the App Store directly. They are supposed to be used for websites, print media and emails. Check out the section below to use the screenshots for the App Store. Advanced Usage (optional) Text and Background With frameit it's possible to add a custom background and text below or above the framed screenshots in fonts and colors you define. A working example can be found in the fastlane examples project. Framefile.json The Framefile allows to define general and screenshot specific information. It has the following general JSON structure: { \"device_frame_version\": \"latest\", \"default\": { ... }, \"data\": [ ... ] } General parameters The general parameters are defined in the default key and can be: Key Description Default value background The background that should be used for the framed screenshot. Specify the (relative) path to the image file (e.g. *.jpg ). This parameter is mandatory. NA keyword An object that contains up to 3 keys to describe the optional keyword. See table below. NA title An object that contains up to 3 keys to describe the mandatory title. See table below. NA stack_title Specifies whether frameit should display the keyword above the title when both keyword and title are defined. If it is false, the title and keyword will be displayed side by side when both keyword and title are defined. false title_below_image Specifies whether frameit should place the title and optional keyword below the device frame. If it is false, it will be placed above the device frame. false show_complete_frame Specifies whether frameit should shrink the device frame so that it is completely shown in the framed screenshot. If it is false, clipping of the device frame might occur at the bottom (when title_below_image is false ) or top (when title_below_image is true ) of the framed screenshot. false padding The content of the framed screenshot will be resized to match the specified padding around all edges. The vertical padding is also applied between the text and the top or bottom (depending on title_below_image ) of the device frame. There are 3 different options of specifying the padding: 1. Default: An integer value that defines both horizontal and vertical padding in pixels. 2. A string that defines (different) padding values in pixels for horizontal and vertical padding. The syntax is \"x\" , e.g. \"30x60\" . 3. A string that defines (different) padding values in percentage for horizontal and vertical padding. The syntax is \"%x%\" , e.g. \"5%x10%\" . Note: The percentage is calculated from the smallest image dimension (height or width). A combination of option 2 and 3 is possible, e.g. \"5%x40\" . 50 interline_spacing Specifies whether frameit should add or subtract this many pixels between the individual lines of text. This only applies to a multi-line title and/or keyword to expand or squash together the individual lines of text. 0 font_scale_factor Specifies whether frameit should increase or decrease the font size of the text. Is ignored for keyword or title , if font_size is specified. 0.1 frame Overrides the color of the frame to be used. (Valid values are BLACK , WHITE , GOLD and ROSE_GOLD ) NA title_min_height Specifies a height always reserved for the title. Value can be a percentage of the height or an absolute value. The device will be placed below (or above) this area. Convenient to ensure the device top (or bottom) will be consistently placed at the same height on the different screenshots. NA use_platform Overrides the platform used for the screenshot. Valid values are IOS , ANDROID and ANY . IOS force_device_type Forces a specific device. Valid values are: Huawei P8, Motorola Moto E, Motorola Moto G, Nexus 4, Nexus 5X, Nexus 6P, Nexus 9, Samsung Galaxy Grand Prime, Samsung Galaxy Note 5, Samsung Galaxy S Duos, Samsung Galaxy S3, Samsung Galaxy S5, Samsung Galaxy S7, Samsung Galaxy S8, Samsung Galaxy S9, iPhone 5s, iPhone 5c, iPhone SE, iPhone 6s, iPhone 6s Plus, iPhone 7, iPhone 7 Plus, iPhone 8, iPhone 8 Plus, iPhone X, iPhone XS, iPhone XR, iPhone XS Max, iPad Air 2, iPad Mini 4, iPad Pro, MacBook, Google Pixel 3, Google Pixel 3 XL, HTC One A9, HTC One M8 NA Specific parameters The screenshot specific parameters are related to the keyword and title texts. These are defined in the data key. This is an array with the following keys for each screenshot: Key Description filter This is mandatory to link the individual configuration to the screenshot, based on part of the file name. Example: If a screenshot is named iPhone 8-Brainstorming.png you can use value Brainstorming for filter . If there are more than one filter matching an entry, they will all be applied in order (which means that the last one has the highest precedence). All other keys from that array element will only be applied on this specific screenshot. keyword Similar use as in default , except that parameter text can be used here because it is screenshot specific. title Similar use as in default , except that parameter text can be used here because it is screenshot specific. frame Overrides the color of the frame to be used. (Valid values are BLACK , WHITE , GOLD and ROSE_GOLD ) use_platform Overrides the platform used for the screenshot. Valid values are IOS , ANDROID and ANY . force_device_type Forces a specific device. Valid values are the same as for the general parameter. Framefile keyword and title parameters The keyword and title parameters are both used in default and data . They both consist of the following optional keys: Key Description Default value color The font color for the text. Specify a HEX/HTML color code. #000000 (black) font The font family for the text. Specify the (relative) path to the font file (e.g. an OpenType Font). The default imagemagick font, which is system dependent. font_size The font size for the text specified in points. If not specified or 0 , font will be scaled automatically to fit the available space. frameit still shrinks the text, if it would not fit. NA font_weight The font weight for the text . Specify an integer value (e.g. 900). NA text The text that should be used for the keyword or title . Note: If you want to use localised text, use .strings files . NA Example { \"device_frame_version\": \"latest\", \"default\": { \"keyword\": { \"font\": \"./fonts/MyFont-Rg.otf\" }, \"title\": { \"font\": \"./fonts/MyFont-Th.otf\", \"font_size\": 128, \"color\": \"#545454\" }, \"background\": \"./background.jpg\", \"padding\": 50, \"show_complete_frame\": false, \"stack_title\" : false, \"title_below_image\": true, \"frame\": \"WHITE\", \"use_platform\": \"IOS\" }, \"data\": [ { \"filter\": \"Brainstorming\", \"keyword\": { \"color\": \"#d21559\" } }, { \"filter\": \"Organizing\", \"keyword\": { \"color\": \"#feb909\" }, \"frame\": \"ROSE_GOLD\" }, { \"filter\": \"Sharing\", \"keyword\": { \"color\": \"#aa4dbc\" } }, { \"filter\": \"Styling\", \"keyword\": { \"color\": \"#31bb48\" } }, { \"filter\": \"Android\", \"use_platform\": \"ANDROID\" } ] } You can find a more complex configuration to also support Chinese, Japanese and Korean languages. The Framefile.json should be in the screenshots folder, as seen in the example . .strings files To define the title and optionally the keyword, put two .strings files into the language folder (e.g. en-US in the example project ) The keyword.strings and title.strings are standard .strings file you already use for your iOS apps, making it easy to use your existing translation service to get localized titles. Notes These .strings files MUST be utf-8 (UTF-8) or utf-16 encoded (UTF-16 BE with BOM). They also must begin with an empty line. If you are having trouble see issue #1740 You MUST provide a background if you want titles. frameit will not add the titles if a background is not specified. Screenshot orientation By default frameit adds a frame to your screenshot based on an orientation you took it. For a portrait (vertical orientation) it is going to add portrait frame and for a landscape (horizontal orientation) - landscape left (= Home button on the left side ). One way to override the default behavior is editing the file name by adding force_landscaperight to the end. force_orientation_block If the default behavior doesn't fit your needs and you don't want or can't rename your screenshots, you can customize frameit 's orientation behavior by setting a force_orientation_block parameter. The valid values are: :landscape_left (home button on the left side), :landscape_right (home button on the right side), :portrait (home button on the bottom), nil (home button on the right side). Examples # It matches the filename to the framed device orientation frameit( path: \"./fastlane/screenshots\", force_orientation_block: proc do |filename| case filename when \"iPad Pro (12.9-inch)-01LoginScreen\" :landscape_right when \"iPhone 6 Plus-01LoginScreen\" :portrait # and so on end end ) # It frames the screenshots in landscape right whenever the filename contains `landscape` word frameit( silver: true, path: \"./fastlane/screenshots\", force_orientation_block: proc do |filename| f = filename.downcase if f.include?(\"landscape\") :landscape_right end end ) Mac With frameit it's possible to also frame macOS Application screenshots. You have to provide the following: A (relative) path to a background image file, which should contain both the background and the Mac. The offset information so frameit knows where to position your screenshot on the background : offset : A string that specifies the horizontal and vertical offset in pixels, with respect to the top left corner of the background image. The syntax is \"++\" , e.g. \"+200+150\" . titleHeight : The height in pixels that should be used for the title. Example { \"default\": { \"title\": { \"color\": \"#545454\" }, \"background\": \"Mac.jpg\", \"offset\": { \"offset\": \"+676+479\", \"titleHeight\": 320 } }, \"data\": [ { \"filter\": \"Brainstorming\", \"keyword\": { \"color\": \"#d21559\" } } ] } Check out the MindNode example project . Tips Generate localized screenshots Check out snapshot to automatically generate screenshots using UI Automation . Resume framing Framing screenshots is a slow operation. In case you need to resume framing, or just frame a couple updated screenshots again, you can rely on the --resume flag. Only screenshots which have not been framed yet \u2013 or for which there isn't an up-to-date framed image \u2013 will be framed. This feature uses the file modification dates and will reframe screenshots if the screenshot is newer than the framed file. Upload screenshots Use deliver to upload iOS screenshots to App Store Connect, or supply to upload Android screenshots to Play Store completely automatically \ud83d\ude80 Use a clean status bar You can set override_status_bar to true in snapshot to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available. Examples # Sets the time to 9:41AM with full battery and reception, with the default carrier name: Carrier capture_ios_screenshots( override_status_bar: true ) # Set the time to 9:41AM, battery at 75% and charging, on the TELUS LTE network capture_ios_screenshots( override_status_bar: true, override_status_bar_arguments: \"--time 9:41 --dataNetwork lte --cellularMode active --cellularBars 4 --batteryState charging --batteryLevel 75 --operatorName TELUS\" ) Gray artifacts around text If you run into any quality issues, like having a border around the font, it usually helps to just re-install imagemagick . You can do so by running brew uninstall imagemagick brew install imagemagick Uninstall gem uninstall fastlane rm -rf ~/.frameit frame_screenshots Supported platforms ios, android, mac Author @KrauseFx 6 Examples frame_screenshots frameit # alias for \"frame_screenshots\" frame_screenshots(use_platform: \"ANDROID\") frame_screenshots(silver: true) frame_screenshots(path: \"/screenshots\") frame_screenshots(rose_gold: true) Parameters Key Description Default white Use white device frames silver Use white device frames. Alias for :white rose_gold Use rose gold device frames. Alias for :rose_gold gold Use gold device frames. Alias for :gold force_device_type Forces a given device type, useful for Mac screenshots, as their sizes vary use_legacy_iphone5s Use iPhone 5s instead of iPhone SE frames false use_legacy_iphone6s Use iPhone 6s frames instead of iPhone 7 frames false use_legacy_iphone7 Use iPhone 7 frames instead of iPhone 8 frames false use_legacy_iphonex Use iPhone X instead of iPhone XS frames false use_legacy_iphonexr Use iPhone XR instead of iPhone 11 frames false use_legacy_iphonexs Use iPhone XS instead of iPhone 11 Pro frames false use_legacy_iphonexsmax Use iPhone XS Max instead of iPhone 11 Pro Max frames false force_orientation_block [Advanced] A block to customize your screenshots' device orientation * debug_mode Output debug information in framed screenshots false resume Resume frameit instead of reprocessing all screenshots false use_platform Choose a platform, the valid options are IOS, ANDROID and ANY (default is either general platform defined in the fastfile or IOS to ensure backward compatibility) * path The path to the directory containing the screenshots * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action frame_screenshots CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run frame_screenshots To pass parameters, make use of the : symbol, for example fastlane run frame_screenshots parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Frame screenshots"},{"location":"generated/actions/frame_screenshots/#frame_screenshots","text":"Adds device frames around all screenshots (via frameit )","title":"frame_screenshots"},{"location":"generated/actions/frame_screenshots/#features","text":"","title":"Features"},{"location":"generated/actions/frame_screenshots/#frame-screenshot","text":"Put a gorgeous device frame around your iOS, macOS and Android screenshots just by running one simple command. Support for: iPhone, iPad and Mac Set of Android devices Portrait and Landscape modes Several device frame colors The complete and updated list of supported devices and colors can be found here Here is a nice gif, that shows frameit in action:","title":"Frame screenshot"},{"location":"generated/actions/frame_screenshots/#advanced-features","text":"Put framed screenshot on colored background, define padding add text above or under framed screenshot keyword + text choose text font and color multi line text \"intelligent\" positioning of text that always looks good(ish)","title":"Advanced Features"},{"location":"generated/actions/frame_screenshots/#results","text":"","title":"Results"},{"location":"generated/actions/frame_screenshots/#usage","text":"","title":"Usage"},{"location":"generated/actions/frame_screenshots/#basic-usage","text":"Why should you have to use Photoshop, just to add a frame around your screenshots? Just navigate to your folder of screenshots and use the following command (iOS and Mac OS are default platforms for backward compatibility): fastlane frameit To frame Android screenshots: fastlane frameit android To use the silver version of the frames: fastlane frameit silver To download the latest frames fastlane frameit download_frames Note: When using frameit without titles on top, the screenshots will have the full resolution, which means they can't be uploaded to the App Store directly. They are supposed to be used for websites, print media and emails. Check out the section below to use the screenshots for the App Store.","title":"Basic Usage"},{"location":"generated/actions/frame_screenshots/#advanced-usage-optional","text":"","title":"Advanced Usage (optional)"},{"location":"generated/actions/frame_screenshots/#mac","text":"With frameit it's possible to also frame macOS Application screenshots. You have to provide the following: A (relative) path to a background image file, which should contain both the background and the Mac. The offset information so frameit knows where to position your screenshot on the background : offset : A string that specifies the horizontal and vertical offset in pixels, with respect to the top left corner of the background image. The syntax is \"++\" , e.g. \"+200+150\" . titleHeight : The height in pixels that should be used for the title.","title":"Mac"},{"location":"generated/actions/frame_screenshots/#example_1","text":"{ \"default\": { \"title\": { \"color\": \"#545454\" }, \"background\": \"Mac.jpg\", \"offset\": { \"offset\": \"+676+479\", \"titleHeight\": 320 } }, \"data\": [ { \"filter\": \"Brainstorming\", \"keyword\": { \"color\": \"#d21559\" } } ] } Check out the MindNode example project .","title":"Example"},{"location":"generated/actions/frame_screenshots/#tips","text":"","title":"Tips"},{"location":"generated/actions/frame_screenshots/#generate-localized-screenshots","text":"Check out snapshot to automatically generate screenshots using UI Automation .","title":"Generate localized screenshots"},{"location":"generated/actions/frame_screenshots/#resume-framing","text":"Framing screenshots is a slow operation. In case you need to resume framing, or just frame a couple updated screenshots again, you can rely on the --resume flag. Only screenshots which have not been framed yet \u2013 or for which there isn't an up-to-date framed image \u2013 will be framed. This feature uses the file modification dates and will reframe screenshots if the screenshot is newer than the framed file.","title":"Resume framing"},{"location":"generated/actions/frame_screenshots/#upload-screenshots","text":"Use deliver to upload iOS screenshots to App Store Connect, or supply to upload Android screenshots to Play Store completely automatically \ud83d\ude80","title":"Upload screenshots"},{"location":"generated/actions/frame_screenshots/#use-a-clean-status-bar","text":"You can set override_status_bar to true in snapshot to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available.","title":"Use a clean status bar"},{"location":"generated/actions/frame_screenshots/#gray-artifacts-around-text","text":"If you run into any quality issues, like having a border around the font, it usually helps to just re-install imagemagick . You can do so by running brew uninstall imagemagick brew install imagemagick","title":"Gray artifacts around text"},{"location":"generated/actions/frame_screenshots/#uninstall","text":"gem uninstall fastlane rm -rf ~/.frameit frame_screenshots Supported platforms ios, android, mac Author @KrauseFx","title":"Uninstall"},{"location":"generated/actions/frame_screenshots/#6-examples","text":"frame_screenshots frameit # alias for \"frame_screenshots\" frame_screenshots(use_platform: \"ANDROID\") frame_screenshots(silver: true) frame_screenshots(path: \"/screenshots\") frame_screenshots(rose_gold: true)","title":"6 Examples"},{"location":"generated/actions/frame_screenshots/#parameters","text":"Key Description Default white Use white device frames silver Use white device frames. Alias for :white rose_gold Use rose gold device frames. Alias for :rose_gold gold Use gold device frames. Alias for :gold force_device_type Forces a given device type, useful for Mac screenshots, as their sizes vary use_legacy_iphone5s Use iPhone 5s instead of iPhone SE frames false use_legacy_iphone6s Use iPhone 6s frames instead of iPhone 7 frames false use_legacy_iphone7 Use iPhone 7 frames instead of iPhone 8 frames false use_legacy_iphonex Use iPhone X instead of iPhone XS frames false use_legacy_iphonexr Use iPhone XR instead of iPhone 11 frames false use_legacy_iphonexs Use iPhone XS instead of iPhone 11 Pro frames false use_legacy_iphonexsmax Use iPhone XS Max instead of iPhone 11 Pro Max frames false force_orientation_block [Advanced] A block to customize your screenshots' device orientation * debug_mode Output debug information in framed screenshots false resume Resume frameit instead of reprocessing all screenshots false use_platform Choose a platform, the valid options are IOS, ANDROID and ANY (default is either general platform defined in the fastfile or IOS to ensure backward compatibility) * path The path to the directory containing the screenshots * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/frame_screenshots/#documentation","text":"To show the documentation in your terminal, run fastlane action frame_screenshots","title":"Documentation"},{"location":"generated/actions/frame_screenshots/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run frame_screenshots To pass parameters, make use of the : symbol, for example fastlane run frame_screenshots parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/frame_screenshots/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/frameit/","text":"frameit Alias for the frame_screenshots action Easily put your screenshots into the right device frames frameit allows you to put a gorgeous device frame around your iOS, macOS and Android screenshots just by running one simple command. Use frameit to prepare perfect screenshots for the App Store, your website, QA or emails. Features \u2022 Usage \u2022 Tips frameit is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Features Frame screenshot Put a gorgeous device frame around your iOS, macOS and Android screenshots just by running one simple command. Support for: iPhone, iPad and Mac Set of Android devices Portrait and Landscape modes Several device frame colors The complete and updated list of supported devices and colors can be found here Here is a nice gif, that shows frameit in action: Advanced Features Put framed screenshot on colored background, define padding add text above or under framed screenshot keyword + text choose text font and color multi line text \"intelligent\" positioning of text that always looks good(ish) Results The frameit 2.0 update was kindly sponsored by MindNode , seen in the screenshots above. The first time that frameit is executed the frames will be downloaded automatically. Originally the frames are coming from Facebook frameset and they are kept on this repo . More information about this process and how to update the frames can be found here Usage Basic Usage Why should you have to use Photoshop, just to add a frame around your screenshots? Just navigate to your folder of screenshots and use the following command (iOS and Mac OS are default platforms for backward compatibility): fastlane frameit To frame Android screenshots: fastlane frameit android To use the silver version of the frames: fastlane frameit silver To download the latest frames fastlane frameit download_frames Note: When using frameit without titles on top, the screenshots will have the full resolution, which means they can't be uploaded to the App Store directly. They are supposed to be used for websites, print media and emails. Check out the section below to use the screenshots for the App Store. Advanced Usage (optional) Text and Background With frameit it's possible to add a custom background and text below or above the framed screenshots in fonts and colors you define. A working example can be found in the fastlane examples project. Framefile.json The Framefile allows to define general and screenshot specific information. It has the following general JSON structure: { \"device_frame_version\": \"latest\", \"default\": { ... }, \"data\": [ ... ] } General parameters The general parameters are defined in the default key and can be: Key Description Default value background The background that should be used for the framed screenshot. Specify the (relative) path to the image file (e.g. *.jpg ). This parameter is mandatory. NA keyword An object that contains up to 3 keys to describe the optional keyword. See table below. NA title An object that contains up to 3 keys to describe the mandatory title. See table below. NA stack_title Specifies whether frameit should display the keyword above the title when both keyword and title are defined. If it is false, the title and keyword will be displayed side by side when both keyword and title are defined. false title_below_image Specifies whether frameit should place the title and optional keyword below the device frame. If it is false, it will be placed above the device frame. false show_complete_frame Specifies whether frameit should shrink the device frame so that it is completely shown in the framed screenshot. If it is false, clipping of the device frame might occur at the bottom (when title_below_image is false ) or top (when title_below_image is true ) of the framed screenshot. false padding The content of the framed screenshot will be resized to match the specified padding around all edges. The vertical padding is also applied between the text and the top or bottom (depending on title_below_image ) of the device frame. There are 3 different options of specifying the padding: 1. Default: An integer value that defines both horizontal and vertical padding in pixels. 2. A string that defines (different) padding values in pixels for horizontal and vertical padding. The syntax is \"x\" , e.g. \"30x60\" . 3. A string that defines (different) padding values in percentage for horizontal and vertical padding. The syntax is \"%x%\" , e.g. \"5%x10%\" . Note: The percentage is calculated from the smallest image dimension (height or width). A combination of option 2 and 3 is possible, e.g. \"5%x40\" . 50 interline_spacing Specifies whether frameit should add or subtract this many pixels between the individual lines of text. This only applies to a multi-line title and/or keyword to expand or squash together the individual lines of text. 0 font_scale_factor Specifies whether frameit should increase or decrease the font size of the text. Is ignored for keyword or title , if font_size is specified. 0.1 frame Overrides the color of the frame to be used. (Valid values are BLACK , WHITE , GOLD and ROSE_GOLD ) NA title_min_height Specifies a height always reserved for the title. Value can be a percentage of the height or an absolute value. The device will be placed below (or above) this area. Convenient to ensure the device top (or bottom) will be consistently placed at the same height on the different screenshots. NA use_platform Overrides the platform used for the screenshot. Valid values are IOS , ANDROID and ANY . IOS force_device_type Forces a specific device. Valid values are: Huawei P8, Motorola Moto E, Motorola Moto G, Nexus 4, Nexus 5X, Nexus 6P, Nexus 9, Samsung Galaxy Grand Prime, Samsung Galaxy Note 5, Samsung Galaxy S Duos, Samsung Galaxy S3, Samsung Galaxy S5, Samsung Galaxy S7, Samsung Galaxy S8, Samsung Galaxy S9, iPhone 5s, iPhone 5c, iPhone SE, iPhone 6s, iPhone 6s Plus, iPhone 7, iPhone 7 Plus, iPhone 8, iPhone 8 Plus, iPhone X, iPhone XS, iPhone XR, iPhone XS Max, iPad Air 2, iPad Mini 4, iPad Pro, MacBook, Google Pixel 3, Google Pixel 3 XL, HTC One A9, HTC One M8 NA Specific parameters The screenshot specific parameters are related to the keyword and title texts. These are defined in the data key. This is an array with the following keys for each screenshot: Key Description filter This is mandatory to link the individual configuration to the screenshot, based on part of the file name. Example: If a screenshot is named iPhone 8-Brainstorming.png you can use value Brainstorming for filter . If there are more than one filter matching an entry, they will all be applied in order (which means that the last one has the highest precedence). All other keys from that array element will only be applied on this specific screenshot. keyword Similar use as in default , except that parameter text can be used here because it is screenshot specific. title Similar use as in default , except that parameter text can be used here because it is screenshot specific. frame Overrides the color of the frame to be used. (Valid values are BLACK , WHITE , GOLD and ROSE_GOLD ) use_platform Overrides the platform used for the screenshot. Valid values are IOS , ANDROID and ANY . force_device_type Forces a specific device. Valid values are the same as for the general parameter. Framefile keyword and title parameters The keyword and title parameters are both used in default and data . They both consist of the following optional keys: Key Description Default value color The font color for the text. Specify a HEX/HTML color code. #000000 (black) font The font family for the text. Specify the (relative) path to the font file (e.g. an OpenType Font). The default imagemagick font, which is system dependent. font_size The font size for the text specified in points. If not specified or 0 , font will be scaled automatically to fit the available space. frameit still shrinks the text, if it would not fit. NA font_weight The font weight for the text . Specify an integer value (e.g. 900). NA text The text that should be used for the keyword or title . Note: If you want to use localised text, use .strings files . NA Example { \"device_frame_version\": \"latest\", \"default\": { \"keyword\": { \"font\": \"./fonts/MyFont-Rg.otf\" }, \"title\": { \"font\": \"./fonts/MyFont-Th.otf\", \"font_size\": 128, \"color\": \"#545454\" }, \"background\": \"./background.jpg\", \"padding\": 50, \"show_complete_frame\": false, \"stack_title\" : false, \"title_below_image\": true, \"frame\": \"WHITE\", \"use_platform\": \"IOS\" }, \"data\": [ { \"filter\": \"Brainstorming\", \"keyword\": { \"color\": \"#d21559\" } }, { \"filter\": \"Organizing\", \"keyword\": { \"color\": \"#feb909\" }, \"frame\": \"ROSE_GOLD\" }, { \"filter\": \"Sharing\", \"keyword\": { \"color\": \"#aa4dbc\" } }, { \"filter\": \"Styling\", \"keyword\": { \"color\": \"#31bb48\" } }, { \"filter\": \"Android\", \"use_platform\": \"ANDROID\" } ] } You can find a more complex configuration to also support Chinese, Japanese and Korean languages. The Framefile.json should be in the screenshots folder, as seen in the example . .strings files To define the title and optionally the keyword, put two .strings files into the language folder (e.g. en-US in the example project ) The keyword.strings and title.strings are standard .strings file you already use for your iOS apps, making it easy to use your existing translation service to get localized titles. Notes These .strings files MUST be utf-8 (UTF-8) or utf-16 encoded (UTF-16 BE with BOM). They also must begin with an empty line. If you are having trouble see issue #1740 You MUST provide a background if you want titles. frameit will not add the titles if a background is not specified. Screenshot orientation By default frameit adds a frame to your screenshot based on an orientation you took it. For a portrait (vertical orientation) it is going to add portrait frame and for a landscape (horizontal orientation) - landscape left (= Home button on the left side ). One way to override the default behavior is editing the file name by adding force_landscaperight to the end. force_orientation_block If the default behavior doesn't fit your needs and you don't want or can't rename your screenshots, you can customize frameit 's orientation behavior by setting a force_orientation_block parameter. The valid values are: :landscape_left (home button on the left side), :landscape_right (home button on the right side), :portrait (home button on the bottom), nil (home button on the right side). Examples # It matches the filename to the framed device orientation frameit( path: \"./fastlane/screenshots\", force_orientation_block: proc do |filename| case filename when \"iPad Pro (12.9-inch)-01LoginScreen\" :landscape_right when \"iPhone 6 Plus-01LoginScreen\" :portrait # and so on end end ) # It frames the screenshots in landscape right whenever the filename contains `landscape` word frameit( silver: true, path: \"./fastlane/screenshots\", force_orientation_block: proc do |filename| f = filename.downcase if f.include?(\"landscape\") :landscape_right end end ) Mac With frameit it's possible to also frame macOS Application screenshots. You have to provide the following: A (relative) path to a background image file, which should contain both the background and the Mac. The offset information so frameit knows where to position your screenshot on the background : offset : A string that specifies the horizontal and vertical offset in pixels, with respect to the top left corner of the background image. The syntax is \"++\" , e.g. \"+200+150\" . titleHeight : The height in pixels that should be used for the title. Example { \"default\": { \"title\": { \"color\": \"#545454\" }, \"background\": \"Mac.jpg\", \"offset\": { \"offset\": \"+676+479\", \"titleHeight\": 320 } }, \"data\": [ { \"filter\": \"Brainstorming\", \"keyword\": { \"color\": \"#d21559\" } } ] } Check out the MindNode example project . Tips Generate localized screenshots Check out snapshot to automatically generate screenshots using UI Automation . Resume framing Framing screenshots is a slow operation. In case you need to resume framing, or just frame a couple updated screenshots again, you can rely on the --resume flag. Only screenshots which have not been framed yet \u2013 or for which there isn't an up-to-date framed image \u2013 will be framed. This feature uses the file modification dates and will reframe screenshots if the screenshot is newer than the framed file. Upload screenshots Use deliver to upload iOS screenshots to App Store Connect, or supply to upload Android screenshots to Play Store completely automatically \ud83d\ude80 Use a clean status bar You can set override_status_bar to true in snapshot to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available. Examples # Sets the time to 9:41AM with full battery and reception, with the default carrier name: Carrier capture_ios_screenshots( override_status_bar: true ) # Set the time to 9:41AM, battery at 75% and charging, on the TELUS LTE network capture_ios_screenshots( override_status_bar: true, override_status_bar_arguments: \"--time 9:41 --dataNetwork lte --cellularMode active --cellularBars 4 --batteryState charging --batteryLevel 75 --operatorName TELUS\" ) Gray artifacts around text If you run into any quality issues, like having a border around the font, it usually helps to just re-install imagemagick . You can do so by running brew uninstall imagemagick brew install imagemagick Uninstall gem uninstall fastlane rm -rf ~/.frameit frameit Supported platforms ios, android, mac Author @KrauseFx 6 Examples frame_screenshots frameit # alias for \"frame_screenshots\" frame_screenshots(use_platform: \"ANDROID\") frame_screenshots(silver: true) frame_screenshots(path: \"/screenshots\") frame_screenshots(rose_gold: true) Parameters Key Description Default white Use white device frames silver Use white device frames. Alias for :white rose_gold Use rose gold device frames. Alias for :rose_gold gold Use gold device frames. Alias for :gold force_device_type Forces a given device type, useful for Mac screenshots, as their sizes vary use_legacy_iphone5s Use iPhone 5s instead of iPhone SE frames false use_legacy_iphone6s Use iPhone 6s frames instead of iPhone 7 frames false use_legacy_iphone7 Use iPhone 7 frames instead of iPhone 8 frames false use_legacy_iphonex Use iPhone X instead of iPhone XS frames false use_legacy_iphonexr Use iPhone XR instead of iPhone 11 frames false use_legacy_iphonexs Use iPhone XS instead of iPhone 11 Pro frames false use_legacy_iphonexsmax Use iPhone XS Max instead of iPhone 11 Pro Max frames false force_orientation_block [Advanced] A block to customize your screenshots' device orientation * debug_mode Output debug information in framed screenshots false resume Resume frameit instead of reprocessing all screenshots false use_platform Choose a platform, the valid options are IOS, ANDROID and ANY (default is either general platform defined in the fastfile or IOS to ensure backward compatibility) * path The path to the directory containing the screenshots * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action frameit CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run frameit To pass parameters, make use of the : symbol, for example fastlane run frameit parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Frameit"},{"location":"generated/actions/frameit/#frameit","text":"Alias for the frame_screenshots action","title":"frameit"},{"location":"generated/actions/frameit/#features","text":"","title":"Features"},{"location":"generated/actions/frameit/#frame-screenshot","text":"Put a gorgeous device frame around your iOS, macOS and Android screenshots just by running one simple command. Support for: iPhone, iPad and Mac Set of Android devices Portrait and Landscape modes Several device frame colors The complete and updated list of supported devices and colors can be found here Here is a nice gif, that shows frameit in action:","title":"Frame screenshot"},{"location":"generated/actions/frameit/#advanced-features","text":"Put framed screenshot on colored background, define padding add text above or under framed screenshot keyword + text choose text font and color multi line text \"intelligent\" positioning of text that always looks good(ish)","title":"Advanced Features"},{"location":"generated/actions/frameit/#results","text":"","title":"Results"},{"location":"generated/actions/frameit/#usage","text":"","title":"Usage"},{"location":"generated/actions/frameit/#basic-usage","text":"Why should you have to use Photoshop, just to add a frame around your screenshots? Just navigate to your folder of screenshots and use the following command (iOS and Mac OS are default platforms for backward compatibility): fastlane frameit To frame Android screenshots: fastlane frameit android To use the silver version of the frames: fastlane frameit silver To download the latest frames fastlane frameit download_frames Note: When using frameit without titles on top, the screenshots will have the full resolution, which means they can't be uploaded to the App Store directly. They are supposed to be used for websites, print media and emails. Check out the section below to use the screenshots for the App Store.","title":"Basic Usage"},{"location":"generated/actions/frameit/#advanced-usage-optional","text":"","title":"Advanced Usage (optional)"},{"location":"generated/actions/frameit/#mac","text":"With frameit it's possible to also frame macOS Application screenshots. You have to provide the following: A (relative) path to a background image file, which should contain both the background and the Mac. The offset information so frameit knows where to position your screenshot on the background : offset : A string that specifies the horizontal and vertical offset in pixels, with respect to the top left corner of the background image. The syntax is \"++\" , e.g. \"+200+150\" . titleHeight : The height in pixels that should be used for the title.","title":"Mac"},{"location":"generated/actions/frameit/#example_1","text":"{ \"default\": { \"title\": { \"color\": \"#545454\" }, \"background\": \"Mac.jpg\", \"offset\": { \"offset\": \"+676+479\", \"titleHeight\": 320 } }, \"data\": [ { \"filter\": \"Brainstorming\", \"keyword\": { \"color\": \"#d21559\" } } ] } Check out the MindNode example project .","title":"Example"},{"location":"generated/actions/frameit/#tips","text":"","title":"Tips"},{"location":"generated/actions/frameit/#generate-localized-screenshots","text":"Check out snapshot to automatically generate screenshots using UI Automation .","title":"Generate localized screenshots"},{"location":"generated/actions/frameit/#resume-framing","text":"Framing screenshots is a slow operation. In case you need to resume framing, or just frame a couple updated screenshots again, you can rely on the --resume flag. Only screenshots which have not been framed yet \u2013 or for which there isn't an up-to-date framed image \u2013 will be framed. This feature uses the file modification dates and will reframe screenshots if the screenshot is newer than the framed file.","title":"Resume framing"},{"location":"generated/actions/frameit/#upload-screenshots","text":"Use deliver to upload iOS screenshots to App Store Connect, or supply to upload Android screenshots to Play Store completely automatically \ud83d\ude80","title":"Upload screenshots"},{"location":"generated/actions/frameit/#use-a-clean-status-bar","text":"You can set override_status_bar to true in snapshot to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available.","title":"Use a clean status bar"},{"location":"generated/actions/frameit/#gray-artifacts-around-text","text":"If you run into any quality issues, like having a border around the font, it usually helps to just re-install imagemagick . You can do so by running brew uninstall imagemagick brew install imagemagick","title":"Gray artifacts around text"},{"location":"generated/actions/frameit/#uninstall","text":"gem uninstall fastlane rm -rf ~/.frameit frameit Supported platforms ios, android, mac Author @KrauseFx","title":"Uninstall"},{"location":"generated/actions/frameit/#6-examples","text":"frame_screenshots frameit # alias for \"frame_screenshots\" frame_screenshots(use_platform: \"ANDROID\") frame_screenshots(silver: true) frame_screenshots(path: \"/screenshots\") frame_screenshots(rose_gold: true)","title":"6 Examples"},{"location":"generated/actions/frameit/#parameters","text":"Key Description Default white Use white device frames silver Use white device frames. Alias for :white rose_gold Use rose gold device frames. Alias for :rose_gold gold Use gold device frames. Alias for :gold force_device_type Forces a given device type, useful for Mac screenshots, as their sizes vary use_legacy_iphone5s Use iPhone 5s instead of iPhone SE frames false use_legacy_iphone6s Use iPhone 6s frames instead of iPhone 7 frames false use_legacy_iphone7 Use iPhone 7 frames instead of iPhone 8 frames false use_legacy_iphonex Use iPhone X instead of iPhone XS frames false use_legacy_iphonexr Use iPhone XR instead of iPhone 11 frames false use_legacy_iphonexs Use iPhone XS instead of iPhone 11 Pro frames false use_legacy_iphonexsmax Use iPhone XS Max instead of iPhone 11 Pro Max frames false force_orientation_block [Advanced] A block to customize your screenshots' device orientation * debug_mode Output debug information in framed screenshots false resume Resume frameit instead of reprocessing all screenshots false use_platform Choose a platform, the valid options are IOS, ANDROID and ANY (default is either general platform defined in the fastfile or IOS to ensure backward compatibility) * path The path to the directory containing the screenshots * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/frameit/#documentation","text":"To show the documentation in your terminal, run fastlane action frameit","title":"Documentation"},{"location":"generated/actions/frameit/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run frameit To pass parameters, make use of the : symbol, for example fastlane run frameit parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/frameit/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/gcovr/","text":"gcovr Runs test coverage reports for your Xcode project Generate summarized code coverage reports using gcovr gcovr Supported platforms ios Author @dtrenz 1 Example gcovr( html: true, html_details: true, output: \"./code-coverage/report.html\" ) Documentation To show the documentation in your terminal, run fastlane action gcovr CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run gcovr To pass parameters, make use of the : symbol, for example fastlane run gcovr parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Gcovr"},{"location":"generated/actions/gcovr/#gcovr","text":"Runs test coverage reports for your Xcode project Generate summarized code coverage reports using gcovr gcovr Supported platforms ios Author @dtrenz","title":"gcovr"},{"location":"generated/actions/gcovr/#1-example","text":"gcovr( html: true, html_details: true, output: \"./code-coverage/report.html\" )","title":"1 Example"},{"location":"generated/actions/gcovr/#documentation","text":"To show the documentation in your terminal, run fastlane action gcovr","title":"Documentation"},{"location":"generated/actions/gcovr/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run gcovr To pass parameters, make use of the : symbol, for example fastlane run gcovr parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/gcovr/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/get_build_number/","text":"get_build_number Get the build number of your project This action will return the current build number set on your project. You first have to set up your Xcode project, if you haven't done it already: https://developer.apple.com/library/ios/qa/qa1827/_index.html . get_build_number Supported platforms ios, mac Author @Liquidsoul 1 Example build_number = get_build_number(xcodeproj: \"Project.xcodeproj\") Parameters Key Description Default xcodeproj optional, you must specify the path to your main Xcode project if it is not in the project root directory hide_error_when_versioning_disabled Used during fastlane init to hide the error message false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_build_number action generates the following Lane Variables: SharedValue Description SharedValues::BUILD_NUMBER The build number To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action get_build_number CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_build_number To pass parameters, make use of the : symbol, for example fastlane run get_build_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Get build number"},{"location":"generated/actions/get_build_number/#get_build_number","text":"Get the build number of your project This action will return the current build number set on your project. You first have to set up your Xcode project, if you haven't done it already: https://developer.apple.com/library/ios/qa/qa1827/_index.html . get_build_number Supported platforms ios, mac Author @Liquidsoul","title":"get_build_number"},{"location":"generated/actions/get_build_number/#1-example","text":"build_number = get_build_number(xcodeproj: \"Project.xcodeproj\")","title":"1 Example"},{"location":"generated/actions/get_build_number/#parameters","text":"Key Description Default xcodeproj optional, you must specify the path to your main Xcode project if it is not in the project root directory hide_error_when_versioning_disabled Used during fastlane init to hide the error message false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/get_build_number/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_build_number action generates the following Lane Variables: SharedValue Description SharedValues::BUILD_NUMBER The build number To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/get_build_number/#documentation","text":"To show the documentation in your terminal, run fastlane action get_build_number","title":"Documentation"},{"location":"generated/actions/get_build_number/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_build_number To pass parameters, make use of the : symbol, for example fastlane run get_build_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/get_build_number/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/get_build_number_repository/","text":"get_build_number_repository Get the build number from the current repository This action will get the build number according to what the SCM HEAD reports. Currently supported SCMs are svn (uses root revision), git-svn (uses svn revision), git (uses short hash) and mercurial (uses short hash or revision number). There is an option, :use_hg_revision_number , which allows to use mercurial revision number instead of hash. get_build_number_repository Supported platforms ios, mac Author @bartoszj, @pbrooks, @armadsen Returns The build number from the current repository 1 Example get_build_number_repository Parameters Key Description Default use_hg_revision_number Use hg revision number instead of hash (ignored for non-hg repos) false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_build_number_repository action generates the following Lane Variables: SharedValue Description SharedValues::BUILD_NUMBER_REPOSITORY The build number from the current repository To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action get_build_number_repository CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_build_number_repository To pass parameters, make use of the : symbol, for example fastlane run get_build_number_repository parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Get build number repository"},{"location":"generated/actions/get_build_number_repository/#get_build_number_repository","text":"Get the build number from the current repository This action will get the build number according to what the SCM HEAD reports. Currently supported SCMs are svn (uses root revision), git-svn (uses svn revision), git (uses short hash) and mercurial (uses short hash or revision number). There is an option, :use_hg_revision_number , which allows to use mercurial revision number instead of hash. get_build_number_repository Supported platforms ios, mac Author @bartoszj, @pbrooks, @armadsen Returns The build number from the current repository","title":"get_build_number_repository"},{"location":"generated/actions/get_build_number_repository/#1-example","text":"get_build_number_repository","title":"1 Example"},{"location":"generated/actions/get_build_number_repository/#parameters","text":"Key Description Default use_hg_revision_number Use hg revision number instead of hash (ignored for non-hg repos) false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/get_build_number_repository/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_build_number_repository action generates the following Lane Variables: SharedValue Description SharedValues::BUILD_NUMBER_REPOSITORY The build number from the current repository To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/get_build_number_repository/#documentation","text":"To show the documentation in your terminal, run fastlane action get_build_number_repository","title":"Documentation"},{"location":"generated/actions/get_build_number_repository/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_build_number_repository To pass parameters, make use of the : symbol, for example fastlane run get_build_number_repository parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/get_build_number_repository/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/get_certificates/","text":"get_certificates Create new iOS code signing certificates (via cert ) Why? \u2022 Usage \u2022 How does it work? \u2022 Tips cert is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. In the gif we used cert && sigh , which will first create an iOS code signing certificate and then a provisioning profile for your app if cert succeeded. Usage Note : It is recommended to use match according to the codesigning.guide for generating and maintaining your certificates. Use cert directly only if you want full control over what's going on and know more about codesigning. fastlane cert This will check if any of the available signing certificates is installed on your local machine. Only if a new certificate needs to be created, cert will Create a new private key Create a new signing request Generate, downloads and installs the certificate Import all the generated files into your Keychain cert will never revoke your existing certificates. If you can't create any more certificates, cert will raise an exception, which means, you have to revoke one of the existing certificates to make room for a new one. You can pass your Apple ID: fastlane cert -u cert@krausefx.com For a list of available commands run fastlane action cert Keep in mind, there is no way for cert to download existing certificates + private keys from the Apple Developer Portal, as the private key never leaves your computer. Environment Variables Run fastlane action cert to get a list of all available environment variables. Use with sigh cert becomes really interesting when used in fastlane in combination with sigh . Update your Fastfile to contain the following code: lane :beta do cert sigh(force: true) end force: true will make sure to re-generate the provisioning profile on each run. This will result in sigh always using the correct signing certificate, which is installed on the local machine. How is my password stored? cert uses the password manager from fastlane . Take a look the CredentialsManager README for more information. Tips Use 'ProvisionQL' for advanced Quick Look in Finder Install ProvisionQL . It will show you mobileprovision files like this: get_certificates Supported platforms ios Author @KrauseFx 3 Examples get_certificates cert # alias for \"get_certificates\" get_certificates( development: true, username: \"user@email.com\" ) Parameters Key Description Default development Create a development certificate instead of a distribution one false type Create specific certificate type (takes precedence over :development) force Create a certificate even if an existing certificate exists false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * filename The filename of certificate to store output_path The path to a directory in which all certificates and private keys should be stored . keychain_path Path to a custom keychain * keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false platform Set the provisioning profile's platform (ios, macos, tvos) ios * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_certificates action generates the following Lane Variables: SharedValue Description SharedValues::CERT_FILE_PATH The path to the certificate SharedValues::CERT_CERTIFICATE_ID The id of the certificate To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action get_certificates CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_certificates To pass parameters, make use of the : symbol, for example fastlane run get_certificates parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Get certificates"},{"location":"generated/actions/get_certificates/#get_certificates","text":"Create new iOS code signing certificates (via cert ) Why? \u2022 Usage \u2022 How does it work? \u2022 Tips","title":"get_certificates"},{"location":"generated/actions/get_certificates/#usage","text":"Note : It is recommended to use match according to the codesigning.guide for generating and maintaining your certificates. Use cert directly only if you want full control over what's going on and know more about codesigning. fastlane cert This will check if any of the available signing certificates is installed on your local machine. Only if a new certificate needs to be created, cert will Create a new private key Create a new signing request Generate, downloads and installs the certificate Import all the generated files into your Keychain cert will never revoke your existing certificates. If you can't create any more certificates, cert will raise an exception, which means, you have to revoke one of the existing certificates to make room for a new one. You can pass your Apple ID: fastlane cert -u cert@krausefx.com For a list of available commands run fastlane action cert Keep in mind, there is no way for cert to download existing certificates + private keys from the Apple Developer Portal, as the private key never leaves your computer.","title":"Usage"},{"location":"generated/actions/get_certificates/#environment-variables","text":"Run fastlane action cert to get a list of all available environment variables.","title":"Environment Variables"},{"location":"generated/actions/get_certificates/#use-with-sigh","text":"cert becomes really interesting when used in fastlane in combination with sigh . Update your Fastfile to contain the following code: lane :beta do cert sigh(force: true) end force: true will make sure to re-generate the provisioning profile on each run. This will result in sigh always using the correct signing certificate, which is installed on the local machine.","title":"Use with sigh"},{"location":"generated/actions/get_certificates/#how-is-my-password-stored","text":"cert uses the password manager from fastlane . Take a look the CredentialsManager README for more information.","title":"How is my password stored?"},{"location":"generated/actions/get_certificates/#tips","text":"","title":"Tips"},{"location":"generated/actions/get_certificates/#use-provisionql-for-advanced-quick-look-in-finder","text":"Install ProvisionQL . It will show you mobileprovision files like this: get_certificates Supported platforms ios Author @KrauseFx","title":"Use 'ProvisionQL' for advanced Quick Look in Finder"},{"location":"generated/actions/get_certificates/#3-examples","text":"get_certificates cert # alias for \"get_certificates\" get_certificates( development: true, username: \"user@email.com\" )","title":"3 Examples"},{"location":"generated/actions/get_certificates/#parameters","text":"Key Description Default development Create a development certificate instead of a distribution one false type Create specific certificate type (takes precedence over :development) force Create a certificate even if an existing certificate exists false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * filename The filename of certificate to store output_path The path to a directory in which all certificates and private keys should be stored . keychain_path Path to a custom keychain * keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false platform Set the provisioning profile's platform (ios, macos, tvos) ios * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/get_certificates/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_certificates action generates the following Lane Variables: SharedValue Description SharedValues::CERT_FILE_PATH The path to the certificate SharedValues::CERT_CERTIFICATE_ID The id of the certificate To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/get_certificates/#documentation","text":"To show the documentation in your terminal, run fastlane action get_certificates","title":"Documentation"},{"location":"generated/actions/get_certificates/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_certificates To pass parameters, make use of the : symbol, for example fastlane run get_certificates parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/get_certificates/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/get_github_release/","text":"get_github_release This will verify if a given release version is available on GitHub This will return all information about a release. For example: { \"url\"=>\"https://api.github.com/repos/KrauseFx/fastlane/releases/1537713\", \"assets_url\"=>\"https://api.github.com/repos/KrauseFx/fastlane/releases/1537713/assets\", \"upload_url\"=>\"https://uploads.github.com/repos/KrauseFx/fastlane/releases/1537713/assets{?name}\", \"html_url\"=>\"https://github.com/fastlane/fastlane/releases/tag/1.8.0\", \"id\"=>1537713, \"tag_name\"=>\"1.8.0\", \"target_commitish\"=>\"master\", \"name\"=>\"1.8.0 Switch Lanes & Pass Parameters\", \"draft\"=>false, \"author\"=> {\"login\"=>\"KrauseFx\", \"id\"=>869950, \"avatar_url\"=>\"https://avatars.githubusercontent.com/u/869950?v=3\", \"gravatar_id\"=>\"\", \"url\"=>\"https://api.github.com/users/KrauseFx\", \"html_url\"=>\"https://github.com/fastlane\", \"followers_url\"=>\"https://api.github.com/users/KrauseFx/followers\", \"following_url\"=>\"https://api.github.com/users/KrauseFx/following{/other_user}\", \"gists_url\"=>\"https://api.github.com/users/KrauseFx/gists{/gist_id}\", \"starred_url\"=>\"https://api.github.com/users/KrauseFx/starred{/owner}{/repo}\", \"subscriptions_url\"=>\"https://api.github.com/users/KrauseFx/subscriptions\", \"organizations_url\"=>\"https://api.github.com/users/KrauseFx/orgs\", \"repos_url\"=>\"https://api.github.com/users/KrauseFx/repos\", \"events_url\"=>\"https://api.github.com/users/KrauseFx/events{/privacy}\", \"received_events_url\"=>\"https://api.github.com/users/KrauseFx/received_events\", \"type\"=>\"User\", \"site_admin\"=>false}, \"prerelease\"=>false, \"created_at\"=>\"2015-07-14T23:33:01Z\", \"published_at\"=>\"2015-07-14T23:44:10Z\", \"assets\"=>[], \"tarball_url\"=>\"https://api.github.com/repos/KrauseFx/fastlane/tarball/1.8.0\", \"zipball_url\"=>\"https://api.github.com/repos/KrauseFx/fastlane/zipball/1.8.0\", \"body\"=> ...Markdown... \"This is one of the biggest updates of _fastlane_ yet\" } get_github_release Supported platforms ios, android, mac Author @KrauseFx, @czechboy0, @jaleksynas, @tommeier 1 Example release = get_github_release(url: \"fastlane/fastlane\", version: \"1.0.0\") puts release[\"name\"] Parameters Key Description Default url The path to your repo, e.g. 'KrauseFx/fastlane' server_url The server url. e.g. 'https://your.github.server/api/v3' (Default: 'https://api.github.com') https://api.github.com version The version tag of the release to check api_token GitHub Personal Token (required for private repositories) * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_github_release action generates the following Lane Variables: SharedValue Description SharedValues::GET_GITHUB_RELEASE_INFO Contains all the information about this release To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action get_github_release CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_github_release To pass parameters, make use of the : symbol, for example fastlane run get_github_release parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Get github release"},{"location":"generated/actions/get_github_release/#get_github_release","text":"This will verify if a given release version is available on GitHub This will return all information about a release. For example: { \"url\"=>\"https://api.github.com/repos/KrauseFx/fastlane/releases/1537713\", \"assets_url\"=>\"https://api.github.com/repos/KrauseFx/fastlane/releases/1537713/assets\", \"upload_url\"=>\"https://uploads.github.com/repos/KrauseFx/fastlane/releases/1537713/assets{?name}\", \"html_url\"=>\"https://github.com/fastlane/fastlane/releases/tag/1.8.0\", \"id\"=>1537713, \"tag_name\"=>\"1.8.0\", \"target_commitish\"=>\"master\", \"name\"=>\"1.8.0 Switch Lanes & Pass Parameters\", \"draft\"=>false, \"author\"=> {\"login\"=>\"KrauseFx\", \"id\"=>869950, \"avatar_url\"=>\"https://avatars.githubusercontent.com/u/869950?v=3\", \"gravatar_id\"=>\"\", \"url\"=>\"https://api.github.com/users/KrauseFx\", \"html_url\"=>\"https://github.com/fastlane\", \"followers_url\"=>\"https://api.github.com/users/KrauseFx/followers\", \"following_url\"=>\"https://api.github.com/users/KrauseFx/following{/other_user}\", \"gists_url\"=>\"https://api.github.com/users/KrauseFx/gists{/gist_id}\", \"starred_url\"=>\"https://api.github.com/users/KrauseFx/starred{/owner}{/repo}\", \"subscriptions_url\"=>\"https://api.github.com/users/KrauseFx/subscriptions\", \"organizations_url\"=>\"https://api.github.com/users/KrauseFx/orgs\", \"repos_url\"=>\"https://api.github.com/users/KrauseFx/repos\", \"events_url\"=>\"https://api.github.com/users/KrauseFx/events{/privacy}\", \"received_events_url\"=>\"https://api.github.com/users/KrauseFx/received_events\", \"type\"=>\"User\", \"site_admin\"=>false}, \"prerelease\"=>false, \"created_at\"=>\"2015-07-14T23:33:01Z\", \"published_at\"=>\"2015-07-14T23:44:10Z\", \"assets\"=>[], \"tarball_url\"=>\"https://api.github.com/repos/KrauseFx/fastlane/tarball/1.8.0\", \"zipball_url\"=>\"https://api.github.com/repos/KrauseFx/fastlane/zipball/1.8.0\", \"body\"=> ...Markdown... \"This is one of the biggest updates of _fastlane_ yet\" } get_github_release Supported platforms ios, android, mac Author @KrauseFx, @czechboy0, @jaleksynas, @tommeier","title":"get_github_release"},{"location":"generated/actions/get_github_release/#1-example","text":"release = get_github_release(url: \"fastlane/fastlane\", version: \"1.0.0\") puts release[\"name\"]","title":"1 Example"},{"location":"generated/actions/get_github_release/#parameters","text":"Key Description Default url The path to your repo, e.g. 'KrauseFx/fastlane' server_url The server url. e.g. 'https://your.github.server/api/v3' (Default: 'https://api.github.com') https://api.github.com version The version tag of the release to check api_token GitHub Personal Token (required for private repositories) * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/get_github_release/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_github_release action generates the following Lane Variables: SharedValue Description SharedValues::GET_GITHUB_RELEASE_INFO Contains all the information about this release To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/get_github_release/#documentation","text":"To show the documentation in your terminal, run fastlane action get_github_release","title":"Documentation"},{"location":"generated/actions/get_github_release/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_github_release To pass parameters, make use of the : symbol, for example fastlane run get_github_release parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/get_github_release/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/get_info_plist_value/","text":"get_info_plist_value Returns value from Info.plist of your project as native Ruby data structures Get a value from a plist file, which can be used to fetch the app identifier and more information about your app get_info_plist_value Supported platforms ios, mac Author @kohtenko 1 Example identifier = get_info_plist_value(path: \"./Info.plist\", key: \"CFBundleIdentifier\") Parameters Key Description Default key Name of parameter path Path to plist file you want to read * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_info_plist_value action generates the following Lane Variables: SharedValue Description SharedValues::GET_INFO_PLIST_VALUE_CUSTOM_VALUE The value of the last plist file that was parsed To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action get_info_plist_value CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_info_plist_value To pass parameters, make use of the : symbol, for example fastlane run get_info_plist_value parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Get info plist value"},{"location":"generated/actions/get_info_plist_value/#get_info_plist_value","text":"Returns value from Info.plist of your project as native Ruby data structures Get a value from a plist file, which can be used to fetch the app identifier and more information about your app get_info_plist_value Supported platforms ios, mac Author @kohtenko","title":"get_info_plist_value"},{"location":"generated/actions/get_info_plist_value/#1-example","text":"identifier = get_info_plist_value(path: \"./Info.plist\", key: \"CFBundleIdentifier\")","title":"1 Example"},{"location":"generated/actions/get_info_plist_value/#parameters","text":"Key Description Default key Name of parameter path Path to plist file you want to read * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/get_info_plist_value/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_info_plist_value action generates the following Lane Variables: SharedValue Description SharedValues::GET_INFO_PLIST_VALUE_CUSTOM_VALUE The value of the last plist file that was parsed To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/get_info_plist_value/#documentation","text":"To show the documentation in your terminal, run fastlane action get_info_plist_value","title":"Documentation"},{"location":"generated/actions/get_info_plist_value/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_info_plist_value To pass parameters, make use of the : symbol, for example fastlane run get_info_plist_value parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/get_info_plist_value/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/get_ipa_info_plist_value/","text":"get_ipa_info_plist_value Returns a value from Info.plist inside a .ipa file This is useful for introspecting Info.plist files for .ipa files that have already been built. get_ipa_info_plist_value Supported platforms ios, mac Author @johnboiles Returns Returns the value in the .ipa's Info.plist corresponding to the passed in Key 1 Example get_ipa_info_plist_value(ipa: \"path.ipa\", key: \"KEY_YOU_READ\") Parameters Key Description Default key Name of parameter ipa Path to IPA * * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_ipa_info_plist_value action generates the following Lane Variables: SharedValue Description SharedValues::GET_IPA_INFO_PLIST_VALUE_CUSTOM_VALUE The value of the last plist file that was parsed To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action get_ipa_info_plist_value CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_ipa_info_plist_value To pass parameters, make use of the : symbol, for example fastlane run get_ipa_info_plist_value parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Get ipa info plist value"},{"location":"generated/actions/get_ipa_info_plist_value/#get_ipa_info_plist_value","text":"Returns a value from Info.plist inside a .ipa file This is useful for introspecting Info.plist files for .ipa files that have already been built. get_ipa_info_plist_value Supported platforms ios, mac Author @johnboiles Returns Returns the value in the .ipa's Info.plist corresponding to the passed in Key","title":"get_ipa_info_plist_value"},{"location":"generated/actions/get_ipa_info_plist_value/#1-example","text":"get_ipa_info_plist_value(ipa: \"path.ipa\", key: \"KEY_YOU_READ\")","title":"1 Example"},{"location":"generated/actions/get_ipa_info_plist_value/#parameters","text":"Key Description Default key Name of parameter ipa Path to IPA * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/get_ipa_info_plist_value/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_ipa_info_plist_value action generates the following Lane Variables: SharedValue Description SharedValues::GET_IPA_INFO_PLIST_VALUE_CUSTOM_VALUE The value of the last plist file that was parsed To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/get_ipa_info_plist_value/#documentation","text":"To show the documentation in your terminal, run fastlane action get_ipa_info_plist_value","title":"Documentation"},{"location":"generated/actions/get_ipa_info_plist_value/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_ipa_info_plist_value To pass parameters, make use of the : symbol, for example fastlane run get_ipa_info_plist_value parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/get_ipa_info_plist_value/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/get_managed_play_store_publishing_rights/","text":"get_managed_play_store_publishing_rights Obtain publishing rights for custom apps on Managed Google Play Store If you haven't done so before, start by following the first two steps of Googles \"Get started with custom app publishing\" -> \"Preliminary setup\" instructions: \" Enable the Google Play Custom App Publishing API \" and \" Create a service account \". You need the \"service account's private key file\" to continue. Run the action and supply the \"private key file\" to it as the json_key parameter. The command will output a URL to visit. After logging in you are redirected to a page that outputs your \"Developer Account ID\" - take note of that, you will need it to be able to use create_app_on_managed_play_store . get_managed_play_store_publishing_rights Supported platforms android Author @janpio Returns An URI to obtain publishing rights for custom apps on Managed Play Store 1 Example get_managed_play_store_publishing_rights( json_key: \"path/to/your/json/key/file\" ) # it is probably easier to execute this action directly in the command line: # $ fastlane run get_managed_play_store_publishing_rights Parameters Key Description Default json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action get_managed_play_store_publishing_rights CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_managed_play_store_publishing_rights To pass parameters, make use of the : symbol, for example fastlane run get_managed_play_store_publishing_rights parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Get managed play store publishing rights"},{"location":"generated/actions/get_managed_play_store_publishing_rights/#get_managed_play_store_publishing_rights","text":"Obtain publishing rights for custom apps on Managed Google Play Store If you haven't done so before, start by following the first two steps of Googles \"Get started with custom app publishing\" -> \"Preliminary setup\" instructions: \" Enable the Google Play Custom App Publishing API \" and \" Create a service account \". You need the \"service account's private key file\" to continue. Run the action and supply the \"private key file\" to it as the json_key parameter. The command will output a URL to visit. After logging in you are redirected to a page that outputs your \"Developer Account ID\" - take note of that, you will need it to be able to use create_app_on_managed_play_store . get_managed_play_store_publishing_rights Supported platforms android Author @janpio Returns An URI to obtain publishing rights for custom apps on Managed Play Store","title":"get_managed_play_store_publishing_rights"},{"location":"generated/actions/get_managed_play_store_publishing_rights/#1-example","text":"get_managed_play_store_publishing_rights( json_key: \"path/to/your/json/key/file\" ) # it is probably easier to execute this action directly in the command line: # $ fastlane run get_managed_play_store_publishing_rights","title":"1 Example"},{"location":"generated/actions/get_managed_play_store_publishing_rights/#parameters","text":"Key Description Default json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/get_managed_play_store_publishing_rights/#documentation","text":"To show the documentation in your terminal, run fastlane action get_managed_play_store_publishing_rights","title":"Documentation"},{"location":"generated/actions/get_managed_play_store_publishing_rights/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_managed_play_store_publishing_rights To pass parameters, make use of the : symbol, for example fastlane run get_managed_play_store_publishing_rights parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/get_managed_play_store_publishing_rights/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/get_provisioning_profile/","text":"get_provisioning_profile Generates a provisioning profile, saving it in the current folder (via sigh ) Because you would rather spend your time building stuff than fighting provisioning sigh can create, renew, download and repair provisioning profiles (with one command). It supports App Store, Ad Hoc, Development and Enterprise profiles and supports nice features, like auto-adding all test devices. Features \u2022 Usage \u2022 Resign \u2022 How does it work? Features Download the latest provisioning profile for your app Renew a provisioning profile, when it has expired Repair a provisioning profile, when it is broken Create a new provisioning profile, if it doesn't exist already Supports App Store , Ad Hoc and Development profiles Support for multiple Apple accounts , storing your credentials securely in the Keychain Support for multiple Teams Support for Enterprise Profiles To automate iOS Push profiles you can use pem . Why not let Xcode do the work? sigh can easily be integrated into your CI-server (e.g. Jenkins) Xcode sometimes invalidates all existing profiles You have control over what happens You still get to have the signing files, which you can then use for your build scripts or store in git See sigh in action: Usage Note : It is recommended to use match according to the codesigning.guide for generating and maintaining your provisioning profiles. Use sigh directly only if you want full control over what's going on and know more about codesigning. fastlane sigh Yes, that's the whole command! sigh will create, repair and download profiles for the App Store by default. You can pass your bundle identifier and username like this: fastlane sigh -a com.krausefx.app -u username If you want to generate an Ad Hoc profile instead of an App Store profile: fastlane sigh --adhoc If you want to generate a Development profile: fastlane sigh --development To generate the profile in a specific directory: fastlane sigh -o \"~/Certificates/\" To download all your provisioning profiles use fastlane sigh download_all Optionally, use fastlane sigh download_all --download_xcode_profiles to also include the Xcode managed provisioning profiles For a list of available parameters and commands run fastlane action sigh Advanced By default, sigh will install the downloaded profile on your machine. If you just want to generate the profile and skip the installation, use the following flag: fastlane sigh --skip_install To save the provisioning profile under a specific name, use the -q option: fastlane sigh -a com.krausefx.app -u username -q \"myProfile.mobileprovision\" If for some reason you don't want sigh to verify that the code signing identity is installed on your local machine: fastlane sigh --skip_certificate_verification If you need the provisioning profile to be renewed regardless of its state use the --force option. This gives you a profile with the maximum lifetime. --force will also add all available devices to this profile. fastlane sigh --force By default, sigh will include all certificates on development profiles, and first certificate on other types. If you need to specify which certificate to use you can either use the environment variable SIGH_CERTIFICATE , or pass the name or expiry date of the certificate as argument: fastlane sigh -c \"SunApps GmbH\" For a list of available parameters and commands run fastlane action sigh Use with fastlane sigh becomes really interesting when used in fastlane in combination with cert . Update your Fastfile to contain the following code: lane :beta do cert sigh(force: true) end force: true will make sure to re-generate the provisioning profile on each run. This will result in sigh always using the correct signing certificate, which is installed on the local machine. Repair sigh can automatically repair all your existing provisioning profiles which are expired or just invalid. fastlane sigh repair Resign If you generated your ipa file but want to apply a different code signing onto the ipa file, you can use sigh resign : fastlane sigh resign sigh will find the ipa file and the provisioning profile for you if they are located in the current folder. You can pass more information using the command line: fastlane sigh resign ./path/app.ipa --signing_identity \"iPhone Distribution: Felix Krause\" -p \"my.mobileprovision\" Manage With sigh manage you can list all provisioning profiles installed locally. fastlane sigh manage Delete all expired provisioning profiles fastlane sigh manage -e Or delete all iOS Team Provisioning Profile by using a regular expression fastlane sigh manage -p \"iOS\\ ?Team Provisioning Profile:\" Environment Variables Run fastlane action sigh to get a list of all available environment variables. If you're using cert in combination with fastlane the signing certificate will automatically be selected for you. (make sure to run cert before sigh ) How does it work? sigh will access the iOS Dev Center to download, renew or generate the .mobileprovision file. It uses spaceship to communicate with Apple's web services. How is my password stored? sigh uses the CredentialsManager from fastlane . Tips Use 'ProvisionQL' for advanced Quick Look in Finder Install ProvisionQL . It will show you mobileprovision files like this: App Identifier couldn't be found If you also want to create a new App Identifier on the Apple Developer Portal, check out produce , which does exactly that. What happens to my Xcode managed profiles? sigh will never touch or use the profiles which are created and managed by Xcode. Instead sigh will manage its own set of provisioning profiles. get_provisioning_profile Supported platforms ios, mac Author @KrauseFx Returns The UUID of the profile sigh just fetched/generated 3 Examples get_provisioning_profile sigh # alias for \"get_provisioning_profile\" get_provisioning_profile( adhoc: true, force: true, filename: \"myFile.mobileprovision\" ) Parameters Key Description Default adhoc Setting this flag will generate AdHoc profiles instead of App Store Profiles false developer_id Setting this flag will generate Developer ID profiles instead of App Store Profiles false development Renew the development certificate instead of the production one false skip_install By default, the certificate will be added to your local machine. Setting this flag will skip this action false force Renew provisioning profiles regardless of its state - to automatically add all devices for ad hoc profiles false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false app_identifier The bundle identifier of your app * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * provisioning_name The name of the profile that is used on the Apple Developer Portal ignore_profiles_with_different_name Use in combination with :provisioning_name - when true only profiles matching this exact name will be downloaded false output_path Directory in which the profile should be stored . cert_id The ID of the code signing certificate to use (e.g. 78ADL6LVAA) cert_owner_name The certificate name to use for new profiles, or to renew with. (e.g. \"Felix Krause\") filename Filename to use for the generated provisioning profile (must include .mobileprovision) skip_fetch_profiles Skips the verification of existing profiles which is useful if you have thousands of profiles false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false skip_certificate_verification Skips the verification of the certificates for every existing profiles. This will make sure the provisioning profile can be used on the local machine * platform Set the provisioning profile's platform (i.e. ios, tvos, macos, catalyst) ios readonly Only fetch existing profile, don't generate new ones false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_provisioning_profile action generates the following Lane Variables: SharedValue Description SharedValues::SIGH_PROFILE_PATH A path in which certificates, key and profile are exported SharedValues::SIGH_PROFILE_PATHS Paths in which certificates, key and profile are exported SharedValues::SIGH_UUID UUID (Universally Unique IDentifier) of a provisioning profile SharedValues::SIGH_NAME The name of the profile SharedValues::SIGH_PROFILE_TYPE The profile type, can be app-store, ad-hoc, development, enterprise, developer-id, can be used in build_app as a default value for export_method To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action get_provisioning_profile CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_provisioning_profile To pass parameters, make use of the : symbol, for example fastlane run get_provisioning_profile parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Get provisioning profile"},{"location":"generated/actions/get_provisioning_profile/#get_provisioning_profile","text":"Generates a provisioning profile, saving it in the current folder (via sigh )","title":"get_provisioning_profile"},{"location":"generated/actions/get_provisioning_profile/#features","text":"Download the latest provisioning profile for your app Renew a provisioning profile, when it has expired Repair a provisioning profile, when it is broken Create a new provisioning profile, if it doesn't exist already Supports App Store , Ad Hoc and Development profiles Support for multiple Apple accounts , storing your credentials securely in the Keychain Support for multiple Teams Support for Enterprise Profiles To automate iOS Push profiles you can use pem .","title":"Features"},{"location":"generated/actions/get_provisioning_profile/#usage","text":"Note : It is recommended to use match according to the codesigning.guide for generating and maintaining your provisioning profiles. Use sigh directly only if you want full control over what's going on and know more about codesigning. fastlane sigh Yes, that's the whole command! sigh will create, repair and download profiles for the App Store by default. You can pass your bundle identifier and username like this: fastlane sigh -a com.krausefx.app -u username If you want to generate an Ad Hoc profile instead of an App Store profile: fastlane sigh --adhoc If you want to generate a Development profile: fastlane sigh --development To generate the profile in a specific directory: fastlane sigh -o \"~/Certificates/\" To download all your provisioning profiles use fastlane sigh download_all Optionally, use fastlane sigh download_all --download_xcode_profiles to also include the Xcode managed provisioning profiles For a list of available parameters and commands run fastlane action sigh","title":"Usage"},{"location":"generated/actions/get_provisioning_profile/#repair","text":"sigh can automatically repair all your existing provisioning profiles which are expired or just invalid. fastlane sigh repair","title":"Repair"},{"location":"generated/actions/get_provisioning_profile/#resign","text":"If you generated your ipa file but want to apply a different code signing onto the ipa file, you can use sigh resign : fastlane sigh resign sigh will find the ipa file and the provisioning profile for you if they are located in the current folder. You can pass more information using the command line: fastlane sigh resign ./path/app.ipa --signing_identity \"iPhone Distribution: Felix Krause\" -p \"my.mobileprovision\"","title":"Resign"},{"location":"generated/actions/get_provisioning_profile/#manage","text":"With sigh manage you can list all provisioning profiles installed locally. fastlane sigh manage Delete all expired provisioning profiles fastlane sigh manage -e Or delete all iOS Team Provisioning Profile by using a regular expression fastlane sigh manage -p \"iOS\\ ?Team Provisioning Profile:\"","title":"Manage"},{"location":"generated/actions/get_provisioning_profile/#environment-variables","text":"Run fastlane action sigh to get a list of all available environment variables. If you're using cert in combination with fastlane the signing certificate will automatically be selected for you. (make sure to run cert before sigh )","title":"Environment Variables"},{"location":"generated/actions/get_provisioning_profile/#how-does-it-work","text":"sigh will access the iOS Dev Center to download, renew or generate the .mobileprovision file. It uses spaceship to communicate with Apple's web services.","title":"How does it work?"},{"location":"generated/actions/get_provisioning_profile/#how-is-my-password-stored","text":"sigh uses the CredentialsManager from fastlane .","title":"How is my password stored?"},{"location":"generated/actions/get_provisioning_profile/#tips","text":"","title":"Tips"},{"location":"generated/actions/get_provisioning_profile/#use-provisionql-for-advanced-quick-look-in-finder","text":"Install ProvisionQL . It will show you mobileprovision files like this:","title":"Use 'ProvisionQL' for advanced Quick Look in Finder"},{"location":"generated/actions/get_provisioning_profile/#app-identifier-couldnt-be-found","text":"If you also want to create a new App Identifier on the Apple Developer Portal, check out produce , which does exactly that.","title":"App Identifier couldn't be found"},{"location":"generated/actions/get_provisioning_profile/#what-happens-to-my-xcode-managed-profiles","text":"sigh will never touch or use the profiles which are created and managed by Xcode. Instead sigh will manage its own set of provisioning profiles. get_provisioning_profile Supported platforms ios, mac Author @KrauseFx Returns The UUID of the profile sigh just fetched/generated","title":"What happens to my Xcode managed profiles?"},{"location":"generated/actions/get_provisioning_profile/#3-examples","text":"get_provisioning_profile sigh # alias for \"get_provisioning_profile\" get_provisioning_profile( adhoc: true, force: true, filename: \"myFile.mobileprovision\" )","title":"3 Examples"},{"location":"generated/actions/get_provisioning_profile/#parameters","text":"Key Description Default adhoc Setting this flag will generate AdHoc profiles instead of App Store Profiles false developer_id Setting this flag will generate Developer ID profiles instead of App Store Profiles false development Renew the development certificate instead of the production one false skip_install By default, the certificate will be added to your local machine. Setting this flag will skip this action false force Renew provisioning profiles regardless of its state - to automatically add all devices for ad hoc profiles false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false app_identifier The bundle identifier of your app * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * provisioning_name The name of the profile that is used on the Apple Developer Portal ignore_profiles_with_different_name Use in combination with :provisioning_name - when true only profiles matching this exact name will be downloaded false output_path Directory in which the profile should be stored . cert_id The ID of the code signing certificate to use (e.g. 78ADL6LVAA) cert_owner_name The certificate name to use for new profiles, or to renew with. (e.g. \"Felix Krause\") filename Filename to use for the generated provisioning profile (must include .mobileprovision) skip_fetch_profiles Skips the verification of existing profiles which is useful if you have thousands of profiles false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false skip_certificate_verification Skips the verification of the certificates for every existing profiles. This will make sure the provisioning profile can be used on the local machine * platform Set the provisioning profile's platform (i.e. ios, tvos, macos, catalyst) ios readonly Only fetch existing profile, don't generate new ones false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/get_provisioning_profile/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_provisioning_profile action generates the following Lane Variables: SharedValue Description SharedValues::SIGH_PROFILE_PATH A path in which certificates, key and profile are exported SharedValues::SIGH_PROFILE_PATHS Paths in which certificates, key and profile are exported SharedValues::SIGH_UUID UUID (Universally Unique IDentifier) of a provisioning profile SharedValues::SIGH_NAME The name of the profile SharedValues::SIGH_PROFILE_TYPE The profile type, can be app-store, ad-hoc, development, enterprise, developer-id, can be used in build_app as a default value for export_method To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/get_provisioning_profile/#documentation","text":"To show the documentation in your terminal, run fastlane action get_provisioning_profile","title":"Documentation"},{"location":"generated/actions/get_provisioning_profile/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_provisioning_profile To pass parameters, make use of the : symbol, for example fastlane run get_provisioning_profile parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/get_provisioning_profile/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/get_push_certificate/","text":"get_push_certificate Ensure a valid push profile is active, creating a new one if needed (via pem ) Automatically generate and renew your push notification profiles Tired of manually creating and maintaining your push notification profiles for your iOS apps? Tired of generating a pem file for your server? pem does all that for you, just by simply running pem . pem creates new .pem, .cer, and .p12 files to be uploaded to your push server if a valid push notification profile is needed. pem does not cover uploading the file to your server. To automate iOS Provisioning profiles you can use match . Features \u2022 Usage \u2022 How does it work? \u2022 Tips \u2022 Need help? pem is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Features Well, it's actually just one: Generate the pem file for your server. Check out this gif: Usage fastlane pem Yes, that's the whole command! This does the following: Create a new signing request Create a new push certification Downloads the certificate Generates a new .pem file in the current working directory, which you can upload to your server Note that pem will never revoke your existing certificates. pem can't download any of your existing push certificates, as the private key is only available on the machine it was created on. If you already have a push certificate enabled, which is active for at least 30 more days, pem will not create a new certificate. If you still want to create one, use the force : fastlane pem --force You can pass parameters like this: fastlane pem -a com.krausefx.app -u username If you want to generate a development certificate instead: fastlane pem --development If you want to generate a Website Push certificate: fastlane pem --website_push Set a password for your p12 file: fastlane pem -p \"MyPass\" You can specify a name for the output file: fastlane pem -o my.pem To get a list of available options run: fastlane action pem Note about empty p12 passwords and Keychain Access.app pem will produce a valid p12 without specifying a password, or using the empty-string as the password. While the file is valid, the Mac's Keychain Access will not allow you to open the file without specifying a passphrase. Instead, you may verify the file is valid using OpenSSL: openssl pkcs12 -info -in my.p12 If you need the p12 in your keychain, perhaps to test push with an app like Knuff or Pusher , you can use openssl to export the p12 to pem and back to p12 : % openssl pkcs12 -in my.p12 -out my.pem Enter Import Password: MAC verified OK Enter your pem passphrase: % openssl pkcs12 -export -in my.pem -out my-with-passphrase.p12 Enter pass phrase for temp.pem: Enter Export Password: Environment Variables Run fastlane action pem to get a list of available environment variables. How does it work? pem uses spaceship to communicate with the Apple Developer Portal to request a new push certificate for you. How is my password stored? pem uses the password manager from fastlane . Take a look the CredentialsManager README for more information. get_push_certificate Supported platforms ios, mac Author @KrauseFx 3 Examples get_push_certificate pem # alias for \"get_push_certificate\" get_push_certificate( force: true, # create a new profile, even if the old one is still valid app_identifier: \"net.sunapps.9\", # optional app identifier, save_private_key: true, new_profile: proc do |profile_path| # this block gets called when a new profile was generated puts profile_path # the absolute path to the new PEM file # insert the code to upload the PEM file to the server end ) Parameters Key Description Default platform Set certificate's platform. Used for creation of production & development certificates. Supported platforms: ios, macos ios development Renew the development push certificate instead of the production one false website_push Create a Website Push certificate false generate_p12 Generate a p12 file additionally to a PEM file true active_days_limit If the current certificate is active for less than this number of days, generate a new one 30 force Create a new push certificate, even if the current one is active for 30 (or PEM_ACTIVE_DAYS_LIMIT) more days false save_private_key Set to save the private RSA key true app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * p12_password The password that is used for your p12 file pem_name The file name of the generated .pem file output_path The path to a directory in which all certificates and private keys should be stored . new_profile Block that is called if there is a new profile * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action get_push_certificate CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_push_certificate To pass parameters, make use of the : symbol, for example fastlane run get_push_certificate parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Get push certificate"},{"location":"generated/actions/get_push_certificate/#get_push_certificate","text":"Ensure a valid push profile is active, creating a new one if needed (via pem )","title":"get_push_certificate"},{"location":"generated/actions/get_push_certificate/#features","text":"Well, it's actually just one: Generate the pem file for your server. Check out this gif:","title":"Features"},{"location":"generated/actions/get_push_certificate/#usage","text":"fastlane pem Yes, that's the whole command! This does the following: Create a new signing request Create a new push certification Downloads the certificate Generates a new .pem file in the current working directory, which you can upload to your server Note that pem will never revoke your existing certificates. pem can't download any of your existing push certificates, as the private key is only available on the machine it was created on. If you already have a push certificate enabled, which is active for at least 30 more days, pem will not create a new certificate. If you still want to create one, use the force : fastlane pem --force You can pass parameters like this: fastlane pem -a com.krausefx.app -u username If you want to generate a development certificate instead: fastlane pem --development If you want to generate a Website Push certificate: fastlane pem --website_push Set a password for your p12 file: fastlane pem -p \"MyPass\" You can specify a name for the output file: fastlane pem -o my.pem To get a list of available options run: fastlane action pem","title":"Usage"},{"location":"generated/actions/get_push_certificate/#environment-variables","text":"Run fastlane action pem to get a list of available environment variables.","title":"Environment Variables"},{"location":"generated/actions/get_push_certificate/#how-does-it-work","text":"pem uses spaceship to communicate with the Apple Developer Portal to request a new push certificate for you.","title":"How does it work?"},{"location":"generated/actions/get_push_certificate/#how-is-my-password-stored","text":"pem uses the password manager from fastlane . Take a look the CredentialsManager README for more information. get_push_certificate Supported platforms ios, mac Author @KrauseFx","title":"How is my password stored?"},{"location":"generated/actions/get_push_certificate/#3-examples","text":"get_push_certificate pem # alias for \"get_push_certificate\" get_push_certificate( force: true, # create a new profile, even if the old one is still valid app_identifier: \"net.sunapps.9\", # optional app identifier, save_private_key: true, new_profile: proc do |profile_path| # this block gets called when a new profile was generated puts profile_path # the absolute path to the new PEM file # insert the code to upload the PEM file to the server end )","title":"3 Examples"},{"location":"generated/actions/get_push_certificate/#parameters","text":"Key Description Default platform Set certificate's platform. Used for creation of production & development certificates. Supported platforms: ios, macos ios development Renew the development push certificate instead of the production one false website_push Create a Website Push certificate false generate_p12 Generate a p12 file additionally to a PEM file true active_days_limit If the current certificate is active for less than this number of days, generate a new one 30 force Create a new push certificate, even if the current one is active for 30 (or PEM_ACTIVE_DAYS_LIMIT) more days false save_private_key Set to save the private RSA key true app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * p12_password The password that is used for your p12 file pem_name The file name of the generated .pem file output_path The path to a directory in which all certificates and private keys should be stored . new_profile Block that is called if there is a new profile * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/get_push_certificate/#documentation","text":"To show the documentation in your terminal, run fastlane action get_push_certificate","title":"Documentation"},{"location":"generated/actions/get_push_certificate/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_push_certificate To pass parameters, make use of the : symbol, for example fastlane run get_push_certificate parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/get_push_certificate/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/get_version_number/","text":"get_version_number Get the version number of your project This action will return the current version number set on your project. It first looks in the plist and then for '$(MARKETING_VERSION)' in the build settings. get_version_number Supported platforms ios, mac Author @Liquidsoul, @joshdholtz 2 Examples version = get_version_number(xcodeproj: \"Project.xcodeproj\") version = get_version_number( xcodeproj: \"Project.xcodeproj\", target: \"App\" ) Parameters Key Description Default xcodeproj Path to the Xcode project to read version number from, or its containing directory, optional. If omitted, or if a directory is passed instead, it will use the first Xcode project found within the given directory, or the project root directory if none is passed target Target name, optional. Will be needed if you have more than one non-test target to avoid being prompted to select one configuration Configuration name, optional. Will be needed if you have altered the configurations from the default or your version number depends on the configuration selected * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_version_number action generates the following Lane Variables: SharedValue Description SharedValues::VERSION_NUMBER The version number To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action get_version_number CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_version_number To pass parameters, make use of the : symbol, for example fastlane run get_version_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Get version number"},{"location":"generated/actions/get_version_number/#get_version_number","text":"Get the version number of your project This action will return the current version number set on your project. It first looks in the plist and then for '$(MARKETING_VERSION)' in the build settings. get_version_number Supported platforms ios, mac Author @Liquidsoul, @joshdholtz","title":"get_version_number"},{"location":"generated/actions/get_version_number/#2-examples","text":"version = get_version_number(xcodeproj: \"Project.xcodeproj\") version = get_version_number( xcodeproj: \"Project.xcodeproj\", target: \"App\" )","title":"2 Examples"},{"location":"generated/actions/get_version_number/#parameters","text":"Key Description Default xcodeproj Path to the Xcode project to read version number from, or its containing directory, optional. If omitted, or if a directory is passed instead, it will use the first Xcode project found within the given directory, or the project root directory if none is passed target Target name, optional. Will be needed if you have more than one non-test target to avoid being prompted to select one configuration Configuration name, optional. Will be needed if you have altered the configurations from the default or your version number depends on the configuration selected * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/get_version_number/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The get_version_number action generates the following Lane Variables: SharedValue Description SharedValues::VERSION_NUMBER The version number To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/get_version_number/#documentation","text":"To show the documentation in your terminal, run fastlane action get_version_number","title":"Documentation"},{"location":"generated/actions/get_version_number/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run get_version_number To pass parameters, make use of the : symbol, for example fastlane run get_version_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/get_version_number/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/git_add/","text":"git_add Directly add the given file or all files git_add Supported platforms ios, android, mac Author @4brunu, @antondomashnev 7 Examples git_add git_add(path: \"./version.txt\") git_add(path: [\"./version.txt\", \"./changelog.txt\"]) git_add(path: \"./Frameworks/*\", shell_escape: false) git_add(path: [\"*.h\", \"*.m\"], shell_escape: false) git_add(path: \"./Frameworks/*\", shell_escape: false) git_add(path: \"*.txt\", shell_escape: false) Parameters Key Description Default path The file(s) and path(s) you want to add shell_escape Shell escapes paths (set to false if using wildcards or manually escaping spaces in :path) true pathspec DEPRECATED! Use --path instead - The pathspec you want to add files from * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action git_add CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_add To pass parameters, make use of the : symbol, for example fastlane run git_add parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Git add"},{"location":"generated/actions/git_add/#git_add","text":"Directly add the given file or all files git_add Supported platforms ios, android, mac Author @4brunu, @antondomashnev","title":"git_add"},{"location":"generated/actions/git_add/#7-examples","text":"git_add git_add(path: \"./version.txt\") git_add(path: [\"./version.txt\", \"./changelog.txt\"]) git_add(path: \"./Frameworks/*\", shell_escape: false) git_add(path: [\"*.h\", \"*.m\"], shell_escape: false) git_add(path: \"./Frameworks/*\", shell_escape: false) git_add(path: \"*.txt\", shell_escape: false)","title":"7 Examples"},{"location":"generated/actions/git_add/#parameters","text":"Key Description Default path The file(s) and path(s) you want to add shell_escape Shell escapes paths (set to false if using wildcards or manually escaping spaces in :path) true pathspec DEPRECATED! Use --path instead - The pathspec you want to add files from * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/git_add/#documentation","text":"To show the documentation in your terminal, run fastlane action git_add","title":"Documentation"},{"location":"generated/actions/git_add/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_add To pass parameters, make use of the : symbol, for example fastlane run git_add parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/git_add/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/git_branch/","text":"git_branch Returns the name of the current git branch, possibly as managed by CI ENV vars If no branch could be found, this action will return an empty string. This is a wrapper for the internal action Actions.git_branch git_branch Supported platforms ios, android, mac Author @KrauseFx 1 Example git_branch Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The git_branch action generates the following Lane Variables: SharedValue Description SharedValues::GIT_BRANCH_ENV_VARS The git branch environment variables To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action git_branch CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_branch To pass parameters, make use of the : symbol, for example fastlane run git_branch parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Git branch"},{"location":"generated/actions/git_branch/#git_branch","text":"Returns the name of the current git branch, possibly as managed by CI ENV vars If no branch could be found, this action will return an empty string. This is a wrapper for the internal action Actions.git_branch git_branch Supported platforms ios, android, mac Author @KrauseFx","title":"git_branch"},{"location":"generated/actions/git_branch/#1-example","text":"git_branch","title":"1 Example"},{"location":"generated/actions/git_branch/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The git_branch action generates the following Lane Variables: SharedValue Description SharedValues::GIT_BRANCH_ENV_VARS The git branch environment variables To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/git_branch/#documentation","text":"To show the documentation in your terminal, run fastlane action git_branch","title":"Documentation"},{"location":"generated/actions/git_branch/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_branch To pass parameters, make use of the : symbol, for example fastlane run git_branch parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/git_branch/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/git_commit/","text":"git_commit Directly commit the given file with the given message git_commit Supported platforms ios, android, mac Author @KrauseFx 4 Examples git_commit(path: \"./version.txt\", message: \"Version Bump\") git_commit(path: [\"./version.txt\", \"./changelog.txt\"], message: \"Version Bump\") git_commit(path: [\"./*.txt\", \"./*.md\"], message: \"Update documentation\") git_commit(path: [\"./*.txt\", \"./*.md\"], message: \"Update documentation\", skip_git_hooks: true) Parameters Key Description Default path The file(s) or directory(ies) you want to commit. You can pass an array of multiple file-paths or fileglobs \"*.txt\" to commit all matching files. The files already staged but not specified and untracked files won't be committed message The commit message that should be used skip_git_hooks Set to true to pass --no-verify to git false allow_nothing_to_commit Set to true to allow commit without any git changes in the files you want to commit false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action git_commit CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_commit To pass parameters, make use of the : symbol, for example fastlane run git_commit parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Git commit"},{"location":"generated/actions/git_commit/#git_commit","text":"Directly commit the given file with the given message git_commit Supported platforms ios, android, mac Author @KrauseFx","title":"git_commit"},{"location":"generated/actions/git_commit/#4-examples","text":"git_commit(path: \"./version.txt\", message: \"Version Bump\") git_commit(path: [\"./version.txt\", \"./changelog.txt\"], message: \"Version Bump\") git_commit(path: [\"./*.txt\", \"./*.md\"], message: \"Update documentation\") git_commit(path: [\"./*.txt\", \"./*.md\"], message: \"Update documentation\", skip_git_hooks: true)","title":"4 Examples"},{"location":"generated/actions/git_commit/#parameters","text":"Key Description Default path The file(s) or directory(ies) you want to commit. You can pass an array of multiple file-paths or fileglobs \"*.txt\" to commit all matching files. The files already staged but not specified and untracked files won't be committed message The commit message that should be used skip_git_hooks Set to true to pass --no-verify to git false allow_nothing_to_commit Set to true to allow commit without any git changes in the files you want to commit false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/git_commit/#documentation","text":"To show the documentation in your terminal, run fastlane action git_commit","title":"Documentation"},{"location":"generated/actions/git_commit/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_commit To pass parameters, make use of the : symbol, for example fastlane run git_commit parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/git_commit/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/git_pull/","text":"git_pull Executes a simple git pull command git_pull Supported platforms ios, android, mac Author @KrauseFx, @JaviSoto 3 Examples git_pull git_pull(only_tags: true) # only the tags, no commits git_pull(rebase: true) # use --rebase with pull Parameters Key Description Default only_tags Simply pull the tags, and not bring new commits to the current branch from the remote false rebase Rebase on top of the remote branch instead of merge false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action git_pull CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_pull To pass parameters, make use of the : symbol, for example fastlane run git_pull parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Git pull"},{"location":"generated/actions/git_pull/#git_pull","text":"Executes a simple git pull command git_pull Supported platforms ios, android, mac Author @KrauseFx, @JaviSoto","title":"git_pull"},{"location":"generated/actions/git_pull/#3-examples","text":"git_pull git_pull(only_tags: true) # only the tags, no commits git_pull(rebase: true) # use --rebase with pull","title":"3 Examples"},{"location":"generated/actions/git_pull/#parameters","text":"Key Description Default only_tags Simply pull the tags, and not bring new commits to the current branch from the remote false rebase Rebase on top of the remote branch instead of merge false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/git_pull/#documentation","text":"To show the documentation in your terminal, run fastlane action git_pull","title":"Documentation"},{"location":"generated/actions/git_pull/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_pull To pass parameters, make use of the : symbol, for example fastlane run git_pull parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/git_pull/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/git_remote_branch/","text":"git_remote_branch Returns the name of the current git remote default branch If no default remote branch could be found, this action will return nil. This is a wrapper for the internal action Actions.git_default_remote_branch_name git_remote_branch Supported platforms ios, android, mac Author @SeanMcNeil 2 Examples git_remote_branch # Query git for first available remote name git_remote_branch(remote_name:\"upstream\") # Provide a remote name Parameters Key Description Default remote_name The remote repository to check * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action git_remote_branch CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_remote_branch To pass parameters, make use of the : symbol, for example fastlane run git_remote_branch parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Git remote branch"},{"location":"generated/actions/git_remote_branch/#git_remote_branch","text":"Returns the name of the current git remote default branch If no default remote branch could be found, this action will return nil. This is a wrapper for the internal action Actions.git_default_remote_branch_name git_remote_branch Supported platforms ios, android, mac Author @SeanMcNeil","title":"git_remote_branch"},{"location":"generated/actions/git_remote_branch/#2-examples","text":"git_remote_branch # Query git for first available remote name git_remote_branch(remote_name:\"upstream\") # Provide a remote name","title":"2 Examples"},{"location":"generated/actions/git_remote_branch/#parameters","text":"Key Description Default remote_name The remote repository to check * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/git_remote_branch/#documentation","text":"To show the documentation in your terminal, run fastlane action git_remote_branch","title":"Documentation"},{"location":"generated/actions/git_remote_branch/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_remote_branch To pass parameters, make use of the : symbol, for example fastlane run git_remote_branch parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/git_remote_branch/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/git_submodule_update/","text":"git_submodule_update Executes a git submodule update command git_submodule_update Supported platforms ios, android, mac Author @braunico 4 Examples git_submodule_update git_submodule_update(recursive: true) git_submodule_update(init: true) git_submodule_update(recursive: true, init: true) Parameters Key Description Default recursive Should the submodules be updated recursively? false init Should the submodules be initiated before update? false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action git_submodule_update CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_submodule_update To pass parameters, make use of the : symbol, for example fastlane run git_submodule_update parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Git submodule update"},{"location":"generated/actions/git_submodule_update/#git_submodule_update","text":"Executes a git submodule update command git_submodule_update Supported platforms ios, android, mac Author @braunico","title":"git_submodule_update"},{"location":"generated/actions/git_submodule_update/#4-examples","text":"git_submodule_update git_submodule_update(recursive: true) git_submodule_update(init: true) git_submodule_update(recursive: true, init: true)","title":"4 Examples"},{"location":"generated/actions/git_submodule_update/#parameters","text":"Key Description Default recursive Should the submodules be updated recursively? false init Should the submodules be initiated before update? false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/git_submodule_update/#documentation","text":"To show the documentation in your terminal, run fastlane action git_submodule_update","title":"Documentation"},{"location":"generated/actions/git_submodule_update/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_submodule_update To pass parameters, make use of the : symbol, for example fastlane run git_submodule_update parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/git_submodule_update/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/git_tag_exists/","text":"git_tag_exists Checks if the git tag with the given name exists in the current repo git_tag_exists Supported platforms ios, android, mac Author @antondomashnev Returns Boolean value whether the tag exists or not 1 Example if git_tag_exists(tag: \"1.1.0\") UI.message(\"Found it \ud83d\ude80\") end Parameters Key Description Default tag The tag name that should be checked remote Whether to check remote. Defaults to false false remote_name The remote to check. Defaults to origin origin * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action git_tag_exists CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_tag_exists To pass parameters, make use of the : symbol, for example fastlane run git_tag_exists parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Git tag exists"},{"location":"generated/actions/git_tag_exists/#git_tag_exists","text":"Checks if the git tag with the given name exists in the current repo git_tag_exists Supported platforms ios, android, mac Author @antondomashnev Returns Boolean value whether the tag exists or not","title":"git_tag_exists"},{"location":"generated/actions/git_tag_exists/#1-example","text":"if git_tag_exists(tag: \"1.1.0\") UI.message(\"Found it \ud83d\ude80\") end","title":"1 Example"},{"location":"generated/actions/git_tag_exists/#parameters","text":"Key Description Default tag The tag name that should be checked remote Whether to check remote. Defaults to false false remote_name The remote to check. Defaults to origin origin * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/git_tag_exists/#documentation","text":"To show the documentation in your terminal, run fastlane action git_tag_exists","title":"Documentation"},{"location":"generated/actions/git_tag_exists/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run git_tag_exists To pass parameters, make use of the : symbol, for example fastlane run git_tag_exists parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/git_tag_exists/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/github_api/","text":"github_api Call a GitHub API endpoint and get the resulting JSON response Calls any GitHub API endpoint. You must provide your GitHub Personal token (get one from https://github.com/settings/tokens/new ). Out parameters provide the status code and the full response JSON if valid, otherwise the raw response body. Documentation: https://developer.github.com/v3 . github_api Supported platforms ios, android, mac Author @tommeier Returns A hash including the HTTP status code (:status), the response body (:body), and if valid JSON has been returned the parsed JSON (:json). 2 Examples result = github_api( server_url: \"https://api.github.com\", api_token: ENV[\"GITHUB_TOKEN\"], http_method: \"GET\", path: \"/repos/:owner/:repo/readme\", body: { ref: \"master\" } ) # Alternatively call directly with optional error handling or block usage GithubApiAction.run( server_url: \"https://api.github.com\", api_token: ENV[\"GITHUB_TOKEN\"], http_method: \"GET\", path: \"/repos/:owner/:repo/readme\", error_handlers: { 404 => proc do |result| UI.message(\"Something went wrong - I couldn't find it...\") end, '*' => proc do |result| UI.message(\"Handle all error codes other than 404\") end } ) do |result| UI.message(\"JSON returned: #{result[:json]}\") end Parameters Key Description Default server_url The server url. e.g. 'https://your.internal.github.host/api/v3' (Default: 'https://api.github.com') https://api.github.com api_token Personal API Token for GitHub - generate one at https://github.com/settings/tokens * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable http_method The HTTP method. e.g. GET / POST GET body The request body in JSON or hash format {} raw_body The request body taken verbatim instead of as JSON, useful for file uploads path The endpoint path. e.g. '/repos/:owner/:repo/readme' url The complete full url - used instead of path. e.g. 'https://uploads.github.com/repos/fastlane...' error_handlers Optional error handling hash based on status code, or pass '*' to handle all errors {} headers Optional headers to apply {} secure Optionally disable secure requests (ssl_verify_peer) true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The github_api action generates the following Lane Variables: SharedValue Description SharedValues::GITHUB_API_STATUS_CODE The status code returned from the request SharedValues::GITHUB_API_RESPONSE The full response body SharedValues::GITHUB_API_JSON The parsed json returned from GitHub To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action github_api CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run github_api To pass parameters, make use of the : symbol, for example fastlane run github_api parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Github api"},{"location":"generated/actions/github_api/#github_api","text":"Call a GitHub API endpoint and get the resulting JSON response Calls any GitHub API endpoint. You must provide your GitHub Personal token (get one from https://github.com/settings/tokens/new ). Out parameters provide the status code and the full response JSON if valid, otherwise the raw response body. Documentation: https://developer.github.com/v3 . github_api Supported platforms ios, android, mac Author @tommeier Returns A hash including the HTTP status code (:status), the response body (:body), and if valid JSON has been returned the parsed JSON (:json).","title":"github_api"},{"location":"generated/actions/github_api/#2-examples","text":"result = github_api( server_url: \"https://api.github.com\", api_token: ENV[\"GITHUB_TOKEN\"], http_method: \"GET\", path: \"/repos/:owner/:repo/readme\", body: { ref: \"master\" } ) # Alternatively call directly with optional error handling or block usage GithubApiAction.run( server_url: \"https://api.github.com\", api_token: ENV[\"GITHUB_TOKEN\"], http_method: \"GET\", path: \"/repos/:owner/:repo/readme\", error_handlers: { 404 => proc do |result| UI.message(\"Something went wrong - I couldn't find it...\") end, '*' => proc do |result| UI.message(\"Handle all error codes other than 404\") end } ) do |result| UI.message(\"JSON returned: #{result[:json]}\") end","title":"2 Examples"},{"location":"generated/actions/github_api/#parameters","text":"Key Description Default server_url The server url. e.g. 'https://your.internal.github.host/api/v3' (Default: 'https://api.github.com') https://api.github.com api_token Personal API Token for GitHub - generate one at https://github.com/settings/tokens * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable http_method The HTTP method. e.g. GET / POST GET body The request body in JSON or hash format {} raw_body The request body taken verbatim instead of as JSON, useful for file uploads path The endpoint path. e.g. '/repos/:owner/:repo/readme' url The complete full url - used instead of path. e.g. 'https://uploads.github.com/repos/fastlane...' error_handlers Optional error handling hash based on status code, or pass '*' to handle all errors {} headers Optional headers to apply {} secure Optionally disable secure requests (ssl_verify_peer) true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/github_api/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The github_api action generates the following Lane Variables: SharedValue Description SharedValues::GITHUB_API_STATUS_CODE The status code returned from the request SharedValues::GITHUB_API_RESPONSE The full response body SharedValues::GITHUB_API_JSON The parsed json returned from GitHub To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/github_api/#documentation","text":"To show the documentation in your terminal, run fastlane action github_api","title":"Documentation"},{"location":"generated/actions/github_api/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run github_api To pass parameters, make use of the : symbol, for example fastlane run github_api parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/github_api/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/google_play_track_release_names/","text":"google_play_track_release_names Retrieves release names for a Google Play track More information: https://docs.fastlane.tools/actions/supply/ google_play_track_release_names Supported platforms android Author @raldred Returns Array of strings representing the release names for the given Google Play track 1 Example google_play_track_release_names Parameters Key Description Default package_name The package name of the application to use * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action google_play_track_release_names CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run google_play_track_release_names To pass parameters, make use of the : symbol, for example fastlane run google_play_track_release_names parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Google play track release names"},{"location":"generated/actions/google_play_track_release_names/#google_play_track_release_names","text":"Retrieves release names for a Google Play track More information: https://docs.fastlane.tools/actions/supply/ google_play_track_release_names Supported platforms android Author @raldred Returns Array of strings representing the release names for the given Google Play track","title":"google_play_track_release_names"},{"location":"generated/actions/google_play_track_release_names/#1-example","text":"google_play_track_release_names","title":"1 Example"},{"location":"generated/actions/google_play_track_release_names/#parameters","text":"Key Description Default package_name The package name of the application to use * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/google_play_track_release_names/#documentation","text":"To show the documentation in your terminal, run fastlane action google_play_track_release_names","title":"Documentation"},{"location":"generated/actions/google_play_track_release_names/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run google_play_track_release_names To pass parameters, make use of the : symbol, for example fastlane run google_play_track_release_names parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/google_play_track_release_names/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/google_play_track_version_codes/","text":"google_play_track_version_codes Retrieves version codes for a Google Play track More information: https://docs.fastlane.tools/actions/supply/ google_play_track_version_codes Supported platforms android Author @panthomakos Returns Array of integers representing the version codes for the given Google Play track 1 Example google_play_track_version_codes Parameters Key Description Default package_name The package name of the application to use * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action google_play_track_version_codes CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run google_play_track_version_codes To pass parameters, make use of the : symbol, for example fastlane run google_play_track_version_codes parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Google play track version codes"},{"location":"generated/actions/google_play_track_version_codes/#google_play_track_version_codes","text":"Retrieves version codes for a Google Play track More information: https://docs.fastlane.tools/actions/supply/ google_play_track_version_codes Supported platforms android Author @panthomakos Returns Array of integers representing the version codes for the given Google Play track","title":"google_play_track_version_codes"},{"location":"generated/actions/google_play_track_version_codes/#1-example","text":"google_play_track_version_codes","title":"1 Example"},{"location":"generated/actions/google_play_track_version_codes/#parameters","text":"Key Description Default package_name The package name of the application to use * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/google_play_track_version_codes/#documentation","text":"To show the documentation in your terminal, run fastlane action google_play_track_version_codes","title":"Documentation"},{"location":"generated/actions/google_play_track_version_codes/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run google_play_track_version_codes To pass parameters, make use of the : symbol, for example fastlane run google_play_track_version_codes parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/google_play_track_version_codes/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/gradle/","text":"gradle All gradle related actions, including building and testing your Android app Run ./gradlew tasks to get a list of all available gradle tasks for your project gradle Supported platforms ios, android Author @KrauseFx, @lmirosevic Returns The output of running the gradle task 1 Example gradle( task: \"assemble\", flavor: \"WorldDomination\", build_type: \"Release\" ) To build an AAB use: gradle( task: \"bundle\", flavor: \"WorldDomination\", build_type: \"Release\" ) You can pass multiple gradle tasks: gradle( tasks: [\"assembleDebug\", \"bundleDebug\"] ) You can pass properties to gradle: gradle( # ... properties: { \"exampleNumber\" => 100, \"exampleString\" => \"1.0.0\", # ... } ) You can use this to change the version code and name of your app: gradle( # ... properties: { \"android.injected.version.code\" => 100, \"android.injected.version.name\" => \"1.0.0\", # ... } ) You can use this to automatically sign and zipalign your app: gradle( task: \"assemble\", build_type: \"Release\", print_command: false, properties: { \"android.injected.signing.store.file\" => \"keystore.jks\", \"android.injected.signing.store.password\" => \"store_password\", \"android.injected.signing.key.alias\" => \"key_alias\", \"android.injected.signing.key.password\" => \"key_password\", } ) If you need to pass sensitive information through the gradle action, and don't want the generated command to be printed before it is run, you can suppress that: gradle( # ... print_command: false ) You can also suppress printing the output generated by running the generated Gradle command: gradle( # ... print_command_output: false ) To pass any other CLI flags to gradle use: gradle( # ... flags: \"--exitcode --xml file.xml\" ) Delete the build directory, generated APKs and AABs gradle( task: \"clean\" ) Parameters Key Description Default task The gradle task you want to execute, e.g. assemble , bundle or test . For tasks such as assembleMyFlavorRelease you should use gradle(task: 'assemble', flavor: 'Myflavor', build_type: 'Release') flavor The flavor that you want the task for, e.g. MyFlavor . If you are running the assemble task in a multi-flavor project, and you rely on Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH] then you must specify a flavor here or else this value will be undefined build_type The build type that you want the task for, e.g. Release . Useful for some tasks such as assemble tasks The multiple gradle tasks that you want to execute, e.g. [assembleDebug, bundleDebug] flags All parameter flags you want to pass to the gradle command, e.g. --exitcode --xml file.xml project_dir The root directory of the gradle project . gradle_path The path to your gradlew . If you specify a relative path, it is assumed to be relative to the project_dir properties Gradle properties to be exposed to the gradle script system_properties Gradle system properties to be exposed to the gradle script serial Android serial, which device should be used for this command '' print_command Control whether the generated Gradle command is printed as output before running it (true/false) true print_command_output Control whether the output produced by given Gradle command is printed while running (true/false) true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The gradle action generates the following Lane Variables: SharedValue Description SharedValues::GRADLE_APK_OUTPUT_PATH The path to the newly generated apk file. Undefined in a multi-variant assemble scenario SharedValues::GRADLE_ALL_APK_OUTPUT_PATHS When running a multi-variant assemble , the array of signed apk's that were generated SharedValues::GRADLE_FLAVOR The flavor, e.g. MyFlavor SharedValues::GRADLE_BUILD_TYPE The build type, e.g. Release SharedValues::GRADLE_AAB_OUTPUT_PATH The path to the most recent Android app bundle SharedValues::GRADLE_ALL_AAB_OUTPUT_PATHS The paths to the most recent Android app bundles SharedValues::GRADLE_OUTPUT_JSON_OUTPUT_PATH The path to the most recent output.json file SharedValues::GRADLE_ALL_OUTPUT_JSON_OUTPUT_PATHS The path to the newly generated output.json files SharedValues::GRADLE_MAPPING_TXT_OUTPUT_PATH The path to the most recent mapping.txt file SharedValues::GRADLE_ALL_MAPPING_TXT_OUTPUT_PATHS The path to the newly generated mapping.txt files To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action gradle CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run gradle To pass parameters, make use of the : symbol, for example fastlane run gradle parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Gradle"},{"location":"generated/actions/gradle/#gradle","text":"All gradle related actions, including building and testing your Android app Run ./gradlew tasks to get a list of all available gradle tasks for your project gradle Supported platforms ios, android Author @KrauseFx, @lmirosevic Returns The output of running the gradle task","title":"gradle"},{"location":"generated/actions/gradle/#1-example","text":"gradle( task: \"assemble\", flavor: \"WorldDomination\", build_type: \"Release\" ) To build an AAB use: gradle( task: \"bundle\", flavor: \"WorldDomination\", build_type: \"Release\" ) You can pass multiple gradle tasks: gradle( tasks: [\"assembleDebug\", \"bundleDebug\"] ) You can pass properties to gradle: gradle( # ... properties: { \"exampleNumber\" => 100, \"exampleString\" => \"1.0.0\", # ... } ) You can use this to change the version code and name of your app: gradle( # ... properties: { \"android.injected.version.code\" => 100, \"android.injected.version.name\" => \"1.0.0\", # ... } ) You can use this to automatically sign and zipalign your app: gradle( task: \"assemble\", build_type: \"Release\", print_command: false, properties: { \"android.injected.signing.store.file\" => \"keystore.jks\", \"android.injected.signing.store.password\" => \"store_password\", \"android.injected.signing.key.alias\" => \"key_alias\", \"android.injected.signing.key.password\" => \"key_password\", } ) If you need to pass sensitive information through the gradle action, and don't want the generated command to be printed before it is run, you can suppress that: gradle( # ... print_command: false ) You can also suppress printing the output generated by running the generated Gradle command: gradle( # ... print_command_output: false ) To pass any other CLI flags to gradle use: gradle( # ... flags: \"--exitcode --xml file.xml\" ) Delete the build directory, generated APKs and AABs gradle( task: \"clean\" )","title":"1 Example"},{"location":"generated/actions/gradle/#parameters","text":"Key Description Default task The gradle task you want to execute, e.g. assemble , bundle or test . For tasks such as assembleMyFlavorRelease you should use gradle(task: 'assemble', flavor: 'Myflavor', build_type: 'Release') flavor The flavor that you want the task for, e.g. MyFlavor . If you are running the assemble task in a multi-flavor project, and you rely on Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH] then you must specify a flavor here or else this value will be undefined build_type The build type that you want the task for, e.g. Release . Useful for some tasks such as assemble tasks The multiple gradle tasks that you want to execute, e.g. [assembleDebug, bundleDebug] flags All parameter flags you want to pass to the gradle command, e.g. --exitcode --xml file.xml project_dir The root directory of the gradle project . gradle_path The path to your gradlew . If you specify a relative path, it is assumed to be relative to the project_dir properties Gradle properties to be exposed to the gradle script system_properties Gradle system properties to be exposed to the gradle script serial Android serial, which device should be used for this command '' print_command Control whether the generated Gradle command is printed as output before running it (true/false) true print_command_output Control whether the output produced by given Gradle command is printed while running (true/false) true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/gradle/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The gradle action generates the following Lane Variables: SharedValue Description SharedValues::GRADLE_APK_OUTPUT_PATH The path to the newly generated apk file. Undefined in a multi-variant assemble scenario SharedValues::GRADLE_ALL_APK_OUTPUT_PATHS When running a multi-variant assemble , the array of signed apk's that were generated SharedValues::GRADLE_FLAVOR The flavor, e.g. MyFlavor SharedValues::GRADLE_BUILD_TYPE The build type, e.g. Release SharedValues::GRADLE_AAB_OUTPUT_PATH The path to the most recent Android app bundle SharedValues::GRADLE_ALL_AAB_OUTPUT_PATHS The paths to the most recent Android app bundles SharedValues::GRADLE_OUTPUT_JSON_OUTPUT_PATH The path to the most recent output.json file SharedValues::GRADLE_ALL_OUTPUT_JSON_OUTPUT_PATHS The path to the newly generated output.json files SharedValues::GRADLE_MAPPING_TXT_OUTPUT_PATH The path to the most recent mapping.txt file SharedValues::GRADLE_ALL_MAPPING_TXT_OUTPUT_PATHS The path to the newly generated mapping.txt files To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/gradle/#documentation","text":"To show the documentation in your terminal, run fastlane action gradle","title":"Documentation"},{"location":"generated/actions/gradle/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run gradle To pass parameters, make use of the : symbol, for example fastlane run gradle parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/gradle/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/gym/","text":"gym Alias for the build_app action Features \u2022 Usage \u2022 Tips gym is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. What's gym? gym builds and packages iOS apps for you. It takes care of all the heavy lifting and makes it super easy to generate a signed ipa or app file \ud83d\udcaa gym is a replacement for shenzhen . Before gym xcodebuild clean archive -archivePath build/MyApp \\ -scheme MyApp xcodebuild -exportArchive \\ -exportFormat ipa \\ -archivePath \"build/MyApp.xcarchive\" \\ -exportPath \"build/MyApp.ipa\" \\ -exportProvisioningProfile \"ProvisioningProfileName\" With gym fastlane gym Why gym ? gym uses the latest APIs to build and sign your application which results in much faster build times. gym Features \ud83d\ude80 gym builds 30% faster than other build tools like shenzhen \ud83c\udfc1 Beautiful inline build output \ud83d\udcd6 Helps you resolve common build errors like code signing issues \ud83d\udea0 Sensible defaults: Automatically detect the project, its schemes and more \ud83d\udd17 Works perfectly with fastlane and other tools \ud83d\udce6 Automatically generates an ipa and a compressed dSYM file \ud83d\ude85 Don't remember any complicated build commands, just gym \ud83d\udd27 Easy and dynamic configuration using parameters and environment variables \ud83d\udcbe Store common build settings in a Gymfile \ud83d\udce4 All archives are stored and accessible in the Xcode Organizer \ud83d\udcbb Supports both iOS and Mac applications Usage fastlane gym That's all you need to build your application. If you want more control, here are some available parameters: fastlane gym --workspace \"Example.xcworkspace\" --scheme \"AppName\" --clean If you need to use a different Xcode installation, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" fastlane gym For a list of all available parameters use fastlane action gym If you run into any issues, use the verbose mode to get more information fastlane gym --verbose Set the right export method if you're not uploading to App Store or TestFlight: fastlane gym --export_method ad-hoc To pass boolean parameters make sure to use gym like this: fastlane gym --include_bitcode true --include_symbols false To access the raw xcodebuild output open ~/Library/Logs/gym Gymfile Since you might want to manually trigger a new build but don't want to specify all the parameters every time, you can store your defaults in a so called Gymfile . Run fastlane gym init to create a new configuration file. Example: scheme(\"Example\") sdk(\"iphoneos9.0\") clean(true) output_directory(\"./build\") # store the ipa in this folder output_name(\"MyApp\") # the name of the ipa file Export options Since Xcode 7, gym is using new Xcode API which allows us to specify export options using plist file. By default gym creates this file for you and you are able to modify some parameters by using export_method , export_team_id , include_symbols or include_bitcode . If you want to have more options, like creating manifest file for app thinning, you can provide your own plist file: export_options(\"./ExportOptions.plist\") or you can provide hash of values directly in the Gymfile : export_options({ method: \"ad-hoc\", manifest: { appURL: \"https://example.com/My App.ipa\", }, thinning: \"\" }) Optional: If gym can't automatically detect the provisioning profiles to use, you can pass a mapping of bundle identifiers to provisioning profiles: build_app( scheme: \"Release\", export_method: \"app-store\", export_options: { provisioningProfiles: { \"com.example.bundleid\" => \"Provisioning Profile Name\", \"com.example.bundleid2\" => \"Provisioning Profile Name 2\" } } ) Note : If you use fastlane with match you don't need to provide those values manually, unless you pass a plist file into export_options For the list of available options run xcodebuild -help . Setup code signing More information on how to get started with codesigning Docs on how to set up your Xcode project Automating the whole process gym works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :beta do scan gym(scheme: \"MyApp\") crashlytics end # error block is executed when a error occurs error do |lane, exception| slack( # message with short human friendly message message: exception.to_s, success: false, # Output containing extended log output payload: { \"Output\" => exception.error_info.to_s } ) end When gym raises an error the error_info property will contain the process output in case you want to display the error in 3rd party tools such as Slack. You can then easily switch between the beta provider (e.g. testflight , hockey , s3 and more). How does it work? gym uses the latest APIs to build and sign your application. The 2 main components are xcodebuild xcpretty When you run gym without the --silent mode it will print out every command it executes. To build the archive gym uses the following command: set -o pipefail && \\ xcodebuild -scheme 'Example' \\ -project './Example.xcodeproj' \\ -configuration 'Release' \\ -destination 'generic/platform=iOS' \\ -archivePath '/Users/felixkrause/Library/Developer/Xcode/Archives/2015-08-11/ExampleProductName 2015-08-11 18.15.30.xcarchive' \\ archive | xcpretty After building the archive it is being checked by gym . If it's valid, it gets packaged up and signed into an ipa file. gym automatically chooses a different packaging method depending on the version of Xcode you're using. Xcode 7 and above /usr/bin/xcrun path/to/xcbuild-safe.sh -exportArchive \\ -exportOptionsPlist '/tmp/gym_config_1442852529.plist' \\ -archivePath '/Users/fkrause/Library/Developer/Xcode/Archives/2015-09-21/App 2015-09-21 09.21.56.xcarchive' \\ -exportPath '/tmp/1442852529' gym makes use of the new Xcode 7 API which allows us to specify the export options using a plist file. You can find more information about the available options by running xcodebuild --help . Using this method there are no workarounds for WatchKit or Swift required, as it uses the same technique Xcode uses when exporting your binary. Note: the xcbuild-safe.sh script wraps around xcodebuild to workaround some incompatibilities. Use 'ProvisionQL' for advanced Quick Look in Finder Install ProvisionQL . It will show you ipa files like this: gym Supported platforms ios, mac Author @KrauseFx Returns The absolute path to the generated ipa file 5 Examples build_app(scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\") build_app( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", silent: true, clean: true, output_directory: \"path/to/dir\", # Destination directory. Defaults to current directory. output_name: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) sdk: \"iOS 11.1\" # use SDK as the name or path of the base SDK when building the project. ) gym # alias for \"build_app\" build_ios_app # alias for \"build_app (only iOS options)\" build_mac_app # alias for \"build_app (only macOS options)\" Parameters Key Description Default workspace Path to the workspace file project Path to the project file scheme The project's scheme. Make sure it's marked as Shared clean Should the project be cleaned before building it? false output_directory The directory in which the ipa file should be stored in . output_name The name of the resulting ipa file configuration The configuration to use when building the app. Defaults to 'Release' * silent Hide all information that's not necessary while building false codesigning_identity The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH' skip_package_ipa Should we skip packaging the ipa? false skip_package_pkg Should we skip packaging the pkg? false include_symbols Should the ipa file include symbols? include_bitcode Should the ipa file include bitcode? export_method Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application export_options Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options export_xcargs Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" skip_build_archive Export ipa from previously built xcarchive. Uses archive_path as source skip_archive After building, don't archive, effectively not including -archivePath param skip_codesigning Build without codesigning catalyst_platform Platform to build when using a Catalyst enabled app. Valid values are: ios, macos installer_cert_name Full name of 3rd Party Mac Developer Installer or Developer ID Installer certificate. Example: 3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ) build_path The directory in which the archive should be stored in archive_path The path to the created archive derived_data_path The directory where built products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false result_bundle_path Path to the result bundle directory to create. Ignored if result_bundle if false buildlog_path The directory where to store the build log * sdk The SDK that should be used for building the application toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a) destination Use a custom destination for building the app export_team_id Optional: Sometimes you need to specify a team id when exporting the ipa file xcargs Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * build_timing_summary Create a build timing summary false disable_xcpretty DEPRECATED! Use xcodebuild_formatter: '' instead - Disable xcpretty formatting of build output xcpretty_test_format Use the test (RSpec style) format for build output xcpretty_formatter A custom xcpretty formatter to use xcpretty_report_junit Have xcpretty create a JUnit-style XML report at the provided path xcpretty_report_html Have xcpretty create a simple HTML report at the provided path xcpretty_report_json Have xcpretty create a JSON compilation database at the provided path xcpretty_utf Have xcpretty use unicode encoding when reporting builds analyze_build_time Analyze the project build time and store the output in 'culprits.txt' file skip_profile_detection Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used false xcodebuild_command Allows for override of the default xcodebuild command xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The gym action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::PKG_OUTPUT_PATH The path to the newly generated pkg file SharedValues::DSYM_OUTPUT_PATH The path to the dSYM files SharedValues::XCODEBUILD_ARCHIVE The path to the xcodebuild archive To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action gym CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run gym To pass parameters, make use of the : symbol, for example fastlane run gym parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Gym"},{"location":"generated/actions/gym/#gym","text":"Alias for the build_app action Features \u2022 Usage \u2022 Tips","title":"gym"},{"location":"generated/actions/gym/#whats-gym","text":"gym builds and packages iOS apps for you. It takes care of all the heavy lifting and makes it super easy to generate a signed ipa or app file \ud83d\udcaa gym is a replacement for shenzhen .","title":"What's gym?"},{"location":"generated/actions/gym/#usage","text":"fastlane gym That's all you need to build your application. If you want more control, here are some available parameters: fastlane gym --workspace \"Example.xcworkspace\" --scheme \"AppName\" --clean If you need to use a different Xcode installation, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" fastlane gym For a list of all available parameters use fastlane action gym If you run into any issues, use the verbose mode to get more information fastlane gym --verbose Set the right export method if you're not uploading to App Store or TestFlight: fastlane gym --export_method ad-hoc To pass boolean parameters make sure to use gym like this: fastlane gym --include_bitcode true --include_symbols false To access the raw xcodebuild output open ~/Library/Logs/gym","title":"Usage"},{"location":"generated/actions/gym/#gymfile","text":"Since you might want to manually trigger a new build but don't want to specify all the parameters every time, you can store your defaults in a so called Gymfile . Run fastlane gym init to create a new configuration file. Example: scheme(\"Example\") sdk(\"iphoneos9.0\") clean(true) output_directory(\"./build\") # store the ipa in this folder output_name(\"MyApp\") # the name of the ipa file","title":"Gymfile"},{"location":"generated/actions/gym/#export-options","text":"Since Xcode 7, gym is using new Xcode API which allows us to specify export options using plist file. By default gym creates this file for you and you are able to modify some parameters by using export_method , export_team_id , include_symbols or include_bitcode . If you want to have more options, like creating manifest file for app thinning, you can provide your own plist file: export_options(\"./ExportOptions.plist\") or you can provide hash of values directly in the Gymfile : export_options({ method: \"ad-hoc\", manifest: { appURL: \"https://example.com/My App.ipa\", }, thinning: \"\" }) Optional: If gym can't automatically detect the provisioning profiles to use, you can pass a mapping of bundle identifiers to provisioning profiles: build_app( scheme: \"Release\", export_method: \"app-store\", export_options: { provisioningProfiles: { \"com.example.bundleid\" => \"Provisioning Profile Name\", \"com.example.bundleid2\" => \"Provisioning Profile Name 2\" } } ) Note : If you use fastlane with match you don't need to provide those values manually, unless you pass a plist file into export_options For the list of available options run xcodebuild -help .","title":"Export options"},{"location":"generated/actions/gym/#setup-code-signing","text":"More information on how to get started with codesigning Docs on how to set up your Xcode project","title":"Setup code signing"},{"location":"generated/actions/gym/#automating-the-whole-process","text":"gym works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :beta do scan gym(scheme: \"MyApp\") crashlytics end # error block is executed when a error occurs error do |lane, exception| slack( # message with short human friendly message message: exception.to_s, success: false, # Output containing extended log output payload: { \"Output\" => exception.error_info.to_s } ) end When gym raises an error the error_info property will contain the process output in case you want to display the error in 3rd party tools such as Slack. You can then easily switch between the beta provider (e.g. testflight , hockey , s3 and more).","title":"Automating the whole process"},{"location":"generated/actions/gym/#how-does-it-work","text":"gym uses the latest APIs to build and sign your application. The 2 main components are xcodebuild xcpretty When you run gym without the --silent mode it will print out every command it executes. To build the archive gym uses the following command: set -o pipefail && \\ xcodebuild -scheme 'Example' \\ -project './Example.xcodeproj' \\ -configuration 'Release' \\ -destination 'generic/platform=iOS' \\ -archivePath '/Users/felixkrause/Library/Developer/Xcode/Archives/2015-08-11/ExampleProductName 2015-08-11 18.15.30.xcarchive' \\ archive | xcpretty After building the archive it is being checked by gym . If it's valid, it gets packaged up and signed into an ipa file. gym automatically chooses a different packaging method depending on the version of Xcode you're using.","title":"How does it work?"},{"location":"generated/actions/gym/#use-provisionql-for-advanced-quick-look-in-finder","text":"Install ProvisionQL . It will show you ipa files like this: gym Supported platforms ios, mac Author @KrauseFx Returns The absolute path to the generated ipa file","title":"Use 'ProvisionQL' for advanced Quick Look in Finder"},{"location":"generated/actions/gym/#5-examples","text":"build_app(scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\") build_app( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", silent: true, clean: true, output_directory: \"path/to/dir\", # Destination directory. Defaults to current directory. output_name: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) sdk: \"iOS 11.1\" # use SDK as the name or path of the base SDK when building the project. ) gym # alias for \"build_app\" build_ios_app # alias for \"build_app (only iOS options)\" build_mac_app # alias for \"build_app (only macOS options)\"","title":"5 Examples"},{"location":"generated/actions/gym/#parameters","text":"Key Description Default workspace Path to the workspace file project Path to the project file scheme The project's scheme. Make sure it's marked as Shared clean Should the project be cleaned before building it? false output_directory The directory in which the ipa file should be stored in . output_name The name of the resulting ipa file configuration The configuration to use when building the app. Defaults to 'Release' * silent Hide all information that's not necessary while building false codesigning_identity The name of the code signing identity to use. It has to match the name exactly. e.g. 'iPhone Distribution: SunApps GmbH' skip_package_ipa Should we skip packaging the ipa? false skip_package_pkg Should we skip packaging the pkg? false include_symbols Should the ipa file include symbols? include_bitcode Should the ipa file include bitcode? export_method Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application export_options Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options export_xcargs Pass additional arguments to xcodebuild for the package phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" skip_build_archive Export ipa from previously built xcarchive. Uses archive_path as source skip_archive After building, don't archive, effectively not including -archivePath param skip_codesigning Build without codesigning catalyst_platform Platform to build when using a Catalyst enabled app. Valid values are: ios, macos installer_cert_name Full name of 3rd Party Mac Developer Installer or Developer ID Installer certificate. Example: 3rd Party Mac Developer Installer: Your Company (ABC1234XWYZ) build_path The directory in which the archive should be stored in archive_path The path to the created archive derived_data_path The directory where built products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false result_bundle_path Path to the result bundle directory to create. Ignored if result_bundle if false buildlog_path The directory where to store the build log * sdk The SDK that should be used for building the application toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a) destination Use a custom destination for building the app export_team_id Optional: Sometimes you need to specify a team id when exporting the ipa file xcargs Pass additional arguments to xcodebuild for the build phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * build_timing_summary Create a build timing summary false disable_xcpretty DEPRECATED! Use xcodebuild_formatter: '' instead - Disable xcpretty formatting of build output xcpretty_test_format Use the test (RSpec style) format for build output xcpretty_formatter A custom xcpretty formatter to use xcpretty_report_junit Have xcpretty create a JUnit-style XML report at the provided path xcpretty_report_html Have xcpretty create a simple HTML report at the provided path xcpretty_report_json Have xcpretty create a JSON compilation database at the provided path xcpretty_utf Have xcpretty use unicode encoding when reporting builds analyze_build_time Analyze the project build time and store the output in 'culprits.txt' file skip_profile_detection Do not try to build a profile mapping from the xcodeproj. Match or a manually provided mapping should be used false xcodebuild_command Allows for override of the default xcodebuild command xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/gym/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The gym action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::PKG_OUTPUT_PATH The path to the newly generated pkg file SharedValues::DSYM_OUTPUT_PATH The path to the dSYM files SharedValues::XCODEBUILD_ARCHIVE The path to the xcodebuild archive To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/gym/#documentation","text":"To show the documentation in your terminal, run fastlane action gym","title":"Documentation"},{"location":"generated/actions/gym/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run gym To pass parameters, make use of the : symbol, for example fastlane run gym parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/gym/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/hg_add_tag/","text":"hg_add_tag This will add a hg tag to the current branch hg_add_tag Supported platforms ios, android, mac Author @sjrmanning 1 Example hg_add_tag(tag: \"1.3\") Parameters Key Description Default tag Tag to create * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action hg_add_tag CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hg_add_tag To pass parameters, make use of the : symbol, for example fastlane run hg_add_tag parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Hg add tag"},{"location":"generated/actions/hg_add_tag/#hg_add_tag","text":"This will add a hg tag to the current branch hg_add_tag Supported platforms ios, android, mac Author @sjrmanning","title":"hg_add_tag"},{"location":"generated/actions/hg_add_tag/#1-example","text":"hg_add_tag(tag: \"1.3\")","title":"1 Example"},{"location":"generated/actions/hg_add_tag/#parameters","text":"Key Description Default tag Tag to create * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/hg_add_tag/#documentation","text":"To show the documentation in your terminal, run fastlane action hg_add_tag","title":"Documentation"},{"location":"generated/actions/hg_add_tag/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hg_add_tag To pass parameters, make use of the : symbol, for example fastlane run hg_add_tag parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/hg_add_tag/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/hg_commit_version_bump/","text":"hg_commit_version_bump This will commit a version bump to the hg repo The mercurial equivalent of the commit_version_bump git action. Like the git version, it is useful in conjunction with increment_build_number . It checks the repo to make sure that only the relevant files have changed, these are the files that increment_build_number ( agvtool ) touches: All .plist files The .xcodeproj/project.pbxproj file Then commits those files to the repo. Customize the message with the :message option, defaults to 'Version Bump' If you have other uncommitted changes in your repo, this action will fail. If you started off in a clean repo, and used the ipa and or sigh actions, then you can use the clean_build_artifacts action to clean those temporary files up before running this action. hg_commit_version_bump Supported platforms ios, android, mac Author @sjrmanning 2 Examples hg_commit_version_bump hg_commit_version_bump( message: \"Version Bump\", # create a commit with a custom message xcodeproj: \"./path/MyProject.xcodeproj\", # optional, if you have multiple Xcode project files, you must specify your main project here ) Parameters Key Description Default message The commit message when committing the version bump Version Bump xcodeproj The path to your project file (Not the workspace). If you have only one, this is optional force Forces the commit, even if other files than the ones containing the version number have been modified false test_dirty_files A list of dirty files passed in for testing file1, file2 test_expected_files A list of expected changed files passed in for testing file1, file2 * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action hg_commit_version_bump CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hg_commit_version_bump To pass parameters, make use of the : symbol, for example fastlane run hg_commit_version_bump parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Hg commit version bump"},{"location":"generated/actions/hg_commit_version_bump/#hg_commit_version_bump","text":"This will commit a version bump to the hg repo The mercurial equivalent of the commit_version_bump git action. Like the git version, it is useful in conjunction with increment_build_number . It checks the repo to make sure that only the relevant files have changed, these are the files that increment_build_number ( agvtool ) touches: All .plist files The .xcodeproj/project.pbxproj file Then commits those files to the repo. Customize the message with the :message option, defaults to 'Version Bump' If you have other uncommitted changes in your repo, this action will fail. If you started off in a clean repo, and used the ipa and or sigh actions, then you can use the clean_build_artifacts action to clean those temporary files up before running this action. hg_commit_version_bump Supported platforms ios, android, mac Author @sjrmanning","title":"hg_commit_version_bump"},{"location":"generated/actions/hg_commit_version_bump/#2-examples","text":"hg_commit_version_bump hg_commit_version_bump( message: \"Version Bump\", # create a commit with a custom message xcodeproj: \"./path/MyProject.xcodeproj\", # optional, if you have multiple Xcode project files, you must specify your main project here )","title":"2 Examples"},{"location":"generated/actions/hg_commit_version_bump/#parameters","text":"Key Description Default message The commit message when committing the version bump Version Bump xcodeproj The path to your project file (Not the workspace). If you have only one, this is optional force Forces the commit, even if other files than the ones containing the version number have been modified false test_dirty_files A list of dirty files passed in for testing file1, file2 test_expected_files A list of expected changed files passed in for testing file1, file2 * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/hg_commit_version_bump/#documentation","text":"To show the documentation in your terminal, run fastlane action hg_commit_version_bump","title":"Documentation"},{"location":"generated/actions/hg_commit_version_bump/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hg_commit_version_bump To pass parameters, make use of the : symbol, for example fastlane run hg_commit_version_bump parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/hg_commit_version_bump/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/hg_ensure_clean_status/","text":"hg_ensure_clean_status Raises an exception if there are uncommitted hg changes Along the same lines as the ensure_git_status_clean action, this is a sanity check to ensure the working mercurial repo is clean. Especially useful to put at the beginning of your Fastfile in the before_all block. hg_ensure_clean_status Supported platforms ios, android, mac Author @sjrmanning 1 Example hg_ensure_clean_status Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The hg_ensure_clean_status action generates the following Lane Variables: SharedValue Description SharedValues::HG_REPO_WAS_CLEAN_ON_START Stores the fact that the hg repo was clean at some point To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action hg_ensure_clean_status CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hg_ensure_clean_status To pass parameters, make use of the : symbol, for example fastlane run hg_ensure_clean_status parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Hg ensure clean status"},{"location":"generated/actions/hg_ensure_clean_status/#hg_ensure_clean_status","text":"Raises an exception if there are uncommitted hg changes Along the same lines as the ensure_git_status_clean action, this is a sanity check to ensure the working mercurial repo is clean. Especially useful to put at the beginning of your Fastfile in the before_all block. hg_ensure_clean_status Supported platforms ios, android, mac Author @sjrmanning","title":"hg_ensure_clean_status"},{"location":"generated/actions/hg_ensure_clean_status/#1-example","text":"hg_ensure_clean_status","title":"1 Example"},{"location":"generated/actions/hg_ensure_clean_status/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The hg_ensure_clean_status action generates the following Lane Variables: SharedValue Description SharedValues::HG_REPO_WAS_CLEAN_ON_START Stores the fact that the hg repo was clean at some point To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/hg_ensure_clean_status/#documentation","text":"To show the documentation in your terminal, run fastlane action hg_ensure_clean_status","title":"Documentation"},{"location":"generated/actions/hg_ensure_clean_status/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hg_ensure_clean_status To pass parameters, make use of the : symbol, for example fastlane run hg_ensure_clean_status parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/hg_ensure_clean_status/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/hg_push/","text":"hg_push This will push changes to the remote hg repository The mercurial equivalent of push_to_git_remote . Pushes your local commits to a remote mercurial repo. Useful when local changes such as adding a version bump commit or adding a tag are part of your lane\u2019s actions. hg_push Supported platforms ios, android, mac Author @sjrmanning 2 Examples hg_push hg_push( destination: \"ssh://hg@repohost.com/owner/repo\", force: true ) Parameters Key Description Default force Force push to remote false destination The destination to push to '' * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action hg_push CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hg_push To pass parameters, make use of the : symbol, for example fastlane run hg_push parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Hg push"},{"location":"generated/actions/hg_push/#hg_push","text":"This will push changes to the remote hg repository The mercurial equivalent of push_to_git_remote . Pushes your local commits to a remote mercurial repo. Useful when local changes such as adding a version bump commit or adding a tag are part of your lane\u2019s actions. hg_push Supported platforms ios, android, mac Author @sjrmanning","title":"hg_push"},{"location":"generated/actions/hg_push/#2-examples","text":"hg_push hg_push( destination: \"ssh://hg@repohost.com/owner/repo\", force: true )","title":"2 Examples"},{"location":"generated/actions/hg_push/#parameters","text":"Key Description Default force Force push to remote false destination The destination to push to '' * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/hg_push/#documentation","text":"To show the documentation in your terminal, run fastlane action hg_push","title":"Documentation"},{"location":"generated/actions/hg_push/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hg_push To pass parameters, make use of the : symbol, for example fastlane run hg_push parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/hg_push/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/hipchat/","text":"hipchat Send a error/success message to HipChat Send a message to room (by default) or a direct message to @username with success (green) or failure (red) status. hipchat Supported platforms ios, android, mac Author @jingx23 1 Example hipchat( message: \"App successfully released!\", message_format: \"html\", # or \"text\", defaults to \"html\" channel: \"Room or @username\", success: true ) Parameters Key Description Default message The message to post on HipChat '' channel The room or @username api_token Hipchat API Token custom_color Specify a custom color, this overrides the success boolean. Can be one of 'yellow', 'red', 'green', 'purple', 'gray', or 'random' success Was this build successful? (true/false) true version Version of the Hipchat API. Must be 1 or 2 notify_room Should the people in the room be notified? (true/false) false api_host The host of the HipChat-Server API api.hipchat.com message_format Format of the message to post. Must be either 'html' or 'text' html include_html_header Should html formatted messages include a preformatted header? (true/false) true from Name the message will appear to be sent from fastlane * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action hipchat CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hipchat To pass parameters, make use of the : symbol, for example fastlane run hipchat parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Hipchat"},{"location":"generated/actions/hipchat/#hipchat","text":"Send a error/success message to HipChat Send a message to room (by default) or a direct message to @username with success (green) or failure (red) status. hipchat Supported platforms ios, android, mac Author @jingx23","title":"hipchat"},{"location":"generated/actions/hipchat/#1-example","text":"hipchat( message: \"App successfully released!\", message_format: \"html\", # or \"text\", defaults to \"html\" channel: \"Room or @username\", success: true )","title":"1 Example"},{"location":"generated/actions/hipchat/#parameters","text":"Key Description Default message The message to post on HipChat '' channel The room or @username api_token Hipchat API Token custom_color Specify a custom color, this overrides the success boolean. Can be one of 'yellow', 'red', 'green', 'purple', 'gray', or 'random' success Was this build successful? (true/false) true version Version of the Hipchat API. Must be 1 or 2 notify_room Should the people in the room be notified? (true/false) false api_host The host of the HipChat-Server API api.hipchat.com message_format Format of the message to post. Must be either 'html' or 'text' html include_html_header Should html formatted messages include a preformatted header? (true/false) true from Name the message will appear to be sent from fastlane * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/hipchat/#documentation","text":"To show the documentation in your terminal, run fastlane action hipchat","title":"Documentation"},{"location":"generated/actions/hipchat/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hipchat To pass parameters, make use of the : symbol, for example fastlane run hipchat parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/hipchat/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/hockey/","text":"hockey Refer to App Center HockeyApp will be no longer supported and will be transitioned into App Center on November 16, 2019. Please migrate over to App Center HockeyApp will be no longer supported and will be transitioned into App Center on November 16, 2019. Please migrate over to App Center Symbols will also be uploaded automatically if a app.dSYM.zip file is found next to app.ipa . In case it is located in a different place you can specify the path explicitly in the :dsym parameter. More information about the available options can be found in the HockeyApp Docs . hockey Supported platforms ios, android, mac Author @KrauseFx, @modzelewski, @lacostej 3 Examples hockey( api_token: \"...\", ipa: \"./app.ipa\", notes: \"Changelog\" ) hockey( api_token: \"...\", create_update: true, public_identifier: \"....\", bundle_short_version: \"1.0.2\", bundle_version: \"1.0.2.145\", ipa: \"./my.msi\", notes: \"Changelog\" ) # You can bypass the CDN if you are uploading to Hockey and receive an SSL error (which can happen on corporate firewalls) hockey( api_token: \"...\", ipa: \"./app.ipa\", notes: \"Changelog\", bypass_cdn: true ) Parameters Key Description Default apk Path to your APK file * api_token API Token for Hockey Access ipa Path to your IPA file. Optional if you use the gym or xcodebuild action. For Mac zip the .app. For Android provide path to .apk file. In addition you could use this to upload .msi, .zip, .pkg, etc if you use the 'create_update' mechanism * dsym Path to your symbols file. For iOS and Mac provide path to app.dSYM.zip. For Android provide path to mappings.txt file * create_update Set true if you want to create then update your app as opposed to just upload it. You will need the 'public_identifier', 'bundle_version' and 'bundle_short_version' false notes Beta Notes * notify Notify testers? \"1\" for yes 1 status Download status: \"1\" = No user can download; \"2\" = Available for download (only possible with full-access token) 2 create_status Download status for initial version creation when create_update is true: \"1\" = No user can download; \"2\" = Available for download (only possible with full-access token) 2 notes_type Notes type for your :notes, \"0\" = Textile, \"1\" = Markdown (default) 1 release_type Release type of the app: \"0\" = Beta (default), \"1\" = Store, \"2\" = Alpha, \"3\" = Enterprise 0 mandatory Set to \"1\" to make this update mandatory 0 teams Comma separated list of team ID numbers to which this build will be restricted users Comma separated list of user ID numbers to which this build will be restricted tags Comma separated list of tags which will receive access to the build bundle_short_version The bundle_short_version of your application, required when using create_update bundle_version The bundle_version of your application, required when using create_update public_identifier App id of the app you are targeting, usually you won't need this value. Required, if upload_dsym_only set to true commit_sha The Git commit SHA for this build repository_url The URL of your source repository build_server_url The URL of the build job on your build server upload_dsym_only Flag to upload only the dSYM file to hockey app false owner_id ID for the owner of the app strategy Strategy: 'add' = to add the build as a new build even if it has the same build number (default); 'replace' = to replace a build with the same build number add timeout Request timeout in seconds bypass_cdn Flag to bypass Hockey CDN when it uploads successfully but reports error false dsa_signature DSA signature for sparkle updates for macOS '' * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The hockey action generates the following Lane Variables: SharedValue Description SharedValues::HOCKEY_DOWNLOAD_LINK The newly generated download link for this build SharedValues::HOCKEY_BUILD_INFORMATION contains all keys/values from the HockeyApp API, like :title, :bundle_identifier To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action hockey CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hockey To pass parameters, make use of the : symbol, for example fastlane run hockey parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Hockey"},{"location":"generated/actions/hockey/#hockey","text":"Refer to App Center HockeyApp will be no longer supported and will be transitioned into App Center on November 16, 2019. Please migrate over to App Center HockeyApp will be no longer supported and will be transitioned into App Center on November 16, 2019. Please migrate over to App Center Symbols will also be uploaded automatically if a app.dSYM.zip file is found next to app.ipa . In case it is located in a different place you can specify the path explicitly in the :dsym parameter. More information about the available options can be found in the HockeyApp Docs . hockey Supported platforms ios, android, mac Author @KrauseFx, @modzelewski, @lacostej","title":"hockey"},{"location":"generated/actions/hockey/#3-examples","text":"hockey( api_token: \"...\", ipa: \"./app.ipa\", notes: \"Changelog\" ) hockey( api_token: \"...\", create_update: true, public_identifier: \"....\", bundle_short_version: \"1.0.2\", bundle_version: \"1.0.2.145\", ipa: \"./my.msi\", notes: \"Changelog\" ) # You can bypass the CDN if you are uploading to Hockey and receive an SSL error (which can happen on corporate firewalls) hockey( api_token: \"...\", ipa: \"./app.ipa\", notes: \"Changelog\", bypass_cdn: true )","title":"3 Examples"},{"location":"generated/actions/hockey/#parameters","text":"Key Description Default apk Path to your APK file * api_token API Token for Hockey Access ipa Path to your IPA file. Optional if you use the gym or xcodebuild action. For Mac zip the .app. For Android provide path to .apk file. In addition you could use this to upload .msi, .zip, .pkg, etc if you use the 'create_update' mechanism * dsym Path to your symbols file. For iOS and Mac provide path to app.dSYM.zip. For Android provide path to mappings.txt file * create_update Set true if you want to create then update your app as opposed to just upload it. You will need the 'public_identifier', 'bundle_version' and 'bundle_short_version' false notes Beta Notes * notify Notify testers? \"1\" for yes 1 status Download status: \"1\" = No user can download; \"2\" = Available for download (only possible with full-access token) 2 create_status Download status for initial version creation when create_update is true: \"1\" = No user can download; \"2\" = Available for download (only possible with full-access token) 2 notes_type Notes type for your :notes, \"0\" = Textile, \"1\" = Markdown (default) 1 release_type Release type of the app: \"0\" = Beta (default), \"1\" = Store, \"2\" = Alpha, \"3\" = Enterprise 0 mandatory Set to \"1\" to make this update mandatory 0 teams Comma separated list of team ID numbers to which this build will be restricted users Comma separated list of user ID numbers to which this build will be restricted tags Comma separated list of tags which will receive access to the build bundle_short_version The bundle_short_version of your application, required when using create_update bundle_version The bundle_version of your application, required when using create_update public_identifier App id of the app you are targeting, usually you won't need this value. Required, if upload_dsym_only set to true commit_sha The Git commit SHA for this build repository_url The URL of your source repository build_server_url The URL of the build job on your build server upload_dsym_only Flag to upload only the dSYM file to hockey app false owner_id ID for the owner of the app strategy Strategy: 'add' = to add the build as a new build even if it has the same build number (default); 'replace' = to replace a build with the same build number add timeout Request timeout in seconds bypass_cdn Flag to bypass Hockey CDN when it uploads successfully but reports error false dsa_signature DSA signature for sparkle updates for macOS '' * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/hockey/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The hockey action generates the following Lane Variables: SharedValue Description SharedValues::HOCKEY_DOWNLOAD_LINK The newly generated download link for this build SharedValues::HOCKEY_BUILD_INFORMATION contains all keys/values from the HockeyApp API, like :title, :bundle_identifier To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/hockey/#documentation","text":"To show the documentation in your terminal, run fastlane action hockey","title":"Documentation"},{"location":"generated/actions/hockey/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run hockey To pass parameters, make use of the : symbol, for example fastlane run hockey parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/hockey/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/ifttt/","text":"ifttt Connect to the IFTTT Maker Channel Connect to the IFTTT Maker Channel . An IFTTT Recipe has two components: a Trigger and an Action. In this case, the Trigger will fire every time the Maker Channel receives a web request (made by this fastlane action) to notify it of an event. The Action can be anything that IFTTT supports: email, SMS, etc. ifttt Supported platforms ios, android, mac Author @vpolouchkine 1 Example ifttt( api_key: \"...\", event_name: \"...\", value1: \"foo\", value2: \"bar\", value3: \"baz\" ) Parameters Key Description Default api_key API key event_name The name of the event that will be triggered value1 Extra data sent with the event value2 Extra data sent with the event value3 Extra data sent with the event * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action ifttt CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ifttt To pass parameters, make use of the : symbol, for example fastlane run ifttt parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Ifttt"},{"location":"generated/actions/ifttt/#ifttt","text":"Connect to the IFTTT Maker Channel Connect to the IFTTT Maker Channel . An IFTTT Recipe has two components: a Trigger and an Action. In this case, the Trigger will fire every time the Maker Channel receives a web request (made by this fastlane action) to notify it of an event. The Action can be anything that IFTTT supports: email, SMS, etc. ifttt Supported platforms ios, android, mac Author @vpolouchkine","title":"ifttt"},{"location":"generated/actions/ifttt/#1-example","text":"ifttt( api_key: \"...\", event_name: \"...\", value1: \"foo\", value2: \"bar\", value3: \"baz\" )","title":"1 Example"},{"location":"generated/actions/ifttt/#parameters","text":"Key Description Default api_key API key event_name The name of the event that will be triggered value1 Extra data sent with the event value2 Extra data sent with the event value3 Extra data sent with the event * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/ifttt/#documentation","text":"To show the documentation in your terminal, run fastlane action ifttt","title":"Documentation"},{"location":"generated/actions/ifttt/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ifttt To pass parameters, make use of the : symbol, for example fastlane run ifttt parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/ifttt/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/import/","text":"import Import another Fastfile to use its lanes 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 Supported platforms ios, android, mac Author @KrauseFx 1 Example import(\"./path/to/other/Fastfile\") Documentation To show the documentation in your terminal, run fastlane action import CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run import To pass parameters, make use of the : symbol, for example fastlane run import parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Import"},{"location":"generated/actions/import/#import","text":"Import another Fastfile to use its lanes 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 Supported platforms ios, android, mac Author @KrauseFx","title":"import"},{"location":"generated/actions/import/#1-example","text":"import(\"./path/to/other/Fastfile\")","title":"1 Example"},{"location":"generated/actions/import/#documentation","text":"To show the documentation in your terminal, run fastlane action import","title":"Documentation"},{"location":"generated/actions/import/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run import To pass parameters, make use of the : symbol, for example fastlane run import parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/import/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/import_certificate/","text":"import_certificate Import certificate from inputfile into a keychain Import certificates (and private keys) into the current default keychain. Use the create_keychain action to create a new keychain. import_certificate Supported platforms ios, android, mac Author @gin0606 3 Examples import_certificate(certificate_path: \"certs/AppleWWDRCA6.cer\") import_certificate( certificate_path: \"certs/dist.p12\", certificate_password: ENV[\"CERTIFICATE_PASSWORD\"] || \"default\" ) import_certificate( certificate_path: \"certs/development.cer\" ) Parameters Key Description Default certificate_path Path to certificate certificate_password Certificate password '' keychain_name Keychain the items should be imported to keychain_path Path to the Keychain file to which the items should be imported keychain_password The password for the keychain. Note that for the login keychain this is your user's password log_output If output should be logged to the console false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action import_certificate CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run import_certificate To pass parameters, make use of the : symbol, for example fastlane run import_certificate parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Import certificate"},{"location":"generated/actions/import_certificate/#import_certificate","text":"Import certificate from inputfile into a keychain Import certificates (and private keys) into the current default keychain. Use the create_keychain action to create a new keychain. import_certificate Supported platforms ios, android, mac Author @gin0606","title":"import_certificate"},{"location":"generated/actions/import_certificate/#3-examples","text":"import_certificate(certificate_path: \"certs/AppleWWDRCA6.cer\") import_certificate( certificate_path: \"certs/dist.p12\", certificate_password: ENV[\"CERTIFICATE_PASSWORD\"] || \"default\" ) import_certificate( certificate_path: \"certs/development.cer\" )","title":"3 Examples"},{"location":"generated/actions/import_certificate/#parameters","text":"Key Description Default certificate_path Path to certificate certificate_password Certificate password '' keychain_name Keychain the items should be imported to keychain_path Path to the Keychain file to which the items should be imported keychain_password The password for the keychain. Note that for the login keychain this is your user's password log_output If output should be logged to the console false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/import_certificate/#documentation","text":"To show the documentation in your terminal, run fastlane action import_certificate","title":"Documentation"},{"location":"generated/actions/import_certificate/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run import_certificate To pass parameters, make use of the : symbol, for example fastlane run import_certificate parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/import_certificate/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/import_from_git/","text":"import_from_git Import another Fastfile from a remote git repository to use its lanes This is useful if you have shared lanes across multiple apps and you want to store the Fastfile in a remote git repository. import_from_git Supported platforms ios, android, mac Author @fabiomassimo, @KrauseFx, @Liquidsoul 2 Examples import_from_git( url: \"git@github.com:fastlane/fastlane.git\", # The URL of the repository to import the Fastfile from. branch: \"HEAD\", # The branch to checkout on the repository. path: \"fastlane/Fastfile\", # The path of the Fastfile in the repository. version: \"~> 1.0.0\" # The version to checkout on the repository. Optimistic match operator can be used to select the latest version within constraints. ) import_from_git( url: \"git@github.com:fastlane/fastlane.git\", # The URL of the repository to import the Fastfile from. branch: \"HEAD\", # The branch to checkout on the repository. path: \"fastlane/Fastfile\", # The path of the Fastfile in the repository. version: [\">= 1.1.0\", \"< 2.0.0\"], # The version to checkout on the repository. Multiple conditions can be used to select the latest version within constraints. cache_path: \"~/.cache/fastlane/imported\" # A directory in which the repository will be added, which means that it will not be cloned again on subsequent calls. ) Parameters Key Description Default url The URL of the repository to import the Fastfile from branch The branch or tag to check-out on the repository HEAD dependencies The array of additional Fastfiles in the repository [] path The path of the Fastfile in the repository fastlane/Fastfile version The version to checkout on the repository. Optimistic match operator or multiple conditions can be used to select the latest version within constraints cache_path The path to a directory where the repository should be cloned into. Defaults to nil , which causes the repository to be cloned on every call, to a temporary directory * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action import_from_git CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run import_from_git To pass parameters, make use of the : symbol, for example fastlane run import_from_git parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Import from git"},{"location":"generated/actions/import_from_git/#import_from_git","text":"Import another Fastfile from a remote git repository to use its lanes This is useful if you have shared lanes across multiple apps and you want to store the Fastfile in a remote git repository. import_from_git Supported platforms ios, android, mac Author @fabiomassimo, @KrauseFx, @Liquidsoul","title":"import_from_git"},{"location":"generated/actions/import_from_git/#2-examples","text":"import_from_git( url: \"git@github.com:fastlane/fastlane.git\", # The URL of the repository to import the Fastfile from. branch: \"HEAD\", # The branch to checkout on the repository. path: \"fastlane/Fastfile\", # The path of the Fastfile in the repository. version: \"~> 1.0.0\" # The version to checkout on the repository. Optimistic match operator can be used to select the latest version within constraints. ) import_from_git( url: \"git@github.com:fastlane/fastlane.git\", # The URL of the repository to import the Fastfile from. branch: \"HEAD\", # The branch to checkout on the repository. path: \"fastlane/Fastfile\", # The path of the Fastfile in the repository. version: [\">= 1.1.0\", \"< 2.0.0\"], # The version to checkout on the repository. Multiple conditions can be used to select the latest version within constraints. cache_path: \"~/.cache/fastlane/imported\" # A directory in which the repository will be added, which means that it will not be cloned again on subsequent calls. )","title":"2 Examples"},{"location":"generated/actions/import_from_git/#parameters","text":"Key Description Default url The URL of the repository to import the Fastfile from branch The branch or tag to check-out on the repository HEAD dependencies The array of additional Fastfiles in the repository [] path The path of the Fastfile in the repository fastlane/Fastfile version The version to checkout on the repository. Optimistic match operator or multiple conditions can be used to select the latest version within constraints cache_path The path to a directory where the repository should be cloned into. Defaults to nil , which causes the repository to be cloned on every call, to a temporary directory * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/import_from_git/#documentation","text":"To show the documentation in your terminal, run fastlane action import_from_git","title":"Documentation"},{"location":"generated/actions/import_from_git/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run import_from_git To pass parameters, make use of the : symbol, for example fastlane run import_from_git parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/import_from_git/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/increment_build_number/","text":"increment_build_number Increment the build number of your project increment_build_number Supported platforms ios, mac Author @KrauseFx Returns The new build number 4 Examples increment_build_number # automatically increment by one increment_build_number( build_number: \"75\" # set a specific number ) increment_build_number( build_number: 75, # specify specific build number (optional, omitting it increments by one) xcodeproj: \"./path/to/MyApp.xcodeproj\" # (optional, you must specify the path to your main Xcode project if it is not in the project root directory) ) build_number = increment_build_number Parameters Key Description Default build_number Change to a specific version. When you provide this parameter, Apple Generic Versioning does not have to be enabled skip_info_plist Don't update Info.plist files when updating the build version false xcodeproj optional, you must specify the path to your main Xcode project if it is not in the project root directory * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The increment_build_number action generates the following Lane Variables: SharedValue Description SharedValues::BUILD_NUMBER The new build number To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action increment_build_number CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run increment_build_number To pass parameters, make use of the : symbol, for example fastlane run increment_build_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Increment build number"},{"location":"generated/actions/increment_build_number/#increment_build_number","text":"Increment the build number of your project increment_build_number Supported platforms ios, mac Author @KrauseFx Returns The new build number","title":"increment_build_number"},{"location":"generated/actions/increment_build_number/#4-examples","text":"increment_build_number # automatically increment by one increment_build_number( build_number: \"75\" # set a specific number ) increment_build_number( build_number: 75, # specify specific build number (optional, omitting it increments by one) xcodeproj: \"./path/to/MyApp.xcodeproj\" # (optional, you must specify the path to your main Xcode project if it is not in the project root directory) ) build_number = increment_build_number","title":"4 Examples"},{"location":"generated/actions/increment_build_number/#parameters","text":"Key Description Default build_number Change to a specific version. When you provide this parameter, Apple Generic Versioning does not have to be enabled skip_info_plist Don't update Info.plist files when updating the build version false xcodeproj optional, you must specify the path to your main Xcode project if it is not in the project root directory * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/increment_build_number/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The increment_build_number action generates the following Lane Variables: SharedValue Description SharedValues::BUILD_NUMBER The new build number To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/increment_build_number/#documentation","text":"To show the documentation in your terminal, run fastlane action increment_build_number","title":"Documentation"},{"location":"generated/actions/increment_build_number/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run increment_build_number To pass parameters, make use of the : symbol, for example fastlane run increment_build_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/increment_build_number/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/increment_version_number/","text":"increment_version_number Increment the version number of your project This action will increment the version number. You first have to set up your Xcode project, if you haven't done it already: https://developer.apple.com/library/ios/qa/qa1827/_index.html . increment_version_number Supported platforms ios, mac Author @serluca Returns The new version number 7 Examples increment_version_number # Automatically increment version number increment_version_number( bump_type: \"patch\" # Automatically increment patch version number ) increment_version_number( bump_type: \"minor\" # Automatically increment minor version number ) increment_version_number( bump_type: \"major\" # Automatically increment major version number ) increment_version_number( version_number: \"2.1.1\" # Set a specific version number ) increment_version_number( version_number: \"2.1.1\", # specify specific version number (optional, omitting it increments patch version number) xcodeproj: \"./path/to/MyApp.xcodeproj\" # (optional, you must specify the path to your main Xcode project if it is not in the project root directory) ) version = increment_version_number Parameters Key Description Default bump_type The type of this version bump. Available: patch, minor, major bump version_number Change to a specific version. This will replace the bump type value xcodeproj optional, you must specify the path to your main Xcode project if it is not in the project root directory * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The increment_version_number action generates the following Lane Variables: SharedValue Description SharedValues::VERSION_NUMBER The new version number To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action increment_version_number CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run increment_version_number To pass parameters, make use of the : symbol, for example fastlane run increment_version_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Increment version number"},{"location":"generated/actions/increment_version_number/#increment_version_number","text":"Increment the version number of your project This action will increment the version number. You first have to set up your Xcode project, if you haven't done it already: https://developer.apple.com/library/ios/qa/qa1827/_index.html . increment_version_number Supported platforms ios, mac Author @serluca Returns The new version number","title":"increment_version_number"},{"location":"generated/actions/increment_version_number/#7-examples","text":"increment_version_number # Automatically increment version number increment_version_number( bump_type: \"patch\" # Automatically increment patch version number ) increment_version_number( bump_type: \"minor\" # Automatically increment minor version number ) increment_version_number( bump_type: \"major\" # Automatically increment major version number ) increment_version_number( version_number: \"2.1.1\" # Set a specific version number ) increment_version_number( version_number: \"2.1.1\", # specify specific version number (optional, omitting it increments patch version number) xcodeproj: \"./path/to/MyApp.xcodeproj\" # (optional, you must specify the path to your main Xcode project if it is not in the project root directory) ) version = increment_version_number","title":"7 Examples"},{"location":"generated/actions/increment_version_number/#parameters","text":"Key Description Default bump_type The type of this version bump. Available: patch, minor, major bump version_number Change to a specific version. This will replace the bump type value xcodeproj optional, you must specify the path to your main Xcode project if it is not in the project root directory * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/increment_version_number/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The increment_version_number action generates the following Lane Variables: SharedValue Description SharedValues::VERSION_NUMBER The new version number To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/increment_version_number/#documentation","text":"To show the documentation in your terminal, run fastlane action increment_version_number","title":"Documentation"},{"location":"generated/actions/increment_version_number/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run increment_version_number To pass parameters, make use of the : symbol, for example fastlane run increment_version_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/increment_version_number/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/install_on_device/","text":"install_on_device Installs an .ipa file on a connected iOS-device via usb or wifi Installs the ipa on the device. If no id is given, the first found iOS device will be used. Works via USB or Wi-Fi. This requires ios-deploy to be installed. Please have a look at ios-deploy . To quickly install it, use npm -g i ios-deploy install_on_device Supported platforms ios Author @hjanuschka 1 Example install_on_device( device_id: \"a3be6c9ff7e5c3c6028597513243b0f933b876d4\", ipa: \"./app.ipa\" ) Parameters Key Description Default extra Extra Commandline arguments passed to ios-deploy device_id id of the device / if not set defaults to first found device skip_wifi Do not search for devices via WiFi ipa The IPA file to put on the device * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action install_on_device CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run install_on_device To pass parameters, make use of the : symbol, for example fastlane run install_on_device parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Install on device"},{"location":"generated/actions/install_on_device/#install_on_device","text":"Installs an .ipa file on a connected iOS-device via usb or wifi Installs the ipa on the device. If no id is given, the first found iOS device will be used. Works via USB or Wi-Fi. This requires ios-deploy to be installed. Please have a look at ios-deploy . To quickly install it, use npm -g i ios-deploy install_on_device Supported platforms ios Author @hjanuschka","title":"install_on_device"},{"location":"generated/actions/install_on_device/#1-example","text":"install_on_device( device_id: \"a3be6c9ff7e5c3c6028597513243b0f933b876d4\", ipa: \"./app.ipa\" )","title":"1 Example"},{"location":"generated/actions/install_on_device/#parameters","text":"Key Description Default extra Extra Commandline arguments passed to ios-deploy device_id id of the device / if not set defaults to first found device skip_wifi Do not search for devices via WiFi ipa The IPA file to put on the device * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/install_on_device/#documentation","text":"To show the documentation in your terminal, run fastlane action install_on_device","title":"Documentation"},{"location":"generated/actions/install_on_device/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run install_on_device To pass parameters, make use of the : symbol, for example fastlane run install_on_device parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/install_on_device/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/install_provisioning_profile/","text":"install_provisioning_profile Install provisioning profile from path Install provisioning profile from path for current user install_provisioning_profile Supported platforms ios, mac Author @SofteqDG Returns The absolute path to the installed provisioning profile 1 Example install_provisioning_profile(path: \"profiles/profile.mobileprovision\") Parameters Key Description Default path Path to provisioning profile * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action install_provisioning_profile CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run install_provisioning_profile To pass parameters, make use of the : symbol, for example fastlane run install_provisioning_profile parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Install provisioning profile"},{"location":"generated/actions/install_provisioning_profile/#install_provisioning_profile","text":"Install provisioning profile from path Install provisioning profile from path for current user install_provisioning_profile Supported platforms ios, mac Author @SofteqDG Returns The absolute path to the installed provisioning profile","title":"install_provisioning_profile"},{"location":"generated/actions/install_provisioning_profile/#1-example","text":"install_provisioning_profile(path: \"profiles/profile.mobileprovision\")","title":"1 Example"},{"location":"generated/actions/install_provisioning_profile/#parameters","text":"Key Description Default path Path to provisioning profile * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/install_provisioning_profile/#documentation","text":"To show the documentation in your terminal, run fastlane action install_provisioning_profile","title":"Documentation"},{"location":"generated/actions/install_provisioning_profile/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run install_provisioning_profile To pass parameters, make use of the : symbol, for example fastlane run install_provisioning_profile parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/install_provisioning_profile/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/install_xcode_plugin/","text":"install_xcode_plugin Install an Xcode plugin for the current user install_xcode_plugin Supported platforms ios, mac Author @NeoNachoSoto, @tommeier 2 Examples install_xcode_plugin(url: \"https://example.com/clubmate/plugin.zip\") install_xcode_plugin(github: \"https://github.com/contentful/ContentfulXcodePlugin\") Parameters Key Description Default url URL for Xcode plugin ZIP file github GitHub repository URL for Xcode plugin * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action install_xcode_plugin CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run install_xcode_plugin To pass parameters, make use of the : symbol, for example fastlane run install_xcode_plugin parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Install xcode plugin"},{"location":"generated/actions/install_xcode_plugin/#install_xcode_plugin","text":"Install an Xcode plugin for the current user install_xcode_plugin Supported platforms ios, mac Author @NeoNachoSoto, @tommeier","title":"install_xcode_plugin"},{"location":"generated/actions/install_xcode_plugin/#2-examples","text":"install_xcode_plugin(url: \"https://example.com/clubmate/plugin.zip\") install_xcode_plugin(github: \"https://github.com/contentful/ContentfulXcodePlugin\")","title":"2 Examples"},{"location":"generated/actions/install_xcode_plugin/#parameters","text":"Key Description Default url URL for Xcode plugin ZIP file github GitHub repository URL for Xcode plugin * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/install_xcode_plugin/#documentation","text":"To show the documentation in your terminal, run fastlane action install_xcode_plugin","title":"Documentation"},{"location":"generated/actions/install_xcode_plugin/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run install_xcode_plugin To pass parameters, make use of the : symbol, for example fastlane run install_xcode_plugin parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/install_xcode_plugin/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/installr/","text":"installr Upload a new build to Installr installr Supported platforms ios Author @scottrhoyt 1 Example installr( api_token: \"...\", ipa: \"test.ipa\", notes: \"The next great version of the app!\", notify: \"dev,qa\", add: \"exec,ops\" ) Parameters Key Description Default api_token API Token for Installr Access ipa Path to your IPA file. Optional if you use the gym or xcodebuild action * notes Release notes notify Groups to notify (e.g. 'dev,qa') add Groups to add (e.g. 'exec,ops') * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The installr action generates the following Lane Variables: SharedValue Description SharedValues::INSTALLR_BUILD_INFORMATION Contains release info like :appData. See http://help.installrapp.com/api/ To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action installr CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run installr To pass parameters, make use of the : symbol, for example fastlane run installr parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Installr"},{"location":"generated/actions/installr/#installr","text":"Upload a new build to Installr installr Supported platforms ios Author @scottrhoyt","title":"installr"},{"location":"generated/actions/installr/#1-example","text":"installr( api_token: \"...\", ipa: \"test.ipa\", notes: \"The next great version of the app!\", notify: \"dev,qa\", add: \"exec,ops\" )","title":"1 Example"},{"location":"generated/actions/installr/#parameters","text":"Key Description Default api_token API Token for Installr Access ipa Path to your IPA file. Optional if you use the gym or xcodebuild action * notes Release notes notify Groups to notify (e.g. 'dev,qa') add Groups to add (e.g. 'exec,ops') * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/installr/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The installr action generates the following Lane Variables: SharedValue Description SharedValues::INSTALLR_BUILD_INFORMATION Contains release info like :appData. See http://help.installrapp.com/api/ To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/installr/#documentation","text":"To show the documentation in your terminal, run fastlane action installr","title":"Documentation"},{"location":"generated/actions/installr/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run installr To pass parameters, make use of the : symbol, for example fastlane run installr parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/installr/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/ipa/","text":"ipa Easily build and sign your app using shenzhen You are using legacy shenzhen to build your app, which will be removed soon! It is recommended to upgrade to gym . To do so, just replace ipa(...) with gym(...) in your Fastfile. To make code signing work, follow https://docs.fastlane.tools/codesigning/xcode-project/ . ipa Supported platforms ios Author @joshdholtz 1 Example ipa( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", # (optionals) clean: true, # This means \"Do Clean\". Cleans project before building (the default if not specified). destination: \"path/to/dir\", # Destination directory. Defaults to current directory. ipa: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) xcargs: \"MY_ADHOC=0\", # pass additional arguments to xcodebuild when building the app. embed: \"my.mobileprovision\", # Sign .ipa file with .mobileprovision identity: \"MyIdentity\",# Identity to be used along with --embed sdk: \"10.0\", # use SDK as the name or path of the base SDK when building the project. archive: true# this means \"Do Archive\". Archive project after building (the default if not specified). ) Parameters Key Description Default workspace WORKSPACE Workspace (.xcworkspace) file to use to build app (automatically detected in current directory) project Project (.xcodeproj) file to use to build app (automatically detected in current directory, overridden by --workspace option, if passed) configuration Configuration used to build scheme Scheme used to build app clean Clean project before building archive Archive project after building destination Build destination. Defaults to current directory * embed Sign .ipa file with .mobileprovision identity Identity to be used along with --embed sdk Use SDK as the name or path of the base SDK when building the project ipa Specify the name of the .ipa file to generate (including file extension) xcconfig Use an extra XCCONFIG file to build the app xcargs Pass additional arguments to xcodebuild when building the app. Be sure to quote multiple args * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The ipa action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::DSYM_OUTPUT_PATH The path to the dsym file To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action ipa CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ipa To pass parameters, make use of the : symbol, for example fastlane run ipa parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Ipa"},{"location":"generated/actions/ipa/#ipa","text":"Easily build and sign your app using shenzhen You are using legacy shenzhen to build your app, which will be removed soon! It is recommended to upgrade to gym . To do so, just replace ipa(...) with gym(...) in your Fastfile. To make code signing work, follow https://docs.fastlane.tools/codesigning/xcode-project/ . ipa Supported platforms ios Author @joshdholtz","title":"ipa"},{"location":"generated/actions/ipa/#1-example","text":"ipa( workspace: \"MyApp.xcworkspace\", configuration: \"Debug\", scheme: \"MyApp\", # (optionals) clean: true, # This means \"Do Clean\". Cleans project before building (the default if not specified). destination: \"path/to/dir\", # Destination directory. Defaults to current directory. ipa: \"my-app.ipa\", # specify the name of the .ipa file to generate (including file extension) xcargs: \"MY_ADHOC=0\", # pass additional arguments to xcodebuild when building the app. embed: \"my.mobileprovision\", # Sign .ipa file with .mobileprovision identity: \"MyIdentity\",# Identity to be used along with --embed sdk: \"10.0\", # use SDK as the name or path of the base SDK when building the project. archive: true# this means \"Do Archive\". Archive project after building (the default if not specified). )","title":"1 Example"},{"location":"generated/actions/ipa/#parameters","text":"Key Description Default workspace WORKSPACE Workspace (.xcworkspace) file to use to build app (automatically detected in current directory) project Project (.xcodeproj) file to use to build app (automatically detected in current directory, overridden by --workspace option, if passed) configuration Configuration used to build scheme Scheme used to build app clean Clean project before building archive Archive project after building destination Build destination. Defaults to current directory * embed Sign .ipa file with .mobileprovision identity Identity to be used along with --embed sdk Use SDK as the name or path of the base SDK when building the project ipa Specify the name of the .ipa file to generate (including file extension) xcconfig Use an extra XCCONFIG file to build the app xcargs Pass additional arguments to xcodebuild when building the app. Be sure to quote multiple args * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/ipa/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The ipa action generates the following Lane Variables: SharedValue Description SharedValues::IPA_OUTPUT_PATH The path to the newly generated ipa file SharedValues::DSYM_OUTPUT_PATH The path to the dsym file To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/ipa/#documentation","text":"To show the documentation in your terminal, run fastlane action ipa","title":"Documentation"},{"location":"generated/actions/ipa/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ipa To pass parameters, make use of the : symbol, for example fastlane run ipa parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/ipa/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/is_ci/","text":"is_ci Is the current run being executed on a CI system, like Jenkins or Travis The return value of this method is true if fastlane is currently executed on Travis, Jenkins, Circle or a similar CI service is_ci Supported platforms ios, android, mac Author @KrauseFx 1 Example if is_ci puts \"I'm a computer\" else say \"Hi Human!\" end Documentation To show the documentation in your terminal, run fastlane action is_ci CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run is_ci To pass parameters, make use of the : symbol, for example fastlane run is_ci parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Is ci"},{"location":"generated/actions/is_ci/#is_ci","text":"Is the current run being executed on a CI system, like Jenkins or Travis The return value of this method is true if fastlane is currently executed on Travis, Jenkins, Circle or a similar CI service is_ci Supported platforms ios, android, mac Author @KrauseFx","title":"is_ci"},{"location":"generated/actions/is_ci/#1-example","text":"if is_ci puts \"I'm a computer\" else say \"Hi Human!\" end","title":"1 Example"},{"location":"generated/actions/is_ci/#documentation","text":"To show the documentation in your terminal, run fastlane action is_ci","title":"Documentation"},{"location":"generated/actions/is_ci/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run is_ci To pass parameters, make use of the : symbol, for example fastlane run is_ci parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/is_ci/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/jazzy/","text":"jazzy Generate docs using Jazzy jazzy Supported platforms ios, mac Author @KrauseFx 2 Examples jazzy jazzy(config: \".jazzy.yaml\", module_version: \"2.1.37\") Parameters Key Description Default config Path to jazzy config file module_version Version string to use as part of the the default docs title and inside the docset * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action jazzy CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run jazzy To pass parameters, make use of the : symbol, for example fastlane run jazzy parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Jazzy"},{"location":"generated/actions/jazzy/#jazzy","text":"Generate docs using Jazzy jazzy Supported platforms ios, mac Author @KrauseFx","title":"jazzy"},{"location":"generated/actions/jazzy/#2-examples","text":"jazzy jazzy(config: \".jazzy.yaml\", module_version: \"2.1.37\")","title":"2 Examples"},{"location":"generated/actions/jazzy/#parameters","text":"Key Description Default config Path to jazzy config file module_version Version string to use as part of the the default docs title and inside the docset * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/jazzy/#documentation","text":"To show the documentation in your terminal, run fastlane action jazzy","title":"Documentation"},{"location":"generated/actions/jazzy/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run jazzy To pass parameters, make use of the : symbol, for example fastlane run jazzy parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/jazzy/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/jira/","text":"jira Leave a comment on a Jira ticket jira Supported platforms ios, android, mac Author @iAmChrisTruman, @crazymanish Returns A hash containing all relevant information of the Jira comment Access Jira comment 'id', 'author', 'body', and more 3 Examples jira( url: \"https://bugs.yourdomain.com\", username: \"Your username\", password: \"Your password or API token\", ticket_id: \"IOS-123\", comment_text: \"Text to post as a comment\" ) jira( url: \"https://yourserverdomain.com\", context_path: \"/jira\", username: \"Your username\", password: \"Your password or API token\", ticket_id: \"IOS-123\", comment_text: \"Text to post as a comment\" ) jira( ticket_id: \"IOS-123\", comment_text: \"Text to post as a comment\", fail_on_error: false ) Parameters Key Description Default url URL for Jira instance context_path Appends to the url (ex: \"/jira\") '' username Username for Jira instance password Password or API token for Jira ticket_id Ticket ID for Jira, i.e. IOS-123 comment_text Text to add to the ticket as a comment fail_on_error Should an error adding the Jira comment cause a failure? true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The jira action generates the following Lane Variables: SharedValue Description SharedValues::JIRA_JSON The whole Jira API JSON object To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action jira CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run jira To pass parameters, make use of the : symbol, for example fastlane run jira parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Jira"},{"location":"generated/actions/jira/#jira","text":"Leave a comment on a Jira ticket jira Supported platforms ios, android, mac Author @iAmChrisTruman, @crazymanish Returns A hash containing all relevant information of the Jira comment Access Jira comment 'id', 'author', 'body', and more","title":"jira"},{"location":"generated/actions/jira/#3-examples","text":"jira( url: \"https://bugs.yourdomain.com\", username: \"Your username\", password: \"Your password or API token\", ticket_id: \"IOS-123\", comment_text: \"Text to post as a comment\" ) jira( url: \"https://yourserverdomain.com\", context_path: \"/jira\", username: \"Your username\", password: \"Your password or API token\", ticket_id: \"IOS-123\", comment_text: \"Text to post as a comment\" ) jira( ticket_id: \"IOS-123\", comment_text: \"Text to post as a comment\", fail_on_error: false )","title":"3 Examples"},{"location":"generated/actions/jira/#parameters","text":"Key Description Default url URL for Jira instance context_path Appends to the url (ex: \"/jira\") '' username Username for Jira instance password Password or API token for Jira ticket_id Ticket ID for Jira, i.e. IOS-123 comment_text Text to add to the ticket as a comment fail_on_error Should an error adding the Jira comment cause a failure? true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/jira/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The jira action generates the following Lane Variables: SharedValue Description SharedValues::JIRA_JSON The whole Jira API JSON object To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/jira/#documentation","text":"To show the documentation in your terminal, run fastlane action jira","title":"Documentation"},{"location":"generated/actions/jira/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run jira To pass parameters, make use of the : symbol, for example fastlane run jira parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/jira/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/lane_context/","text":"lane_context Access lane context values Access the fastlane lane context values. More information about how the lane context works: https://docs.fastlane.tools/advanced/#lane-context . lane_context Supported platforms ios, android, mac Author @KrauseFx 2 Examples lane_context[SharedValues::BUILD_NUMBER] lane_context[SharedValues::IPA_OUTPUT_PATH] Documentation To show the documentation in your terminal, run fastlane action lane_context CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run lane_context To pass parameters, make use of the : symbol, for example fastlane run lane_context parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Lane context"},{"location":"generated/actions/lane_context/#lane_context","text":"Access lane context values Access the fastlane lane context values. More information about how the lane context works: https://docs.fastlane.tools/advanced/#lane-context . lane_context Supported platforms ios, android, mac Author @KrauseFx","title":"lane_context"},{"location":"generated/actions/lane_context/#2-examples","text":"lane_context[SharedValues::BUILD_NUMBER] lane_context[SharedValues::IPA_OUTPUT_PATH]","title":"2 Examples"},{"location":"generated/actions/lane_context/#documentation","text":"To show the documentation in your terminal, run fastlane action lane_context","title":"Documentation"},{"location":"generated/actions/lane_context/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run lane_context To pass parameters, make use of the : symbol, for example fastlane run lane_context parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/lane_context/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/last_git_commit/","text":"last_git_commit Return last git commit hash, abbreviated commit hash, commit message and author last_git_commit Supported platforms ios, android, mac Author @ngutman Returns Returns the following dict: 1 Example commit = last_git_commit pilot(changelog: commit[:message]) # message of commit author = commit[:author] # author of the commit author_email = commit[:author_email] # email of the author of the commit hash = commit[:commit_hash] # long sha of commit short_hash = commit[:abbreviated_commit_hash] # short sha of commit Documentation To show the documentation in your terminal, run fastlane action last_git_commit CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run last_git_commit To pass parameters, make use of the : symbol, for example fastlane run last_git_commit parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Last git commit"},{"location":"generated/actions/last_git_commit/#last_git_commit","text":"Return last git commit hash, abbreviated commit hash, commit message and author last_git_commit Supported platforms ios, android, mac Author @ngutman Returns Returns the following dict:","title":"last_git_commit"},{"location":"generated/actions/last_git_commit/#1-example","text":"commit = last_git_commit pilot(changelog: commit[:message]) # message of commit author = commit[:author] # author of the commit author_email = commit[:author_email] # email of the author of the commit hash = commit[:commit_hash] # long sha of commit short_hash = commit[:abbreviated_commit_hash] # short sha of commit","title":"1 Example"},{"location":"generated/actions/last_git_commit/#documentation","text":"To show the documentation in your terminal, run fastlane action last_git_commit","title":"Documentation"},{"location":"generated/actions/last_git_commit/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run last_git_commit To pass parameters, make use of the : symbol, for example fastlane run last_git_commit parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/last_git_commit/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/last_git_tag/","text":"last_git_tag Get the most recent git tag If you are using this action on a shallow clone , the default with some CI systems like Bamboo , you need to ensure that you have also pulled all the git tags appropriately. Assuming your git repo has the correct remote set you can issue sh('git fetch --tags') . Pattern parameter allows you to filter to a subset of tags. last_git_tag Supported platforms ios, android, mac Author @KrauseFx, @wedkarz 2 Examples last_git_tag last_git_tag(pattern: \"release/v1.0/\") Parameters Key Description Default pattern Pattern to filter tags when looking for last one. Limit tags to ones matching given shell glob. If pattern lacks ?, *, or [, * at the end is implied * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action last_git_tag CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run last_git_tag To pass parameters, make use of the : symbol, for example fastlane run last_git_tag parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Last git tag"},{"location":"generated/actions/last_git_tag/#last_git_tag","text":"Get the most recent git tag If you are using this action on a shallow clone , the default with some CI systems like Bamboo , you need to ensure that you have also pulled all the git tags appropriately. Assuming your git repo has the correct remote set you can issue sh('git fetch --tags') . Pattern parameter allows you to filter to a subset of tags. last_git_tag Supported platforms ios, android, mac Author @KrauseFx, @wedkarz","title":"last_git_tag"},{"location":"generated/actions/last_git_tag/#2-examples","text":"last_git_tag last_git_tag(pattern: \"release/v1.0/\")","title":"2 Examples"},{"location":"generated/actions/last_git_tag/#parameters","text":"Key Description Default pattern Pattern to filter tags when looking for last one. Limit tags to ones matching given shell glob. If pattern lacks ?, *, or [, * at the end is implied * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/last_git_tag/#documentation","text":"To show the documentation in your terminal, run fastlane action last_git_tag","title":"Documentation"},{"location":"generated/actions/last_git_tag/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run last_git_tag To pass parameters, make use of the : symbol, for example fastlane run last_git_tag parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/last_git_tag/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/latest_testflight_build_number/","text":"latest_testflight_build_number Fetches most recent build number from TestFlight Provides a way to have increment_build_number be based on the latest build you uploaded to iTC. Fetches the most recent build number from TestFlight based on the version number. Provides a way to have increment_build_number be based on the latest build you uploaded to iTC. latest_testflight_build_number Supported platforms ios, mac Author @daveanderson Returns Integer representation of the latest build number uploaded to TestFlight 2 Examples latest_testflight_build_number(version: \"1.3\") increment_build_number({ build_number: latest_testflight_build_number + 1 }) Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) live Query the live version (ready-for-sale) false app_identifier The bundle identifier of your app * username Your Apple ID Username * version The version number whose latest build number we want platform The platform to use (optional) ios initial_build_number sets the build number to given value if no build is in current train 1 team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The latest_testflight_build_number action generates the following Lane Variables: SharedValue Description SharedValues::LATEST_TESTFLIGHT_BUILD_NUMBER The latest build number of the latest version of the app uploaded to TestFlight SharedValues::LATEST_TESTFLIGHT_VERSION The version of the latest build number To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action latest_testflight_build_number CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run latest_testflight_build_number To pass parameters, make use of the : symbol, for example fastlane run latest_testflight_build_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Latest testflight build number"},{"location":"generated/actions/latest_testflight_build_number/#latest_testflight_build_number","text":"Fetches most recent build number from TestFlight Provides a way to have increment_build_number be based on the latest build you uploaded to iTC. Fetches the most recent build number from TestFlight based on the version number. Provides a way to have increment_build_number be based on the latest build you uploaded to iTC. latest_testflight_build_number Supported platforms ios, mac Author @daveanderson Returns Integer representation of the latest build number uploaded to TestFlight","title":"latest_testflight_build_number"},{"location":"generated/actions/latest_testflight_build_number/#2-examples","text":"latest_testflight_build_number(version: \"1.3\") increment_build_number({ build_number: latest_testflight_build_number + 1 })","title":"2 Examples"},{"location":"generated/actions/latest_testflight_build_number/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) live Query the live version (ready-for-sale) false app_identifier The bundle identifier of your app * username Your Apple ID Username * version The version number whose latest build number we want platform The platform to use (optional) ios initial_build_number sets the build number to given value if no build is in current train 1 team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/latest_testflight_build_number/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The latest_testflight_build_number action generates the following Lane Variables: SharedValue Description SharedValues::LATEST_TESTFLIGHT_BUILD_NUMBER The latest build number of the latest version of the app uploaded to TestFlight SharedValues::LATEST_TESTFLIGHT_VERSION The version of the latest build number To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/latest_testflight_build_number/#documentation","text":"To show the documentation in your terminal, run fastlane action latest_testflight_build_number","title":"Documentation"},{"location":"generated/actions/latest_testflight_build_number/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run latest_testflight_build_number To pass parameters, make use of the : symbol, for example fastlane run latest_testflight_build_number parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/latest_testflight_build_number/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/lcov/","text":"lcov Generates coverage data using lcov lcov Supported platforms ios, mac Author @thiagolioy 1 Example lcov( project_name: \"ProjectName\", scheme: \"yourScheme\", output_dir: \"cov_reports\" # This value is optional. Default is coverage_reports ) Parameters Key Description Default project_name Name of the project scheme Scheme of the project arch The build arch where will search .gcda files i386 output_dir The output directory that coverage data will be stored. If not passed will use coverage_reports as default value coverage_reports * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action lcov CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run lcov To pass parameters, make use of the : symbol, for example fastlane run lcov parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Lcov"},{"location":"generated/actions/lcov/#lcov","text":"Generates coverage data using lcov lcov Supported platforms ios, mac Author @thiagolioy","title":"lcov"},{"location":"generated/actions/lcov/#1-example","text":"lcov( project_name: \"ProjectName\", scheme: \"yourScheme\", output_dir: \"cov_reports\" # This value is optional. Default is coverage_reports )","title":"1 Example"},{"location":"generated/actions/lcov/#parameters","text":"Key Description Default project_name Name of the project scheme Scheme of the project arch The build arch where will search .gcda files i386 output_dir The output directory that coverage data will be stored. If not passed will use coverage_reports as default value coverage_reports * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/lcov/#documentation","text":"To show the documentation in your terminal, run fastlane action lcov","title":"Documentation"},{"location":"generated/actions/lcov/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run lcov To pass parameters, make use of the : symbol, for example fastlane run lcov parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/lcov/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/mailgun/","text":"mailgun Send a success/error message to an email group mailgun Supported platforms ios, android, mac Author @thiagolioy 2 Examples mailgun( to: \"fastlane@krausefx.com\", success: true, message: \"This is the mail's content\" ) mailgun( postmaster: \"MY_POSTMASTER\", apikey: \"MY_API_KEY\", to: \"DESTINATION_EMAIL\", from: \"EMAIL_FROM_NAME\", reply_to: \"EMAIL_REPLY_TO\", success: true, message: \"Mail Body\", app_link: \"http://www.myapplink.com\", ci_build_link: \"http://www.mycibuildlink.com\", template_path: \"HTML_TEMPLATE_PATH\", custom_placeholders: { :var1 => 123, :var2 => \"string\" }, attachment: \"dirname/filename.ext\" ) Parameters Key Description Default mailgun_sandbox_domain Mailgun sandbox domain postmaster for your mail. Please use postmaster instead mailgun_sandbox_postmaster Mailgun sandbox domain postmaster for your mail. Please use postmaster instead mailgun_apikey Mailgun apikey for your mail. Please use postmaster instead postmaster Mailgun sandbox domain postmaster for your mail apikey Mailgun apikey for your mail to Destination of your mail from Mailgun sender name Mailgun Sandbox message Message of your mail subject Subject of your mail fastlane build success Was this build successful? (true/false) true app_link App Release link ci_build_link CI Build Link template_path Mail HTML template reply_to Mail Reply to attachment Mail Attachment filenames, either an array or just one string custom_placeholders Placeholders for template given as a hash {} * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action mailgun CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run mailgun To pass parameters, make use of the : symbol, for example fastlane run mailgun parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Mailgun"},{"location":"generated/actions/mailgun/#mailgun","text":"Send a success/error message to an email group mailgun Supported platforms ios, android, mac Author @thiagolioy","title":"mailgun"},{"location":"generated/actions/mailgun/#2-examples","text":"mailgun( to: \"fastlane@krausefx.com\", success: true, message: \"This is the mail's content\" ) mailgun( postmaster: \"MY_POSTMASTER\", apikey: \"MY_API_KEY\", to: \"DESTINATION_EMAIL\", from: \"EMAIL_FROM_NAME\", reply_to: \"EMAIL_REPLY_TO\", success: true, message: \"Mail Body\", app_link: \"http://www.myapplink.com\", ci_build_link: \"http://www.mycibuildlink.com\", template_path: \"HTML_TEMPLATE_PATH\", custom_placeholders: { :var1 => 123, :var2 => \"string\" }, attachment: \"dirname/filename.ext\" )","title":"2 Examples"},{"location":"generated/actions/mailgun/#parameters","text":"Key Description Default mailgun_sandbox_domain Mailgun sandbox domain postmaster for your mail. Please use postmaster instead mailgun_sandbox_postmaster Mailgun sandbox domain postmaster for your mail. Please use postmaster instead mailgun_apikey Mailgun apikey for your mail. Please use postmaster instead postmaster Mailgun sandbox domain postmaster for your mail apikey Mailgun apikey for your mail to Destination of your mail from Mailgun sender name Mailgun Sandbox message Message of your mail subject Subject of your mail fastlane build success Was this build successful? (true/false) true app_link App Release link ci_build_link CI Build Link template_path Mail HTML template reply_to Mail Reply to attachment Mail Attachment filenames, either an array or just one string custom_placeholders Placeholders for template given as a hash {} * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/mailgun/#documentation","text":"To show the documentation in your terminal, run fastlane action mailgun","title":"Documentation"},{"location":"generated/actions/mailgun/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run mailgun To pass parameters, make use of the : symbol, for example fastlane run mailgun parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/mailgun/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/make_changelog_from_jenkins/","text":"make_changelog_from_jenkins Generate a changelog using the Changes section from the current Jenkins build This is useful when deploying automated builds. The changelog from Jenkins lists all the commit messages since the last build. make_changelog_from_jenkins Supported platforms ios, android, mac Author @mandrizzle 1 Example make_changelog_from_jenkins( # Optional, lets you set a changelog in the case is not generated on Jenkins or if ran outside of Jenkins fallback_changelog: \"Bug fixes and performance enhancements\" ) Parameters Key Description Default fallback_changelog Fallback changelog if there is not one on Jenkins, or it couldn't be read '' include_commit_body Include the commit body along with the summary true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The make_changelog_from_jenkins action generates the following Lane Variables: SharedValue Description SharedValues::FL_CHANGELOG The changelog generated by Jenkins To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action make_changelog_from_jenkins CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run make_changelog_from_jenkins To pass parameters, make use of the : symbol, for example fastlane run make_changelog_from_jenkins parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Make changelog from jenkins"},{"location":"generated/actions/make_changelog_from_jenkins/#make_changelog_from_jenkins","text":"Generate a changelog using the Changes section from the current Jenkins build This is useful when deploying automated builds. The changelog from Jenkins lists all the commit messages since the last build. make_changelog_from_jenkins Supported platforms ios, android, mac Author @mandrizzle","title":"make_changelog_from_jenkins"},{"location":"generated/actions/make_changelog_from_jenkins/#1-example","text":"make_changelog_from_jenkins( # Optional, lets you set a changelog in the case is not generated on Jenkins or if ran outside of Jenkins fallback_changelog: \"Bug fixes and performance enhancements\" )","title":"1 Example"},{"location":"generated/actions/make_changelog_from_jenkins/#parameters","text":"Key Description Default fallback_changelog Fallback changelog if there is not one on Jenkins, or it couldn't be read '' include_commit_body Include the commit body along with the summary true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/make_changelog_from_jenkins/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The make_changelog_from_jenkins action generates the following Lane Variables: SharedValue Description SharedValues::FL_CHANGELOG The changelog generated by Jenkins To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/make_changelog_from_jenkins/#documentation","text":"To show the documentation in your terminal, run fastlane action make_changelog_from_jenkins","title":"Documentation"},{"location":"generated/actions/make_changelog_from_jenkins/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run make_changelog_from_jenkins To pass parameters, make use of the : symbol, for example fastlane run make_changelog_from_jenkins parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/make_changelog_from_jenkins/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/match/","text":"match Alias for the sync_code_signing action Easily sync your certificates and profiles across your team A new approach to iOS and macOS code signing: Share one code signing identity across your development team to simplify your codesigning setup and prevent code signing issues. match is the implementation of the codesigning.guide concept . match creates all required certificates & provisioning profiles and stores them in a separate git repository, Google Cloud, or Amazon S3. Every team member with access to the selected storage can use those credentials for code signing. match also automatically repairs broken and expired credentials. It's the easiest way to share signing credentials across teams More information on how to get started with codesigning Why? \u2022 Usage \u2022 Is this secure? match is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Why match? Before starting to use match , make sure to read the codesigning.guide : When deploying an app to the App Store, beta testing service or even installing it on a device, most development teams have separate code signing identities for every member. This results in dozens of profiles including a lot of duplicates. You have to manually renew and download the latest set of provisioning profiles every time you add a new device or a certificate expires. Additionally this requires spending a lot of time when setting up a new machine that will build your app. A new approach Share one code signing identity across your development team to simplify your setup and prevent code signing issues. What if there was a central place where your code signing identity and profiles are kept, so anyone in the team can access them during the build process? For more information about the concept, visit codesigning.guide . Why not let Xcode handle all this? You have full control over what happens You have access to all the certificates and profiles, which are all securely stored in git You share one code signing identity across the team to have fewer certificates and profiles Xcode sometimes revokes certificates which breaks your setup causing failed builds More predictable builds by settings profiles in an explicit way instead of using the Automatic setting It just works\u2122 What does match do for you? match \ud83d\udd04 Automatically sync your iOS and macOS keys and profiles across all your team members using git \ud83d\udce6 Handle all the heavy lifting of creating and storing your certificates and profiles \ud83d\udcbb Setup codesigning on a new machine in under a minute \ud83c\udfaf Designed to work with apps with multiple targets and bundle identifiers \ud83d\udd12 You have full control over your files and Git repo, no third party service involved \u2728 Provisioning profile will always match the correct certificate \ud83d\udca5 Easily reset your existing profiles and certificates if your current account has expired or invalid profiles \u267b\ufe0f Automatically renew your provisioning profiles to include all your devices using the --force option \ud83d\udc65 Support for multiple Apple accounts and multiple teams \u2728 Tightly integrated with fastlane to work seamlessly with gym and other build tools Usage Setup Optional: Create a new, shared Apple Developer Portal account , something like office@company.com , that will be shared across your team from now on (for more information visit codesigning.guide ) Run the following in your project folder to start using match : fastlane match init You'll be asked if you want to store your code signing identities inside a Git repo , Google Cloud or Amazon S3 . Git Storage Use Git Storage to store all code signing identities in a private git repo, owned and operated by you. The files will be encrypted using OpenSSL. First, enter the URL to your private (!) Git repo (You can create one for free on e.g. GitHub or BitBucket ). The URL you enter can be either a https:// or a git URL. fastlane match init won't read or modify your certificates or profiles yet, and also won't validate your git URL. This will create a Matchfile in your current directory (or in your ./fastlane/ folder). Example content (for more advanced setups check out the fastlane section ): git_url(\"https://github.com/fastlane/certificates\") app_identifier(\"tools.fastlane.app\") username(\"user@fastlane.tools\") Git Storage on GitHub If your machine is currently using SSH to authenticate with GitHub, you'll want to use a git URL, otherwise, you may see an authentication error when you attempt to use match. Alternatively, you can set a basic authorization for match : Using parameter: match(git_basic_authorization: '') Using environment variable: ENV['MATCH_GIT_BASIC_AUTHORIZATION'] = '' match To generate your base64 key according to RFC 7617 , run this: echo -n your_github_username:your_personal_access_token | base64 You can find more information about GitHub basic authentication and personal token generation here: https://developer.github.com/v3/auth/#basic-authentication Git Storage on GitHub - Deploy keys If your machine does not have a private key set up for your certificates repository, you can give match a path for one: Using parameter: match(git_private_key: '') Using environment variable: ENV['MATCH_GIT_PRIVATE_KEY'] = '' match You can find more information about GitHub basic authentication and personal token generation here: https://developer.github.com/v3/auth/#basic-authentication Git Storage on Azure DevOps If you're running a pipeline on Azure DevOps and using git storage in a another repository on the same project, you might want to use bearer token authentication. Using parameter: match(git_bearer_authorization: '') Using environment variable: ENV['MATCH_GIT_BEARER_AUTHORIZATION'] = '' match You can find more information about this use case here: https://docs.microsoft.com/en-us/azure/devops/pipelines/repos/azure-repos-git?view=azure-devops&tabs=yaml#authorize-access-to-your-repositories Google Cloud Storage Use Google Cloud Storage for a fully hosted solution for your code signing identities. Certificates are stored on Google Cloud, encrypted using Google managed keys. Everything will be stored on your Google account, inside a storage bucket you provide. You can also directly access the files using the web console. This will create a Matchfile in your current directory (or in your ./fastlane/ folder). Example content (for more advanced setups check out the fastlane section ): google_cloud_bucket_name(\"major-key-certificates\") Amazon S3 Use Amazon S3 for a fully hosted solution for your code signing identities. Certificates are stored on S3, inside a storage bucket you provide. You can also directly access the files using the web console. This will create a Matchfile in your current directory (or in your ./fastlane/ folder). Example content (for more advanced setups check out the fastlane section ): s3_bucket(\"ios-certificates\") Multiple teams match can store the codesigning files for multiple development teams: Git Storage Use one git branch per team. match also supports storing certificates of multiple teams in one repo, by using separate git branches. If you work in multiple teams, make sure to set the git_branch parameter to a unique value per team. From there, match will automatically create and use the specified branch for you. match(git_branch: \"team1\", username: \"user@team1.com\") match(git_branch: \"team2\", username: \"user@team2.com\") Google Cloud or Amazon S3 Storage If you use Google Cloud or Amazon S3 Storage, you don't need to do anything manually. Just use Google Cloud or Amazon S3 Storage, and the top level folder will be the team ID. Run Before running match for the first time, you should consider clearing your existing profiles and certificates using the match nuke command . After running fastlane match init you can run the following to generate new certificates and profiles: fastlane match appstore fastlane match development This will create a new certificate and provisioning profile (if required) and store them in your selected storage. If you previously ran match with the configured storage it will automatically install the existing profiles from your storage. The provisioning profiles are installed in ~/Library/MobileDevice/Provisioning Profiles while the certificates and private keys are installed in your Keychain. To get a more detailed output of what match is doing use fastlane match --verbose For a list of all available options run fastlane action match Handle multiple targets match can use the same one Git repository, Google Cloud, or Amazon S3 Storage for all bundle identifiers. If you have several targets with different bundle identifiers, supply them as a comma-separated list: fastlane match appstore -a tools.fastlane.app,tools.fastlane.app.watchkitapp You can make this even easier using fastlane by creating a certificates lane like this: lane :certificates do match(app_identifier: [\"tools.fastlane.app\", \"tools.fastlane.app.watchkitapp\"]) end Then all your team has to do is run fastlane certificates and the keys, certificates and profiles for all targets will be synced. Handle multiple apps per developer/distribution certificate If you want to use a single developer and/or distribution certificate for multiple apps belonging to the same development team, you may use the same signing identities repository and branch to store the signing identities for your apps: Matchfile example for both App #1 and #2: git_url(\"https://github.com/example/example-repo.git\") git_branch(\"master\") match will reuse certificates and will create separate provisioning profiles for each app. Passphrase Git Repo storage only When running match for the first time on a new machine, it will ask you for the passphrase for the Git repository. This is an additional layer of security: each of the files will be encrypted using openssl . Make sure to remember the password, as you'll need it when you run match on a different machine. To set the passphrase to decrypt your profiles using an environment variable (and avoid the prompt) use MATCH_PASSWORD . Migrate from Git Repo to Google Cloud If you're already using a Git Repo, but would like to switch to using Google Cloud Storage, run the following command to automatically migrate all your existing code signing identities and provisioning profiles fastlane match migrate After a successful migration you can safely delete your Git repo. Google Cloud access control Google Cloud Storage only There are two cases for reading and writing certificates stored in a Google Cloud storage bucket: Continuous integration jobs. These will authenticate to your Google Cloud project via a service account, and use a gc_keys.json file as credentials. Developers on a local workstation. In this case, you should choose whether everyone on your team will create their own gc_keys.json file, or whether you want to manage access to the bucket directly using your developers' Google accounts. When running fastlane match init the first time, the setup process will give you the option to create your gc_keys.json file. This file contains the authentication credentials needed to access your Google Cloud storage bucket. Make sure to keep that file secret and never add it to version control. We recommend adding gc_keys.json to your .gitignore Managing developer access via keys If you want to manage developer access to your certificates via authentication keys, every developer should create their own gc_keys.json and add the file to all their work machines. This will give the admin full control over who has read/write access to the given Storage bucket. At the same time it allows your team to revoke a single key if a file gets compromised. Managing developer access via Google accounts If your developers already have Google accounts and access to your Google Cloud project, you can also manage access to the storage bucket via Cloud Identity and Access Management (IAM) . Just set up individual developer accounts or an entire Google Group containing your team as readers and writers on your storage bucket. You can then specify the Google Cloud project id containing your storage bucket in your Matchfile : storage_mode(\"google_cloud\") google_cloud_bucket_name(\"my-app-certificates\") google_cloud_project_id(\"my-app-project\") This lets developers on your team use Application Default Credentials when accessing your storage bucket. After installing the Google Cloud SDK , they only need to run the following command once: gcloud auth application-default login ... and log in with their Google account. Then, when they run fastlane match , match will use these credentials to read from and write to the storage bucket. New machine To set up the certificates and provisioning profiles on a new machine, you just run the same command using: fastlane match development You can also run match in a readonly mode to be sure it won't create any new certificates or profiles. fastlane match development --readonly We recommend to always use readonly mode when running fastlane on CI systems. This can be done using lane :beta do match(type: \"appstore\", readonly: is_ci) gym(scheme: \"Release\") end Access Control A benefit of using match is that it enables you to give the developers of your team access to the code signing certificates without having to give everyone access to the Developer Portal: Run match to store the certificates in a Git repo or Google Cloud Storage Grant access to the Git repo / Google Cloud Storage Bucket to your developers and give them the passphrase (for git storage) The developers can now run match which will install the latest code signing profiles so they can build and sign the application without having to have access to the Apple Developer Portal Every time you run match to update the profiles (e.g. add a new device), all your developers will automatically get the latest profiles when running match If you decide to run match without access to the Developer Portal, make sure to use the --readonly option so that the commands don't ask you for the password to the Developer Portal. The advantage of this approach is that no one in your team will revoke a certificate by mistake, while having all code signing secrets in one location. Folder structure After running match for the first time, your Git repo or Google Cloud bucket will contain 2 directories: The certs folder contains all certificates with their private keys The profiles folder contains all provisioning profiles Additionally, match creates a nice repo README.md for you, making it easy to onboard new team members: In the case of Google Cloud, the top level folder will be the team ID. fastlane Add match to your Fastfile to automatically fetch the latest code signing certificates with fastlane . match(type: \"appstore\") match(type: \"development\") match(type: \"adhoc\", app_identifier: \"tools.fastlane.app\") match(type: \"enterprise\", app_identifier: \"tools.fastlane.app\") # _match_ should be called before building the app with _gym_ gym # ... Registering new devices By using match , you'll save a lot of time every time you add new device to your Ad Hoc or Development profiles. Use match in combination with the register_devices action. lane :beta do register_devices(devices_file: \"./devices.txt\") match(type: \"adhoc\", force_for_new_devices: true) end By using the force_for_new_devices parameter, match will check if the (enabled) device count has changed since the last time you ran match , and automatically re-generate the provisioning profile if necessary. You can also use force: true to re-generate the provisioning profile on each run. Important: The force_for_new_devices parameter is ignored for App Store provisioning profiles since they don't contain any device information. If you're not using Fastfile , you can also use the force_for_new_devices option from the command line: fastlane match adhoc --force_for_new_devices Templates (aka: custom entitlements) match can generate profiles that contain custom entitlements by passing in the entitlement's name with the template_name parameter. match(type: \"development\", template_name: \"Apple Pay Pass Suppression Development\") Setup Xcode project Docs on how to set up your Xcode project To build from the command line using fastlane match automatically pre-fills environment variables with the UUIDs of the correct provisioning profiles, ready to be used in your Xcode project. More information about how to setup your Xcode project can be found here To build from Xcode manually This is useful when installing your application on your device using the Development profile. You can statically select the right provisioning profile in your Xcode project (the name will be match Development tools.fastlane.app ). Docs on how to set up your Xcode project Continuous Integration Git repo access There is one tricky part of setting up a CI system to work with match , which is enabling the CI to access the repo. Usually you'd just add your CI's public ssh key as a deploy key to your match repo, but since your CI will already likely be using its public ssh key to access the codebase repo, you won't be able to do that . Some repo hosts might allow you to use the same deploy key for different repos, but GitHub will not. If your host does, you don't need to worry about this, just add your CI's public ssh key as a deploy key for your match repo and scroll down to \" Encryption password \". There are a few ways around this: Create a new account on your repo host with read-only access to your match repo. Bitrise have a good description of this here . Some CIs allow you to upload your signing credentials manually, but obviously this means that you'll have to re-upload the profiles/keys/certs each time they change. Neither solution is pretty. It's one of those trade-off things. Do you care more about not having an extra account sitting around, or do you care more about having the :sparkles: of auto-syncing of credentials. Git repo encryption password Once you've decided which approach to take, all that's left to do is to set your encryption password as secret environment variable named MATCH_PASSWORD . match will pick this up when it's run. Google Cloud Storage access Accessing Google Cloud Storage from your CI system requires you to provide the gc_keys.json file as part of your build. How you implement this is your decision. You can inject that file during build time. Amazon S3 Storage access Accessing Amazon S3 Storage from your CI system requires you to provide the s3_region , s3_access_key , s3_secret_access_key and s3_bucket options (or environment variables), with keys that has read access to the bucket. Nuke If you never really cared about code signing and have a messy Apple Developer account with a lot of invalid, expired or Xcode managed profiles/certificates, you can use the match nuke command to revoke your certificates and provisioning profiles. Don't worry, apps that are already available in the App Store / TestFlight will still work. Builds distributed via Ad Hoc or Enterprise will be disabled after nuking your account, so you'll have to re-upload a new build. After clearing your account you'll start from a clean state, and you can run match to generate your certificates and profiles again. To revoke all certificates and provisioning profiles for a specific environment: fastlane match nuke development fastlane match nuke distribution fastlane match nuke enterprise You'll have to confirm a list of profiles / certificates that will be deleted. Advanced Git Storage features Change Password To change the password of your repo and therefore decrypting and encrypting all files run: fastlane match change_password You'll be asked for the new password on all your machines on the next run. Import To import and encrypt a certificate ( .cer ), the private key ( .p12 ) and the provisioning profiles ( .mobileprovision or .provisionprofile ) into the match repo run: fastlane match import You'll be prompted for the certificate ( .cer ), the private key ( .p12 ) and the provisioning profiles ( .mobileprovision or .provisionprofile ) paths. match will first validate the certificate ( .cer ) against the Developer Portal before importing the certificate, the private key and the provisioning profiles into the specified match repository. However if there is no access to the developer portal but there are certificates, private keys and profiles provided, you can use the skip_certificate_matching option to tell match not to verify the certificates. Like this: fastlane match import --skip_certificate_matching true This will skip login to Apple Developer Portal and will import the provided certificate, private key and profile directly to the certificates repo. Please be careful when using this option and ensure the certificates and profiles match the type (development, adhoc, appstore, enterprise, developer_id) and are not revoked or expired. Manual Decrypt If you want to manually decrypt a file you can. openssl aes-256-cbc -k \"\" -in \"\" -out \"\" -a -d -md [md5|sha256] Note: You may need to swap double quotes \" for single quotes ' if your match password contains an exclamation mark ! . Export Distribution Certificate and Private Key as Single .p12 File match stores the certificate ( .cer ) and the private key ( .p12 ) files separately. The following steps will repackage the separate certificate and private key into a single .p12 file. Decrypt your cert found in certs//.cer as a pem file: openssl aes-256-cbc -k \"\" -in \"certs//.cer\" -out \"cert.der\" -a -d -md [md5|sha256] openssl x509 -inform der -in cert.der -out cert.pem Decrypt your private key found in certs//.p12 as a pem file: openssl aes-256-cbc -k \"\" -in \"certs/distribution/.p12\" -out \"key.pem\" -a -d -md [md5|sha256] Generate an encrypted p12 file with the same or new password: openssl pkcs12 -export -out \"cert.p12\" -inkey \"key.pem\" -in \"cert.pem\" -password pass: Is this secure? Git Both your keys and provisioning profiles are encrypted using OpenSSL using a passphrase. Storing your private keys in a Git repo may sound off-putting at first. We did an analysis of potential security issues, see section below. Google Cloud Storage All your keys and provisioning profiles are encrypted using Google managed keys. What could happen if someone stole a private key? If attackers would have your certificate and provisioning profile, they could codesign an application with the same bundle identifier. What's the worst that could happen for each of the profile types? App Store Profiles An App Store profile can't be used for anything as long as it's not re-signed by Apple. The only way to get an app resigned is to submit an app for review which could take anywhere from 24 hours to a few days (checkout appreviewtimes.com for up-to-date expectations). Attackers could only submit an app for review, if they also got access to your App Store Connect credentials (which are not stored in git, but in your local keychain). Additionally you get an email notification every time a build gets uploaded to cancel the submission even before your app gets into the review stage. Development and Ad Hoc Profiles In general those profiles are harmless as they can only be used to install a signed application on a small subset of devices. To add new devices, the attacker would also need your Apple Developer Portal credentials (which are not stored in git, but in your local keychain). Enterprise Profiles Attackers could use an In-House profile to distribute signed application to a potentially unlimited number of devices. All this would run under your company name and it could eventually lead to Apple revoking your In-House account. However it is very easy to revoke a certificate to remotely break the app on all devices. Because of the potentially dangerous nature of In-House profiles please use match with enterprise profiles with caution, ensure your git repository is private and use a secure password. To sum up You have full control over the access list of your Git repo, no third party service involved Even if your certificates are leaked, they can't be used to cause any harm without your App Store Connect login credentials Use In-House enterprise profile with match with caution If you use GitHub or Bitbucket we encourage enabling 2 factor authentication for all accounts that have access to the certificates repo The complete source code of match is fully open source on GitHub match Supported platforms ios, mac Author @KrauseFx 4 Examples sync_code_signing(type: \"appstore\", app_identifier: \"tools.fastlane.app\") sync_code_signing(type: \"development\", readonly: true) sync_code_signing(app_identifier: [\"tools.fastlane.app\", \"tools.fastlane.sleepy\"]) match # alias for \"sync_code_signing\" Parameters Key Description Default type Define the profile type, can be appstore, adhoc, development, enterprise, developer_id, mac_installer_distribution, developer_id_installer development additional_cert_types Create additional cert types needed for macOS installers (valid values: mac_installer_distribution, developer_id_installer) readonly Only fetch existing certificates and profiles, don't generate new ones false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * skip_provisioning_profiles Skip syncing provisioning profiles false app_identifier The bundle identifier(s) of your app (comma-separated string or array of strings) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * storage_mode Define where you want to store your certificates git git_url URL to the git repo containing all the certificates git_branch Specific git branch to use master git_full_name git user full name to commit git_user_email git user email to commit shallow_clone Make a shallow clone of the repository (truncate the history to 1 revision) false clone_branch_directly Clone just the branch specified, instead of the whole repo. This requires that the branch already exists. Otherwise the command will fail false git_basic_authorization Use a basic authorization header to access the git repo (e.g.: access via HTTPS, GitHub Actions, etc), usually a string in Base64 git_bearer_authorization Use a bearer authorization header to access the git repo (e.g.: access to an Azure DevOps repository), usually a string in Base64 git_private_key Use a private key to access the git repo (e.g.: access to GitHub repository via Deploy keys), usually a id_rsa named file or the contents hereof google_cloud_bucket_name Name of the Google Cloud Storage bucket to use google_cloud_keys_file Path to the gc_keys.json file google_cloud_project_id ID of the Google Cloud project to use for authentication skip_google_cloud_account_confirmation Skips confirming to use the system google account false s3_region Name of the S3 region s3_access_key S3 access key s3_secret_access_key S3 secret access key s3_bucket Name of the S3 bucket s3_object_prefix Prefix to be used on all objects uploaded to S3 s3_skip_encryption Skip encryption of all objects uploaded to S3. WARNING: only enable this on S3 buckets with sufficiently restricted permissions and server-side encryption enabled. See https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html false gitlab_project GitLab Project Path (i.e. 'gitlab-org/gitlab') gitlab_host GitLab Host (i.e. 'https://gitlab.com') https://gitlab.com job_token GitLab CI_JOB_TOKEN private_token GitLab Access Token keychain_name Keychain the items should be imported to login.keychain keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password force Renew the provisioning profiles every time you run match false force_for_new_devices Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile types 'appstore' and 'developer_id' false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false force_for_new_certificates Renew the provisioning profiles if the certificate count on the developer portal has changed. Works only for the 'development' provisioning profile type. Requires 'include_all_certificates' option to be 'true' false skip_confirmation Disables confirmation prompts during nuke, answering them with yes false safe_remove_certs Remove certs from repository during nuke without revoking them on the developer portal false skip_docs Skip generation of a README.md for the created git repository false platform Set the provisioning profile's platform to work with (i.e. ios, tvos, macos, catalyst) * derive_catalyst_app_identifier Enable this if you have the Mac Catalyst capability enabled and your project was created with Xcode 11.3 or earlier. Prepends 'maccatalyst.' to the app identifier for the provisioning profile mapping false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") profile_name A custom name for the provisioning profile. This will replace the default provisioning profile name if specified fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false skip_certificate_matching Set to true if there is no access to Apple developer portal but there are certificates, keys and profiles provided. Only works with match import action false output_path Path in which to export certificates, key and profile skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false verbose Print out extra information and all commands false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The match action generates the following Lane Variables: SharedValue Description SharedValues::MATCH_PROVISIONING_PROFILE_MAPPING The match provisioning profile mapping SharedValues::SIGH_PROFILE_TYPE The profile type, can be app-store, ad-hoc, development, enterprise, can be used in build_app as a default value for export_method To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action match CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run match To pass parameters, make use of the : symbol, for example fastlane run match parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Match"},{"location":"generated/actions/match/#match","text":"Alias for the sync_code_signing action","title":"match"},{"location":"generated/actions/match/#why-match","text":"Before starting to use match , make sure to read the codesigning.guide : When deploying an app to the App Store, beta testing service or even installing it on a device, most development teams have separate code signing identities for every member. This results in dozens of profiles including a lot of duplicates. You have to manually renew and download the latest set of provisioning profiles every time you add a new device or a certificate expires. Additionally this requires spending a lot of time when setting up a new machine that will build your app. A new approach Share one code signing identity across your development team to simplify your setup and prevent code signing issues. What if there was a central place where your code signing identity and profiles are kept, so anyone in the team can access them during the build process? For more information about the concept, visit codesigning.guide .","title":"Why match?"},{"location":"generated/actions/match/#usage","text":"","title":"Usage"},{"location":"generated/actions/match/#advanced-git-storage-features","text":"","title":"Advanced Git Storage features"},{"location":"generated/actions/match/#is-this-secure","text":"","title":"Is this secure?"},{"location":"generated/actions/match/#4-examples","text":"sync_code_signing(type: \"appstore\", app_identifier: \"tools.fastlane.app\") sync_code_signing(type: \"development\", readonly: true) sync_code_signing(app_identifier: [\"tools.fastlane.app\", \"tools.fastlane.sleepy\"]) match # alias for \"sync_code_signing\"","title":"4 Examples"},{"location":"generated/actions/match/#parameters","text":"Key Description Default type Define the profile type, can be appstore, adhoc, development, enterprise, developer_id, mac_installer_distribution, developer_id_installer development additional_cert_types Create additional cert types needed for macOS installers (valid values: mac_installer_distribution, developer_id_installer) readonly Only fetch existing certificates and profiles, don't generate new ones false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * skip_provisioning_profiles Skip syncing provisioning profiles false app_identifier The bundle identifier(s) of your app (comma-separated string or array of strings) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * storage_mode Define where you want to store your certificates git git_url URL to the git repo containing all the certificates git_branch Specific git branch to use master git_full_name git user full name to commit git_user_email git user email to commit shallow_clone Make a shallow clone of the repository (truncate the history to 1 revision) false clone_branch_directly Clone just the branch specified, instead of the whole repo. This requires that the branch already exists. Otherwise the command will fail false git_basic_authorization Use a basic authorization header to access the git repo (e.g.: access via HTTPS, GitHub Actions, etc), usually a string in Base64 git_bearer_authorization Use a bearer authorization header to access the git repo (e.g.: access to an Azure DevOps repository), usually a string in Base64 git_private_key Use a private key to access the git repo (e.g.: access to GitHub repository via Deploy keys), usually a id_rsa named file or the contents hereof google_cloud_bucket_name Name of the Google Cloud Storage bucket to use google_cloud_keys_file Path to the gc_keys.json file google_cloud_project_id ID of the Google Cloud project to use for authentication skip_google_cloud_account_confirmation Skips confirming to use the system google account false s3_region Name of the S3 region s3_access_key S3 access key s3_secret_access_key S3 secret access key s3_bucket Name of the S3 bucket s3_object_prefix Prefix to be used on all objects uploaded to S3 s3_skip_encryption Skip encryption of all objects uploaded to S3. WARNING: only enable this on S3 buckets with sufficiently restricted permissions and server-side encryption enabled. See https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html false gitlab_project GitLab Project Path (i.e. 'gitlab-org/gitlab') gitlab_host GitLab Host (i.e. 'https://gitlab.com') https://gitlab.com job_token GitLab CI_JOB_TOKEN private_token GitLab Access Token keychain_name Keychain the items should be imported to login.keychain keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password force Renew the provisioning profiles every time you run match false force_for_new_devices Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile types 'appstore' and 'developer_id' false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false force_for_new_certificates Renew the provisioning profiles if the certificate count on the developer portal has changed. Works only for the 'development' provisioning profile type. Requires 'include_all_certificates' option to be 'true' false skip_confirmation Disables confirmation prompts during nuke, answering them with yes false safe_remove_certs Remove certs from repository during nuke without revoking them on the developer portal false skip_docs Skip generation of a README.md for the created git repository false platform Set the provisioning profile's platform to work with (i.e. ios, tvos, macos, catalyst) * derive_catalyst_app_identifier Enable this if you have the Mac Catalyst capability enabled and your project was created with Xcode 11.3 or earlier. Prepends 'maccatalyst.' to the app identifier for the provisioning profile mapping false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") profile_name A custom name for the provisioning profile. This will replace the default provisioning profile name if specified fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false skip_certificate_matching Set to true if there is no access to Apple developer portal but there are certificates, keys and profiles provided. Only works with match import action false output_path Path in which to export certificates, key and profile skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false verbose Print out extra information and all commands false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/match/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The match action generates the following Lane Variables: SharedValue Description SharedValues::MATCH_PROVISIONING_PROFILE_MAPPING The match provisioning profile mapping SharedValues::SIGH_PROFILE_TYPE The profile type, can be app-store, ad-hoc, development, enterprise, can be used in build_app as a default value for export_method To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/match/#documentation","text":"To show the documentation in your terminal, run fastlane action match","title":"Documentation"},{"location":"generated/actions/match/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run match To pass parameters, make use of the : symbol, for example fastlane run match parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/match/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/match_nuke/","text":"match_nuke Easily nuke your certificate and provisioning profiles (via match ) Use the match_nuke action to revoke your certificates and provisioning profiles. Don't worry, apps that are already available in the App Store / TestFlight will still work. Builds distributed via Ad Hoc or Enterprise will be disabled after nuking your account, so you'll have to re-upload a new build. After clearing your account you'll start from a clean state, and you can run match to generate your certificates and profiles again. More information: https://docs.fastlane.tools/actions/match/ match_nuke Supported platforms ios, mac Author @crazymanish 2 Examples match_nuke(type: \"development\") match_nuke(type: \"development\", api_key: app_store_connect_api_key) Parameters Key Description Default type Define the profile type, can be appstore, adhoc, development, enterprise, developer_id, mac_installer_distribution, developer_id_installer development additional_cert_types Create additional cert types needed for macOS installers (valid values: mac_installer_distribution, developer_id_installer) readonly Only fetch existing certificates and profiles, don't generate new ones false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * skip_provisioning_profiles Skip syncing provisioning profiles false app_identifier The bundle identifier(s) of your app (comma-separated string or array of strings) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * storage_mode Define where you want to store your certificates git git_url URL to the git repo containing all the certificates git_branch Specific git branch to use master git_full_name git user full name to commit git_user_email git user email to commit shallow_clone Make a shallow clone of the repository (truncate the history to 1 revision) false clone_branch_directly Clone just the branch specified, instead of the whole repo. This requires that the branch already exists. Otherwise the command will fail false git_basic_authorization Use a basic authorization header to access the git repo (e.g.: access via HTTPS, GitHub Actions, etc), usually a string in Base64 git_bearer_authorization Use a bearer authorization header to access the git repo (e.g.: access to an Azure DevOps repository), usually a string in Base64 git_private_key Use a private key to access the git repo (e.g.: access to GitHub repository via Deploy keys), usually a id_rsa named file or the contents hereof google_cloud_bucket_name Name of the Google Cloud Storage bucket to use google_cloud_keys_file Path to the gc_keys.json file google_cloud_project_id ID of the Google Cloud project to use for authentication skip_google_cloud_account_confirmation Skips confirming to use the system google account false s3_region Name of the S3 region s3_access_key S3 access key s3_secret_access_key S3 secret access key s3_bucket Name of the S3 bucket s3_object_prefix Prefix to be used on all objects uploaded to S3 s3_skip_encryption Skip encryption of all objects uploaded to S3. WARNING: only enable this on S3 buckets with sufficiently restricted permissions and server-side encryption enabled. See https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html false gitlab_project GitLab Project Path (i.e. 'gitlab-org/gitlab') gitlab_host GitLab Host (i.e. 'https://gitlab.com') https://gitlab.com job_token GitLab CI_JOB_TOKEN private_token GitLab Access Token keychain_name Keychain the items should be imported to login.keychain keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password force Renew the provisioning profiles every time you run match false force_for_new_devices Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile types 'appstore' and 'developer_id' false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false force_for_new_certificates Renew the provisioning profiles if the certificate count on the developer portal has changed. Works only for the 'development' provisioning profile type. Requires 'include_all_certificates' option to be 'true' false skip_confirmation Disables confirmation prompts during nuke, answering them with yes false safe_remove_certs Remove certs from repository during nuke without revoking them on the developer portal false skip_docs Skip generation of a README.md for the created git repository false platform Set the provisioning profile's platform to work with (i.e. ios, tvos, macos, catalyst) * derive_catalyst_app_identifier Enable this if you have the Mac Catalyst capability enabled and your project was created with Xcode 11.3 or earlier. Prepends 'maccatalyst.' to the app identifier for the provisioning profile mapping false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") profile_name A custom name for the provisioning profile. This will replace the default provisioning profile name if specified fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false skip_certificate_matching Set to true if there is no access to Apple developer portal but there are certificates, keys and profiles provided. Only works with match import action false output_path Path in which to export certificates, key and profile skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false verbose Print out extra information and all commands false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action match_nuke CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run match_nuke To pass parameters, make use of the : symbol, for example fastlane run match_nuke parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Match nuke"},{"location":"generated/actions/match_nuke/#match_nuke","text":"Easily nuke your certificate and provisioning profiles (via match ) Use the match_nuke action to revoke your certificates and provisioning profiles. Don't worry, apps that are already available in the App Store / TestFlight will still work. Builds distributed via Ad Hoc or Enterprise will be disabled after nuking your account, so you'll have to re-upload a new build. After clearing your account you'll start from a clean state, and you can run match to generate your certificates and profiles again. More information: https://docs.fastlane.tools/actions/match/ match_nuke Supported platforms ios, mac Author @crazymanish","title":"match_nuke"},{"location":"generated/actions/match_nuke/#2-examples","text":"match_nuke(type: \"development\") match_nuke(type: \"development\", api_key: app_store_connect_api_key)","title":"2 Examples"},{"location":"generated/actions/match_nuke/#parameters","text":"Key Description Default type Define the profile type, can be appstore, adhoc, development, enterprise, developer_id, mac_installer_distribution, developer_id_installer development additional_cert_types Create additional cert types needed for macOS installers (valid values: mac_installer_distribution, developer_id_installer) readonly Only fetch existing certificates and profiles, don't generate new ones false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * skip_provisioning_profiles Skip syncing provisioning profiles false app_identifier The bundle identifier(s) of your app (comma-separated string or array of strings) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * storage_mode Define where you want to store your certificates git git_url URL to the git repo containing all the certificates git_branch Specific git branch to use master git_full_name git user full name to commit git_user_email git user email to commit shallow_clone Make a shallow clone of the repository (truncate the history to 1 revision) false clone_branch_directly Clone just the branch specified, instead of the whole repo. This requires that the branch already exists. Otherwise the command will fail false git_basic_authorization Use a basic authorization header to access the git repo (e.g.: access via HTTPS, GitHub Actions, etc), usually a string in Base64 git_bearer_authorization Use a bearer authorization header to access the git repo (e.g.: access to an Azure DevOps repository), usually a string in Base64 git_private_key Use a private key to access the git repo (e.g.: access to GitHub repository via Deploy keys), usually a id_rsa named file or the contents hereof google_cloud_bucket_name Name of the Google Cloud Storage bucket to use google_cloud_keys_file Path to the gc_keys.json file google_cloud_project_id ID of the Google Cloud project to use for authentication skip_google_cloud_account_confirmation Skips confirming to use the system google account false s3_region Name of the S3 region s3_access_key S3 access key s3_secret_access_key S3 secret access key s3_bucket Name of the S3 bucket s3_object_prefix Prefix to be used on all objects uploaded to S3 s3_skip_encryption Skip encryption of all objects uploaded to S3. WARNING: only enable this on S3 buckets with sufficiently restricted permissions and server-side encryption enabled. See https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html false gitlab_project GitLab Project Path (i.e. 'gitlab-org/gitlab') gitlab_host GitLab Host (i.e. 'https://gitlab.com') https://gitlab.com job_token GitLab CI_JOB_TOKEN private_token GitLab Access Token keychain_name Keychain the items should be imported to login.keychain keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password force Renew the provisioning profiles every time you run match false force_for_new_devices Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile types 'appstore' and 'developer_id' false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false force_for_new_certificates Renew the provisioning profiles if the certificate count on the developer portal has changed. Works only for the 'development' provisioning profile type. Requires 'include_all_certificates' option to be 'true' false skip_confirmation Disables confirmation prompts during nuke, answering them with yes false safe_remove_certs Remove certs from repository during nuke without revoking them on the developer portal false skip_docs Skip generation of a README.md for the created git repository false platform Set the provisioning profile's platform to work with (i.e. ios, tvos, macos, catalyst) * derive_catalyst_app_identifier Enable this if you have the Mac Catalyst capability enabled and your project was created with Xcode 11.3 or earlier. Prepends 'maccatalyst.' to the app identifier for the provisioning profile mapping false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") profile_name A custom name for the provisioning profile. This will replace the default provisioning profile name if specified fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false skip_certificate_matching Set to true if there is no access to Apple developer portal but there are certificates, keys and profiles provided. Only works with match import action false output_path Path in which to export certificates, key and profile skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false verbose Print out extra information and all commands false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/match_nuke/#documentation","text":"To show the documentation in your terminal, run fastlane action match_nuke","title":"Documentation"},{"location":"generated/actions/match_nuke/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run match_nuke To pass parameters, make use of the : symbol, for example fastlane run match_nuke parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/match_nuke/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/min_fastlane_version/","text":"min_fastlane_version Verifies the minimum fastlane version required Add this to your Fastfile to require a certain version of fastlane . Use it if you use an action that just recently came out and you need it. min_fastlane_version Supported platforms ios, android, mac Author @KrauseFx 1 Example min_fastlane_version(\"1.50.0\") Documentation To show the documentation in your terminal, run fastlane action min_fastlane_version CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run min_fastlane_version To pass parameters, make use of the : symbol, for example fastlane run min_fastlane_version parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Min fastlane version"},{"location":"generated/actions/min_fastlane_version/#min_fastlane_version","text":"Verifies the minimum fastlane version required Add this to your Fastfile to require a certain version of fastlane . Use it if you use an action that just recently came out and you need it. min_fastlane_version Supported platforms ios, android, mac Author @KrauseFx","title":"min_fastlane_version"},{"location":"generated/actions/min_fastlane_version/#1-example","text":"min_fastlane_version(\"1.50.0\")","title":"1 Example"},{"location":"generated/actions/min_fastlane_version/#documentation","text":"To show the documentation in your terminal, run fastlane action min_fastlane_version","title":"Documentation"},{"location":"generated/actions/min_fastlane_version/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run min_fastlane_version To pass parameters, make use of the : symbol, for example fastlane run min_fastlane_version parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/min_fastlane_version/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/modify_services/","text":"modify_services Modifies the services of the app created on Developer Portal The options are the same as :enable_services in the produce action modify_services Supported platforms ios Author @bhimsenpadalkar 1 Example modify_services( username: \"test.account@gmail.com\", app_identifier: \"com.someorg.app\", services: { push_notification: \"on\", associated_domains: \"off\", wallet: :on, apple_pay: :off, data_protection: true, multipath: false }) Parameters Key Description Default username Your Apple ID Username * app_identifier App Identifier (Bundle ID, e.g. com.krausefx.app) * services Array with Spaceship App Services (e.g. access_wifi: (on|off)(:on|:off)(true|false), app_attest: (on|off)(:on|:off)(true|false), app_group: (on|off)(:on|:off)(true|false), apple_pay: (on|off)(:on|:off)(true|false), associated_domains: (on|off)(:on|:off)(true|false), auto_fill_credential: (on|off)(:on|:off)(true|false), class_kit: (on|off)(:on|:off)(true|false), icloud: (legacy|cloudkit)(:on|:off)(true|false), custom_network_protocol: (on|off)(:on|:off)(true|false), data_protection: (complete|unlessopen|untilfirstauth)(:on|:off)(true|false), extended_virtual_address_space: (on|off)(:on|:off)(true|false), family_controls: (on|off)(:on|:off)(true|false), file_provider_testing_mode: (on|off)(:on|:off)(true|false), fonts: (on|off)(:on|:off)(true|false), game_center: (ios|mac)(:on|:off)(true|false), health_kit: (on|off)(:on|:off)(true|false), hls_interstitial_preview: (on|off)(:on|:off)(true|false), home_kit: (on|off)(:on|:off)(true|false), hotspot: (on|off)(:on|:off)(true|false), in_app_purchase: (on|off)(:on|:off)(true|false), inter_app_audio: (on|off)(:on|:off)(true|false), low_latency_hls: (on|off)(:on|:off)(true|false), managed_associated_domains: (on|off)(:on|:off)(true|false), maps: (on|off)(:on|:off)(true|false), multipath: (on|off)(:on|:off)(true|false), network_extension: (on|off)(:on|:off)(true|false), nfc_tag_reading: (on|off)(:on|:off)(true|false), personal_vpn: (on|off)(:on|:off)(true|false), passbook: (on|off)(:on|:off)(true|false), push_notification: (on|off)(:on|:off)(true|false), sign_in_with_apple: (on)(:on|:off)(true|false), siri_kit: (on|off)(:on|:off)(true|false), system_extension: (on|off)(:on|:off)(true|false), user_management: (on|off)(:on|:off)(true|false), vpn_configuration: (on|off)(:on|:off)(true|false), wallet: (on|off)(:on|:off)(true|false), wireless_accessory: (on|off)(:on|:off)(true|false), car_play_audio_app: (on|off)(:on|:off)(true|false), car_play_messaging_app: (on|off)(:on|:off)(true|false), car_play_navigation_app: (on|off)(:on|:off)(true|false), car_play_voip_calling_app: (on|off)(:on|:off)(true|false), critical_alerts: (on|off)(:on|:off)(true|false), hotspot_helper: (on|off)(:on|:off)(true|false), driver_kit: (on|off)(:on|:off)(true|false), driver_kit_endpoint_security: (on|off)(:on|:off)(true|false), driver_kit_family_hid_device: (on|off)(:on|:off)(true|false), driver_kit_family_networking: (on|off)(:on|:off)(true|false), driver_kit_family_serial: (on|off)(:on|:off)(true|false), driver_kit_hid_event_service: (on|off)(:on|:off)(true|false), driver_kit_transport_hid: (on|off)(:on|:off)(true|false), multitasking_camera_access: (on|off)(:on|:off)(true|false), sf_universal_link_api: (on|off)(:on|:off)(true|false), vp9_decoder: (on|off)(:on|:off)(true|false), music_kit: (on|off)(:on|:off)(true|false), shazam_kit: (on|off)(:on|:off)(true|false), communication_notifications: (on|off)(:on|:off)(true|false), group_activities: (on|off)(:on|:off)(true|false), health_kit_estimate_recalibration: (on|off)(:on|:off)(true|false), time_sensitive_notifications: (on|off)(:on|:off)(true|false)) {} team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action modify_services CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run modify_services To pass parameters, make use of the : symbol, for example fastlane run modify_services parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Modify services"},{"location":"generated/actions/modify_services/#modify_services","text":"Modifies the services of the app created on Developer Portal The options are the same as :enable_services in the produce action modify_services Supported platforms ios Author @bhimsenpadalkar","title":"modify_services"},{"location":"generated/actions/modify_services/#1-example","text":"modify_services( username: \"test.account@gmail.com\", app_identifier: \"com.someorg.app\", services: { push_notification: \"on\", associated_domains: \"off\", wallet: :on, apple_pay: :off, data_protection: true, multipath: false })","title":"1 Example"},{"location":"generated/actions/modify_services/#parameters","text":"Key Description Default username Your Apple ID Username * app_identifier App Identifier (Bundle ID, e.g. com.krausefx.app) * services Array with Spaceship App Services (e.g. access_wifi: (on|off)(:on|:off)(true|false), app_attest: (on|off)(:on|:off)(true|false), app_group: (on|off)(:on|:off)(true|false), apple_pay: (on|off)(:on|:off)(true|false), associated_domains: (on|off)(:on|:off)(true|false), auto_fill_credential: (on|off)(:on|:off)(true|false), class_kit: (on|off)(:on|:off)(true|false), icloud: (legacy|cloudkit)(:on|:off)(true|false), custom_network_protocol: (on|off)(:on|:off)(true|false), data_protection: (complete|unlessopen|untilfirstauth)(:on|:off)(true|false), extended_virtual_address_space: (on|off)(:on|:off)(true|false), family_controls: (on|off)(:on|:off)(true|false), file_provider_testing_mode: (on|off)(:on|:off)(true|false), fonts: (on|off)(:on|:off)(true|false), game_center: (ios|mac)(:on|:off)(true|false), health_kit: (on|off)(:on|:off)(true|false), hls_interstitial_preview: (on|off)(:on|:off)(true|false), home_kit: (on|off)(:on|:off)(true|false), hotspot: (on|off)(:on|:off)(true|false), in_app_purchase: (on|off)(:on|:off)(true|false), inter_app_audio: (on|off)(:on|:off)(true|false), low_latency_hls: (on|off)(:on|:off)(true|false), managed_associated_domains: (on|off)(:on|:off)(true|false), maps: (on|off)(:on|:off)(true|false), multipath: (on|off)(:on|:off)(true|false), network_extension: (on|off)(:on|:off)(true|false), nfc_tag_reading: (on|off)(:on|:off)(true|false), personal_vpn: (on|off)(:on|:off)(true|false), passbook: (on|off)(:on|:off)(true|false), push_notification: (on|off)(:on|:off)(true|false), sign_in_with_apple: (on)(:on|:off)(true|false), siri_kit: (on|off)(:on|:off)(true|false), system_extension: (on|off)(:on|:off)(true|false), user_management: (on|off)(:on|:off)(true|false), vpn_configuration: (on|off)(:on|:off)(true|false), wallet: (on|off)(:on|:off)(true|false), wireless_accessory: (on|off)(:on|:off)(true|false), car_play_audio_app: (on|off)(:on|:off)(true|false), car_play_messaging_app: (on|off)(:on|:off)(true|false), car_play_navigation_app: (on|off)(:on|:off)(true|false), car_play_voip_calling_app: (on|off)(:on|:off)(true|false), critical_alerts: (on|off)(:on|:off)(true|false), hotspot_helper: (on|off)(:on|:off)(true|false), driver_kit: (on|off)(:on|:off)(true|false), driver_kit_endpoint_security: (on|off)(:on|:off)(true|false), driver_kit_family_hid_device: (on|off)(:on|:off)(true|false), driver_kit_family_networking: (on|off)(:on|:off)(true|false), driver_kit_family_serial: (on|off)(:on|:off)(true|false), driver_kit_hid_event_service: (on|off)(:on|:off)(true|false), driver_kit_transport_hid: (on|off)(:on|:off)(true|false), multitasking_camera_access: (on|off)(:on|:off)(true|false), sf_universal_link_api: (on|off)(:on|:off)(true|false), vp9_decoder: (on|off)(:on|:off)(true|false), music_kit: (on|off)(:on|:off)(true|false), shazam_kit: (on|off)(:on|:off)(true|false), communication_notifications: (on|off)(:on|:off)(true|false), group_activities: (on|off)(:on|:off)(true|false), health_kit_estimate_recalibration: (on|off)(:on|:off)(true|false), time_sensitive_notifications: (on|off)(:on|:off)(true|false)) {} team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/modify_services/#documentation","text":"To show the documentation in your terminal, run fastlane action modify_services","title":"Documentation"},{"location":"generated/actions/modify_services/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run modify_services To pass parameters, make use of the : symbol, for example fastlane run modify_services parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/modify_services/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/nexus_upload/","text":"nexus_upload Upload a file to Sonatype Nexus platform nexus_upload Supported platforms ios, android, mac Author @xfreebird, @mdio 2 Examples # for Nexus 2 nexus_upload( file: \"/path/to/file.ipa\", repo_id: \"artefacts\", repo_group_id: \"com.fastlane\", repo_project_name: \"ipa\", repo_project_version: \"1.13\", repo_classifier: \"dSYM\", # Optional endpoint: \"http://localhost:8081\", username: \"admin\", password: \"admin123\" ) # for Nexus 3 nexus_upload( nexus_version: 3, mount_path: \"\", file: \"/path/to/file.ipa\", repo_id: \"artefacts\", repo_group_id: \"com.fastlane\", repo_project_name: \"ipa\", repo_project_version: \"1.13\", repo_classifier: \"dSYM\", # Optional endpoint: \"http://localhost:8081\", username: \"admin\", password: \"admin123\" ) Parameters Key Description Default file File to be uploaded to Nexus repo_id Nexus repository id e.g. artefacts repo_group_id Nexus repository group id e.g. com.company repo_project_name Nexus repository commandect name. Only letters, digits, underscores(_), hyphens(-), and dots(.) are allowed repo_project_version Nexus repository commandect version repo_classifier Nexus repository artifact classifier (optional) endpoint Nexus endpoint e.g. http://nexus:8081 mount_path Nexus mount path (Nexus 3 instances have this configured as empty by default) /nexus username Nexus username password Nexus password ssl_verify Verify SSL true nexus_version Nexus major version 2 verbose Make detailed output false proxy_username Proxy username proxy_password Proxy password proxy_address Proxy address proxy_port Proxy port * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action nexus_upload CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run nexus_upload To pass parameters, make use of the : symbol, for example fastlane run nexus_upload parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Nexus upload"},{"location":"generated/actions/nexus_upload/#nexus_upload","text":"Upload a file to Sonatype Nexus platform nexus_upload Supported platforms ios, android, mac Author @xfreebird, @mdio","title":"nexus_upload"},{"location":"generated/actions/nexus_upload/#2-examples","text":"# for Nexus 2 nexus_upload( file: \"/path/to/file.ipa\", repo_id: \"artefacts\", repo_group_id: \"com.fastlane\", repo_project_name: \"ipa\", repo_project_version: \"1.13\", repo_classifier: \"dSYM\", # Optional endpoint: \"http://localhost:8081\", username: \"admin\", password: \"admin123\" ) # for Nexus 3 nexus_upload( nexus_version: 3, mount_path: \"\", file: \"/path/to/file.ipa\", repo_id: \"artefacts\", repo_group_id: \"com.fastlane\", repo_project_name: \"ipa\", repo_project_version: \"1.13\", repo_classifier: \"dSYM\", # Optional endpoint: \"http://localhost:8081\", username: \"admin\", password: \"admin123\" )","title":"2 Examples"},{"location":"generated/actions/nexus_upload/#parameters","text":"Key Description Default file File to be uploaded to Nexus repo_id Nexus repository id e.g. artefacts repo_group_id Nexus repository group id e.g. com.company repo_project_name Nexus repository commandect name. Only letters, digits, underscores(_), hyphens(-), and dots(.) are allowed repo_project_version Nexus repository commandect version repo_classifier Nexus repository artifact classifier (optional) endpoint Nexus endpoint e.g. http://nexus:8081 mount_path Nexus mount path (Nexus 3 instances have this configured as empty by default) /nexus username Nexus username password Nexus password ssl_verify Verify SSL true nexus_version Nexus major version 2 verbose Make detailed output false proxy_username Proxy username proxy_password Proxy password proxy_address Proxy address proxy_port Proxy port * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/nexus_upload/#documentation","text":"To show the documentation in your terminal, run fastlane action nexus_upload","title":"Documentation"},{"location":"generated/actions/nexus_upload/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run nexus_upload To pass parameters, make use of the : symbol, for example fastlane run nexus_upload parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/nexus_upload/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/notarize/","text":"notarize Notarizes a macOS app notarize Supported platforms mac Author @zeplin Parameters Key Description Default package Path to package to notarize, e.g. .app bundle or disk image use_notarytool Whether to xcrun notarytool or xcrun altool * try_early_stapling Whether to try early stapling while the notarization request is in progress false skip_stapling Do not staple the notarization ticket to the artifact; useful for single file executables and ZIP archives false bundle_id Bundle identifier to uniquely identify the package username Apple ID username * asc_provider Provider short name for accounts associated with multiple providers print_log Whether to print notarization log file, listing issues on failure and warnings on success false verbose Whether to log requests false api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action notarize CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run notarize To pass parameters, make use of the : symbol, for example fastlane run notarize parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Notarize"},{"location":"generated/actions/notarize/#notarize","text":"Notarizes a macOS app notarize Supported platforms mac Author @zeplin","title":"notarize"},{"location":"generated/actions/notarize/#parameters","text":"Key Description Default package Path to package to notarize, e.g. .app bundle or disk image use_notarytool Whether to xcrun notarytool or xcrun altool * try_early_stapling Whether to try early stapling while the notarization request is in progress false skip_stapling Do not staple the notarization ticket to the artifact; useful for single file executables and ZIP archives false bundle_id Bundle identifier to uniquely identify the package username Apple ID username * asc_provider Provider short name for accounts associated with multiple providers print_log Whether to print notarization log file, listing issues on failure and warnings on success false verbose Whether to log requests false api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/notarize/#documentation","text":"To show the documentation in your terminal, run fastlane action notarize","title":"Documentation"},{"location":"generated/actions/notarize/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run notarize To pass parameters, make use of the : symbol, for example fastlane run notarize parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/notarize/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/notification/","text":"notification Display a macOS notification with custom message and title notification Supported platforms ios, android, mac Author @champo, @cbowns, @KrauseFx, @amarcadet, @dusek 1 Example notification(subtitle: \"Finished Building\", message: \"Ready to upload...\") Parameters Key Description Default title The title to display in the notification fastlane subtitle A subtitle to display in the notification message The message to display in the notification sound The name of a sound to play when the notification appears (names are listed in Sound Preferences) activate Bundle identifier of application to be opened when the notification is clicked app_icon The URL of an image to display instead of the application icon (Mavericks+ only) content_image The URL of an image to display attached to the notification (Mavericks+ only) open URL of the resource to be opened when the notification is clicked execute Shell command to run when the notification is clicked * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action notification CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run notification To pass parameters, make use of the : symbol, for example fastlane run notification parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Notification"},{"location":"generated/actions/notification/#notification","text":"Display a macOS notification with custom message and title notification Supported platforms ios, android, mac Author @champo, @cbowns, @KrauseFx, @amarcadet, @dusek","title":"notification"},{"location":"generated/actions/notification/#1-example","text":"notification(subtitle: \"Finished Building\", message: \"Ready to upload...\")","title":"1 Example"},{"location":"generated/actions/notification/#parameters","text":"Key Description Default title The title to display in the notification fastlane subtitle A subtitle to display in the notification message The message to display in the notification sound The name of a sound to play when the notification appears (names are listed in Sound Preferences) activate Bundle identifier of application to be opened when the notification is clicked app_icon The URL of an image to display instead of the application icon (Mavericks+ only) content_image The URL of an image to display attached to the notification (Mavericks+ only) open URL of the resource to be opened when the notification is clicked execute Shell command to run when the notification is clicked * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/notification/#documentation","text":"To show the documentation in your terminal, run fastlane action notification","title":"Documentation"},{"location":"generated/actions/notification/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run notification To pass parameters, make use of the : symbol, for example fastlane run notification parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/notification/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/notify/","text":"notify Shows a macOS notification - use notification instead It's recommended to use the new notification action instead of notify notify Supported platforms ios, android, mac Author @champo, @KrauseFx Documentation To show the documentation in your terminal, run fastlane action notify CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run notify To pass parameters, make use of the : symbol, for example fastlane run notify parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Notify"},{"location":"generated/actions/notify/#notify","text":"Shows a macOS notification - use notification instead It's recommended to use the new notification action instead of notify notify Supported platforms ios, android, mac Author @champo, @KrauseFx","title":"notify"},{"location":"generated/actions/notify/#documentation","text":"To show the documentation in your terminal, run fastlane action notify","title":"Documentation"},{"location":"generated/actions/notify/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run notify To pass parameters, make use of the : symbol, for example fastlane run notify parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/notify/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/number_of_commits/","text":"number_of_commits Return the number of commits in current git branch You can use this action to get the number of commits of this branch. This is useful if you want to set the build number to the number of commits. See fastlane actions number_of_commits for more details. number_of_commits Supported platforms ios, android, mac Author @onevcat, @samuelbeek Returns The total number of all commits in current git branch 2 Examples increment_build_number(build_number: number_of_commits) build_number = number_of_commits(all: true) increment_build_number(build_number: build_number) Parameters Key Description Default all Returns number of all commits instead of current branch * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action number_of_commits CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run number_of_commits To pass parameters, make use of the : symbol, for example fastlane run number_of_commits parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Number of commits"},{"location":"generated/actions/number_of_commits/#number_of_commits","text":"Return the number of commits in current git branch You can use this action to get the number of commits of this branch. This is useful if you want to set the build number to the number of commits. See fastlane actions number_of_commits for more details. number_of_commits Supported platforms ios, android, mac Author @onevcat, @samuelbeek Returns The total number of all commits in current git branch","title":"number_of_commits"},{"location":"generated/actions/number_of_commits/#2-examples","text":"increment_build_number(build_number: number_of_commits) build_number = number_of_commits(all: true) increment_build_number(build_number: build_number)","title":"2 Examples"},{"location":"generated/actions/number_of_commits/#parameters","text":"Key Description Default all Returns number of all commits instead of current branch * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/number_of_commits/#documentation","text":"To show the documentation in your terminal, run fastlane action number_of_commits","title":"Documentation"},{"location":"generated/actions/number_of_commits/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run number_of_commits To pass parameters, make use of the : symbol, for example fastlane run number_of_commits parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/number_of_commits/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/oclint/","text":"oclint Lints implementation files with OCLint Run the static analyzer tool OCLint for your project. You need to have a compile_commands.json file in your fastlane directory or pass a path to your file. oclint Supported platforms ios, android, mac Author @HeEAaD 1 Example oclint( compile_commands: \"commands.json\", # The JSON compilation database, use xctool reporter \"json-compilation-database\" select_regex: /ViewController.m/, # Select all files matching this regex exclude_regex: /Test.m/, # Exclude all files matching this regex report_type: \"pmd\", # The type of the report (default: html) max_priority_1: 10, # The max allowed number of priority 1 violations max_priority_2: 100, # The max allowed number of priority 2 violations max_priority_3: 1000, # The max allowed number of priority 3 violations thresholds: [ # Override the default behavior of rules \"LONG_LINE=200\", \"LONG_METHOD=200\" ], enable_rules: [ # List of rules to pick explicitly \"DoubleNegative\", \"SwitchStatementsDon'TNeedDefaultWhenFullyCovered\" ], disable_rules: [\"GotoStatement\"], # List of rules to disable list_enabled_rules: true, # List enabled rules enable_clang_static_analyzer: true, # Enable Clang Static Analyzer, and integrate results into OCLint report enable_global_analysis: true, # Compile every source, and analyze across global contexts (depends on number of source files, could results in high memory load) allow_duplicated_violations: true, # Allow duplicated violations in the OCLint report extra_arg: \"-Wno-everything\"# Additional argument to append to the compiler command line ) Parameters Key Description Default oclint_path The path to oclint binary oclint compile_commands The json compilation database, use xctool reporter 'json-compilation-database' compile_commands.json select_reqex DEPRECATED! Use :select_regex instead - Select all files matching this reqex select_regex Select all files matching this regex exclude_regex Exclude all files matching this regex report_type The type of the report (default: html) html report_path The reports file path list_enabled_rules List enabled rules false rc Override the default behavior of rules thresholds List of rule thresholds to override the default behavior of rules enable_rules List of rules to pick explicitly disable_rules List of rules to disable max_priority_1 The max allowed number of priority 1 violations max_priority_2 The max allowed number of priority 2 violations max_priority_3 The max allowed number of priority 3 violations enable_clang_static_analyzer Enable Clang Static Analyzer, and integrate results into OCLint report false enable_global_analysis Compile every source, and analyze across global contexts (depends on number of source files, could results in high memory load) false allow_duplicated_violations Allow duplicated violations in the OCLint report false extra_arg Additional argument to append to the compiler command line * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The oclint action generates the following Lane Variables: SharedValue Description SharedValues::FL_OCLINT_REPORT_PATH The reports file path To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action oclint CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run oclint To pass parameters, make use of the : symbol, for example fastlane run oclint parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Oclint"},{"location":"generated/actions/oclint/#oclint","text":"Lints implementation files with OCLint Run the static analyzer tool OCLint for your project. You need to have a compile_commands.json file in your fastlane directory or pass a path to your file. oclint Supported platforms ios, android, mac Author @HeEAaD","title":"oclint"},{"location":"generated/actions/oclint/#1-example","text":"oclint( compile_commands: \"commands.json\", # The JSON compilation database, use xctool reporter \"json-compilation-database\" select_regex: /ViewController.m/, # Select all files matching this regex exclude_regex: /Test.m/, # Exclude all files matching this regex report_type: \"pmd\", # The type of the report (default: html) max_priority_1: 10, # The max allowed number of priority 1 violations max_priority_2: 100, # The max allowed number of priority 2 violations max_priority_3: 1000, # The max allowed number of priority 3 violations thresholds: [ # Override the default behavior of rules \"LONG_LINE=200\", \"LONG_METHOD=200\" ], enable_rules: [ # List of rules to pick explicitly \"DoubleNegative\", \"SwitchStatementsDon'TNeedDefaultWhenFullyCovered\" ], disable_rules: [\"GotoStatement\"], # List of rules to disable list_enabled_rules: true, # List enabled rules enable_clang_static_analyzer: true, # Enable Clang Static Analyzer, and integrate results into OCLint report enable_global_analysis: true, # Compile every source, and analyze across global contexts (depends on number of source files, could results in high memory load) allow_duplicated_violations: true, # Allow duplicated violations in the OCLint report extra_arg: \"-Wno-everything\"# Additional argument to append to the compiler command line )","title":"1 Example"},{"location":"generated/actions/oclint/#parameters","text":"Key Description Default oclint_path The path to oclint binary oclint compile_commands The json compilation database, use xctool reporter 'json-compilation-database' compile_commands.json select_reqex DEPRECATED! Use :select_regex instead - Select all files matching this reqex select_regex Select all files matching this regex exclude_regex Exclude all files matching this regex report_type The type of the report (default: html) html report_path The reports file path list_enabled_rules List enabled rules false rc Override the default behavior of rules thresholds List of rule thresholds to override the default behavior of rules enable_rules List of rules to pick explicitly disable_rules List of rules to disable max_priority_1 The max allowed number of priority 1 violations max_priority_2 The max allowed number of priority 2 violations max_priority_3 The max allowed number of priority 3 violations enable_clang_static_analyzer Enable Clang Static Analyzer, and integrate results into OCLint report false enable_global_analysis Compile every source, and analyze across global contexts (depends on number of source files, could results in high memory load) false allow_duplicated_violations Allow duplicated violations in the OCLint report false extra_arg Additional argument to append to the compiler command line * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/oclint/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The oclint action generates the following Lane Variables: SharedValue Description SharedValues::FL_OCLINT_REPORT_PATH The reports file path To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/oclint/#documentation","text":"To show the documentation in your terminal, run fastlane action oclint","title":"Documentation"},{"location":"generated/actions/oclint/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run oclint To pass parameters, make use of the : symbol, for example fastlane run oclint parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/oclint/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/onesignal/","text":"onesignal Create or update a new OneSignal application You can use this action to automatically create or update a OneSignal application. You can also upload a .p12 with password, a GCM key, or both. onesignal Supported platforms ios, android Author @timothybarraclough, @smartshowltd 2 Examples onesignal( auth_token: \"Your OneSignal Auth Token\", app_name: \"Name for OneSignal App\", android_token: \"Your Android GCM key (optional)\", android_gcm_sender_id: \"Your Android GCM Sender ID (optional)\", apns_p12: \"Path to Apple .p12 file (optional)\", apns_p12_password: \"Password for .p12 file (optional)\", apns_env: \"production/sandbox (defaults to production)\", organization_id: \"Onesignal organization id (optional)\" ) onesignal( app_id: \"Your OneSignal App ID\", auth_token: \"Your OneSignal Auth Token\", app_name: \"New Name for OneSignal App\", android_token: \"Your Android GCM key (optional)\", android_gcm_sender_id: \"Your Android GCM Sender ID (optional)\", apns_p12: \"Path to Apple .p12 file (optional)\", apns_p12_password: \"Password for .p12 file (optional)\", apns_env: \"production/sandbox (defaults to production)\", organization_id: \"Onesignal organization id (optional)\" ) Parameters Key Description Default app_id OneSignal App ID. Setting this updates an existing app auth_token OneSignal Authorization Key app_name OneSignal App Name. This is required when creating an app (in other words, when :app_id is not set, and optional when updating an app android_token ANDROID GCM KEY android_gcm_sender_id GCM SENDER ID apns_p12 APNS P12 File (in .p12 format) apns_p12_password APNS P12 password apns_env APNS environment production organization_id OneSignal Organization ID * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The onesignal action generates the following Lane Variables: SharedValue Description SharedValues::ONE_SIGNAL_APP_ID The app ID of the newly created or updated app SharedValues::ONE_SIGNAL_APP_AUTH_KEY The auth token for the newly created or updated app To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action onesignal CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run onesignal To pass parameters, make use of the : symbol, for example fastlane run onesignal parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Onesignal"},{"location":"generated/actions/onesignal/#onesignal","text":"Create or update a new OneSignal application You can use this action to automatically create or update a OneSignal application. You can also upload a .p12 with password, a GCM key, or both. onesignal Supported platforms ios, android Author @timothybarraclough, @smartshowltd","title":"onesignal"},{"location":"generated/actions/onesignal/#2-examples","text":"onesignal( auth_token: \"Your OneSignal Auth Token\", app_name: \"Name for OneSignal App\", android_token: \"Your Android GCM key (optional)\", android_gcm_sender_id: \"Your Android GCM Sender ID (optional)\", apns_p12: \"Path to Apple .p12 file (optional)\", apns_p12_password: \"Password for .p12 file (optional)\", apns_env: \"production/sandbox (defaults to production)\", organization_id: \"Onesignal organization id (optional)\" ) onesignal( app_id: \"Your OneSignal App ID\", auth_token: \"Your OneSignal Auth Token\", app_name: \"New Name for OneSignal App\", android_token: \"Your Android GCM key (optional)\", android_gcm_sender_id: \"Your Android GCM Sender ID (optional)\", apns_p12: \"Path to Apple .p12 file (optional)\", apns_p12_password: \"Password for .p12 file (optional)\", apns_env: \"production/sandbox (defaults to production)\", organization_id: \"Onesignal organization id (optional)\" )","title":"2 Examples"},{"location":"generated/actions/onesignal/#parameters","text":"Key Description Default app_id OneSignal App ID. Setting this updates an existing app auth_token OneSignal Authorization Key app_name OneSignal App Name. This is required when creating an app (in other words, when :app_id is not set, and optional when updating an app android_token ANDROID GCM KEY android_gcm_sender_id GCM SENDER ID apns_p12 APNS P12 File (in .p12 format) apns_p12_password APNS P12 password apns_env APNS environment production organization_id OneSignal Organization ID * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/onesignal/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The onesignal action generates the following Lane Variables: SharedValue Description SharedValues::ONE_SIGNAL_APP_ID The app ID of the newly created or updated app SharedValues::ONE_SIGNAL_APP_AUTH_KEY The auth token for the newly created or updated app To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/onesignal/#documentation","text":"To show the documentation in your terminal, run fastlane action onesignal","title":"Documentation"},{"location":"generated/actions/onesignal/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run onesignal To pass parameters, make use of the : symbol, for example fastlane run onesignal parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/onesignal/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/opt_out_crash_reporting/","text":"opt_out_crash_reporting This will prevent reports from being uploaded when fastlane crashes fastlane doesn't have crash reporting any more. Feel free to remove opt_out_crash_reporting from your Fastfile. opt_out_crash_reporting Supported platforms ios, android, mac Author @mpirri, @ohayon Documentation To show the documentation in your terminal, run fastlane action opt_out_crash_reporting CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run opt_out_crash_reporting To pass parameters, make use of the : symbol, for example fastlane run opt_out_crash_reporting parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Opt out crash reporting"},{"location":"generated/actions/opt_out_crash_reporting/#opt_out_crash_reporting","text":"This will prevent reports from being uploaded when fastlane crashes fastlane doesn't have crash reporting any more. Feel free to remove opt_out_crash_reporting from your Fastfile. opt_out_crash_reporting Supported platforms ios, android, mac Author @mpirri, @ohayon","title":"opt_out_crash_reporting"},{"location":"generated/actions/opt_out_crash_reporting/#documentation","text":"To show the documentation in your terminal, run fastlane action opt_out_crash_reporting","title":"Documentation"},{"location":"generated/actions/opt_out_crash_reporting/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run opt_out_crash_reporting To pass parameters, make use of the : symbol, for example fastlane run opt_out_crash_reporting parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/opt_out_crash_reporting/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/opt_out_usage/","text":"opt_out_usage This will stop uploading the information which actions were run By default, fastlane will track what actions are being used. No personal/sensitive information is recorded. Learn more at https://docs.fastlane.tools/#metrics . Add opt_out_usage at the top of your Fastfile to disable metrics collection. opt_out_usage Supported platforms ios, android, mac Author @KrauseFx 1 Example opt_out_usage # add this to the top of your Fastfile Documentation To show the documentation in your terminal, run fastlane action opt_out_usage CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run opt_out_usage To pass parameters, make use of the : symbol, for example fastlane run opt_out_usage parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Opt out usage"},{"location":"generated/actions/opt_out_usage/#opt_out_usage","text":"This will stop uploading the information which actions were run By default, fastlane will track what actions are being used. No personal/sensitive information is recorded. Learn more at https://docs.fastlane.tools/#metrics . Add opt_out_usage at the top of your Fastfile to disable metrics collection. opt_out_usage Supported platforms ios, android, mac Author @KrauseFx","title":"opt_out_usage"},{"location":"generated/actions/opt_out_usage/#1-example","text":"opt_out_usage # add this to the top of your Fastfile","title":"1 Example"},{"location":"generated/actions/opt_out_usage/#documentation","text":"To show the documentation in your terminal, run fastlane action opt_out_usage","title":"Documentation"},{"location":"generated/actions/opt_out_usage/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run opt_out_usage To pass parameters, make use of the : symbol, for example fastlane run opt_out_usage parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/opt_out_usage/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/pem/","text":"pem Alias for the get_push_certificate action Automatically generate and renew your push notification profiles Tired of manually creating and maintaining your push notification profiles for your iOS apps? Tired of generating a pem file for your server? pem does all that for you, just by simply running pem . pem creates new .pem, .cer, and .p12 files to be uploaded to your push server if a valid push notification profile is needed. pem does not cover uploading the file to your server. To automate iOS Provisioning profiles you can use match . Features \u2022 Usage \u2022 How does it work? \u2022 Tips \u2022 Need help? pem is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Features Well, it's actually just one: Generate the pem file for your server. Check out this gif: Usage fastlane pem Yes, that's the whole command! This does the following: Create a new signing request Create a new push certification Downloads the certificate Generates a new .pem file in the current working directory, which you can upload to your server Note that pem will never revoke your existing certificates. pem can't download any of your existing push certificates, as the private key is only available on the machine it was created on. If you already have a push certificate enabled, which is active for at least 30 more days, pem will not create a new certificate. If you still want to create one, use the force : fastlane pem --force You can pass parameters like this: fastlane pem -a com.krausefx.app -u username If you want to generate a development certificate instead: fastlane pem --development If you want to generate a Website Push certificate: fastlane pem --website_push Set a password for your p12 file: fastlane pem -p \"MyPass\" You can specify a name for the output file: fastlane pem -o my.pem To get a list of available options run: fastlane action pem Note about empty p12 passwords and Keychain Access.app pem will produce a valid p12 without specifying a password, or using the empty-string as the password. While the file is valid, the Mac's Keychain Access will not allow you to open the file without specifying a passphrase. Instead, you may verify the file is valid using OpenSSL: openssl pkcs12 -info -in my.p12 If you need the p12 in your keychain, perhaps to test push with an app like Knuff or Pusher , you can use openssl to export the p12 to pem and back to p12 : % openssl pkcs12 -in my.p12 -out my.pem Enter Import Password: MAC verified OK Enter your pem passphrase: % openssl pkcs12 -export -in my.pem -out my-with-passphrase.p12 Enter pass phrase for temp.pem: Enter Export Password: Environment Variables Run fastlane action pem to get a list of available environment variables. How does it work? pem uses spaceship to communicate with the Apple Developer Portal to request a new push certificate for you. How is my password stored? pem uses the password manager from fastlane . Take a look the CredentialsManager README for more information. pem Supported platforms ios, mac Author @KrauseFx 3 Examples get_push_certificate pem # alias for \"get_push_certificate\" get_push_certificate( force: true, # create a new profile, even if the old one is still valid app_identifier: \"net.sunapps.9\", # optional app identifier, save_private_key: true, new_profile: proc do |profile_path| # this block gets called when a new profile was generated puts profile_path # the absolute path to the new PEM file # insert the code to upload the PEM file to the server end ) Parameters Key Description Default platform Set certificate's platform. Used for creation of production & development certificates. Supported platforms: ios, macos ios development Renew the development push certificate instead of the production one false website_push Create a Website Push certificate false generate_p12 Generate a p12 file additionally to a PEM file true active_days_limit If the current certificate is active for less than this number of days, generate a new one 30 force Create a new push certificate, even if the current one is active for 30 (or PEM_ACTIVE_DAYS_LIMIT) more days false save_private_key Set to save the private RSA key true app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * p12_password The password that is used for your p12 file pem_name The file name of the generated .pem file output_path The path to a directory in which all certificates and private keys should be stored . new_profile Block that is called if there is a new profile * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action pem CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run pem To pass parameters, make use of the : symbol, for example fastlane run pem parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Pem"},{"location":"generated/actions/pem/#pem","text":"Alias for the get_push_certificate action","title":"pem"},{"location":"generated/actions/pem/#features","text":"Well, it's actually just one: Generate the pem file for your server. Check out this gif:","title":"Features"},{"location":"generated/actions/pem/#usage","text":"fastlane pem Yes, that's the whole command! This does the following: Create a new signing request Create a new push certification Downloads the certificate Generates a new .pem file in the current working directory, which you can upload to your server Note that pem will never revoke your existing certificates. pem can't download any of your existing push certificates, as the private key is only available on the machine it was created on. If you already have a push certificate enabled, which is active for at least 30 more days, pem will not create a new certificate. If you still want to create one, use the force : fastlane pem --force You can pass parameters like this: fastlane pem -a com.krausefx.app -u username If you want to generate a development certificate instead: fastlane pem --development If you want to generate a Website Push certificate: fastlane pem --website_push Set a password for your p12 file: fastlane pem -p \"MyPass\" You can specify a name for the output file: fastlane pem -o my.pem To get a list of available options run: fastlane action pem","title":"Usage"},{"location":"generated/actions/pem/#environment-variables","text":"Run fastlane action pem to get a list of available environment variables.","title":"Environment Variables"},{"location":"generated/actions/pem/#how-does-it-work","text":"pem uses spaceship to communicate with the Apple Developer Portal to request a new push certificate for you.","title":"How does it work?"},{"location":"generated/actions/pem/#how-is-my-password-stored","text":"pem uses the password manager from fastlane . Take a look the CredentialsManager README for more information. pem Supported platforms ios, mac Author @KrauseFx","title":"How is my password stored?"},{"location":"generated/actions/pem/#3-examples","text":"get_push_certificate pem # alias for \"get_push_certificate\" get_push_certificate( force: true, # create a new profile, even if the old one is still valid app_identifier: \"net.sunapps.9\", # optional app identifier, save_private_key: true, new_profile: proc do |profile_path| # this block gets called when a new profile was generated puts profile_path # the absolute path to the new PEM file # insert the code to upload the PEM file to the server end )","title":"3 Examples"},{"location":"generated/actions/pem/#parameters","text":"Key Description Default platform Set certificate's platform. Used for creation of production & development certificates. Supported platforms: ios, macos ios development Renew the development push certificate instead of the production one false website_push Create a Website Push certificate false generate_p12 Generate a p12 file additionally to a PEM file true active_days_limit If the current certificate is active for less than this number of days, generate a new one 30 force Create a new push certificate, even if the current one is active for 30 (or PEM_ACTIVE_DAYS_LIMIT) more days false save_private_key Set to save the private RSA key true app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * p12_password The password that is used for your p12 file pem_name The file name of the generated .pem file output_path The path to a directory in which all certificates and private keys should be stored . new_profile Block that is called if there is a new profile * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/pem/#documentation","text":"To show the documentation in your terminal, run fastlane action pem","title":"Documentation"},{"location":"generated/actions/pem/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run pem To pass parameters, make use of the : symbol, for example fastlane run pem parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/pem/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/pilot/","text":"pilot Alias for the upload_to_testflight action The best way to manage your TestFlight testers and builds from your terminal pilot makes it easier to manage your app on Apple\u2019s TestFlight. You can: Upload & distribute builds Add & remove testers Retrieve information about testers & devices Import/export all available testers pilot uses spaceship.airforce to interact with App Store Connect \ud83d\ude80 Usage \u2022 Tips pilot is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Usage For all commands, you can either use an API Key or your Apple ID . App Store Connect API Key The App Store Connect API Key is the preferred authentication method (if you are able to use it). Uses official App Store Connect API No need for 2FA Better performance over Apple ID Specify the API key using --api_key_path ./path/to/api_key_info.json or --api_key \"{\\\"key_id\\\": \\\"D83848D23\\\", \\\"issuer_id\\\": \\\"227b0bbf-ada8-458c-9d62-3d8022b7d07f\\\", \\\"key_filepath\\\": \\\"D83848D23.p8\\\"}\" Go to Using App Store Connect API for information on obtaining an API key, the fastlane api_key_info.json format, and other API key usage. Apple ID Specify the Apple ID to use using -u felix@krausefx.com . If you execute pilot in a project already using fastlane the username and app identifier will automatically be determined. Uploading builds To upload a new build, just run fastlane pilot upload This will automatically look for an ipa in your current directory and tries to fetch the login credentials from your fastlane setup . You'll be asked for any missing information. Additionally, you can pass all kinds of parameters: fastlane action pilot You can pass a changelog using fastlane pilot upload --changelog \"Something that is new here\" You can also skip the submission of the binary, which means, the ipa file will only be uploaded and not distributed to testers: fastlane pilot upload --skip_submission pilot does all kinds of magic for you: Automatically detects the bundle identifier from your ipa file Automatically fetch the AppID of your app based on the bundle identifier pilot uses spaceship to submit the build metadata and the iTunes Transporter to upload the binary. Because iTunes Transporter's upload capability is only supported on OS X, pilot upload does not work on Linux, as described in this issue List builds To list all builds for specific application use fastlane pilot builds The result lists all active builds and processing builds: +-----------+---------+----------+ | Great App Builds | +-----------+---------+----------+ | Version # | Build # | Installs | +-----------+---------+----------+ | 0.9.13 | 1 | 0 | | 0.9.13 | 2 | 0 | | 0.9.20 | 3 | 0 | | 0.9.20 | 4 | 3 | +-----------+---------+----------+ Managing beta testers List of Testers This command will list all your testers, both internal and external. fastlane pilot list The output will look like this: +--------+--------+--------------------------+-----------+ | Internal Testers | +--------+--------+--------------------------+-----------+ | First | Last | Email | # Devices | +--------+--------+--------------------------+-----------+ | Felix | Krause | felix@krausefx.com | 2 | +--------+--------+--------------------------+-----------+ +-----------+---------+----------------------------+-----------+ | External Testers | +-----------+---------+----------------------------+-----------+ | First | Last | Email | # Devices | +-----------+---------+----------------------------+-----------+ | Max | Manfred | email@email.com | 0 | | Detlef | M\u00fcller | detlef@krausefx.com | 1 | +-----------+---------+----------------------------+-----------+ Add a new tester To add a new tester to your App Store Connect account and to associate it to at least one testing group of your app, use the pilot add command. This will create a new tester (if necessary) or add an existing tester to the app to test. fastlane pilot add email@invite.com -g group-1,group-2 Additionally you can specify the app identifier (if necessary): fastlane pilot add email@email.com -a com.krausefx.app -g group-1,group-2 Find a tester To find a specific tester use fastlane pilot find felix@krausefx.com The resulting output will look like this: +---------------------+---------------------+ | felix@krausefx.com | +---------------------+---------------------+ | First name | Felix | | Last name | Krause | | Email | felix@krausefx.com | | Latest Version | 0.9.14 (23 | | Latest Install Date | 03/28/15 19:00 | | 2 Devices | \u2022 iPhone 6, iOS 8.3 | | | \u2022 iPhone 5, iOS 7.0 | +---------------------+---------------------+ Remove a tester This command will remove beta tester from app (from all internal and external groups) fastlane pilot remove felix@krausefx.com You can also use groups option to remove the tester from the groups specified: fastlane pilot remove felix@krausefx.com -g group-1,group-2 Export testers To export all external testers to a CSV file. Useful if you need to import tester info to another system or a new account. fastlane pilot export Import testers Add external testers from a CSV file. Create a file (ex: testers.csv ) and fill it with the following format: John,Appleseed,appleseed_john@mac.com,group-1;group-2 fastlane pilot import You can also specify the directory using fastlane pilot export -c ~/Desktop/testers.csv fastlane pilot import -c ~/Desktop/testers.csv Tips Debug information If you run into any issues you can use the verbose mode to get a more detailed output: fastlane pilot upload --verbose Firewall Issues pilot uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol from the command line using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" pilot ... If you are using pilot via the fastlane action , add the following to your Fastfile ENV[\"DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS\"] = \"-t DAV\" pilot... Note, however, that Apple recommends you don\u2019t specify the -t transport and instead allow Transporter to use automatic transport discovery to determine the best transport mode for your packages. For this reason, if the t option is passed, we will raise a warning. Also note that -t is not the only additional parameter that can be used. The string specified in the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS environment variable will be forwarded to Transporter. For all the available options, check Apple's Transporter User Guide . Credentials Issues If your password contains special characters, pilot may throw a confusing error saying your \"Your Apple ID or password was entered incorrectly\". The easiest way to fix this error is to change your password to something that does not contains special characters. How is my password stored? pilot uses the CredentialsManager from fastlane . Provider Short Name If you are on multiple App Store Connect teams, iTunes Transporter may need a provider short name to know where to upload your binary. pilot will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option. Use an Application Specific Password to upload pilot / upload_to_testflight can use an Application Specific Password via the FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD environment variable to upload a binary if both the skip_waiting_for_build_processing and apple_id options are set. (If any of those are not set, it will use the normal Apple login process that might require 2FA authentication.) Role for App Store Connect User pilot / upload_to_testflight updates build information and testers after the build has finished processing. App Store Connect requires the \"App Manager\" or \"Admin\" role for your Apple account to update this information. The \"Developer\" role will allow builds to be uploaded but will not allow updating of build information and testers. pilot Supported platforms ios, mac Author @KrauseFx 7 Examples upload_to_testflight testflight # alias for \"upload_to_testflight\" pilot # alias for \"upload_to_testflight\" upload_to_testflight(skip_submission: true) # to only upload the build upload_to_testflight( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) upload_to_testflight( beta_app_feedback_email: \"email@email.com\", beta_app_description: \"This is a description of my app\", demo_account_required: true, notify_external_testers: false, changelog: \"This is my changelog of things that have changed in a log\" ) upload_to_testflight( beta_app_review_info: { contact_email: \"email@email.com\", contact_first_name: \"Connect\", contact_last_name: \"API\", contact_phone: \"5558675309\", demo_account_name: \"demo@email.com\", demo_account_password: \"connectapi\", notes: \"this is review note for the reviewer <3 thank you for reviewing\" }, localized_app_info: { \"default\": { feedback_email: \"default@email.com\", marketing_url: \"https://example.com/marketing-defafult\", privacy_policy_url: \"https://example.com/privacy-defafult\", description: \"Default description\", }, \"en-GB\": { feedback_email: \"en-gb@email.com\", marketing_url: \"https://example.com/marketing-en-gb\", privacy_policy_url: \"https://example.com/privacy-en-gb\", description: \"en-gb description\", } }, localized_build_info: { \"default\": { whats_new: \"Default changelog\", }, \"en-GB\": { whats_new: \"en-gb changelog\", } } ) Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of the app to upload or manage testers (optional) * app_platform The platform to use (optional) apple_id Apple ID property in the App Information section in App Store Connect * ipa Path to the ipa file to upload * pkg Path to your pkg file * demo_account_required Do you need a demo account when Apple does review? beta_app_review_info Beta app review information for contact info and demo account localized_app_info Localized beta app test info for description, feedback email, marketing url, and privacy policy beta_app_description Provide the 'Beta App Description' when uploading a new build beta_app_feedback_email Provide the beta app email when uploading a new build localized_build_info Localized beta app test info for what's new changelog Provide the 'What to Test' text when uploading a new build skip_submission Skip the distributing action of pilot and only upload the ipa file false skip_waiting_for_build_processing If set to true, the distribute_external option won't work and no build will be distributed to testers. (You might want to use this option if you are using this action on CI and have to pay for 'minutes used' on your CI plan). If set to true and a changelog is provided, it will partially wait for the build to appear on AppStore Connect so the changelog can be set, and skip the remaining processing steps false update_build_info_on_upload DEPRECATED! Update build info immediately after validation. This is deprecated and will be removed in a future release. App Store Connect no longer supports setting build info until after build processing has completed, which is when build info is updated by default false distribute_only Distribute a previously uploaded build (equivalent to the fastlane pilot distribute command) false uses_non_exempt_encryption Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist false distribute_external Should the build be distributed to external testers? If set to true, use of groups option is required false notify_external_testers Should notify external testers? (Not setting a value will use App Store Connect's default which is to notify) app_version The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed build_number The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed expire_previous_builds Should expire previous builds? false first_name The tester's first name last_name The tester's last name email The tester's email testers_file_path Path to a CSV file of testers ./testers.csv groups Associate tester to one group or more by group name / group id. E.g. -g \"Team 1\",\"Team 2\" This is required when distribute_external option is set to true or when we want to add a tester to one or more external testing groups team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your team in the developer portal, if you're in multiple teams. Different from your iTC team ID! * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column wait_processing_interval Interval in seconds to wait for App Store Connect processing 30 wait_processing_timeout_duration Timeout duration in seconds to wait for App Store Connect processing. If set, after exceeding timeout duration, this will force stop to wait for App Store Connect processing and exit with exception wait_for_uploaded_build DEPRECATED! No longer needed with the transition over to the App Store Connect API - Use version info from uploaded ipa file to determine what build to use for distribution. If set to false, latest processing or any latest build will be used false reject_build_waiting_for_review Expire previous if it's 'waiting for review' false submit_beta_review Send the build for a beta review true * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action pilot CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run pilot To pass parameters, make use of the : symbol, for example fastlane run pilot parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Pilot"},{"location":"generated/actions/pilot/#pilot","text":"Alias for the upload_to_testflight action","title":"pilot"},{"location":"generated/actions/pilot/#usage","text":"For all commands, you can either use an API Key or your Apple ID .","title":"Usage"},{"location":"generated/actions/pilot/#uploading-builds","text":"To upload a new build, just run fastlane pilot upload This will automatically look for an ipa in your current directory and tries to fetch the login credentials from your fastlane setup . You'll be asked for any missing information. Additionally, you can pass all kinds of parameters: fastlane action pilot You can pass a changelog using fastlane pilot upload --changelog \"Something that is new here\" You can also skip the submission of the binary, which means, the ipa file will only be uploaded and not distributed to testers: fastlane pilot upload --skip_submission pilot does all kinds of magic for you: Automatically detects the bundle identifier from your ipa file Automatically fetch the AppID of your app based on the bundle identifier pilot uses spaceship to submit the build metadata and the iTunes Transporter to upload the binary. Because iTunes Transporter's upload capability is only supported on OS X, pilot upload does not work on Linux, as described in this issue","title":"Uploading builds"},{"location":"generated/actions/pilot/#list-builds","text":"To list all builds for specific application use fastlane pilot builds The result lists all active builds and processing builds: +-----------+---------+----------+ | Great App Builds | +-----------+---------+----------+ | Version # | Build # | Installs | +-----------+---------+----------+ | 0.9.13 | 1 | 0 | | 0.9.13 | 2 | 0 | | 0.9.20 | 3 | 0 | | 0.9.20 | 4 | 3 | +-----------+---------+----------+","title":"List builds"},{"location":"generated/actions/pilot/#managing-beta-testers","text":"","title":"Managing beta testers"},{"location":"generated/actions/pilot/#tips","text":"","title":"Tips"},{"location":"generated/actions/pilot/#debug-information","text":"If you run into any issues you can use the verbose mode to get a more detailed output: fastlane pilot upload --verbose","title":"Debug information"},{"location":"generated/actions/pilot/#firewall-issues","text":"pilot uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol from the command line using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" pilot ... If you are using pilot via the fastlane action , add the following to your Fastfile ENV[\"DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS\"] = \"-t DAV\" pilot... Note, however, that Apple recommends you don\u2019t specify the -t transport and instead allow Transporter to use automatic transport discovery to determine the best transport mode for your packages. For this reason, if the t option is passed, we will raise a warning. Also note that -t is not the only additional parameter that can be used. The string specified in the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS environment variable will be forwarded to Transporter. For all the available options, check Apple's Transporter User Guide .","title":"Firewall Issues"},{"location":"generated/actions/pilot/#credentials-issues","text":"If your password contains special characters, pilot may throw a confusing error saying your \"Your Apple ID or password was entered incorrectly\". The easiest way to fix this error is to change your password to something that does not contains special characters.","title":"Credentials Issues"},{"location":"generated/actions/pilot/#how-is-my-password-stored","text":"pilot uses the CredentialsManager from fastlane .","title":"How is my password stored?"},{"location":"generated/actions/pilot/#provider-short-name","text":"If you are on multiple App Store Connect teams, iTunes Transporter may need a provider short name to know where to upload your binary. pilot will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option.","title":"Provider Short Name"},{"location":"generated/actions/pilot/#use-an-application-specific-password-to-upload","text":"pilot / upload_to_testflight can use an Application Specific Password via the FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD environment variable to upload a binary if both the skip_waiting_for_build_processing and apple_id options are set. (If any of those are not set, it will use the normal Apple login process that might require 2FA authentication.)","title":"Use an Application Specific Password to upload"},{"location":"generated/actions/pilot/#role-for-app-store-connect-user","text":"pilot / upload_to_testflight updates build information and testers after the build has finished processing. App Store Connect requires the \"App Manager\" or \"Admin\" role for your Apple account to update this information. The \"Developer\" role will allow builds to be uploaded but will not allow updating of build information and testers. pilot Supported platforms ios, mac Author @KrauseFx","title":"Role for App Store Connect User"},{"location":"generated/actions/pilot/#7-examples","text":"upload_to_testflight testflight # alias for \"upload_to_testflight\" pilot # alias for \"upload_to_testflight\" upload_to_testflight(skip_submission: true) # to only upload the build upload_to_testflight( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) upload_to_testflight( beta_app_feedback_email: \"email@email.com\", beta_app_description: \"This is a description of my app\", demo_account_required: true, notify_external_testers: false, changelog: \"This is my changelog of things that have changed in a log\" ) upload_to_testflight( beta_app_review_info: { contact_email: \"email@email.com\", contact_first_name: \"Connect\", contact_last_name: \"API\", contact_phone: \"5558675309\", demo_account_name: \"demo@email.com\", demo_account_password: \"connectapi\", notes: \"this is review note for the reviewer <3 thank you for reviewing\" }, localized_app_info: { \"default\": { feedback_email: \"default@email.com\", marketing_url: \"https://example.com/marketing-defafult\", privacy_policy_url: \"https://example.com/privacy-defafult\", description: \"Default description\", }, \"en-GB\": { feedback_email: \"en-gb@email.com\", marketing_url: \"https://example.com/marketing-en-gb\", privacy_policy_url: \"https://example.com/privacy-en-gb\", description: \"en-gb description\", } }, localized_build_info: { \"default\": { whats_new: \"Default changelog\", }, \"en-GB\": { whats_new: \"en-gb changelog\", } } )","title":"7 Examples"},{"location":"generated/actions/pilot/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of the app to upload or manage testers (optional) * app_platform The platform to use (optional) apple_id Apple ID property in the App Information section in App Store Connect * ipa Path to the ipa file to upload * pkg Path to your pkg file * demo_account_required Do you need a demo account when Apple does review? beta_app_review_info Beta app review information for contact info and demo account localized_app_info Localized beta app test info for description, feedback email, marketing url, and privacy policy beta_app_description Provide the 'Beta App Description' when uploading a new build beta_app_feedback_email Provide the beta app email when uploading a new build localized_build_info Localized beta app test info for what's new changelog Provide the 'What to Test' text when uploading a new build skip_submission Skip the distributing action of pilot and only upload the ipa file false skip_waiting_for_build_processing If set to true, the distribute_external option won't work and no build will be distributed to testers. (You might want to use this option if you are using this action on CI and have to pay for 'minutes used' on your CI plan). If set to true and a changelog is provided, it will partially wait for the build to appear on AppStore Connect so the changelog can be set, and skip the remaining processing steps false update_build_info_on_upload DEPRECATED! Update build info immediately after validation. This is deprecated and will be removed in a future release. App Store Connect no longer supports setting build info until after build processing has completed, which is when build info is updated by default false distribute_only Distribute a previously uploaded build (equivalent to the fastlane pilot distribute command) false uses_non_exempt_encryption Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist false distribute_external Should the build be distributed to external testers? If set to true, use of groups option is required false notify_external_testers Should notify external testers? (Not setting a value will use App Store Connect's default which is to notify) app_version The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed build_number The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed expire_previous_builds Should expire previous builds? false first_name The tester's first name last_name The tester's last name email The tester's email testers_file_path Path to a CSV file of testers ./testers.csv groups Associate tester to one group or more by group name / group id. E.g. -g \"Team 1\",\"Team 2\" This is required when distribute_external option is set to true or when we want to add a tester to one or more external testing groups team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your team in the developer portal, if you're in multiple teams. Different from your iTC team ID! * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column wait_processing_interval Interval in seconds to wait for App Store Connect processing 30 wait_processing_timeout_duration Timeout duration in seconds to wait for App Store Connect processing. If set, after exceeding timeout duration, this will force stop to wait for App Store Connect processing and exit with exception wait_for_uploaded_build DEPRECATED! No longer needed with the transition over to the App Store Connect API - Use version info from uploaded ipa file to determine what build to use for distribution. If set to false, latest processing or any latest build will be used false reject_build_waiting_for_review Expire previous if it's 'waiting for review' false submit_beta_review Send the build for a beta review true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/pilot/#documentation","text":"To show the documentation in your terminal, run fastlane action pilot","title":"Documentation"},{"location":"generated/actions/pilot/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run pilot To pass parameters, make use of the : symbol, for example fastlane run pilot parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/pilot/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/plugin_scores/","text":"plugin_scores \u001b[31mNo description provided\u001b[0m plugin_scores | -----|---- Supported platforms | ios, android, mac Author | @KrauseFx Parameters Key Description Default * = default value is dependent on the user's system To show the documentation in your terminal, run fastlane action plugin_scores View source code Back to actions","title":"Plugin scores"},{"location":"generated/actions/plugin_scores/#plugin_scores","text":"\u001b[31mNo description provided\u001b[0m plugin_scores | -----|---- Supported platforms | ios, android, mac Author | @KrauseFx","title":"plugin_scores"},{"location":"generated/actions/plugin_scores/#parameters","text":"Key Description Default * = default value is dependent on the user's system To show the documentation in your terminal, run fastlane action plugin_scores View source code Back to actions","title":"Parameters"},{"location":"generated/actions/pod_lib_lint/","text":"pod_lib_lint Pod lib lint Test the syntax of your Podfile by linting the pod against the files of its directory pod_lib_lint Supported platforms ios, mac Author @thierryxing 4 Examples pod_lib_lint # Allow output detail in console pod_lib_lint(verbose: true) # Allow warnings during pod lint pod_lib_lint(allow_warnings: true) # If the podspec has a dependency on another private pod, then you will have to supply the sources pod_lib_lint(sources: [\"https://github.com/username/Specs\", \"https://github.com/CocoaPods/Specs\"]) Parameters Key Description Default use_bundle_exec Use bundle exec when there is a Gemfile presented true podspec Path of spec to lint verbose Allow output detail in console allow_warnings Allow warnings during pod lint sources The sources of repos you want the pod spec to lint with, separated by commas subspec A specific subspec to lint instead of the entire spec include_podspecs A Glob of additional ancillary podspecs which are used for linting via :path (available since cocoapods >= 1.7) external_podspecs A Glob of additional ancillary podspecs which are used for linting via :podspec. If there are --include-podspecs, then these are removed from them (available since cocoapods >= 1.7) swift_version The SWIFT_VERSION that should be used to lint the spec. This takes precedence over a .swift-version file use_libraries Lint uses static libraries to install the spec false use_modular_headers Lint using modular libraries (available since cocoapods >= 1.6) false fail_fast Lint stops on the first failing platform or subspec false private Lint skips checks that apply only to public specs false quick Lint skips checks that would require to download and build the spec false no_clean Lint leaves the build directory intact for inspection false no_subspecs Lint skips validation of subspecs false platforms Lint against specific platforms (defaults to all platforms supported by the podspec). Multiple platforms must be comma-delimited (available since cocoapods >= 1.6) skip_import_validation Lint skips validating that the pod can be imported (available since cocoapods >= 1.3) false skip_tests Lint skips building and running tests during validation (available since cocoapods >= 1.3) false analyze Validate with the Xcode Static Analysis tool (available since cocoapods >= 1.6.1) false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action pod_lib_lint CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run pod_lib_lint To pass parameters, make use of the : symbol, for example fastlane run pod_lib_lint parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Pod lib lint"},{"location":"generated/actions/pod_lib_lint/#pod_lib_lint","text":"Pod lib lint Test the syntax of your Podfile by linting the pod against the files of its directory pod_lib_lint Supported platforms ios, mac Author @thierryxing","title":"pod_lib_lint"},{"location":"generated/actions/pod_lib_lint/#4-examples","text":"pod_lib_lint # Allow output detail in console pod_lib_lint(verbose: true) # Allow warnings during pod lint pod_lib_lint(allow_warnings: true) # If the podspec has a dependency on another private pod, then you will have to supply the sources pod_lib_lint(sources: [\"https://github.com/username/Specs\", \"https://github.com/CocoaPods/Specs\"])","title":"4 Examples"},{"location":"generated/actions/pod_lib_lint/#parameters","text":"Key Description Default use_bundle_exec Use bundle exec when there is a Gemfile presented true podspec Path of spec to lint verbose Allow output detail in console allow_warnings Allow warnings during pod lint sources The sources of repos you want the pod spec to lint with, separated by commas subspec A specific subspec to lint instead of the entire spec include_podspecs A Glob of additional ancillary podspecs which are used for linting via :path (available since cocoapods >= 1.7) external_podspecs A Glob of additional ancillary podspecs which are used for linting via :podspec. If there are --include-podspecs, then these are removed from them (available since cocoapods >= 1.7) swift_version The SWIFT_VERSION that should be used to lint the spec. This takes precedence over a .swift-version file use_libraries Lint uses static libraries to install the spec false use_modular_headers Lint using modular libraries (available since cocoapods >= 1.6) false fail_fast Lint stops on the first failing platform or subspec false private Lint skips checks that apply only to public specs false quick Lint skips checks that would require to download and build the spec false no_clean Lint leaves the build directory intact for inspection false no_subspecs Lint skips validation of subspecs false platforms Lint against specific platforms (defaults to all platforms supported by the podspec). Multiple platforms must be comma-delimited (available since cocoapods >= 1.6) skip_import_validation Lint skips validating that the pod can be imported (available since cocoapods >= 1.3) false skip_tests Lint skips building and running tests during validation (available since cocoapods >= 1.3) false analyze Validate with the Xcode Static Analysis tool (available since cocoapods >= 1.6.1) false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/pod_lib_lint/#documentation","text":"To show the documentation in your terminal, run fastlane action pod_lib_lint","title":"Documentation"},{"location":"generated/actions/pod_lib_lint/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run pod_lib_lint To pass parameters, make use of the : symbol, for example fastlane run pod_lib_lint parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/pod_lib_lint/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/pod_push/","text":"pod_push Push a Podspec to Trunk or a private repository pod_push Supported platforms ios, mac Author @squarefrog 4 Examples # If no path is supplied then Trunk will attempt to find the first Podspec in the current directory. pod_push # Alternatively, supply the Podspec file path pod_push(path: \"TSMessages.podspec\") # You may also push to a private repo instead of Trunk pod_push(path: \"TSMessages.podspec\", repo: \"MyRepo\") # If the podspec has a dependency on another private pod, then you will have to supply the sources you want the podspec to lint with for pod_push to succeed. Read more here - https://github.com/CocoaPods/CocoaPods/issues/2543. pod_push(path: \"TMessages.podspec\", repo: \"MyRepo\", sources: [\"https://github.com/username/Specs\", \"https://github.com/CocoaPods/Specs\"]) Parameters Key Description Default use_bundle_exec Use bundle exec when there is a Gemfile presented false path The Podspec you want to push repo The repo you want to push. Pushes to Trunk by default allow_warnings Allow warnings during pod push use_libraries Allow lint to use static libraries to install the spec sources The sources of repos you want the pod spec to lint with, separated by commas swift_version The SWIFT_VERSION that should be used to lint the spec. This takes precedence over a .swift-version file skip_import_validation Lint skips validating that the pod can be imported skip_tests Lint skips building and running tests during validation use_json Convert the podspec to JSON before pushing it to the repo verbose Show more debugging information false use_modular_headers Use modular headers option during validation synchronous If validation depends on other recently pushed pods, synchronize no_overwrite Disallow pushing that would overwrite an existing spec local_only Does not perform the step of pushing REPO to its remote * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action pod_push CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run pod_push To pass parameters, make use of the : symbol, for example fastlane run pod_push parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Pod push"},{"location":"generated/actions/pod_push/#pod_push","text":"Push a Podspec to Trunk or a private repository pod_push Supported platforms ios, mac Author @squarefrog","title":"pod_push"},{"location":"generated/actions/pod_push/#4-examples","text":"# If no path is supplied then Trunk will attempt to find the first Podspec in the current directory. pod_push # Alternatively, supply the Podspec file path pod_push(path: \"TSMessages.podspec\") # You may also push to a private repo instead of Trunk pod_push(path: \"TSMessages.podspec\", repo: \"MyRepo\") # If the podspec has a dependency on another private pod, then you will have to supply the sources you want the podspec to lint with for pod_push to succeed. Read more here - https://github.com/CocoaPods/CocoaPods/issues/2543. pod_push(path: \"TMessages.podspec\", repo: \"MyRepo\", sources: [\"https://github.com/username/Specs\", \"https://github.com/CocoaPods/Specs\"])","title":"4 Examples"},{"location":"generated/actions/pod_push/#parameters","text":"Key Description Default use_bundle_exec Use bundle exec when there is a Gemfile presented false path The Podspec you want to push repo The repo you want to push. Pushes to Trunk by default allow_warnings Allow warnings during pod push use_libraries Allow lint to use static libraries to install the spec sources The sources of repos you want the pod spec to lint with, separated by commas swift_version The SWIFT_VERSION that should be used to lint the spec. This takes precedence over a .swift-version file skip_import_validation Lint skips validating that the pod can be imported skip_tests Lint skips building and running tests during validation use_json Convert the podspec to JSON before pushing it to the repo verbose Show more debugging information false use_modular_headers Use modular headers option during validation synchronous If validation depends on other recently pushed pods, synchronize no_overwrite Disallow pushing that would overwrite an existing spec local_only Does not perform the step of pushing REPO to its remote * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/pod_push/#documentation","text":"To show the documentation in your terminal, run fastlane action pod_push","title":"Documentation"},{"location":"generated/actions/pod_push/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run pod_push To pass parameters, make use of the : symbol, for example fastlane run pod_push parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/pod_push/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/podio_item/","text":"podio_item Creates or updates an item within your Podio app Use this action to create or update an item within your Podio app (see https://help.podio.com/hc/en-us/articles/201019278-Creating-apps- ). Pass in dictionary with field keys and their values. Field key is located under Modify app -> Advanced -> Developer -> External ID (see https://developers.podio.com/examples/items ). podio_item Supported platforms ios, android, mac Author @pprochazka72, @laugejepsen 1 Example podio_item( identifying_value: \"Your unique value\", other_fields: { \"field1\" => \"fieldValue\", \"field2\" => \"fieldValue2\" } ) Parameters Key Description Default client_id Client ID for Podio API (see https://developers.podio.com/api-key) client_secret Client secret for Podio API (see https://developers.podio.com/api-key) app_id App ID of the app you intend to authenticate with (see https://developers.podio.com/authentication/app_auth) app_token App token of the app you intend to authenticate with (see https://developers.podio.com/authentication/app_auth) identifying_field String specifying the field key used for identification of an item identifying_value String uniquely specifying an item within the app other_fields Dictionary of your app fields. Podio supports several field types, see https://developers.podio.com/doc/items * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The podio_item action generates the following Lane Variables: SharedValue Description SharedValues::PODIO_ITEM_URL URL to newly created (or updated) Podio item To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action podio_item CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run podio_item To pass parameters, make use of the : symbol, for example fastlane run podio_item parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Podio item"},{"location":"generated/actions/podio_item/#podio_item","text":"Creates or updates an item within your Podio app Use this action to create or update an item within your Podio app (see https://help.podio.com/hc/en-us/articles/201019278-Creating-apps- ). Pass in dictionary with field keys and their values. Field key is located under Modify app -> Advanced -> Developer -> External ID (see https://developers.podio.com/examples/items ). podio_item Supported platforms ios, android, mac Author @pprochazka72, @laugejepsen","title":"podio_item"},{"location":"generated/actions/podio_item/#1-example","text":"podio_item( identifying_value: \"Your unique value\", other_fields: { \"field1\" => \"fieldValue\", \"field2\" => \"fieldValue2\" } )","title":"1 Example"},{"location":"generated/actions/podio_item/#parameters","text":"Key Description Default client_id Client ID for Podio API (see https://developers.podio.com/api-key) client_secret Client secret for Podio API (see https://developers.podio.com/api-key) app_id App ID of the app you intend to authenticate with (see https://developers.podio.com/authentication/app_auth) app_token App token of the app you intend to authenticate with (see https://developers.podio.com/authentication/app_auth) identifying_field String specifying the field key used for identification of an item identifying_value String uniquely specifying an item within the app other_fields Dictionary of your app fields. Podio supports several field types, see https://developers.podio.com/doc/items * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/podio_item/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The podio_item action generates the following Lane Variables: SharedValue Description SharedValues::PODIO_ITEM_URL URL to newly created (or updated) Podio item To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/podio_item/#documentation","text":"To show the documentation in your terminal, run fastlane action podio_item","title":"Documentation"},{"location":"generated/actions/podio_item/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run podio_item To pass parameters, make use of the : symbol, for example fastlane run podio_item parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/podio_item/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/precheck/","text":"precheck Alias for the check_app_store_metadata action precheck Check your app using a community driven set of App Store review rules to avoid being rejected Apple rejects builds for many avoidable metadata issues like including swear words \ud83d\ude2e, other companies\u2019 trademarks, or even mentioning an iOS bug \ud83d\udc1b. fastlane precheck takes a lot of the guess work out by scanning your app\u2019s details in App Store Connect for avoidable problems. fastlane precheck helps you get your app through app review without rejections so you can ship faster \ud83d\ude80 Features \u2022 Usage \u2022 Example \u2022 How does it work? Features precheck Features \ud83d\udc1b \uf8ff product bug mentions \ud83d\ude45 Swear word checker \ud83e\udd16 Mentioning other platforms \ud83d\ude35 URL reachability checker \ud83d\udcdd Placeholder/test words/mentioning future features \ud83d\udcc5 Copyright date checking \ud83d\ude48 Customizable word list checking \ud83d\udce2 You can decide if you want to warn about potential problems and continue or have fastlane show an error and stop after all scans are done Usage Run fastlane precheck to check the app metadata from App Store Connect fastlane precheck To get a list of available options run fastlane action precheck Example Since you might want to manually trigger precheck but don't want to specify all the parameters every time, you can store your defaults in a so called Precheckfile . Run fastlane precheck init to create a new configuration file. Example: # indicates that your metadata will not be checked by this rule negative_apple_sentiment(level: :skip) # when triggered, this rule will warn you of a potential problem curse_words(level: :warn) # show error and prevent any further commands from running after fastlane precheck finishes unreachable_urls(level: :error) # pass in whatever words you want to check for custom_text(data: [\"chrome\", \"webos\"], level: :warn) Use with fastlane precheck is fully integrated with deliver another fastlane tool. Update your Fastfile to contain the following code: lane :production do # ... # by default deliver will call precheck and warn you of any problems # if you want precheck to halt submitting to app review, you can pass # precheck_default_rule_level: :error deliver(precheck_default_rule_level: :error) # ... end # or if you prefer, you can run precheck alone lane :check_metadata do precheck end How does it work? precheck will access App Store Connect to download your app's metadata. It uses spaceship to communicate with Apple's web services. Want to improve precheck's rules? Please submit an issue on GitHub and provide information about your App Store rejection! Make sure you scrub out any personally identifiable information since this will be public. precheck Supported platforms ios Author @taquitos Returns true if precheck passes, else, false 2 Examples check_app_store_metadata( negative_apple_sentiment: [level: :skip], # Set to skip to not run the `negative_apple_sentiment` rule curse_words: [level: :warn] # Set to warn to only warn on curse word check failures ) precheck # alias for \"check_app_store_metadata\" Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * platform The platform to use (optional) ios default_rule_level The default rule level unless otherwise configured :error include_in_app_purchases Should check in-app purchases? true use_live Should force check live app? false negative_apple_sentiment mentioning \uf8ff in a way that could be considered negative placeholder_text using placeholder text (e.g.:\"lorem ipsum\", \"text here\", etc...) other_platforms mentioning other platforms, like Android or Blackberry future_functionality mentioning features or content that is not currently available in your app test_words using text indicating this release is a test curse_words including words that might be considered objectionable free_stuff_in_iap using text indicating that your IAP is free custom_text mentioning any of the user-specified words passed to custom_text(data: [words]) copyright_date using a copyright date that is any different from this current year, or missing a date unreachable_urls unreachable URLs in app metadata * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action precheck CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run precheck To pass parameters, make use of the : symbol, for example fastlane run precheck parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Precheck"},{"location":"generated/actions/precheck/#precheck","text":"Alias for the check_app_store_metadata action","title":"precheck"},{"location":"generated/actions/precheck/#precheck_1","text":"","title":"precheck"},{"location":"generated/actions/precheck/#features","text":"precheck Features \ud83d\udc1b \uf8ff product bug mentions \ud83d\ude45 Swear word checker \ud83e\udd16 Mentioning other platforms \ud83d\ude35 URL reachability checker \ud83d\udcdd Placeholder/test words/mentioning future features \ud83d\udcc5 Copyright date checking \ud83d\ude48 Customizable word list checking \ud83d\udce2 You can decide if you want to warn about potential problems and continue or have fastlane show an error and stop after all scans are done","title":"Features"},{"location":"generated/actions/precheck/#usage","text":"Run fastlane precheck to check the app metadata from App Store Connect fastlane precheck To get a list of available options run fastlane action precheck","title":"Usage"},{"location":"generated/actions/precheck/#example","text":"Since you might want to manually trigger precheck but don't want to specify all the parameters every time, you can store your defaults in a so called Precheckfile . Run fastlane precheck init to create a new configuration file. Example: # indicates that your metadata will not be checked by this rule negative_apple_sentiment(level: :skip) # when triggered, this rule will warn you of a potential problem curse_words(level: :warn) # show error and prevent any further commands from running after fastlane precheck finishes unreachable_urls(level: :error) # pass in whatever words you want to check for custom_text(data: [\"chrome\", \"webos\"], level: :warn)","title":"Example"},{"location":"generated/actions/precheck/#how-does-it-work","text":"precheck will access App Store Connect to download your app's metadata. It uses spaceship to communicate with Apple's web services.","title":"How does it work?"},{"location":"generated/actions/precheck/#want-to-improve-prechecks-rules","text":"Please submit an issue on GitHub and provide information about your App Store rejection! Make sure you scrub out any personally identifiable information since this will be public. precheck Supported platforms ios Author @taquitos Returns true if precheck passes, else, false","title":"Want to improve precheck's rules?"},{"location":"generated/actions/precheck/#2-examples","text":"check_app_store_metadata( negative_apple_sentiment: [level: :skip], # Set to skip to not run the `negative_apple_sentiment` rule curse_words: [level: :warn] # Set to warn to only warn on curse word check failures ) precheck # alias for \"check_app_store_metadata\"","title":"2 Examples"},{"location":"generated/actions/precheck/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) app_identifier The bundle identifier of your app * username Your Apple ID Username * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * platform The platform to use (optional) ios default_rule_level The default rule level unless otherwise configured :error include_in_app_purchases Should check in-app purchases? true use_live Should force check live app? false negative_apple_sentiment mentioning \uf8ff in a way that could be considered negative placeholder_text using placeholder text (e.g.:\"lorem ipsum\", \"text here\", etc...) other_platforms mentioning other platforms, like Android or Blackberry future_functionality mentioning features or content that is not currently available in your app test_words using text indicating this release is a test curse_words including words that might be considered objectionable free_stuff_in_iap using text indicating that your IAP is free custom_text mentioning any of the user-specified words passed to custom_text(data: [words]) copyright_date using a copyright date that is any different from this current year, or missing a date unreachable_urls unreachable URLs in app metadata * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/precheck/#documentation","text":"To show the documentation in your terminal, run fastlane action precheck","title":"Documentation"},{"location":"generated/actions/precheck/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run precheck To pass parameters, make use of the : symbol, for example fastlane run precheck parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/precheck/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/println/","text":"println Alias for the puts action println Supported platforms ios, android, mac Author @KrauseFx 1 Example puts \"Hi there\" Parameters Key Description Default message Message to be printed out * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action println CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run println To pass parameters, make use of the : symbol, for example fastlane run println parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Println"},{"location":"generated/actions/println/#println","text":"Alias for the puts action println Supported platforms ios, android, mac Author @KrauseFx","title":"println"},{"location":"generated/actions/println/#1-example","text":"puts \"Hi there\"","title":"1 Example"},{"location":"generated/actions/println/#parameters","text":"Key Description Default message Message to be printed out * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/println/#documentation","text":"To show the documentation in your terminal, run fastlane action println","title":"Documentation"},{"location":"generated/actions/println/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run println To pass parameters, make use of the : symbol, for example fastlane run println parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/println/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/produce/","text":"produce Alias for the create_app_online action Create new iOS apps on App Store Connect and Apple Developer Portal using your command line produce creates new iOS apps on both the Apple Developer Portal and App Store Connect with the minimum required information. Features \u2022 Usage \u2022 How does it work? Features Create new apps on both App Store Connect and the Apple Developer Portal Modify Application Services on the Apple Developer Portal Create App Groups on the Apple Developer Portal Associate apps with App Groups on the Apple Developer Portal Create iCloud Containers on the Apple Developer Portal Associate apps with iCloud Containers on the Apple Developer Portal Create Merchant Identifiers on the Apple Developer Portal Associate apps with Merchant Identifiers on the Apple Developer Portal Support for multiple Apple accounts , storing your credentials securely in the Keychain Usage Creating a new application fastlane produce To get a list of all available parameters: fastlane produce --help Commands: (* default) associate_group Associate with a group, which is created if needed or simply located otherwise associate_merchant Associate with a merchant for use with Apple Pay. Apple Pay will be enabled for this app create * Creates a new app on App Store Connect and the Apple Developer Portal disable_services Disable specific Application Services for a specific app on the Apple Developer Portal enable_services Enable specific Application Services for a specific app on the Apple Developer Portal group Ensure that a specific App Group exists cloud_container Ensure that a specific iCloud Container exists help Display global or [command] help documentation merchant Ensure that a specific Merchant exists Global Options: --verbose -h, --help Display help documentation -v, --version Display version information Options for create: -u, --username STRING Your Apple ID Username (PRODUCE_USERNAME) -a, --app_identifier STRING App Identifier (Bundle ID, e.g. com.krausefx.app) (PRODUCE_APP_IDENTIFIER) -e, --bundle_identifier_suffix STRING App Identifier Suffix (Ignored if App Identifier does not ends with .*) (PRODUCE_APP_IDENTIFIER_SUFFIX) -q, --app_name STRING App Name (PRODUCE_APP_NAME) -z, --app_version STRING Initial version number (e.g. '1.0') (PRODUCE_VERSION) -y, --sku STRING SKU Number (e.g. '1234') (PRODUCE_SKU) -j, --platform STRING The platform to use (optional) (PRODUCE_PLATFORM) -m, --language STRING Primary Language (e.g. 'English', 'German') (PRODUCE_LANGUAGE) -c, --company_name STRING The name of your company. It's used to set company name on App Store Connect team's app pages. Only required if it's the first app you create (PRODUCE_COMPANY_NAME) -i, --skip_itc [VALUE] Skip the creation of the app on App Store Connect (PRODUCE_SKIP_ITC) -d, --skip_devcenter [VALUE] Skip the creation of the app on the Apple Developer Portal (PRODUCE_SKIP_DEVCENTER) -s, --itc_users ARRAY Array of App Store Connect users. If provided, you can limit access to this newly created app for users with the App Manager, Developer, Marketer or Sales roles (ITC_USERS) -b, --team_id STRING The ID of your Developer Portal team if you're in multiple teams (PRODUCE_TEAM_ID) -l, --team_name STRING The name of your Developer Portal team if you're in multiple teams (PRODUCE_TEAM_NAME) -k, --itc_team_id [VALUE] The ID of your App Store Connect team if you're in multiple teams (PRODUCE_ITC_TEAM_ID) -p, --itc_team_name STRING The name of your App Store Connect team if you're in multiple teams (PRODUCE_ITC_TEAM_NAME) Enabling / Disabling Application Services If you want to enable Application Services for an App ID (HomeKit and HealthKit in this example): fastlane produce enable_services --homekit --healthkit If you want to disable Application Services for an App ID (iCloud in this case): fastlane produce disable_services --icloud If you want to create a new App Group: fastlane produce group -g group.krausefx -n \"Example App Group\" If you want to associate an app with an App Group: fastlane produce associate_group -a com.krausefx.app group.krausefx If you want to create a new iCloud Container: fastlane produce cloud_container -g iCloud.com.krausefx.app -n \"Example iCloud Container\" If you want to associate an app with an iCloud Container: fastlane produce associate_cloud_container -a com.krausefx.app iCloud.com.krausefx.app If you want to associate an app with multiple iCloud Containers: fastlane produce associate_cloud_container -a com.krausefx.app iCloud.com.krausefx.app1 iCloud.com.krausefx.app2 Parameters Get a list of all available options using fastlane produce enable_services --help --access-wifi Enable Access Wifi --app-attest Enable App Attest --app-group Enable App Group --apple-pay Enable Apple Pay --associated-domains Enable Associated Domains --auto-fill-credential Enable Auto Fill Credential --class-kit Enable Class Kit --icloud STRING Enable iCloud, suitable values are \"xcode5_compatible\" and \"xcode6_compatible\" --custom-network-protocol Enable Custom Network Protocol --data-protection STRING Enable Data Protection, suitable values are \"complete\", \"unlessopen\" and \"untilfirstauth\" --extended-virtual-address-space Enable Extended Virtual Address Space --game-center STRING Enable Game Center, suitable values are \"ios\" and \"macos --health-kit Enable Health Kit --hls-interstitial-preview Enable Hls Interstitial Preview --home-kit Enable Home Kit --hotspot Enable Hotspot --in-app-purchase Enable In App Purchase --inter-app-audio Enable Inter App Audio --low-latency-hls Enable Low Latency Hls --managed-associated-domains Enable Managed Associated Domains --maps Enable Maps --multipath Enable Multipath --network-extension Enable Network Extension --nfc-tag-reading Enable NFC Tag Reading --personal-vpn Enable Personal VPN --passbook Enable Passbook (deprecated) --push-notification Enable Push Notification --sign-in-with-apple Enable Sign In With Apple --siri-kit Enable Siri Kit --system-extension Enable System Extension --user-management Enable User Management --vpn-configuration Enable Vpn Configuration (deprecated) --wallet Enable Wallet --wireless-accessory Enable Wireless Accessory --car-play-audio-app Enable Car Play Audio App --car-play-messaging-app Enable Car Play Messaging App --car-play-navigation-app Enable Car Play Navigation App --car-play-voip-calling-app Enable Car Play Voip Calling App --critical-alerts Enable Critical Alerts --hotspot-helper Enable Hotspot Helper --driver-kit Enable DriverKit --driver-kit-endpoint-security Enable DriverKit Endpoint Security --driver-kit-family-hid-device Enable DriverKit Family HID Device --driver-kit-family-networking Enable DriverKit Family Networking --driver-kit-family-serial Enable DriverKit Family Serial --driver-kit-hid-event-service Enable DriverKit HID EventService --driver-kit-transport-hid Enable DriverKit Transport HID --multitasking-camera-access Enable Multitasking Camera Access --sf-universal-link-api Enable SFUniversalLink API --vp9-decoder Enable VP9 Decoder --music-kit Enable MusicKit --shazam-kit Enable ShazamKit --communication-notifications Enable Communication Notifications --group-activities Enable Group Activities --health-kit-estimate-recalibration Enable HealthKit Estimate Recalibration --time-sensitive-notifications Enable Time Sensitive Notifications fastlane produce disable_services --help --access-wifi Disable Access Wifi --app-attest Disable App Attest --app-group Disable App Group --apple-pay Disable Apple Pay --associated-domains Disable Associated Domains --auto-fill-credential Disable Auto Fill Credential --class-kit Disable Class Kit --icloud STRING Disable iCloud --custom-network-protocol Disable Custom Network Protocol --data-protection STRING Disable Data Protection --extended-virtual-address-space Disable Extended Virtual Address Space --game-center STRING Disable Game Center --health-kit Disable Health Kit --hls-interstitial-preview Disable Hls Interstitial Preview --home-kit Disable Home Kit --hotspot Disable Hotspot --in-app-purchase Disable In App Purchase --inter-app-audio Disable Inter App Audio --low-latency-hls Disable Low Latency Hls --managed-associated-domains Disable Managed Associated Domains --maps Disable Maps --multipath Disable Multipath --network-extension Disable Network Extension --nfc-tag-reading Disable NFC Tag Reading --personal-vpn Disable Personal VPN --passbook Disable Passbook (deprecated) --push-notification Disable Push Notification --sign-in-with-apple Disable Sign In With Apple --siri-kit Disable Siri Kit --system-extension Disable System Extension --user-management Disable User Management --vpn-configuration Disable Vpn Configuration (deprecated) --wallet Disable Wallet --wireless-accessory Disable Wireless Accessory --car-play-audio-app Disable Car Play Audio App --car-play-messaging-app Disable Car Play Messaging App --car-play-navigation-app Disable Car Play Navigation App --car-play-voip-calling-app Disable Car Play Voip Calling App --critical-alerts Disable Critical Alerts --hotspot-helper Disable Hotspot Helper --driver-kit Disable DriverKit --driver-kit-endpoint-security Disable DriverKit Endpoint Security --driver-kit-family-hid-device Disable DriverKit Family HID Device --driver-kit-family-networking Disable DriverKit Family Networking --driver-kit-family-serial Disable DriverKit Family Serial --driver-kit-hid-event-service Disable DriverKit HID EventService --driver-kit-transport-hid Disable DriverKit Transport HID --multitasking-camera-access Disable Multitasking Camera Access --sf-universal-link-api Disable SFUniversalLink API --vp9-decoder Disable VP9 Decoder --music-kit Disable MusicKit --shazam-kit Disable ShazamKit --communication-notifications Disable Communication Notifications --group-activities Disable Group Activities --health-kit-estimate-recalibration Disable HealthKit Estimate Recalibration --time-sensitive-notifications Disable Time Sensitive Notifications Creating Apple Pay merchants and associating them with an App ID If you want to create a new Apple Pay Merchant Identifier: fastlane produce merchant -o merchant.com.example.production -r \"Example Merchant Production\" Use --help for more information about all available parameters fastlane produce merchant --help If you want to associate an app with a Merchant Identifier: fastlane produce associate_merchant -a com.krausefx.app merchant.com.example.production If you want to associate an app with multiple Merchant Identifiers: fastlane produce associate_merchant -a com.krausefx.app merchant.com.example.production merchant.com.example.sandbox Use --help for more information about all available parameters fastlane produce associate_merchant --help Environment Variables All available values can also be passed using environment variables, run fastlane produce --help to get a list of all available parameters. fastlane Integration Your Fastfile should look like this lane :release do produce( username: 'felix@krausefx.com', app_identifier: 'com.krausefx.app', app_name: 'MyApp', language: 'English', app_version: '1.0', sku: '123', team_name: 'SunApps GmbH', # only necessary when in multiple teams # Optional # App services can be enabled during app creation enable_services: { access_wifi: \"on\", # Valid values: \"on\", \"off\" app_attest: \"on\", # Valid values: \"on\", \"off\" app_group: \"on\", # Valid values: \"on\", \"off\" apple_pay: \"on\", # Valid values: \"on\", \"off\" associated_domains: \"on\", # Valid values: \"on\", \"off\" auto_fill_credential: \"on\", # Valid values: \"on\", \"off\" car_play_audio_app: \"on\", # Valid values: \"on\", \"off\" car_play_messaging_app: \"on\", # Valid values: \"on\", \"off\" car_play_navigation_app: \"on\", # Valid values: \"on\", \"off\" car_play_voip_calling_app: \"on\", # Valid values: \"on\", \"off\" class_kit: \"on\", # Valid values: \"on\", \"off\" icloud: \"xcode5_compatible\", # Valid values: \"xcode5_compatible\", \"xcode6_compatible\", \"off\" critical_alerts: \"on\", # Valid values: \"on\", \"off\" custom_network_protocol: \"on\", # Valid values: \"on\", \"off\" data_protection: \"complete\", # Valid values: \"complete\", \"unlessopen\", \"untilfirstauth\", \"off\" extended_virtual_address_space: \"on\", # Valid values: \"on\", \"off\" file_provider_testing_mode: \"on\", # Valid values: \"on\", \"off\" fonts: \"on\", # Valid values: \"on\", \"off\" game_center: \"ios\", # Valid values: \"ios\", \"macos\", off\" health_kit: \"on\", # Valid values: \"on\", \"off\" hls_interstitial_preview: \"on\", # Valid values: \"on\", \"off\" home_kit: \"on\", # Valid values: \"on\", \"off\" hotspot: \"on\", # Valid values: \"on\", \"off\" hotspot_helper: \"on\", # Valid values: \"on\", \"off\" in_app_purchase: \"on\", # Valid values: \"on\", \"off\" inter_app_audio: \"on\", # Valid values: \"on\", \"off\" low_latency_hls: \"on\", # Valid values: \"on\", \"off\" managed_associated_domains: \"on\", # Valid values: \"on\", \"off\" maps: \"on\", # Valid values: \"on\", \"off\" multipath: \"on\", # Valid values: \"on\", \"off\" network_extension: \"on\", # Valid values: \"on\", \"off\" nfc_tag_reading: \"on\", # Valid values: \"on\", \"off\" passbook: \"on\", # Valid values: \"on\", \"off\" (deprecated) personal_vpn: \"on\", # Valid values: \"on\", \"off\" push_notification: \"on\", # Valid values: \"on\", \"off\" sign_in_with_apple: \"on\", # Valid values: \"on\", \"off\" siri_kit: \"on\", # Valid values: \"on\", \"off\" system_extension: \"on\", # Valid values: \"on\", \"off\" user_management: \"on\", # Valid values: \"on\", \"off\" vpn_configuration: \"on\", # Valid values: \"on\", \"off\" (deprecated) wallet: \"on\", # Valid values: \"on\", \"off\" wireless_accessory: \"on\", # Valid values: \"on\", \"off\" driver_kit: \"on\", # Valid values: \"on\", \"off\" driver_kit_endpoint_security: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_hid_device: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_networking: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_serial: \"on\", # Valid values: \"on\", \"off\" driver_kit_hid_event_service: \"on\", # Valid values: \"on\", \"off\" driver_kit_transport_hid: \"on\", # Valid values: \"on\", \"off\" multitasking_camera_access: \"on\", # Valid values: \"on\", \"off\" sf_universal_link_api: \"on\", # Valid values: \"on\", \"off\" vp9_decoder: \"on\", # Valid values: \"on\", \"off\" music_kit: \"on\", # Valid values: \"on\", \"off\" shazam_kit: \"on\", # Valid values: \"on\", \"off\" communication_notifications: \"on\", # Valid values: \"on\", \"off\" group_activities: \"on\", # Valid values: \"on\", \"off\" health_kit_estimate_recalibration: \"on\", # Valid values: \"on\", \"off\" time_sensitive_notifications: \"on\", # Valid values: \"on\", \"off\" } ) deliver end To use the newly generated app in deliver , you need to add this line to your Deliverfile : apple_id(ENV['PRODUCE_APPLE_ID']) This will tell deliver , which App ID to use, since the app is not yet available in the App Store. You'll still have to fill out the remaining information (like screenshots, app description and pricing). You can use deliver to upload your app metadata using a CLI How is my password stored? produce uses the password manager from fastlane . Take a look the CredentialsManager README for more information. produce Supported platforms ios Author @KrauseFx 2 Examples create_app_online( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", app_name: \"MyApp\", language: \"English\", app_version: \"1.0\", sku: \"123\", team_name: \"SunApps GmbH\" # Only necessary when in multiple teams. ) produce # alias for \"create_app_online\" Parameters Key Description Default username Your Apple ID Username * app_identifier App Identifier (Bundle ID, e.g. com.krausefx.app) * bundle_identifier_suffix App Identifier Suffix (Ignored if App Identifier does not end with .*) app_name App Name app_version Initial version number (e.g. '1.0') sku SKU Number (e.g. '1234') * platform The platform to use (optional) ios platforms The platforms to use (optional) language Primary Language (e.g. 'en-US', 'fr-FR') English company_name The name of your company. It's used to set company name on App Store Connect team's app pages. Only required if it's the first app you create skip_itc Skip the creation of the app on App Store Connect false itc_users Array of App Store Connect users. If provided, you can limit access to this newly created app for users with the App Manager, Developer, Marketer or Sales roles enabled_features DEPRECATED! Please use enable_services instead - Array with Spaceship App Services {} enable_services Array with Spaceship App Services (e.g. access_wifi: (on|off), app_attest: (on|off), app_group: (on|off), apple_pay: (on|off), associated_domains: (on|off), auto_fill_credential: (on|off), class_kit: (on|off), icloud: (legacy|cloudkit), custom_network_protocol: (on|off), data_protection: (complete|unlessopen|untilfirstauth), extended_virtual_address_space: (on|off), family_controls: (on|off), file_provider_testing_mode: (on|off), fonts: (on|off), game_center: (ios|mac), health_kit: (on|off), hls_interstitial_preview: (on|off), home_kit: (on|off), hotspot: (on|off), in_app_purchase: (on|off), inter_app_audio: (on|off), low_latency_hls: (on|off), managed_associated_domains: (on|off), maps: (on|off), multipath: (on|off), network_extension: (on|off), nfc_tag_reading: (on|off), personal_vpn: (on|off), passbook: (on|off), push_notification: (on|off), sign_in_with_apple: (on), siri_kit: (on|off), system_extension: (on|off), user_management: (on|off), vpn_configuration: (on|off), wallet: (on|off), wireless_accessory: (on|off), car_play_audio_app: (on|off), car_play_messaging_app: (on|off), car_play_navigation_app: (on|off), car_play_voip_calling_app: (on|off), critical_alerts: (on|off), hotspot_helper: (on|off), driver_kit: (on|off), driver_kit_endpoint_security: (on|off), driver_kit_family_hid_device: (on|off), driver_kit_family_networking: (on|off), driver_kit_family_serial: (on|off), driver_kit_hid_event_service: (on|off), driver_kit_transport_hid: (on|off), multitasking_camera_access: (on|off), sf_universal_link_api: (on|off), vp9_decoder: (on|off), music_kit: (on|off), shazam_kit: (on|off), communication_notifications: (on|off), group_activities: (on|off), health_kit_estimate_recalibration: (on|off), time_sensitive_notifications: (on|off)) {} skip_devcenter Skip the creation of the app on the Apple Developer Portal false team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * itc_team_id The ID of your App Store Connect team if you're in multiple teams * itc_team_name The name of your App Store Connect team if you're in multiple teams * * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The produce action generates the following Lane Variables: SharedValue Description SharedValues::PRODUCE_APPLE_ID The Apple ID of the newly created app. You probably need it for deliver To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action produce CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run produce To pass parameters, make use of the : symbol, for example fastlane run produce parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Produce"},{"location":"generated/actions/produce/#produce","text":"Alias for the create_app_online action","title":"produce"},{"location":"generated/actions/produce/#features","text":"Create new apps on both App Store Connect and the Apple Developer Portal Modify Application Services on the Apple Developer Portal Create App Groups on the Apple Developer Portal Associate apps with App Groups on the Apple Developer Portal Create iCloud Containers on the Apple Developer Portal Associate apps with iCloud Containers on the Apple Developer Portal Create Merchant Identifiers on the Apple Developer Portal Associate apps with Merchant Identifiers on the Apple Developer Portal Support for multiple Apple accounts , storing your credentials securely in the Keychain","title":"Features"},{"location":"generated/actions/produce/#usage","text":"","title":"Usage"},{"location":"generated/actions/produce/#creating-a-new-application","text":"fastlane produce To get a list of all available parameters: fastlane produce --help Commands: (* default) associate_group Associate with a group, which is created if needed or simply located otherwise associate_merchant Associate with a merchant for use with Apple Pay. Apple Pay will be enabled for this app create * Creates a new app on App Store Connect and the Apple Developer Portal disable_services Disable specific Application Services for a specific app on the Apple Developer Portal enable_services Enable specific Application Services for a specific app on the Apple Developer Portal group Ensure that a specific App Group exists cloud_container Ensure that a specific iCloud Container exists help Display global or [command] help documentation merchant Ensure that a specific Merchant exists Global Options: --verbose -h, --help Display help documentation -v, --version Display version information Options for create: -u, --username STRING Your Apple ID Username (PRODUCE_USERNAME) -a, --app_identifier STRING App Identifier (Bundle ID, e.g. com.krausefx.app) (PRODUCE_APP_IDENTIFIER) -e, --bundle_identifier_suffix STRING App Identifier Suffix (Ignored if App Identifier does not ends with .*) (PRODUCE_APP_IDENTIFIER_SUFFIX) -q, --app_name STRING App Name (PRODUCE_APP_NAME) -z, --app_version STRING Initial version number (e.g. '1.0') (PRODUCE_VERSION) -y, --sku STRING SKU Number (e.g. '1234') (PRODUCE_SKU) -j, --platform STRING The platform to use (optional) (PRODUCE_PLATFORM) -m, --language STRING Primary Language (e.g. 'English', 'German') (PRODUCE_LANGUAGE) -c, --company_name STRING The name of your company. It's used to set company name on App Store Connect team's app pages. Only required if it's the first app you create (PRODUCE_COMPANY_NAME) -i, --skip_itc [VALUE] Skip the creation of the app on App Store Connect (PRODUCE_SKIP_ITC) -d, --skip_devcenter [VALUE] Skip the creation of the app on the Apple Developer Portal (PRODUCE_SKIP_DEVCENTER) -s, --itc_users ARRAY Array of App Store Connect users. If provided, you can limit access to this newly created app for users with the App Manager, Developer, Marketer or Sales roles (ITC_USERS) -b, --team_id STRING The ID of your Developer Portal team if you're in multiple teams (PRODUCE_TEAM_ID) -l, --team_name STRING The name of your Developer Portal team if you're in multiple teams (PRODUCE_TEAM_NAME) -k, --itc_team_id [VALUE] The ID of your App Store Connect team if you're in multiple teams (PRODUCE_ITC_TEAM_ID) -p, --itc_team_name STRING The name of your App Store Connect team if you're in multiple teams (PRODUCE_ITC_TEAM_NAME)","title":"Creating a new application"},{"location":"generated/actions/produce/#enabling-disabling-application-services","text":"If you want to enable Application Services for an App ID (HomeKit and HealthKit in this example): fastlane produce enable_services --homekit --healthkit If you want to disable Application Services for an App ID (iCloud in this case): fastlane produce disable_services --icloud If you want to create a new App Group: fastlane produce group -g group.krausefx -n \"Example App Group\" If you want to associate an app with an App Group: fastlane produce associate_group -a com.krausefx.app group.krausefx If you want to create a new iCloud Container: fastlane produce cloud_container -g iCloud.com.krausefx.app -n \"Example iCloud Container\" If you want to associate an app with an iCloud Container: fastlane produce associate_cloud_container -a com.krausefx.app iCloud.com.krausefx.app If you want to associate an app with multiple iCloud Containers: fastlane produce associate_cloud_container -a com.krausefx.app iCloud.com.krausefx.app1 iCloud.com.krausefx.app2","title":"Enabling / Disabling Application Services"},{"location":"generated/actions/produce/#parameters","text":"Get a list of all available options using fastlane produce enable_services --help --access-wifi Enable Access Wifi --app-attest Enable App Attest --app-group Enable App Group --apple-pay Enable Apple Pay --associated-domains Enable Associated Domains --auto-fill-credential Enable Auto Fill Credential --class-kit Enable Class Kit --icloud STRING Enable iCloud, suitable values are \"xcode5_compatible\" and \"xcode6_compatible\" --custom-network-protocol Enable Custom Network Protocol --data-protection STRING Enable Data Protection, suitable values are \"complete\", \"unlessopen\" and \"untilfirstauth\" --extended-virtual-address-space Enable Extended Virtual Address Space --game-center STRING Enable Game Center, suitable values are \"ios\" and \"macos --health-kit Enable Health Kit --hls-interstitial-preview Enable Hls Interstitial Preview --home-kit Enable Home Kit --hotspot Enable Hotspot --in-app-purchase Enable In App Purchase --inter-app-audio Enable Inter App Audio --low-latency-hls Enable Low Latency Hls --managed-associated-domains Enable Managed Associated Domains --maps Enable Maps --multipath Enable Multipath --network-extension Enable Network Extension --nfc-tag-reading Enable NFC Tag Reading --personal-vpn Enable Personal VPN --passbook Enable Passbook (deprecated) --push-notification Enable Push Notification --sign-in-with-apple Enable Sign In With Apple --siri-kit Enable Siri Kit --system-extension Enable System Extension --user-management Enable User Management --vpn-configuration Enable Vpn Configuration (deprecated) --wallet Enable Wallet --wireless-accessory Enable Wireless Accessory --car-play-audio-app Enable Car Play Audio App --car-play-messaging-app Enable Car Play Messaging App --car-play-navigation-app Enable Car Play Navigation App --car-play-voip-calling-app Enable Car Play Voip Calling App --critical-alerts Enable Critical Alerts --hotspot-helper Enable Hotspot Helper --driver-kit Enable DriverKit --driver-kit-endpoint-security Enable DriverKit Endpoint Security --driver-kit-family-hid-device Enable DriverKit Family HID Device --driver-kit-family-networking Enable DriverKit Family Networking --driver-kit-family-serial Enable DriverKit Family Serial --driver-kit-hid-event-service Enable DriverKit HID EventService --driver-kit-transport-hid Enable DriverKit Transport HID --multitasking-camera-access Enable Multitasking Camera Access --sf-universal-link-api Enable SFUniversalLink API --vp9-decoder Enable VP9 Decoder --music-kit Enable MusicKit --shazam-kit Enable ShazamKit --communication-notifications Enable Communication Notifications --group-activities Enable Group Activities --health-kit-estimate-recalibration Enable HealthKit Estimate Recalibration --time-sensitive-notifications Enable Time Sensitive Notifications fastlane produce disable_services --help --access-wifi Disable Access Wifi --app-attest Disable App Attest --app-group Disable App Group --apple-pay Disable Apple Pay --associated-domains Disable Associated Domains --auto-fill-credential Disable Auto Fill Credential --class-kit Disable Class Kit --icloud STRING Disable iCloud --custom-network-protocol Disable Custom Network Protocol --data-protection STRING Disable Data Protection --extended-virtual-address-space Disable Extended Virtual Address Space --game-center STRING Disable Game Center --health-kit Disable Health Kit --hls-interstitial-preview Disable Hls Interstitial Preview --home-kit Disable Home Kit --hotspot Disable Hotspot --in-app-purchase Disable In App Purchase --inter-app-audio Disable Inter App Audio --low-latency-hls Disable Low Latency Hls --managed-associated-domains Disable Managed Associated Domains --maps Disable Maps --multipath Disable Multipath --network-extension Disable Network Extension --nfc-tag-reading Disable NFC Tag Reading --personal-vpn Disable Personal VPN --passbook Disable Passbook (deprecated) --push-notification Disable Push Notification --sign-in-with-apple Disable Sign In With Apple --siri-kit Disable Siri Kit --system-extension Disable System Extension --user-management Disable User Management --vpn-configuration Disable Vpn Configuration (deprecated) --wallet Disable Wallet --wireless-accessory Disable Wireless Accessory --car-play-audio-app Disable Car Play Audio App --car-play-messaging-app Disable Car Play Messaging App --car-play-navigation-app Disable Car Play Navigation App --car-play-voip-calling-app Disable Car Play Voip Calling App --critical-alerts Disable Critical Alerts --hotspot-helper Disable Hotspot Helper --driver-kit Disable DriverKit --driver-kit-endpoint-security Disable DriverKit Endpoint Security --driver-kit-family-hid-device Disable DriverKit Family HID Device --driver-kit-family-networking Disable DriverKit Family Networking --driver-kit-family-serial Disable DriverKit Family Serial --driver-kit-hid-event-service Disable DriverKit HID EventService --driver-kit-transport-hid Disable DriverKit Transport HID --multitasking-camera-access Disable Multitasking Camera Access --sf-universal-link-api Disable SFUniversalLink API --vp9-decoder Disable VP9 Decoder --music-kit Disable MusicKit --shazam-kit Disable ShazamKit --communication-notifications Disable Communication Notifications --group-activities Disable Group Activities --health-kit-estimate-recalibration Disable HealthKit Estimate Recalibration --time-sensitive-notifications Disable Time Sensitive Notifications","title":"Parameters"},{"location":"generated/actions/produce/#creating-apple-pay-merchants-and-associating-them-with-an-app-id","text":"If you want to create a new Apple Pay Merchant Identifier: fastlane produce merchant -o merchant.com.example.production -r \"Example Merchant Production\" Use --help for more information about all available parameters fastlane produce merchant --help If you want to associate an app with a Merchant Identifier: fastlane produce associate_merchant -a com.krausefx.app merchant.com.example.production If you want to associate an app with multiple Merchant Identifiers: fastlane produce associate_merchant -a com.krausefx.app merchant.com.example.production merchant.com.example.sandbox Use --help for more information about all available parameters fastlane produce associate_merchant --help","title":"Creating Apple Pay merchants and associating them with an App ID"},{"location":"generated/actions/produce/#environment-variables","text":"All available values can also be passed using environment variables, run fastlane produce --help to get a list of all available parameters.","title":"Environment Variables"},{"location":"generated/actions/produce/#fastlane-integration","text":"Your Fastfile should look like this lane :release do produce( username: 'felix@krausefx.com', app_identifier: 'com.krausefx.app', app_name: 'MyApp', language: 'English', app_version: '1.0', sku: '123', team_name: 'SunApps GmbH', # only necessary when in multiple teams # Optional # App services can be enabled during app creation enable_services: { access_wifi: \"on\", # Valid values: \"on\", \"off\" app_attest: \"on\", # Valid values: \"on\", \"off\" app_group: \"on\", # Valid values: \"on\", \"off\" apple_pay: \"on\", # Valid values: \"on\", \"off\" associated_domains: \"on\", # Valid values: \"on\", \"off\" auto_fill_credential: \"on\", # Valid values: \"on\", \"off\" car_play_audio_app: \"on\", # Valid values: \"on\", \"off\" car_play_messaging_app: \"on\", # Valid values: \"on\", \"off\" car_play_navigation_app: \"on\", # Valid values: \"on\", \"off\" car_play_voip_calling_app: \"on\", # Valid values: \"on\", \"off\" class_kit: \"on\", # Valid values: \"on\", \"off\" icloud: \"xcode5_compatible\", # Valid values: \"xcode5_compatible\", \"xcode6_compatible\", \"off\" critical_alerts: \"on\", # Valid values: \"on\", \"off\" custom_network_protocol: \"on\", # Valid values: \"on\", \"off\" data_protection: \"complete\", # Valid values: \"complete\", \"unlessopen\", \"untilfirstauth\", \"off\" extended_virtual_address_space: \"on\", # Valid values: \"on\", \"off\" file_provider_testing_mode: \"on\", # Valid values: \"on\", \"off\" fonts: \"on\", # Valid values: \"on\", \"off\" game_center: \"ios\", # Valid values: \"ios\", \"macos\", off\" health_kit: \"on\", # Valid values: \"on\", \"off\" hls_interstitial_preview: \"on\", # Valid values: \"on\", \"off\" home_kit: \"on\", # Valid values: \"on\", \"off\" hotspot: \"on\", # Valid values: \"on\", \"off\" hotspot_helper: \"on\", # Valid values: \"on\", \"off\" in_app_purchase: \"on\", # Valid values: \"on\", \"off\" inter_app_audio: \"on\", # Valid values: \"on\", \"off\" low_latency_hls: \"on\", # Valid values: \"on\", \"off\" managed_associated_domains: \"on\", # Valid values: \"on\", \"off\" maps: \"on\", # Valid values: \"on\", \"off\" multipath: \"on\", # Valid values: \"on\", \"off\" network_extension: \"on\", # Valid values: \"on\", \"off\" nfc_tag_reading: \"on\", # Valid values: \"on\", \"off\" passbook: \"on\", # Valid values: \"on\", \"off\" (deprecated) personal_vpn: \"on\", # Valid values: \"on\", \"off\" push_notification: \"on\", # Valid values: \"on\", \"off\" sign_in_with_apple: \"on\", # Valid values: \"on\", \"off\" siri_kit: \"on\", # Valid values: \"on\", \"off\" system_extension: \"on\", # Valid values: \"on\", \"off\" user_management: \"on\", # Valid values: \"on\", \"off\" vpn_configuration: \"on\", # Valid values: \"on\", \"off\" (deprecated) wallet: \"on\", # Valid values: \"on\", \"off\" wireless_accessory: \"on\", # Valid values: \"on\", \"off\" driver_kit: \"on\", # Valid values: \"on\", \"off\" driver_kit_endpoint_security: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_hid_device: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_networking: \"on\", # Valid values: \"on\", \"off\" driver_kit_family_serial: \"on\", # Valid values: \"on\", \"off\" driver_kit_hid_event_service: \"on\", # Valid values: \"on\", \"off\" driver_kit_transport_hid: \"on\", # Valid values: \"on\", \"off\" multitasking_camera_access: \"on\", # Valid values: \"on\", \"off\" sf_universal_link_api: \"on\", # Valid values: \"on\", \"off\" vp9_decoder: \"on\", # Valid values: \"on\", \"off\" music_kit: \"on\", # Valid values: \"on\", \"off\" shazam_kit: \"on\", # Valid values: \"on\", \"off\" communication_notifications: \"on\", # Valid values: \"on\", \"off\" group_activities: \"on\", # Valid values: \"on\", \"off\" health_kit_estimate_recalibration: \"on\", # Valid values: \"on\", \"off\" time_sensitive_notifications: \"on\", # Valid values: \"on\", \"off\" } ) deliver end To use the newly generated app in deliver , you need to add this line to your Deliverfile : apple_id(ENV['PRODUCE_APPLE_ID']) This will tell deliver , which App ID to use, since the app is not yet available in the App Store. You'll still have to fill out the remaining information (like screenshots, app description and pricing). You can use deliver to upload your app metadata using a CLI","title":"fastlane Integration"},{"location":"generated/actions/produce/#how-is-my-password-stored","text":"produce uses the password manager from fastlane . Take a look the CredentialsManager README for more information. produce Supported platforms ios Author @KrauseFx","title":"How is my password stored?"},{"location":"generated/actions/produce/#2-examples","text":"create_app_online( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", app_name: \"MyApp\", language: \"English\", app_version: \"1.0\", sku: \"123\", team_name: \"SunApps GmbH\" # Only necessary when in multiple teams. ) produce # alias for \"create_app_online\"","title":"2 Examples"},{"location":"generated/actions/produce/#parameters_1","text":"Key Description Default username Your Apple ID Username * app_identifier App Identifier (Bundle ID, e.g. com.krausefx.app) * bundle_identifier_suffix App Identifier Suffix (Ignored if App Identifier does not end with .*) app_name App Name app_version Initial version number (e.g. '1.0') sku SKU Number (e.g. '1234') * platform The platform to use (optional) ios platforms The platforms to use (optional) language Primary Language (e.g. 'en-US', 'fr-FR') English company_name The name of your company. It's used to set company name on App Store Connect team's app pages. Only required if it's the first app you create skip_itc Skip the creation of the app on App Store Connect false itc_users Array of App Store Connect users. If provided, you can limit access to this newly created app for users with the App Manager, Developer, Marketer or Sales roles enabled_features DEPRECATED! Please use enable_services instead - Array with Spaceship App Services {} enable_services Array with Spaceship App Services (e.g. access_wifi: (on|off), app_attest: (on|off), app_group: (on|off), apple_pay: (on|off), associated_domains: (on|off), auto_fill_credential: (on|off), class_kit: (on|off), icloud: (legacy|cloudkit), custom_network_protocol: (on|off), data_protection: (complete|unlessopen|untilfirstauth), extended_virtual_address_space: (on|off), family_controls: (on|off), file_provider_testing_mode: (on|off), fonts: (on|off), game_center: (ios|mac), health_kit: (on|off), hls_interstitial_preview: (on|off), home_kit: (on|off), hotspot: (on|off), in_app_purchase: (on|off), inter_app_audio: (on|off), low_latency_hls: (on|off), managed_associated_domains: (on|off), maps: (on|off), multipath: (on|off), network_extension: (on|off), nfc_tag_reading: (on|off), personal_vpn: (on|off), passbook: (on|off), push_notification: (on|off), sign_in_with_apple: (on), siri_kit: (on|off), system_extension: (on|off), user_management: (on|off), vpn_configuration: (on|off), wallet: (on|off), wireless_accessory: (on|off), car_play_audio_app: (on|off), car_play_messaging_app: (on|off), car_play_navigation_app: (on|off), car_play_voip_calling_app: (on|off), critical_alerts: (on|off), hotspot_helper: (on|off), driver_kit: (on|off), driver_kit_endpoint_security: (on|off), driver_kit_family_hid_device: (on|off), driver_kit_family_networking: (on|off), driver_kit_family_serial: (on|off), driver_kit_hid_event_service: (on|off), driver_kit_transport_hid: (on|off), multitasking_camera_access: (on|off), sf_universal_link_api: (on|off), vp9_decoder: (on|off), music_kit: (on|off), shazam_kit: (on|off), communication_notifications: (on|off), group_activities: (on|off), health_kit_estimate_recalibration: (on|off), time_sensitive_notifications: (on|off)) {} skip_devcenter Skip the creation of the app on the Apple Developer Portal false team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * itc_team_id The ID of your App Store Connect team if you're in multiple teams * itc_team_name The name of your App Store Connect team if you're in multiple teams * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/produce/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The produce action generates the following Lane Variables: SharedValue Description SharedValues::PRODUCE_APPLE_ID The Apple ID of the newly created app. You probably need it for deliver To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/produce/#documentation","text":"To show the documentation in your terminal, run fastlane action produce","title":"Documentation"},{"location":"generated/actions/produce/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run produce To pass parameters, make use of the : symbol, for example fastlane run produce parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/produce/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/prompt/","text":"prompt Ask the user for a value or for confirmation You can use prompt to ask the user for a value or to just let the user confirm the next step. When this is executed on a CI service, the passed ci_input value will be returned. This action also supports multi-line inputs using the multi_line_end_keyword option. prompt Supported platforms ios, android, mac Author @KrauseFx 2 Examples changelog = prompt(text: \"Changelog: \") changelog = prompt( text: \"Changelog: \", multi_line_end_keyword: \"END\" ) pilot(changelog: changelog) Parameters Key Description Default text The text that will be displayed to the user Please enter some text: ci_input The default text that will be used when being executed on a CI service '' boolean Is that a boolean question (yes/no)? This will add (y/n) at the end false secure_text Is that a secure text (yes/no)? false multi_line_end_keyword Enable multi-line inputs by providing an end text (e.g. 'END') which will stop the user input * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action prompt CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run prompt To pass parameters, make use of the : symbol, for example fastlane run prompt parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Prompt"},{"location":"generated/actions/prompt/#prompt","text":"Ask the user for a value or for confirmation You can use prompt to ask the user for a value or to just let the user confirm the next step. When this is executed on a CI service, the passed ci_input value will be returned. This action also supports multi-line inputs using the multi_line_end_keyword option. prompt Supported platforms ios, android, mac Author @KrauseFx","title":"prompt"},{"location":"generated/actions/prompt/#2-examples","text":"changelog = prompt(text: \"Changelog: \") changelog = prompt( text: \"Changelog: \", multi_line_end_keyword: \"END\" ) pilot(changelog: changelog)","title":"2 Examples"},{"location":"generated/actions/prompt/#parameters","text":"Key Description Default text The text that will be displayed to the user Please enter some text: ci_input The default text that will be used when being executed on a CI service '' boolean Is that a boolean question (yes/no)? This will add (y/n) at the end false secure_text Is that a secure text (yes/no)? false multi_line_end_keyword Enable multi-line inputs by providing an end text (e.g. 'END') which will stop the user input * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/prompt/#documentation","text":"To show the documentation in your terminal, run fastlane action prompt","title":"Documentation"},{"location":"generated/actions/prompt/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run prompt To pass parameters, make use of the : symbol, for example fastlane run prompt parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/prompt/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/push_git_tags/","text":"push_git_tags Push local tags to the remote - this will only push tags If you only want to push the tags and nothing else, you can use the push_git_tags action push_git_tags Supported platforms ios, android, mac Author @vittoriom 1 Example push_git_tags Parameters Key Description Default force Force push to remote false remote The remote to push tags to origin tag The tag to push to remote * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action push_git_tags CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run push_git_tags To pass parameters, make use of the : symbol, for example fastlane run push_git_tags parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Push git tags"},{"location":"generated/actions/push_git_tags/#push_git_tags","text":"Push local tags to the remote - this will only push tags If you only want to push the tags and nothing else, you can use the push_git_tags action push_git_tags Supported platforms ios, android, mac Author @vittoriom","title":"push_git_tags"},{"location":"generated/actions/push_git_tags/#1-example","text":"push_git_tags","title":"1 Example"},{"location":"generated/actions/push_git_tags/#parameters","text":"Key Description Default force Force push to remote false remote The remote to push tags to origin tag The tag to push to remote * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/push_git_tags/#documentation","text":"To show the documentation in your terminal, run fastlane action push_git_tags","title":"Documentation"},{"location":"generated/actions/push_git_tags/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run push_git_tags To pass parameters, make use of the : symbol, for example fastlane run push_git_tags parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/push_git_tags/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/push_to_git_remote/","text":"push_to_git_remote Push local changes to the remote branch Lets you push your local commits to a remote git repo. Useful if you make local changes such as adding a version bump commit (using commit_version_bump ) or a git tag (using 'add_git_tag') on a CI server, and you want to push those changes back to your canonical/main repo. If this is a new branch, use the set_upstream option to set the remote branch as upstream. push_to_git_remote Supported platforms ios, android, mac Author @lmirosevic 2 Examples push_to_git_remote # simple version. pushes \"master\" branch to \"origin\" remote push_to_git_remote( remote: \"origin\", # optional, default: \"origin\" local_branch: \"develop\", # optional, aliased by \"branch\", default is set to current branch remote_branch: \"develop\", # optional, default is set to local_branch force: true, # optional, default: false force_with_lease: true, # optional, default: false tags: false, # optional, default: true no_verify: true,# optional, default: false set_upstream: true # optional, default: false ) Parameters Key Description Default local_branch The local branch to push from. Defaults to the current branch * remote_branch The remote branch to push to. Defaults to the local branch * force Force push to remote false force_with_lease Force push with lease to remote false tags Whether tags are pushed to remote true remote The remote to push to origin no_verify Whether or not to use --no-verify false set_upstream Whether or not to use --set-upstream false push_options Array of strings to be passed using the '--push-option' option [] * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action push_to_git_remote CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run push_to_git_remote To pass parameters, make use of the : symbol, for example fastlane run push_to_git_remote parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Push to git remote"},{"location":"generated/actions/push_to_git_remote/#push_to_git_remote","text":"Push local changes to the remote branch Lets you push your local commits to a remote git repo. Useful if you make local changes such as adding a version bump commit (using commit_version_bump ) or a git tag (using 'add_git_tag') on a CI server, and you want to push those changes back to your canonical/main repo. If this is a new branch, use the set_upstream option to set the remote branch as upstream. push_to_git_remote Supported platforms ios, android, mac Author @lmirosevic","title":"push_to_git_remote"},{"location":"generated/actions/push_to_git_remote/#2-examples","text":"push_to_git_remote # simple version. pushes \"master\" branch to \"origin\" remote push_to_git_remote( remote: \"origin\", # optional, default: \"origin\" local_branch: \"develop\", # optional, aliased by \"branch\", default is set to current branch remote_branch: \"develop\", # optional, default is set to local_branch force: true, # optional, default: false force_with_lease: true, # optional, default: false tags: false, # optional, default: true no_verify: true,# optional, default: false set_upstream: true # optional, default: false )","title":"2 Examples"},{"location":"generated/actions/push_to_git_remote/#parameters","text":"Key Description Default local_branch The local branch to push from. Defaults to the current branch * remote_branch The remote branch to push to. Defaults to the local branch * force Force push to remote false force_with_lease Force push with lease to remote false tags Whether tags are pushed to remote true remote The remote to push to origin no_verify Whether or not to use --no-verify false set_upstream Whether or not to use --set-upstream false push_options Array of strings to be passed using the '--push-option' option [] * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/push_to_git_remote/#documentation","text":"To show the documentation in your terminal, run fastlane action push_to_git_remote","title":"Documentation"},{"location":"generated/actions/push_to_git_remote/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run push_to_git_remote To pass parameters, make use of the : symbol, for example fastlane run push_to_git_remote parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/push_to_git_remote/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/puts/","text":"puts Prints out the given text puts Supported platforms ios, android, mac Author @KrauseFx 1 Example puts \"Hi there\" Parameters Key Description Default message Message to be printed out * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action puts CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run puts To pass parameters, make use of the : symbol, for example fastlane run puts parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Puts"},{"location":"generated/actions/puts/#puts","text":"Prints out the given text puts Supported platforms ios, android, mac Author @KrauseFx","title":"puts"},{"location":"generated/actions/puts/#1-example","text":"puts \"Hi there\"","title":"1 Example"},{"location":"generated/actions/puts/#parameters","text":"Key Description Default message Message to be printed out * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/puts/#documentation","text":"To show the documentation in your terminal, run fastlane action puts","title":"Documentation"},{"location":"generated/actions/puts/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run puts To pass parameters, make use of the : symbol, for example fastlane run puts parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/puts/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/read_podspec/","text":"read_podspec Loads a CocoaPods spec as JSON This can be used for only specifying a version string in your podspec - and during your release process you'd read it from the podspec by running version = read_podspec['version'] at the beginning of your lane. Loads the specified (or the first found) podspec in the folder as JSON, so that you can inspect its version , files etc. This can be useful when basing your release process on the version string only stored in one place - in the podspec. As one of the first steps you'd read the podspec and its version and the rest of the workflow can use that version string (when e.g. creating a new git tag or a GitHub Release). read_podspec Supported platforms ios, mac Author @czechboy0 2 Examples spec = read_podspec version = spec[\"version\"] puts \"Using Version #{version}\" spec = read_podspec(path: \"./XcodeServerSDK.podspec\") Parameters Key Description Default path Path to the podspec to be read * * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The read_podspec action generates the following Lane Variables: SharedValue Description SharedValues::READ_PODSPEC_JSON Podspec JSON payload To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action read_podspec CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run read_podspec To pass parameters, make use of the : symbol, for example fastlane run read_podspec parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Read podspec"},{"location":"generated/actions/read_podspec/#read_podspec","text":"Loads a CocoaPods spec as JSON This can be used for only specifying a version string in your podspec - and during your release process you'd read it from the podspec by running version = read_podspec['version'] at the beginning of your lane. Loads the specified (or the first found) podspec in the folder as JSON, so that you can inspect its version , files etc. This can be useful when basing your release process on the version string only stored in one place - in the podspec. As one of the first steps you'd read the podspec and its version and the rest of the workflow can use that version string (when e.g. creating a new git tag or a GitHub Release). read_podspec Supported platforms ios, mac Author @czechboy0","title":"read_podspec"},{"location":"generated/actions/read_podspec/#2-examples","text":"spec = read_podspec version = spec[\"version\"] puts \"Using Version #{version}\" spec = read_podspec(path: \"./XcodeServerSDK.podspec\")","title":"2 Examples"},{"location":"generated/actions/read_podspec/#parameters","text":"Key Description Default path Path to the podspec to be read * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/read_podspec/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The read_podspec action generates the following Lane Variables: SharedValue Description SharedValues::READ_PODSPEC_JSON Podspec JSON payload To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/read_podspec/#documentation","text":"To show the documentation in your terminal, run fastlane action read_podspec","title":"Documentation"},{"location":"generated/actions/read_podspec/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run read_podspec To pass parameters, make use of the : symbol, for example fastlane run read_podspec parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/read_podspec/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/recreate_schemes/","text":"recreate_schemes Recreate not shared Xcode project schemes recreate_schemes Supported platforms ios, mac Author @jerolimov 1 Example recreate_schemes(project: \"./path/to/MyApp.xcodeproj\") Parameters Key Description Default project The Xcode project * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action recreate_schemes CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run recreate_schemes To pass parameters, make use of the : symbol, for example fastlane run recreate_schemes parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Recreate schemes"},{"location":"generated/actions/recreate_schemes/#recreate_schemes","text":"Recreate not shared Xcode project schemes recreate_schemes Supported platforms ios, mac Author @jerolimov","title":"recreate_schemes"},{"location":"generated/actions/recreate_schemes/#1-example","text":"recreate_schemes(project: \"./path/to/MyApp.xcodeproj\")","title":"1 Example"},{"location":"generated/actions/recreate_schemes/#parameters","text":"Key Description Default project The Xcode project * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/recreate_schemes/#documentation","text":"To show the documentation in your terminal, run fastlane action recreate_schemes","title":"Documentation"},{"location":"generated/actions/recreate_schemes/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run recreate_schemes To pass parameters, make use of the : symbol, for example fastlane run recreate_schemes parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/recreate_schemes/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/register_device/","text":"register_device Registers a new device to the Apple Dev Portal This will register an iOS device with the Developer Portal so that you can include it in your provisioning profiles. This is an optimistic action, in that it will only ever add a device to the member center. If the device has already been registered within the member center, it will be left alone in the member center. The action will connect to the Apple Developer Portal using the username you specified in your Appfile with apple_id , but you can override it using the :username option. register_device Supported platforms ios Author @pvinis 2 Examples register_device( name: \"Luka iPhone 6\", udid: \"1234567890123456789012345678901234567890\" ) # Simply provide the name and udid of the device register_device( name: \"Luka iPhone 6\", udid: \"1234567890123456789012345678901234567890\", team_id: \"XXXXXXXXXX\", # Optional, if you\"re a member of multiple teams, then you need to pass the team ID here. username: \"luka@goonbee.com\" # Optional, lets you override the Apple Member Center username. ) Parameters Key Description Default name Provide the name of the device to register as platform Provide the platform of the device to register as (ios, mac) ios udid Provide the UDID of the device to register as api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * username Optional: Your Apple ID * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action register_device CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run register_device To pass parameters, make use of the : symbol, for example fastlane run register_device parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Register device"},{"location":"generated/actions/register_device/#register_device","text":"Registers a new device to the Apple Dev Portal This will register an iOS device with the Developer Portal so that you can include it in your provisioning profiles. This is an optimistic action, in that it will only ever add a device to the member center. If the device has already been registered within the member center, it will be left alone in the member center. The action will connect to the Apple Developer Portal using the username you specified in your Appfile with apple_id , but you can override it using the :username option. register_device Supported platforms ios Author @pvinis","title":"register_device"},{"location":"generated/actions/register_device/#2-examples","text":"register_device( name: \"Luka iPhone 6\", udid: \"1234567890123456789012345678901234567890\" ) # Simply provide the name and udid of the device register_device( name: \"Luka iPhone 6\", udid: \"1234567890123456789012345678901234567890\", team_id: \"XXXXXXXXXX\", # Optional, if you\"re a member of multiple teams, then you need to pass the team ID here. username: \"luka@goonbee.com\" # Optional, lets you override the Apple Member Center username. )","title":"2 Examples"},{"location":"generated/actions/register_device/#parameters","text":"Key Description Default name Provide the name of the device to register as platform Provide the platform of the device to register as (ios, mac) ios udid Provide the UDID of the device to register as api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * username Optional: Your Apple ID * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/register_device/#documentation","text":"To show the documentation in your terminal, run fastlane action register_device","title":"Documentation"},{"location":"generated/actions/register_device/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run register_device To pass parameters, make use of the : symbol, for example fastlane run register_device parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/register_device/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/register_devices/","text":"register_devices Registers new devices to the Apple Dev Portal This will register iOS/Mac devices with the Developer Portal so that you can include them in your provisioning profiles. This is an optimistic action, in that it will only ever add new devices to the member center, and never remove devices. If a device which has already been registered within the member center is not passed to this action, it will be left alone in the member center and continue to work. The action will connect to the Apple Developer Portal using the username you specified in your Appfile with apple_id , but you can override it using the username option, or by setting the env variable ENV['DELIVER_USER'] . register_devices Supported platforms ios, mac Author @lmirosevic 4 Examples register_devices( devices: { \"Luka iPhone 6\" => \"1234567890123456789012345678901234567890\", \"Felix iPad Air 2\" => \"abcdefghijklmnopqrstvuwxyzabcdefghijklmn\" } ) # Simply provide a list of devices as a Hash register_devices( devices_file: \"./devices.txt\" ) # Alternatively provide a standard UDID export .txt file, see the Apple Sample (http://devimages.apple.com/downloads/devices/Multiple-Upload-Samples.zip) register_devices( devices_file: \"./devices.txt\", # You must pass in either `devices_file` or `devices`. team_id: \"XXXXXXXXXX\", # Optional, if you\"re a member of multiple teams, then you need to pass the team ID here. username: \"luka@goonbee.com\" # Optional, lets you override the Apple Member Center username. ) register_devices( devices: { \"Luka MacBook\" => \"12345678-1234-1234-1234-123456789012\", \"Felix MacBook Pro\" => \"ABCDEFGH-ABCD-ABCD-ABCD-ABCDEFGHIJKL\" }, platform: \"mac\" ) # Register devices for Mac Parameters Key Description Default devices A hash of devices, with the name as key and the UDID as value devices_file Provide a path to a file with the devices to register. For the format of the file see the examples api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * username Optional: Your Apple ID * platform The platform to use (optional) ios * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action register_devices CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run register_devices To pass parameters, make use of the : symbol, for example fastlane run register_devices parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Register devices"},{"location":"generated/actions/register_devices/#register_devices","text":"Registers new devices to the Apple Dev Portal This will register iOS/Mac devices with the Developer Portal so that you can include them in your provisioning profiles. This is an optimistic action, in that it will only ever add new devices to the member center, and never remove devices. If a device which has already been registered within the member center is not passed to this action, it will be left alone in the member center and continue to work. The action will connect to the Apple Developer Portal using the username you specified in your Appfile with apple_id , but you can override it using the username option, or by setting the env variable ENV['DELIVER_USER'] . register_devices Supported platforms ios, mac Author @lmirosevic","title":"register_devices"},{"location":"generated/actions/register_devices/#4-examples","text":"register_devices( devices: { \"Luka iPhone 6\" => \"1234567890123456789012345678901234567890\", \"Felix iPad Air 2\" => \"abcdefghijklmnopqrstvuwxyzabcdefghijklmn\" } ) # Simply provide a list of devices as a Hash register_devices( devices_file: \"./devices.txt\" ) # Alternatively provide a standard UDID export .txt file, see the Apple Sample (http://devimages.apple.com/downloads/devices/Multiple-Upload-Samples.zip) register_devices( devices_file: \"./devices.txt\", # You must pass in either `devices_file` or `devices`. team_id: \"XXXXXXXXXX\", # Optional, if you\"re a member of multiple teams, then you need to pass the team ID here. username: \"luka@goonbee.com\" # Optional, lets you override the Apple Member Center username. ) register_devices( devices: { \"Luka MacBook\" => \"12345678-1234-1234-1234-123456789012\", \"Felix MacBook Pro\" => \"ABCDEFGH-ABCD-ABCD-ABCD-ABCDEFGHIJKL\" }, platform: \"mac\" ) # Register devices for Mac","title":"4 Examples"},{"location":"generated/actions/register_devices/#parameters","text":"Key Description Default devices A hash of devices, with the name as key and the UDID as value devices_file Provide a path to a file with the devices to register. For the format of the file see the examples api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * username Optional: Your Apple ID * platform The platform to use (optional) ios * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/register_devices/#documentation","text":"To show the documentation in your terminal, run fastlane action register_devices","title":"Documentation"},{"location":"generated/actions/register_devices/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run register_devices To pass parameters, make use of the : symbol, for example fastlane run register_devices parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/register_devices/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/reset_git_repo/","text":"reset_git_repo Resets git repo to a clean state by discarding uncommitted changes This action will reset your git repo to a clean state, discarding any uncommitted and untracked changes. Useful in case you need to revert the repo back to a clean state, e.g. after running fastlane . Untracked files like .env will also be deleted, unless :skip_clean is true. It's a pretty drastic action so it comes with a sort of safety latch. It will only proceed with the reset if this condition is met: You have called the ensure_git_status_clean action prior to calling this action. This ensures that your repo started off in a clean state, so the only things that will get destroyed by this action are files that are created as a byproduct of the fastlane run. reset_git_repo Supported platforms ios, android, mac Author @lmirosevic 4 Examples reset_git_repo reset_git_repo(force: true) # If you don't care about warnings and are absolutely sure that you want to discard all changes. This will reset the repo even if you have valuable uncommitted changes, so use with care! reset_git_repo(skip_clean: true) # If you want \"git clean\" to be skipped, thus NOT deleting untracked files like \".env\". Optional, defaults to false. reset_git_repo( force: true, files: [ \"./file.txt\" ] ) Parameters Key Description Default files Array of files the changes should be discarded. If not given, all files will be discarded force Skip verifying of previously clean state of repo. Only recommended in combination with files option false skip_clean Skip 'git clean' to avoid removing untracked files like .env false disregard_gitignore Setting this to true will clean the whole repository, ignoring anything in your local .gitignore. Set this to true if you want the equivalent of a fresh clone, and for all untracked and ignore files to also be removed true exclude You can pass a string, or array of, file pattern(s) here which you want to have survive the cleaning process, and remain on disk, e.g. to leave the artifacts directory you would specify exclude: 'artifacts' . Make sure this pattern is also in your gitignore! See the gitignore documentation for info on patterns * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action reset_git_repo CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run reset_git_repo To pass parameters, make use of the : symbol, for example fastlane run reset_git_repo parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Reset git repo"},{"location":"generated/actions/reset_git_repo/#reset_git_repo","text":"Resets git repo to a clean state by discarding uncommitted changes This action will reset your git repo to a clean state, discarding any uncommitted and untracked changes. Useful in case you need to revert the repo back to a clean state, e.g. after running fastlane . Untracked files like .env will also be deleted, unless :skip_clean is true. It's a pretty drastic action so it comes with a sort of safety latch. It will only proceed with the reset if this condition is met: You have called the ensure_git_status_clean action prior to calling this action. This ensures that your repo started off in a clean state, so the only things that will get destroyed by this action are files that are created as a byproduct of the fastlane run. reset_git_repo Supported platforms ios, android, mac Author @lmirosevic","title":"reset_git_repo"},{"location":"generated/actions/reset_git_repo/#4-examples","text":"reset_git_repo reset_git_repo(force: true) # If you don't care about warnings and are absolutely sure that you want to discard all changes. This will reset the repo even if you have valuable uncommitted changes, so use with care! reset_git_repo(skip_clean: true) # If you want \"git clean\" to be skipped, thus NOT deleting untracked files like \".env\". Optional, defaults to false. reset_git_repo( force: true, files: [ \"./file.txt\" ] )","title":"4 Examples"},{"location":"generated/actions/reset_git_repo/#parameters","text":"Key Description Default files Array of files the changes should be discarded. If not given, all files will be discarded force Skip verifying of previously clean state of repo. Only recommended in combination with files option false skip_clean Skip 'git clean' to avoid removing untracked files like .env false disregard_gitignore Setting this to true will clean the whole repository, ignoring anything in your local .gitignore. Set this to true if you want the equivalent of a fresh clone, and for all untracked and ignore files to also be removed true exclude You can pass a string, or array of, file pattern(s) here which you want to have survive the cleaning process, and remain on disk, e.g. to leave the artifacts directory you would specify exclude: 'artifacts' . Make sure this pattern is also in your gitignore! See the gitignore documentation for info on patterns * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/reset_git_repo/#documentation","text":"To show the documentation in your terminal, run fastlane action reset_git_repo","title":"Documentation"},{"location":"generated/actions/reset_git_repo/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run reset_git_repo To pass parameters, make use of the : symbol, for example fastlane run reset_git_repo parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/reset_git_repo/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/reset_simulator_contents/","text":"reset_simulator_contents Shutdown and reset running simulators reset_simulator_contents Supported platforms ios Author @danramteke 2 Examples reset_simulator_contents reset_simulator_contents(os_versions: [\"10.3.1\",\"12.2\"]) Parameters Key Description Default ios DEPRECATED! Use :os_versions instead - Which OS versions of Simulators you want to reset content and settings, this does not remove/recreate the simulators os_versions Which OS versions of Simulators you want to reset content and settings, this does not remove/recreate the simulators * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action reset_simulator_contents CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run reset_simulator_contents To pass parameters, make use of the : symbol, for example fastlane run reset_simulator_contents parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Reset simulator contents"},{"location":"generated/actions/reset_simulator_contents/#reset_simulator_contents","text":"Shutdown and reset running simulators reset_simulator_contents Supported platforms ios Author @danramteke","title":"reset_simulator_contents"},{"location":"generated/actions/reset_simulator_contents/#2-examples","text":"reset_simulator_contents reset_simulator_contents(os_versions: [\"10.3.1\",\"12.2\"])","title":"2 Examples"},{"location":"generated/actions/reset_simulator_contents/#parameters","text":"Key Description Default ios DEPRECATED! Use :os_versions instead - Which OS versions of Simulators you want to reset content and settings, this does not remove/recreate the simulators os_versions Which OS versions of Simulators you want to reset content and settings, this does not remove/recreate the simulators * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/reset_simulator_contents/#documentation","text":"To show the documentation in your terminal, run fastlane action reset_simulator_contents","title":"Documentation"},{"location":"generated/actions/reset_simulator_contents/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run reset_simulator_contents To pass parameters, make use of the : symbol, for example fastlane run reset_simulator_contents parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/reset_simulator_contents/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/resign/","text":"resign Codesign an existing ipa file resign Supported platforms ios Author @lmirosevic 2 Examples resign( ipa: \"path/to/ipa\", # can omit if using the `ipa` action signing_identity: \"iPhone Distribution: Luka Mirosevic (0123456789)\", provisioning_profile: \"path/to/profile\", # can omit if using the _sigh_ action ) # You may provide multiple provisioning profiles if the application contains nested # applications or app extensions, which need their own provisioning profile. # You can do so by passing an array of provisioning profile strings or a hash # that associates provisioning profile values to bundle identifier keys. resign( ipa: \"path/to/ipa\", # can omit if using the `ipa` action signing_identity: \"iPhone Distribution: Luka Mirosevic (0123456789)\", provisioning_profile: { \"com.example.awesome-app\" => \"path/to/profile\", \"com.example.awesome-app.app-extension\" => \"path/to/app-extension/profile\" } ) Parameters Key Description Default ipa Path to the ipa file to resign. Optional if you use the gym or xcodebuild action * signing_identity Code signing identity to use. e.g. iPhone Distribution: Luka Mirosevic (0123456789) entitlements Path to the entitlement file to use, e.g. myApp/MyApp.entitlements provisioning_profile Path to your provisioning_profile. Optional if you use sigh * version Version number to force resigned ipa to use. Updates both CFBundleShortVersionString and CFBundleVersion values in Info.plist . Applies for main app and all nested apps or extensions display_name Display name to force resigned ipa to use short_version Short version string to force resigned ipa to use ( CFBundleShortVersionString ) bundle_version Bundle version to force resigned ipa to use ( CFBundleVersion ) bundle_id Set new bundle ID during resign ( CFBundleIdentifier ) use_app_entitlements Extract app bundle codesigning entitlements and combine with entitlements from new provisioning profile keychain_path Provide a path to a keychain file that should be used by /usr/bin/codesign * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action resign CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run resign To pass parameters, make use of the : symbol, for example fastlane run resign parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Resign"},{"location":"generated/actions/resign/#resign","text":"Codesign an existing ipa file resign Supported platforms ios Author @lmirosevic","title":"resign"},{"location":"generated/actions/resign/#2-examples","text":"resign( ipa: \"path/to/ipa\", # can omit if using the `ipa` action signing_identity: \"iPhone Distribution: Luka Mirosevic (0123456789)\", provisioning_profile: \"path/to/profile\", # can omit if using the _sigh_ action ) # You may provide multiple provisioning profiles if the application contains nested # applications or app extensions, which need their own provisioning profile. # You can do so by passing an array of provisioning profile strings or a hash # that associates provisioning profile values to bundle identifier keys. resign( ipa: \"path/to/ipa\", # can omit if using the `ipa` action signing_identity: \"iPhone Distribution: Luka Mirosevic (0123456789)\", provisioning_profile: { \"com.example.awesome-app\" => \"path/to/profile\", \"com.example.awesome-app.app-extension\" => \"path/to/app-extension/profile\" } )","title":"2 Examples"},{"location":"generated/actions/resign/#parameters","text":"Key Description Default ipa Path to the ipa file to resign. Optional if you use the gym or xcodebuild action * signing_identity Code signing identity to use. e.g. iPhone Distribution: Luka Mirosevic (0123456789) entitlements Path to the entitlement file to use, e.g. myApp/MyApp.entitlements provisioning_profile Path to your provisioning_profile. Optional if you use sigh * version Version number to force resigned ipa to use. Updates both CFBundleShortVersionString and CFBundleVersion values in Info.plist . Applies for main app and all nested apps or extensions display_name Display name to force resigned ipa to use short_version Short version string to force resigned ipa to use ( CFBundleShortVersionString ) bundle_version Bundle version to force resigned ipa to use ( CFBundleVersion ) bundle_id Set new bundle ID during resign ( CFBundleIdentifier ) use_app_entitlements Extract app bundle codesigning entitlements and combine with entitlements from new provisioning profile keychain_path Provide a path to a keychain file that should be used by /usr/bin/codesign * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/resign/#documentation","text":"To show the documentation in your terminal, run fastlane action resign","title":"Documentation"},{"location":"generated/actions/resign/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run resign To pass parameters, make use of the : symbol, for example fastlane run resign parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/resign/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/restore_file/","text":"restore_file This action restore your file that was backuped with the backup_file action restore_file Supported platforms ios, android, mac Author @gin0606 1 Example restore_file(path: \"/path/to/file\") Parameters Key Description Default path Original file name you want to restore * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action restore_file CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run restore_file To pass parameters, make use of the : symbol, for example fastlane run restore_file parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Restore file"},{"location":"generated/actions/restore_file/#restore_file","text":"This action restore your file that was backuped with the backup_file action restore_file Supported platforms ios, android, mac Author @gin0606","title":"restore_file"},{"location":"generated/actions/restore_file/#1-example","text":"restore_file(path: \"/path/to/file\")","title":"1 Example"},{"location":"generated/actions/restore_file/#parameters","text":"Key Description Default path Original file name you want to restore * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/restore_file/#documentation","text":"To show the documentation in your terminal, run fastlane action restore_file","title":"Documentation"},{"location":"generated/actions/restore_file/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run restore_file To pass parameters, make use of the : symbol, for example fastlane run restore_file parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/restore_file/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/rocket/","text":"rocket Outputs ascii-art for a rocket \ud83d\ude80 Print an ascii Rocket :rocket:. Useful after using crashlytics or pilot to indicate that your new build has been shipped to outer-space. rocket Supported platforms ios, android, mac Author @JaviSoto, @radex 1 Example rocket Documentation To show the documentation in your terminal, run fastlane action rocket CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run rocket To pass parameters, make use of the : symbol, for example fastlane run rocket parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Rocket"},{"location":"generated/actions/rocket/#rocket","text":"Outputs ascii-art for a rocket \ud83d\ude80 Print an ascii Rocket :rocket:. Useful after using crashlytics or pilot to indicate that your new build has been shipped to outer-space. rocket Supported platforms ios, android, mac Author @JaviSoto, @radex","title":"rocket"},{"location":"generated/actions/rocket/#1-example","text":"rocket","title":"1 Example"},{"location":"generated/actions/rocket/#documentation","text":"To show the documentation in your terminal, run fastlane action rocket","title":"Documentation"},{"location":"generated/actions/rocket/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run rocket To pass parameters, make use of the : symbol, for example fastlane run rocket parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/rocket/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/rspec/","text":"rspec Run tests using rspec rspec | -----|---- Supported platforms | ios, android, mac Author | @KrauseFx To show the documentation in your terminal, run fastlane action rspec View source code Back to actions","title":"Rspec"},{"location":"generated/actions/rspec/#rspec","text":"Run tests using rspec rspec | -----|---- Supported platforms | ios, android, mac Author | @KrauseFx To show the documentation in your terminal, run fastlane action rspec View source code Back to actions","title":"rspec"},{"location":"generated/actions/rsync/","text":"rsync Rsync files from :source to :destination A wrapper around rsync , which is a tool that lets you synchronize files, including permissions and so on. For a more detailed information about rsync , please see rsync(1) man page . rsync Supported platforms ios, android, mac Author @hjanuschka 1 Example rsync( source: \"root@host:/tmp/1.txt\", destination: \"/tmp/local_file.txt\" ) Parameters Key Description Default extra Port -av source source file/folder destination destination file/folder * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action rsync CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run rsync To pass parameters, make use of the : symbol, for example fastlane run rsync parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Rsync"},{"location":"generated/actions/rsync/#rsync","text":"Rsync files from :source to :destination A wrapper around rsync , which is a tool that lets you synchronize files, including permissions and so on. For a more detailed information about rsync , please see rsync(1) man page . rsync Supported platforms ios, android, mac Author @hjanuschka","title":"rsync"},{"location":"generated/actions/rsync/#1-example","text":"rsync( source: \"root@host:/tmp/1.txt\", destination: \"/tmp/local_file.txt\" )","title":"1 Example"},{"location":"generated/actions/rsync/#parameters","text":"Key Description Default extra Port -av source source file/folder destination destination file/folder * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/rsync/#documentation","text":"To show the documentation in your terminal, run fastlane action rsync","title":"Documentation"},{"location":"generated/actions/rsync/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run rsync To pass parameters, make use of the : symbol, for example fastlane run rsync parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/rsync/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/rubocop/","text":"rubocop Runs the code style checks rubocop | -----|---- Supported platforms | ios, android, mac Author | @KrauseFx To show the documentation in your terminal, run fastlane action rubocop View source code Back to actions","title":"Rubocop"},{"location":"generated/actions/rubocop/#rubocop","text":"Runs the code style checks rubocop | -----|---- Supported platforms | ios, android, mac Author | @KrauseFx To show the documentation in your terminal, run fastlane action rubocop View source code Back to actions","title":"rubocop"},{"location":"generated/actions/ruby_version/","text":"ruby_version Verifies the minimum ruby version required Add this to your Fastfile to require a certain version of ruby . Put it at the top of your Fastfile to ensure that fastlane is executed appropriately. ruby_version Supported platforms ios, android, mac Author @sebastianvarela 1 Example ruby_version(\"2.4.0\") Documentation To show the documentation in your terminal, run fastlane action ruby_version CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ruby_version To pass parameters, make use of the : symbol, for example fastlane run ruby_version parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Ruby version"},{"location":"generated/actions/ruby_version/#ruby_version","text":"Verifies the minimum ruby version required Add this to your Fastfile to require a certain version of ruby . Put it at the top of your Fastfile to ensure that fastlane is executed appropriately. ruby_version Supported platforms ios, android, mac Author @sebastianvarela","title":"ruby_version"},{"location":"generated/actions/ruby_version/#1-example","text":"ruby_version(\"2.4.0\")","title":"1 Example"},{"location":"generated/actions/ruby_version/#documentation","text":"To show the documentation in your terminal, run fastlane action ruby_version","title":"Documentation"},{"location":"generated/actions/ruby_version/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ruby_version To pass parameters, make use of the : symbol, for example fastlane run ruby_version parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/ruby_version/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/run_tests/","text":"run_tests Easily run tests of your iOS app (via scan ) The easiest way to run tests of your iOS and Mac app scan makes it easy to run tests of your iOS and Mac app on a simulator or connected device. Features \u2022 Usage \u2022 Scanfile What's scan? Before scan xcodebuild \\ -workspace MyApp.xcworkspace \\ -scheme \"MyApp\" \\ -sdk iphonesimulator \\ -destination 'platform=iOS Simulator,name=iPhone 6,OS=8.1' \\ test As the output will look like this /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/Objects-normal/arm64/main.o Example/main.m normal arm64 objective-c com.apple.compilers.llvm.clang.1_0.compiler cd /Users/felixkrause/Developer/fastlane/gym/example/cocoapods export LANG=en_US.US-ASCII export PATH=\"/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode-beta.app/Contents/Developer/usr/bin:/Users/felixkrause/.rvm/gems/ruby-2.2.0/bin:/Users/felixkrause/.rvm/gems/ruby-2.2.0@global/bin:/Users/felixkrause/.rvm/rubies/ruby-2.2.0/bin:/Users/felixkrause/.rvm/bin:/usr/local/heroku/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin\" /Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x objective-c -arch arm64 -fmessage-length=126 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -fcolor-diagnostics -std=gnu99 -fobjc-arc -fmodules -gmodules -fmodules-cache-path=/Users/felixkrause/Library/Developer/Xcode/DerivedData/ModuleCache -fmodules-prune-interval=86400 -fmodules-prune-after=345600 -fbuild-session-file=/Users/felixkrause/Library/Developer/Xcode/DerivedData/ModuleCache/Session.modulevalidation -fmodules-validate-once-per-build-session -Wnon-modular-include-in-framework-module -Werror=non-modular-include-in-framework-module -Wno-trigraphs -fpascal-strings -Os -fno-common -Wno-missing-field-initializers -Wno-missing-prototypes -Werror=return-type -Wunreachable-code -Wno-implicit-atomic-properties -Werror=deprecated-objc-isa-usage -Werror=objc-root-class -Wno-arc-repeated-use-of-weak -Wduplicate-method-match -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wconditional-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wshorten-64-to-32 -Wpointer-sign -Wno-newline-eof -Wno-selector -Wno-strict-selector-match -Wundeclared-selector -Wno-deprecated-implementations -DCOCOAPODS=1 -DNS_BLOCK_ASSERTIONS=1 -DOBJC_OLD_DISPATCH_PROTOTYPES=0 -isysroot /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk -fstrict-aliasing -Wprotocol -Wdeprecated-declarations -miphoneos-version-min=9.0 -g -fvisibility=hidden -Wno-sign-conversion -fembed-bitcode -iquote /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/ExampleProductName-generated-files.hmap -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/ExampleProductName-own-target-headers.hmap -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/ExampleProductName-all-target-headers.hmap -iquote /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/ExampleProductName-project-headers.hmap -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/BuildProductsPath/Release-iphoneos/include -I/Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Pods/Headers/Public -I/Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Pods/Headers/Public/HexColors -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/DerivedSources/arm64 -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/DerivedSources -F/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/BuildProductsPath/Release-iphoneos -isystem /Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Pods/Headers/Public -isystem /Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Pods/Headers/Public/HexColors -MMD -MT dependencies -MF /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/Objects-normal/arm64/main.d --serialize-diagnostics /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/Objects-normal/arm64/main.dia -c /Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Example/main.m -o /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/Objects-normal/arm64/main.o you'll probably want to use something like xcpretty , which will look like this: set -o pipefail && xcodebuild \\ -workspace MyApp.xcworkspace \\ -scheme \"MyApp\" \\ -sdk iphonesimulator \\ -destination 'platform=iOS Simulator,name=iPhone 6,OS=8.1' \\ test \\ | xcpretty \\ -r \"html\" \\ -o \"tests.html\" With scan fastlane scan Why scan ? scan uses the latest APIs and tools to make running tests plain simple and offer a great integration into your existing workflow, like fastlane or Jenkins. scan Features \ud83c\udfc1 Beautiful inline build output while running the tests \ud83d\udea0 Sensible defaults: Automatically detect the project, schemes and more \ud83d\udcca Support for HTML, JSON and JUnit reports \ud83d\udd0e Xcode duplicated your simulators again? scan will handle this for you \ud83d\udd17 Works perfectly with fastlane and other tools \ud83d\ude85 Don't remember any complicated build commands, just scan \ud83d\udd27 Easy and dynamic configuration using parameters and environment variables \ud83d\udce2 Beautiful slack notifications of the test results \ud83d\udcbe Store common build settings in a Scanfile \ud83d\udce4 The raw xcodebuild outputs are stored in ~/Library/Logs/scan \ud83d\udcbb Supports both iOS and Mac applications \ud83d\udc71 Automatically switches to the travis formatter when running on Travis \ud83d\udcd6 Helps you resolve common test errors like simulator not responding scan uses a plain xcodebuild command, therefore keeping 100% compatible with xcodebuild . To generate the nice output, scan uses xcpretty . You can always access the raw output in ~/Library/Logs/scan . Usage fastlane scan That's all you need to run your tests. If you want more control, here are some available parameters: fastlane scan --workspace \"Example.xcworkspace\" --scheme \"AppName\" --device \"iPhone 6\" --clean If you need to use a different Xcode install, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" scan To run scan on multiple devices via fastlane , add this to your Fastfile : scan( workspace: \"Example.xcworkspace\", devices: [\"iPhone 6s\", \"iPad Air\"] ) For a list of all available parameters use fastlane action scan To access the raw xcodebuild output open ~/Library/Logs/scan Scanfile Since you might want to manually trigger the tests but don't want to specify all the parameters every time, you can store your defaults in a so called Scanfile . Run fastlane scan init to create a new configuration file. Example: scheme(\"Example\") devices([\"iPhone 6s\", \"iPad Air\"]) clean(true) output_types(\"html\") Automating the whole process scan works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :test do scan(scheme: \"Example\") end run_tests Supported platforms ios, mac Author @KrauseFx Returns Outputs hash of results with the following keys: :number_of_tests, :number_of_failures, :number_of_retries, :number_of_tests_excluding_retries, :number_of_failures_excluding_retries 6 Examples run_tests scan # alias for \"run_tests\" run_tests( workspace: \"App.xcworkspace\", scheme: \"MyTests\", clean: false ) # Build For Testing run_tests( derived_data_path: \"my_folder\", build_for_testing: true ) # run tests using derived data from prev. build run_tests( derived_data_path: \"my_folder\", test_without_building: true ) # or run it from an existing xctestrun package run_tests( xctestrun: \"/path/to/mytests.xctestrun\" ) Parameters Key Description Default workspace Path to the workspace file project Path to the project file package_path Path to the Swift Package scheme The project's scheme. Make sure it's marked as Shared device The name of the simulator type you want to run tests on (e.g. 'iPhone 6' or 'iPhone SE (2nd generation) (14.5)') devices Array of devices to run the tests on (e.g. ['iPhone 6', 'iPad Air', 'iPhone SE (2nd generation) (14.5)']) skip_detect_devices Should skip auto detecting of devices if none were specified false ensure_devices_found Should fail if devices not found false force_quit_simulator Enabling this option will automatically killall Simulator processes before the run false reset_simulator Enabling this option will automatically erase the simulator before running the application false disable_slide_to_type Enabling this option will disable the simulator from showing the 'Slide to type' prompt true prelaunch_simulator Enabling this option will launch the first simulator prior to calling any xcodebuild command reinstall_app Enabling this option will automatically uninstall the application before running it false app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip testplan The testplan associated with the scheme that should be used for testing only_test_configurations Array of strings matching test plan configurations to run skip_test_configurations Array of strings matching test plan configurations to skip xctestrun Run tests using the provided .xctestrun file toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a ) clean Should the project be cleaned before building it? false code_coverage Should code coverage be generated? (Xcode 7 and up) address_sanitizer Should the address sanitizer be turned on? thread_sanitizer Should the thread sanitizer be turned on? open_report Should the HTML report be opened when tests are completed? false output_directory The directory in which all reports will be stored * output_style Define how the output should look like. Valid values are: standard, basic, rspec, or raw (disables xcpretty during xcodebuild) output_types Comma separated list of the output types (e.g. html, junit, json-compilation-database) html,junit output_files Comma separated list of the output files, corresponding to the types provided by :output_types (order should match). If specifying an output type of json-compilation-database with :use_clang_report_name enabled, that option will take precedence buildlog_path The directory where to store the raw log * include_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * output_remove_retry_attempts Remove retry attempts from test results table and the JUnit report (if not using xcpretty) false disable_xcpretty DEPRECATED! Use output_style: 'raw' instead - Disable xcpretty formatting of build, similar to output_style='raw' but this will also skip the test results table formatter DEPRECATED! Use 'xcpretty_formatter' instead - A custom xcpretty formatter to use xcpretty_formatter A custom xcpretty formatter to use xcpretty_args Pass in xcpretty additional command line arguments (e.g. '--test --no-color' or '--tap --no-utf') derived_data_path The directory where build products and other derived data will go should_zip_build_products Should zip the derived data build products and place in output path? false output_xctestrun Should provide additional copy of .xctestrun file (settings.xctestrun) and place in output path? false result_bundle_path Custom path for the result bundle, overrides result_bundle result_bundle Should an Xcode result bundle be generated in the output directory false use_clang_report_name Generate the json compilation database with clang naming convention (compile_commands.json) false parallel_testing Optionally override the per-target setting in the scheme for running tests in parallel. Equivalent to -parallel-testing-enabled concurrent_workers Specify the exact number of test runners that will be spawned during parallel testing. Equivalent to -parallel-testing-worker-count max_concurrent_simulators Constrain the number of simulator devices on which to test concurrently. Equivalent to -maximum-concurrent-test-simulator-destinations disable_concurrent_testing Do not run test bundles in parallel on the specified destinations. Testing will occur on each destination serially. Equivalent to -disable-concurrent-testing false skip_build Should debug build be skipped before test build? false test_without_building Test without building, requires a derived data path build_for_testing Build for testing only, does not run tests sdk The SDK that should be used for building the application configuration The configuration to use when building the app. Defaults to 'Release' * xcargs Pass additional arguments to xcodebuild. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app app_name App name to use in slack message and logfile name deployment_target_version Target version of the app being build or tested. Used to filter out simulator version slack_url Create an Incoming WebHook for your Slack group to post results there slack_channel #channel or @username slack_message The message included with each message posted to slack slack_use_webhook_configured_username_and_icon Use webhook's default username and icon settings? (true/false) false slack_username Overrides the webhook's username property if slack_use_webhook_configured_username_and_icon is false fastlane slack_icon_url Overrides the webhook's image property if slack_use_webhook_configured_username_and_icon is false https://fastlane.tools/assets/img/fastlane_icon.png skip_slack Don't publish to slack, even when an URL is given false slack_only_on_failure Only post on Slack if the tests fail false slack_default_payloads Specifies default payloads to include in Slack messages. For more info visit https://docs.fastlane.tools/actions/slack destination Use only if you're a pro, use the other options instead run_rosetta_simulator Adds arch=x86_64 to the xcodebuild 'destination' argument to run simulator in a Rosetta mode false catalyst_platform Platform to build when using a Catalyst enabled app. Valid values are: ios, macos custom_report_file_name DEPRECATED! Use --output_files instead - Sets custom full report file name when generating a single report xcodebuild_command Allows for override of the default xcodebuild command env NSUnbufferedIO=YES xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false number_of_retries The number of times a test can fail 0 fail_build Should this step stop the build if the tests fail? Set this to false if you're using trainer true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The run_tests action generates the following Lane Variables: SharedValue Description SharedValues::SCAN_DERIVED_DATA_PATH The path to the derived data SharedValues::SCAN_GENERATED_PLIST_FILE The generated plist file SharedValues::SCAN_GENERATED_PLIST_FILES The generated plist files SharedValues::SCAN_GENERATED_XCRESULT_PATH The path to the generated .xcresult SharedValues::SCAN_ZIP_BUILD_PRODUCTS_PATH The path to the zipped build products To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action run_tests CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run run_tests To pass parameters, make use of the : symbol, for example fastlane run run_tests parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Run tests"},{"location":"generated/actions/run_tests/#run_tests","text":"Easily run tests of your iOS app (via scan )","title":"run_tests"},{"location":"generated/actions/run_tests/#whats-scan","text":"","title":"What's scan?"},{"location":"generated/actions/run_tests/#usage","text":"fastlane scan That's all you need to run your tests. If you want more control, here are some available parameters: fastlane scan --workspace \"Example.xcworkspace\" --scheme \"AppName\" --device \"iPhone 6\" --clean If you need to use a different Xcode install, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" scan To run scan on multiple devices via fastlane , add this to your Fastfile : scan( workspace: \"Example.xcworkspace\", devices: [\"iPhone 6s\", \"iPad Air\"] ) For a list of all available parameters use fastlane action scan To access the raw xcodebuild output open ~/Library/Logs/scan","title":"Usage"},{"location":"generated/actions/run_tests/#scanfile","text":"Since you might want to manually trigger the tests but don't want to specify all the parameters every time, you can store your defaults in a so called Scanfile . Run fastlane scan init to create a new configuration file. Example: scheme(\"Example\") devices([\"iPhone 6s\", \"iPad Air\"]) clean(true) output_types(\"html\")","title":"Scanfile"},{"location":"generated/actions/run_tests/#automating-the-whole-process","text":"scan works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :test do scan(scheme: \"Example\") end run_tests Supported platforms ios, mac Author @KrauseFx Returns Outputs hash of results with the following keys: :number_of_tests, :number_of_failures, :number_of_retries, :number_of_tests_excluding_retries, :number_of_failures_excluding_retries","title":"Automating the whole process"},{"location":"generated/actions/run_tests/#6-examples","text":"run_tests scan # alias for \"run_tests\" run_tests( workspace: \"App.xcworkspace\", scheme: \"MyTests\", clean: false ) # Build For Testing run_tests( derived_data_path: \"my_folder\", build_for_testing: true ) # run tests using derived data from prev. build run_tests( derived_data_path: \"my_folder\", test_without_building: true ) # or run it from an existing xctestrun package run_tests( xctestrun: \"/path/to/mytests.xctestrun\" )","title":"6 Examples"},{"location":"generated/actions/run_tests/#parameters","text":"Key Description Default workspace Path to the workspace file project Path to the project file package_path Path to the Swift Package scheme The project's scheme. Make sure it's marked as Shared device The name of the simulator type you want to run tests on (e.g. 'iPhone 6' or 'iPhone SE (2nd generation) (14.5)') devices Array of devices to run the tests on (e.g. ['iPhone 6', 'iPad Air', 'iPhone SE (2nd generation) (14.5)']) skip_detect_devices Should skip auto detecting of devices if none were specified false ensure_devices_found Should fail if devices not found false force_quit_simulator Enabling this option will automatically killall Simulator processes before the run false reset_simulator Enabling this option will automatically erase the simulator before running the application false disable_slide_to_type Enabling this option will disable the simulator from showing the 'Slide to type' prompt true prelaunch_simulator Enabling this option will launch the first simulator prior to calling any xcodebuild command reinstall_app Enabling this option will automatically uninstall the application before running it false app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip testplan The testplan associated with the scheme that should be used for testing only_test_configurations Array of strings matching test plan configurations to run skip_test_configurations Array of strings matching test plan configurations to skip xctestrun Run tests using the provided .xctestrun file toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a ) clean Should the project be cleaned before building it? false code_coverage Should code coverage be generated? (Xcode 7 and up) address_sanitizer Should the address sanitizer be turned on? thread_sanitizer Should the thread sanitizer be turned on? open_report Should the HTML report be opened when tests are completed? false output_directory The directory in which all reports will be stored * output_style Define how the output should look like. Valid values are: standard, basic, rspec, or raw (disables xcpretty during xcodebuild) output_types Comma separated list of the output types (e.g. html, junit, json-compilation-database) html,junit output_files Comma separated list of the output files, corresponding to the types provided by :output_types (order should match). If specifying an output type of json-compilation-database with :use_clang_report_name enabled, that option will take precedence buildlog_path The directory where to store the raw log * include_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * output_remove_retry_attempts Remove retry attempts from test results table and the JUnit report (if not using xcpretty) false disable_xcpretty DEPRECATED! Use output_style: 'raw' instead - Disable xcpretty formatting of build, similar to output_style='raw' but this will also skip the test results table formatter DEPRECATED! Use 'xcpretty_formatter' instead - A custom xcpretty formatter to use xcpretty_formatter A custom xcpretty formatter to use xcpretty_args Pass in xcpretty additional command line arguments (e.g. '--test --no-color' or '--tap --no-utf') derived_data_path The directory where build products and other derived data will go should_zip_build_products Should zip the derived data build products and place in output path? false output_xctestrun Should provide additional copy of .xctestrun file (settings.xctestrun) and place in output path? false result_bundle_path Custom path for the result bundle, overrides result_bundle result_bundle Should an Xcode result bundle be generated in the output directory false use_clang_report_name Generate the json compilation database with clang naming convention (compile_commands.json) false parallel_testing Optionally override the per-target setting in the scheme for running tests in parallel. Equivalent to -parallel-testing-enabled concurrent_workers Specify the exact number of test runners that will be spawned during parallel testing. Equivalent to -parallel-testing-worker-count max_concurrent_simulators Constrain the number of simulator devices on which to test concurrently. Equivalent to -maximum-concurrent-test-simulator-destinations disable_concurrent_testing Do not run test bundles in parallel on the specified destinations. Testing will occur on each destination serially. Equivalent to -disable-concurrent-testing false skip_build Should debug build be skipped before test build? false test_without_building Test without building, requires a derived data path build_for_testing Build for testing only, does not run tests sdk The SDK that should be used for building the application configuration The configuration to use when building the app. Defaults to 'Release' * xcargs Pass additional arguments to xcodebuild. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app app_name App name to use in slack message and logfile name deployment_target_version Target version of the app being build or tested. Used to filter out simulator version slack_url Create an Incoming WebHook for your Slack group to post results there slack_channel #channel or @username slack_message The message included with each message posted to slack slack_use_webhook_configured_username_and_icon Use webhook's default username and icon settings? (true/false) false slack_username Overrides the webhook's username property if slack_use_webhook_configured_username_and_icon is false fastlane slack_icon_url Overrides the webhook's image property if slack_use_webhook_configured_username_and_icon is false https://fastlane.tools/assets/img/fastlane_icon.png skip_slack Don't publish to slack, even when an URL is given false slack_only_on_failure Only post on Slack if the tests fail false slack_default_payloads Specifies default payloads to include in Slack messages. For more info visit https://docs.fastlane.tools/actions/slack destination Use only if you're a pro, use the other options instead run_rosetta_simulator Adds arch=x86_64 to the xcodebuild 'destination' argument to run simulator in a Rosetta mode false catalyst_platform Platform to build when using a Catalyst enabled app. Valid values are: ios, macos custom_report_file_name DEPRECATED! Use --output_files instead - Sets custom full report file name when generating a single report xcodebuild_command Allows for override of the default xcodebuild command env NSUnbufferedIO=YES xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false number_of_retries The number of times a test can fail 0 fail_build Should this step stop the build if the tests fail? Set this to false if you're using trainer true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/run_tests/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The run_tests action generates the following Lane Variables: SharedValue Description SharedValues::SCAN_DERIVED_DATA_PATH The path to the derived data SharedValues::SCAN_GENERATED_PLIST_FILE The generated plist file SharedValues::SCAN_GENERATED_PLIST_FILES The generated plist files SharedValues::SCAN_GENERATED_XCRESULT_PATH The path to the generated .xcresult SharedValues::SCAN_ZIP_BUILD_PRODUCTS_PATH The path to the zipped build products To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/run_tests/#documentation","text":"To show the documentation in your terminal, run fastlane action run_tests","title":"Documentation"},{"location":"generated/actions/run_tests/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run run_tests To pass parameters, make use of the : symbol, for example fastlane run run_tests parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/run_tests/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/s3/","text":"s3 Generates a plist file and uploads all to AWS S3 Please use the aws_s3 plugin instead. Install using fastlane add_plugin aws_s3 . Upload a new build to Amazon S3 to distribute the build to beta testers. Works for both Ad Hoc and Enterprise signed applications. This step will generate the necessary HTML, plist, and version files for you. It is recommended to not store the AWS access keys in the Fastfile . The uploaded version.json file provides an easy way for apps to poll if a new update is available. s3 Supported platforms Author @joshdholtz 2 Examples s3 s3( # All of these are used to make Shenzhen's `ipa distribute:s3` command access_key: ENV[\"S3_ACCESS_KEY\"], # Required from user. secret_access_key: ENV[\"S3_SECRET_ACCESS_KEY\"], # Required from user. bucket: ENV[\"S3_BUCKET\"], # Required from user. ipa: \"AppName.ipa\", # Optional if you use `ipa` to build dsym: \"AppName.app.dSYM.zip\", # Optional if you use `ipa` to build path: \"v{CFBundleShortVersionString}_b{CFBundleVersion}/\", # This is actually the default. upload_metadata: true, # Upload version.json, plist and HTML. Set to false to skip uploading of these files. version_file_name: \"app_version.json\",# Name of the file to upload to S3. Defaults to \"version.json\" version_template_path: \"path/to/erb\" # Path to an ERB to configure the structure of the version JSON file ) Parameters Key Description Default ipa .ipa file for the build * dsym zipped .dsym package for the build * upload_metadata Upload relevant metadata for this build true plist_template_path plist template path plist_file_name uploaded plist filename html_template_path html erb template path html_file_name uploaded html filename version_template_path version erb template path version_file_name uploaded version filename access_key AWS Access Key ID * secret_access_key AWS Secret Access Key * bucket AWS bucket name * region AWS region (for bucket creation) * path S3 'path'. Values from Info.plist will be substituted for keys wrapped in {} v{CFBundleShortVersionString}_b{CFBundleVersion}/ source Optional source directory e.g. ./build acl Uploaded object permissions e.g public_read (default), private, public_read_write, authenticated_read public_read * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The s3 action generates the following Lane Variables: SharedValue Description SharedValues::S3_IPA_OUTPUT_PATH Direct HTTP link to the uploaded ipa file SharedValues::S3_DSYM_OUTPUT_PATH Direct HTTP link to the uploaded dsym file SharedValues::S3_PLIST_OUTPUT_PATH Direct HTTP link to the uploaded plist file SharedValues::S3_HTML_OUTPUT_PATH Direct HTTP link to the uploaded HTML file SharedValues::S3_VERSION_OUTPUT_PATH Direct HTTP link to the uploaded Version file To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action s3 CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run s3 To pass parameters, make use of the : symbol, for example fastlane run s3 parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"S3"},{"location":"generated/actions/s3/#s3","text":"Generates a plist file and uploads all to AWS S3 Please use the aws_s3 plugin instead. Install using fastlane add_plugin aws_s3 . Upload a new build to Amazon S3 to distribute the build to beta testers. Works for both Ad Hoc and Enterprise signed applications. This step will generate the necessary HTML, plist, and version files for you. It is recommended to not store the AWS access keys in the Fastfile . The uploaded version.json file provides an easy way for apps to poll if a new update is available. s3 Supported platforms Author @joshdholtz","title":"s3"},{"location":"generated/actions/s3/#2-examples","text":"s3 s3( # All of these are used to make Shenzhen's `ipa distribute:s3` command access_key: ENV[\"S3_ACCESS_KEY\"], # Required from user. secret_access_key: ENV[\"S3_SECRET_ACCESS_KEY\"], # Required from user. bucket: ENV[\"S3_BUCKET\"], # Required from user. ipa: \"AppName.ipa\", # Optional if you use `ipa` to build dsym: \"AppName.app.dSYM.zip\", # Optional if you use `ipa` to build path: \"v{CFBundleShortVersionString}_b{CFBundleVersion}/\", # This is actually the default. upload_metadata: true, # Upload version.json, plist and HTML. Set to false to skip uploading of these files. version_file_name: \"app_version.json\",# Name of the file to upload to S3. Defaults to \"version.json\" version_template_path: \"path/to/erb\" # Path to an ERB to configure the structure of the version JSON file )","title":"2 Examples"},{"location":"generated/actions/s3/#parameters","text":"Key Description Default ipa .ipa file for the build * dsym zipped .dsym package for the build * upload_metadata Upload relevant metadata for this build true plist_template_path plist template path plist_file_name uploaded plist filename html_template_path html erb template path html_file_name uploaded html filename version_template_path version erb template path version_file_name uploaded version filename access_key AWS Access Key ID * secret_access_key AWS Secret Access Key * bucket AWS bucket name * region AWS region (for bucket creation) * path S3 'path'. Values from Info.plist will be substituted for keys wrapped in {} v{CFBundleShortVersionString}_b{CFBundleVersion}/ source Optional source directory e.g. ./build acl Uploaded object permissions e.g public_read (default), private, public_read_write, authenticated_read public_read * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/s3/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The s3 action generates the following Lane Variables: SharedValue Description SharedValues::S3_IPA_OUTPUT_PATH Direct HTTP link to the uploaded ipa file SharedValues::S3_DSYM_OUTPUT_PATH Direct HTTP link to the uploaded dsym file SharedValues::S3_PLIST_OUTPUT_PATH Direct HTTP link to the uploaded plist file SharedValues::S3_HTML_OUTPUT_PATH Direct HTTP link to the uploaded HTML file SharedValues::S3_VERSION_OUTPUT_PATH Direct HTTP link to the uploaded Version file To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/s3/#documentation","text":"To show the documentation in your terminal, run fastlane action s3","title":"Documentation"},{"location":"generated/actions/s3/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run s3 To pass parameters, make use of the : symbol, for example fastlane run s3 parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/s3/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/say/","text":"say This action speaks the given text out loud say Supported platforms ios, android, mac Author @KrauseFx 1 Example say(\"I can speak\") Parameters Key Description Default text Text to be spoken out loud (as string or array of strings) mute If say should be muted with text printed out false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action say CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run say To pass parameters, make use of the : symbol, for example fastlane run say parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Say"},{"location":"generated/actions/say/#say","text":"This action speaks the given text out loud say Supported platforms ios, android, mac Author @KrauseFx","title":"say"},{"location":"generated/actions/say/#1-example","text":"say(\"I can speak\")","title":"1 Example"},{"location":"generated/actions/say/#parameters","text":"Key Description Default text Text to be spoken out loud (as string or array of strings) mute If say should be muted with text printed out false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/say/#documentation","text":"To show the documentation in your terminal, run fastlane action say","title":"Documentation"},{"location":"generated/actions/say/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run say To pass parameters, make use of the : symbol, for example fastlane run say parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/say/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/scan/","text":"scan Alias for the run_tests action The easiest way to run tests of your iOS and Mac app scan makes it easy to run tests of your iOS and Mac app on a simulator or connected device. Features \u2022 Usage \u2022 Scanfile What's scan? Before scan xcodebuild \\ -workspace MyApp.xcworkspace \\ -scheme \"MyApp\" \\ -sdk iphonesimulator \\ -destination 'platform=iOS Simulator,name=iPhone 6,OS=8.1' \\ test As the output will look like this /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/Objects-normal/arm64/main.o Example/main.m normal arm64 objective-c com.apple.compilers.llvm.clang.1_0.compiler cd /Users/felixkrause/Developer/fastlane/gym/example/cocoapods export LANG=en_US.US-ASCII export PATH=\"/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode-beta.app/Contents/Developer/usr/bin:/Users/felixkrause/.rvm/gems/ruby-2.2.0/bin:/Users/felixkrause/.rvm/gems/ruby-2.2.0@global/bin:/Users/felixkrause/.rvm/rubies/ruby-2.2.0/bin:/Users/felixkrause/.rvm/bin:/usr/local/heroku/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin\" /Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x objective-c -arch arm64 -fmessage-length=126 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -fcolor-diagnostics -std=gnu99 -fobjc-arc -fmodules -gmodules -fmodules-cache-path=/Users/felixkrause/Library/Developer/Xcode/DerivedData/ModuleCache -fmodules-prune-interval=86400 -fmodules-prune-after=345600 -fbuild-session-file=/Users/felixkrause/Library/Developer/Xcode/DerivedData/ModuleCache/Session.modulevalidation -fmodules-validate-once-per-build-session -Wnon-modular-include-in-framework-module -Werror=non-modular-include-in-framework-module -Wno-trigraphs -fpascal-strings -Os -fno-common -Wno-missing-field-initializers -Wno-missing-prototypes -Werror=return-type -Wunreachable-code -Wno-implicit-atomic-properties -Werror=deprecated-objc-isa-usage -Werror=objc-root-class -Wno-arc-repeated-use-of-weak -Wduplicate-method-match -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wconditional-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wshorten-64-to-32 -Wpointer-sign -Wno-newline-eof -Wno-selector -Wno-strict-selector-match -Wundeclared-selector -Wno-deprecated-implementations -DCOCOAPODS=1 -DNS_BLOCK_ASSERTIONS=1 -DOBJC_OLD_DISPATCH_PROTOTYPES=0 -isysroot /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk -fstrict-aliasing -Wprotocol -Wdeprecated-declarations -miphoneos-version-min=9.0 -g -fvisibility=hidden -Wno-sign-conversion -fembed-bitcode -iquote /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/ExampleProductName-generated-files.hmap -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/ExampleProductName-own-target-headers.hmap -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/ExampleProductName-all-target-headers.hmap -iquote /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/ExampleProductName-project-headers.hmap -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/BuildProductsPath/Release-iphoneos/include -I/Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Pods/Headers/Public -I/Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Pods/Headers/Public/HexColors -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/DerivedSources/arm64 -I/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/DerivedSources -F/Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/BuildProductsPath/Release-iphoneos -isystem /Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Pods/Headers/Public -isystem /Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Pods/Headers/Public/HexColors -MMD -MT dependencies -MF /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/Objects-normal/arm64/main.d --serialize-diagnostics /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/Objects-normal/arm64/main.dia -c /Users/felixkrause/Developer/fastlane/gym/example/cocoapods/Example/main.m -o /Users/felixkrause/Library/Developer/Xcode/DerivedData/Example-fhlmxikmujknefgidqwqvtbatohi/Build/Intermediates/ArchiveIntermediates/Example/IntermediateBuildFilesPath/Example.build/Release-iphoneos/Example.build/Objects-normal/arm64/main.o you'll probably want to use something like xcpretty , which will look like this: set -o pipefail && xcodebuild \\ -workspace MyApp.xcworkspace \\ -scheme \"MyApp\" \\ -sdk iphonesimulator \\ -destination 'platform=iOS Simulator,name=iPhone 6,OS=8.1' \\ test \\ | xcpretty \\ -r \"html\" \\ -o \"tests.html\" With scan fastlane scan Why scan ? scan uses the latest APIs and tools to make running tests plain simple and offer a great integration into your existing workflow, like fastlane or Jenkins. scan Features \ud83c\udfc1 Beautiful inline build output while running the tests \ud83d\udea0 Sensible defaults: Automatically detect the project, schemes and more \ud83d\udcca Support for HTML, JSON and JUnit reports \ud83d\udd0e Xcode duplicated your simulators again? scan will handle this for you \ud83d\udd17 Works perfectly with fastlane and other tools \ud83d\ude85 Don't remember any complicated build commands, just scan \ud83d\udd27 Easy and dynamic configuration using parameters and environment variables \ud83d\udce2 Beautiful slack notifications of the test results \ud83d\udcbe Store common build settings in a Scanfile \ud83d\udce4 The raw xcodebuild outputs are stored in ~/Library/Logs/scan \ud83d\udcbb Supports both iOS and Mac applications \ud83d\udc71 Automatically switches to the travis formatter when running on Travis \ud83d\udcd6 Helps you resolve common test errors like simulator not responding scan uses a plain xcodebuild command, therefore keeping 100% compatible with xcodebuild . To generate the nice output, scan uses xcpretty . You can always access the raw output in ~/Library/Logs/scan . Usage fastlane scan That's all you need to run your tests. If you want more control, here are some available parameters: fastlane scan --workspace \"Example.xcworkspace\" --scheme \"AppName\" --device \"iPhone 6\" --clean If you need to use a different Xcode install, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" scan To run scan on multiple devices via fastlane , add this to your Fastfile : scan( workspace: \"Example.xcworkspace\", devices: [\"iPhone 6s\", \"iPad Air\"] ) For a list of all available parameters use fastlane action scan To access the raw xcodebuild output open ~/Library/Logs/scan Scanfile Since you might want to manually trigger the tests but don't want to specify all the parameters every time, you can store your defaults in a so called Scanfile . Run fastlane scan init to create a new configuration file. Example: scheme(\"Example\") devices([\"iPhone 6s\", \"iPad Air\"]) clean(true) output_types(\"html\") Automating the whole process scan works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :test do scan(scheme: \"Example\") end scan Supported platforms ios, mac Author @KrauseFx Returns Outputs hash of results with the following keys: :number_of_tests, :number_of_failures, :number_of_retries, :number_of_tests_excluding_retries, :number_of_failures_excluding_retries 6 Examples run_tests scan # alias for \"run_tests\" run_tests( workspace: \"App.xcworkspace\", scheme: \"MyTests\", clean: false ) # Build For Testing run_tests( derived_data_path: \"my_folder\", build_for_testing: true ) # run tests using derived data from prev. build run_tests( derived_data_path: \"my_folder\", test_without_building: true ) # or run it from an existing xctestrun package run_tests( xctestrun: \"/path/to/mytests.xctestrun\" ) Parameters Key Description Default workspace Path to the workspace file project Path to the project file package_path Path to the Swift Package scheme The project's scheme. Make sure it's marked as Shared device The name of the simulator type you want to run tests on (e.g. 'iPhone 6' or 'iPhone SE (2nd generation) (14.5)') devices Array of devices to run the tests on (e.g. ['iPhone 6', 'iPad Air', 'iPhone SE (2nd generation) (14.5)']) skip_detect_devices Should skip auto detecting of devices if none were specified false ensure_devices_found Should fail if devices not found false force_quit_simulator Enabling this option will automatically killall Simulator processes before the run false reset_simulator Enabling this option will automatically erase the simulator before running the application false disable_slide_to_type Enabling this option will disable the simulator from showing the 'Slide to type' prompt true prelaunch_simulator Enabling this option will launch the first simulator prior to calling any xcodebuild command reinstall_app Enabling this option will automatically uninstall the application before running it false app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip testplan The testplan associated with the scheme that should be used for testing only_test_configurations Array of strings matching test plan configurations to run skip_test_configurations Array of strings matching test plan configurations to skip xctestrun Run tests using the provided .xctestrun file toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a ) clean Should the project be cleaned before building it? false code_coverage Should code coverage be generated? (Xcode 7 and up) address_sanitizer Should the address sanitizer be turned on? thread_sanitizer Should the thread sanitizer be turned on? open_report Should the HTML report be opened when tests are completed? false output_directory The directory in which all reports will be stored * output_style Define how the output should look like. Valid values are: standard, basic, rspec, or raw (disables xcpretty during xcodebuild) output_types Comma separated list of the output types (e.g. html, junit, json-compilation-database) html,junit output_files Comma separated list of the output files, corresponding to the types provided by :output_types (order should match). If specifying an output type of json-compilation-database with :use_clang_report_name enabled, that option will take precedence buildlog_path The directory where to store the raw log * include_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * output_remove_retry_attempts Remove retry attempts from test results table and the JUnit report (if not using xcpretty) false disable_xcpretty DEPRECATED! Use output_style: 'raw' instead - Disable xcpretty formatting of build, similar to output_style='raw' but this will also skip the test results table formatter DEPRECATED! Use 'xcpretty_formatter' instead - A custom xcpretty formatter to use xcpretty_formatter A custom xcpretty formatter to use xcpretty_args Pass in xcpretty additional command line arguments (e.g. '--test --no-color' or '--tap --no-utf') derived_data_path The directory where build products and other derived data will go should_zip_build_products Should zip the derived data build products and place in output path? false output_xctestrun Should provide additional copy of .xctestrun file (settings.xctestrun) and place in output path? false result_bundle_path Custom path for the result bundle, overrides result_bundle result_bundle Should an Xcode result bundle be generated in the output directory false use_clang_report_name Generate the json compilation database with clang naming convention (compile_commands.json) false parallel_testing Optionally override the per-target setting in the scheme for running tests in parallel. Equivalent to -parallel-testing-enabled concurrent_workers Specify the exact number of test runners that will be spawned during parallel testing. Equivalent to -parallel-testing-worker-count max_concurrent_simulators Constrain the number of simulator devices on which to test concurrently. Equivalent to -maximum-concurrent-test-simulator-destinations disable_concurrent_testing Do not run test bundles in parallel on the specified destinations. Testing will occur on each destination serially. Equivalent to -disable-concurrent-testing false skip_build Should debug build be skipped before test build? false test_without_building Test without building, requires a derived data path build_for_testing Build for testing only, does not run tests sdk The SDK that should be used for building the application configuration The configuration to use when building the app. Defaults to 'Release' * xcargs Pass additional arguments to xcodebuild. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app app_name App name to use in slack message and logfile name deployment_target_version Target version of the app being build or tested. Used to filter out simulator version slack_url Create an Incoming WebHook for your Slack group to post results there slack_channel #channel or @username slack_message The message included with each message posted to slack slack_use_webhook_configured_username_and_icon Use webhook's default username and icon settings? (true/false) false slack_username Overrides the webhook's username property if slack_use_webhook_configured_username_and_icon is false fastlane slack_icon_url Overrides the webhook's image property if slack_use_webhook_configured_username_and_icon is false https://fastlane.tools/assets/img/fastlane_icon.png skip_slack Don't publish to slack, even when an URL is given false slack_only_on_failure Only post on Slack if the tests fail false slack_default_payloads Specifies default payloads to include in Slack messages. For more info visit https://docs.fastlane.tools/actions/slack destination Use only if you're a pro, use the other options instead run_rosetta_simulator Adds arch=x86_64 to the xcodebuild 'destination' argument to run simulator in a Rosetta mode false catalyst_platform Platform to build when using a Catalyst enabled app. Valid values are: ios, macos custom_report_file_name DEPRECATED! Use --output_files instead - Sets custom full report file name when generating a single report xcodebuild_command Allows for override of the default xcodebuild command env NSUnbufferedIO=YES xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false number_of_retries The number of times a test can fail 0 fail_build Should this step stop the build if the tests fail? Set this to false if you're using trainer true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The scan action generates the following Lane Variables: SharedValue Description SharedValues::SCAN_DERIVED_DATA_PATH The path to the derived data SharedValues::SCAN_GENERATED_PLIST_FILE The generated plist file SharedValues::SCAN_GENERATED_PLIST_FILES The generated plist files SharedValues::SCAN_GENERATED_XCRESULT_PATH The path to the generated .xcresult SharedValues::SCAN_ZIP_BUILD_PRODUCTS_PATH The path to the zipped build products To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action scan CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run scan To pass parameters, make use of the : symbol, for example fastlane run scan parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Scan"},{"location":"generated/actions/scan/#scan","text":"Alias for the run_tests action","title":"scan"},{"location":"generated/actions/scan/#whats-scan","text":"","title":"What's scan?"},{"location":"generated/actions/scan/#usage","text":"fastlane scan That's all you need to run your tests. If you want more control, here are some available parameters: fastlane scan --workspace \"Example.xcworkspace\" --scheme \"AppName\" --device \"iPhone 6\" --clean If you need to use a different Xcode install, use [xcodes](https://docs.fastlane.tools/actions/xcodes) or define DEVELOPER_DIR : DEVELOPER_DIR=\"/Applications/Xcode6.2.app\" scan To run scan on multiple devices via fastlane , add this to your Fastfile : scan( workspace: \"Example.xcworkspace\", devices: [\"iPhone 6s\", \"iPad Air\"] ) For a list of all available parameters use fastlane action scan To access the raw xcodebuild output open ~/Library/Logs/scan","title":"Usage"},{"location":"generated/actions/scan/#scanfile","text":"Since you might want to manually trigger the tests but don't want to specify all the parameters every time, you can store your defaults in a so called Scanfile . Run fastlane scan init to create a new configuration file. Example: scheme(\"Example\") devices([\"iPhone 6s\", \"iPad Air\"]) clean(true) output_types(\"html\")","title":"Scanfile"},{"location":"generated/actions/scan/#automating-the-whole-process","text":"scan works great together with fastlane , which connects all deployment tools into one streamlined workflow. Using fastlane you can define a configuration like lane :test do scan(scheme: \"Example\") end scan Supported platforms ios, mac Author @KrauseFx Returns Outputs hash of results with the following keys: :number_of_tests, :number_of_failures, :number_of_retries, :number_of_tests_excluding_retries, :number_of_failures_excluding_retries","title":"Automating the whole process"},{"location":"generated/actions/scan/#6-examples","text":"run_tests scan # alias for \"run_tests\" run_tests( workspace: \"App.xcworkspace\", scheme: \"MyTests\", clean: false ) # Build For Testing run_tests( derived_data_path: \"my_folder\", build_for_testing: true ) # run tests using derived data from prev. build run_tests( derived_data_path: \"my_folder\", test_without_building: true ) # or run it from an existing xctestrun package run_tests( xctestrun: \"/path/to/mytests.xctestrun\" )","title":"6 Examples"},{"location":"generated/actions/scan/#parameters","text":"Key Description Default workspace Path to the workspace file project Path to the project file package_path Path to the Swift Package scheme The project's scheme. Make sure it's marked as Shared device The name of the simulator type you want to run tests on (e.g. 'iPhone 6' or 'iPhone SE (2nd generation) (14.5)') devices Array of devices to run the tests on (e.g. ['iPhone 6', 'iPad Air', 'iPhone SE (2nd generation) (14.5)']) skip_detect_devices Should skip auto detecting of devices if none were specified false ensure_devices_found Should fail if devices not found false force_quit_simulator Enabling this option will automatically killall Simulator processes before the run false reset_simulator Enabling this option will automatically erase the simulator before running the application false disable_slide_to_type Enabling this option will disable the simulator from showing the 'Slide to type' prompt true prelaunch_simulator Enabling this option will launch the first simulator prior to calling any xcodebuild command reinstall_app Enabling this option will automatically uninstall the application before running it false app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip testplan The testplan associated with the scheme that should be used for testing only_test_configurations Array of strings matching test plan configurations to run skip_test_configurations Array of strings matching test plan configurations to skip xctestrun Run tests using the provided .xctestrun file toolchain The toolchain that should be used for building the application (e.g. com.apple.dt.toolchain.Swift_2_3, org.swift.30p620160816a ) clean Should the project be cleaned before building it? false code_coverage Should code coverage be generated? (Xcode 7 and up) address_sanitizer Should the address sanitizer be turned on? thread_sanitizer Should the thread sanitizer be turned on? open_report Should the HTML report be opened when tests are completed? false output_directory The directory in which all reports will be stored * output_style Define how the output should look like. Valid values are: standard, basic, rspec, or raw (disables xcpretty during xcodebuild) output_types Comma separated list of the output types (e.g. html, junit, json-compilation-database) html,junit output_files Comma separated list of the output files, corresponding to the types provided by :output_types (order should match). If specifying an output type of json-compilation-database with :use_clang_report_name enabled, that option will take precedence buildlog_path The directory where to store the raw log * include_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * output_remove_retry_attempts Remove retry attempts from test results table and the JUnit report (if not using xcpretty) false disable_xcpretty DEPRECATED! Use output_style: 'raw' instead - Disable xcpretty formatting of build, similar to output_style='raw' but this will also skip the test results table formatter DEPRECATED! Use 'xcpretty_formatter' instead - A custom xcpretty formatter to use xcpretty_formatter A custom xcpretty formatter to use xcpretty_args Pass in xcpretty additional command line arguments (e.g. '--test --no-color' or '--tap --no-utf') derived_data_path The directory where build products and other derived data will go should_zip_build_products Should zip the derived data build products and place in output path? false output_xctestrun Should provide additional copy of .xctestrun file (settings.xctestrun) and place in output path? false result_bundle_path Custom path for the result bundle, overrides result_bundle result_bundle Should an Xcode result bundle be generated in the output directory false use_clang_report_name Generate the json compilation database with clang naming convention (compile_commands.json) false parallel_testing Optionally override the per-target setting in the scheme for running tests in parallel. Equivalent to -parallel-testing-enabled concurrent_workers Specify the exact number of test runners that will be spawned during parallel testing. Equivalent to -parallel-testing-worker-count max_concurrent_simulators Constrain the number of simulator devices on which to test concurrently. Equivalent to -maximum-concurrent-test-simulator-destinations disable_concurrent_testing Do not run test bundles in parallel on the specified destinations. Testing will occur on each destination serially. Equivalent to -disable-concurrent-testing false skip_build Should debug build be skipped before test build? false test_without_building Test without building, requires a derived data path build_for_testing Build for testing only, does not run tests sdk The SDK that should be used for building the application configuration The configuration to use when building the app. Defaults to 'Release' * xcargs Pass additional arguments to xcodebuild. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app app_name App name to use in slack message and logfile name deployment_target_version Target version of the app being build or tested. Used to filter out simulator version slack_url Create an Incoming WebHook for your Slack group to post results there slack_channel #channel or @username slack_message The message included with each message posted to slack slack_use_webhook_configured_username_and_icon Use webhook's default username and icon settings? (true/false) false slack_username Overrides the webhook's username property if slack_use_webhook_configured_username_and_icon is false fastlane slack_icon_url Overrides the webhook's image property if slack_use_webhook_configured_username_and_icon is false https://fastlane.tools/assets/img/fastlane_icon.png skip_slack Don't publish to slack, even when an URL is given false slack_only_on_failure Only post on Slack if the tests fail false slack_default_payloads Specifies default payloads to include in Slack messages. For more info visit https://docs.fastlane.tools/actions/slack destination Use only if you're a pro, use the other options instead run_rosetta_simulator Adds arch=x86_64 to the xcodebuild 'destination' argument to run simulator in a Rosetta mode false catalyst_platform Platform to build when using a Catalyst enabled app. Valid values are: ios, macos custom_report_file_name DEPRECATED! Use --output_files instead - Sets custom full report file name when generating a single report xcodebuild_command Allows for override of the default xcodebuild command env NSUnbufferedIO=YES xcodebuild cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false use_system_scm Lets xcodebuild use system's scm configuration false number_of_retries The number of times a test can fail 0 fail_build Should this step stop the build if the tests fail? Set this to false if you're using trainer true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/scan/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The scan action generates the following Lane Variables: SharedValue Description SharedValues::SCAN_DERIVED_DATA_PATH The path to the derived data SharedValues::SCAN_GENERATED_PLIST_FILE The generated plist file SharedValues::SCAN_GENERATED_PLIST_FILES The generated plist files SharedValues::SCAN_GENERATED_XCRESULT_PATH The path to the generated .xcresult SharedValues::SCAN_ZIP_BUILD_PRODUCTS_PATH The path to the zipped build products To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/scan/#documentation","text":"To show the documentation in your terminal, run fastlane action scan","title":"Documentation"},{"location":"generated/actions/scan/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run scan To pass parameters, make use of the : symbol, for example fastlane run scan parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/scan/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/scp/","text":"scp Transfer files via SCP scp Supported platforms ios, android, mac Author @hjanuschka 2 Examples scp( host: \"dev.januschka.com\", username: \"root\", upload: { src: \"/root/dir1\", dst: \"/tmp/new_dir\" } ) scp( host: \"dev.januschka.com\", username: \"root\", download: { src: \"/root/dir1\", dst: \"/tmp/new_dir\" } ) Parameters Key Description Default username Username password Password host Hostname port Port 22 upload Upload download Download * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action scp CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run scp To pass parameters, make use of the : symbol, for example fastlane run scp parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Scp"},{"location":"generated/actions/scp/#scp","text":"Transfer files via SCP scp Supported platforms ios, android, mac Author @hjanuschka","title":"scp"},{"location":"generated/actions/scp/#2-examples","text":"scp( host: \"dev.januschka.com\", username: \"root\", upload: { src: \"/root/dir1\", dst: \"/tmp/new_dir\" } ) scp( host: \"dev.januschka.com\", username: \"root\", download: { src: \"/root/dir1\", dst: \"/tmp/new_dir\" } )","title":"2 Examples"},{"location":"generated/actions/scp/#parameters","text":"Key Description Default username Username password Password host Hostname port Port 22 upload Upload download Download * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/scp/#documentation","text":"To show the documentation in your terminal, run fastlane action scp","title":"Documentation"},{"location":"generated/actions/scp/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run scp To pass parameters, make use of the : symbol, for example fastlane run scp parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/scp/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/screengrab/","text":"screengrab Alias for the capture_android_screenshots action Automated localized screenshots of your Android app on every device screengrab generates localized screenshots of your Android app for different device types and languages for Google Play and can be uploaded using supply . Why should I automate this process? Create hundreds of screenshots in multiple languages on emulators or real devices, saving you hours Easily verify that localizations fit into labels on all screen dimensions to find UI mistakes before you ship You only need to configure it once for anyone on your team to run it Keep your screenshots perfectly up-to-date with every app update. Your customers deserve it! Fully integrates with fastlane and supply Installation Install the gem gem install fastlane Gradle dependency androidTestImplementation 'tools.fastlane:screengrab:x.x.x' The latest version is As of screengrab version 2.0.0, all Android test dependencies are AndroidX dependencies. This means a device with API 18+, Android 4.3 or greater is required. If you wish to capture screenshots with an older Android OS, then you must use a 1.x.x version. Configuring your Manifest Permissions Ensure that the following permissions exist in your src/debug/AndroidManifest.xml Configuring your UI Tests for Screenshots Add LocaleTestRule to your tests class to handle automatic switching of locales. If you're using Java use: java @ClassRule public static final LocaleTestRule localeTestRule = new LocaleTestRule(); If you're using Kotlin use: kotlin @Rule @JvmField val localeTestRule = LocaleTestRule() The @JvmField annotation is important. It won't work like this: kotlin companion object { @get:ClassRule val localeTestRule = LocaleTestRule() } To capture screenshots, add the following to your tests Screengrab.screenshot(\"name_of_screenshot_here\"); on the appropriate screens Generating Screenshots with screengrab Then, before running fastlane screengrab you'll need a debug and test apk You can create your APKs manually with ./gradlew assembleDebug assembleAndroidTest You can also create a lane and use build_android_app : ruby desc \"Build debug and test APK for screenshots\" lane :build_and_screengrab do build_android_app( task: 'assemble', build_type: 'Debug' ) build_android_app( task: 'assemble', build_type: 'AndroidTest' ) screengrab() end - Once complete run fastlane screengrab in your app project directory to generate screenshots - You will be prompted to provide any required parameters which are not in your Screengrabfile or provided as command line arguments - Your screenshots will be saved to fastlane/metadata/android in the directory where you ran screengrab Improved screenshot capture with UI Automator As of screengrab 0.5.0, you can specify different strategies to control the way screengrab captures screenshots. The newer strategy delegates to UI Automator which fixes a number of problems compared to the original strategy: Shadows/elevation are correctly captured for Material UI Multi-window situations are correctly captured (dialogs, etc.) Works on Android N UI Automator is the default strategy. However, UI Automator requires a device with API level >= 18 . If you need to grab screenshots on an older Android version, use the latest 1.x.x version of this library and set the DecorView ScreenshotStrategy. Screengrab.setDefaultScreenshotStrategy(new DecorViewScreenshotStrategy()); Improved screenshot capture with Falcon As of screengrab 1.2.0, you can specify a new strategy to delegate to Falcon . Falcon may work better than UI Automator in some situations and also provides similar benefits as UI Automator: Multi-window situations are correctly captured (dialogs, etc.) Works on Android N Falcon requires a device with API level >= 10 . To enable it for all screenshots by default, make the following call before your tests run: Screengrab.setDefaultScreenshotStrategy(new FalconScreenshotStrategy(activityRule.getActivity())); Advanced Screengrabfile Configuration Running fastlane screengrab init generated a Screengrabfile which can store all of your configuration options. Since most values will not change often for your project, it is recommended to store them there. The Screengrabfile is written in Ruby, so you may find it helpful to use an editor that highlights Ruby syntax to modify this file. # remove the leading '#' to uncomment lines # app_package_name('your.app.package') # use_tests_in_packages(['your.screenshot.tests.package']) # app_apk_path('path/to/your/app.apk') # tests_apk_path('path/to/your/tests.apk') locales(['en-US', 'fr-FR', 'it-IT']) # clear all previously generated screenshots in your local output directory before creating new ones clear_previous_screenshots(true) For more information about all available options run fastlane action screengrab Tips UI Tests Check out Testing UI for a Single App for an introduction to using Espresso for UI testing. Example UI Test Class (Using JUnit4) Java: @RunWith(JUnit4.class) public class JUnit4StyleTests { @ClassRule public static final LocaleTestRule localeTestRule = new LocaleTestRule(); @Rule public ActivityScenarioRule activityRule = new ActivityScenarioRule<>(MainActivity.class); @Test public void testTakeScreenshot() { Screengrab.screenshot(\"before_button_click\"); onView(withId(R.id.fab)).perform(click()); Screengrab.screenshot(\"after_button_click\"); } } Kotlin: @RunWith(JUnit4.class) class JUnit4StyleTests { @get:Rule var activityRule = ActivityScenarioRule(MainActivity::class.java) @Rule @JvmField val localeTestRule = LocaleTestRule() @Test fun testTakeScreenshot() { Screengrab.screenshot(\"before_button_click\") onView(withId(R.id.fab)).perform(click()) Screengrab.screenshot(\"after_button_click\") } } There is an example project showing how to use JUnit 3 or 4 and Espresso with the screengrab Java library to capture screenshots during a UI test run. Using JUnit 4 is preferable because of its ability to perform actions before and after the entire test class is run. This means you will change the device's locale far fewer times when compared with JUnit 3 running those commands before and after each test method. When using JUnit 3 you'll need to add a bit more code: Use LocaleUtil.changeDeviceLocaleTo(LocaleUtil.getTestLocale()); in setUp() Use LocaleUtil.changeDeviceLocaleTo(LocaleUtil.getEndingLocale()); in tearDown() Use Screengrab.screenshot(\"name_of_screenshot_here\"); to capture screenshots at the appropriate points in your tests Clean Status Bar screengrab can clean your status bar to make your screenshots even more beautiful. It is simply a wrapper that allows configuring SystemUI DemoMode in your code. Note: the clean status bar feature is only supported on devices with API level >= 23 . You can enable and disable the clean status bar at any moment during your tests. In most cases you probably want to do this in the @BeforeClass and @AfterClass methods. @BeforeClass public static void beforeAll() { CleanStatusBar.enableWithDefaults(); } @AfterClass public static void afterAll() { CleanStatusBar.disable(); } Have a look at the methods of the CleanStatusBar class to customize the status bar even more. You could for example show the Bluetooth icon and the LTE text. new CleanStatusBar() .setBluetoothState(BluetoothState.DISCONNECTED) .setMobileNetworkDataType(MobileDataType.LTE) .enable(); Advanced screengrab Launch Arguments You can provide additional arguments to your test cases on launch. These strings will be available in your tests through InstrumentationRegistry.getArguments() . screengrab( launch_arguments: [ \"username hjanuschka\", \"build_number 201\" ] ) Bundle extras = InstrumentationRegistry.getArguments(); String peerID = null; if (extras != null) { if (extras.containsKey(\"username\")) { username = extras.getString(\"username\"); System.out.println(\"Username: \" + username); } else { System.out.println(\"No username in extras\"); } } else { System.out.println(\"No extras\"); } Detecting screengrab at runtime For some apps, it is helpful to know when screengrab is running so that you can display specific data for your screenshots. For iOS fastlane users, this is much like \"FASTLANE_SNAPSHOT\". In order to do this, you'll need to have at least two product flavors of your app. Add two product flavors to the app-level build.gradle file: android { ... flavorDimensions \"mode\" productFlavors { screengrab { dimension \"mode\" } regular { dimension \"mode\" } } ... } Check for the existence of that flavor (i.e screengrab) in your app code as follows in order to use mock data or customize data for screenshots: if (BuildConfig.FLAVOR == \"screengrab\") { System.out.println(\"screengrab is running!\"); } When running screengrab , do the following to build the flavor you want as well as the test apk. Note that you use \"assembleFlavor_name\" where Flavor_name is the flavor name, capitalized (i.e. Screengrab). ./gradlew assembleScreengrab assembleAndroidTest Run screengrab : fastlane screengrab screengrab will ask you to select the debug and test apps (which you can then add to your Screengrabfile to skip this step later). The debug apk should be somewhere like this: app/build/outputs/apk/screengrab/debug/app-screengrab-debug.apk The test apk should be somewhere like this: app/build/outputs/apk/androidTest/screengrab/debug/app-screengrab-debug-androidTest.apk Sit back and enjoy your new screenshots! Note: while this could also be done by creating a new build variant (i.e. debug, release and creating a new one called screengrab), Android only allows one build type to be tested which defaults to debug. That's why we use product flavors. screengrab Supported platforms android Author @asfalcone, @i2amsam, @mfurtak 3 Examples capture_android_screenshots screengrab # alias for \"capture_android_screenshots\" capture_android_screenshots( locales: [\"en-US\", \"fr-FR\", \"ja-JP\"], clear_previous_screenshots: true, app_apk_path: \"build/outputs/apk/example-debug.apk\", tests_apk_path: \"build/outputs/apk/example-debug-androidTest-unaligned.apk\" ) Parameters Key Description Default android_home Path to the root of your Android SDK installation, e.g. ~/tools/android-sdk-macosx * build_tools_version DEPRECATED! The Android build tools version to use, e.g. '23.0.2' locales A list of locales which should be used [\"en-US\"] clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running screengrab false output_directory The directory where to store the screenshots fastlane/metadata/android skip_open_summary Don't open the summary after running screengrab * app_package_name The package name of the app under test (e.g. com.yourcompany.yourapp) * tests_package_name The package name of the tests bundle (e.g. com.yourcompany.yourapp.test) use_tests_in_packages Only run tests in these Java packages use_tests_in_classes Only run tests in these Java classes launch_arguments Additional launch arguments test_instrumentation_runner The fully qualified class name of your test instrumentation runner androidx.test.runner.AndroidJUnitRunner ending_locale DEPRECATED! Return the device to this locale after running tests en-US use_adb_root DEPRECATED! Restarts the adb daemon using adb root to allow access to screenshots directories on device. Use if getting 'Permission denied' errors false app_apk_path The path to the APK for the app under test * tests_apk_path The path to the APK for the tests bundle * specific_device Use the device or emulator with the given serial number or qualifier device_type Type of device used for screenshots. Matches Google Play Types (phone, sevenInch, tenInch, tv, wear) phone exit_on_test_failure Whether or not to exit Screengrab on test failure. Exiting on failure will not copy screenshots to local machine nor open screenshots summary true reinstall_app Enabling this option will automatically uninstall the application before running it false use_timestamp_suffix Add timestamp suffix to screenshot filename true adb_host Configure the host used by adb to connect, allows running on remote devices farm * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The screengrab action generates the following Lane Variables: SharedValue Description SharedValues::SCREENGRAB_OUTPUT_DIRECTORY The path to the output directory To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action screengrab CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run screengrab To pass parameters, make use of the : symbol, for example fastlane run screengrab parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Screengrab"},{"location":"generated/actions/screengrab/#screengrab","text":"Alias for the capture_android_screenshots action","title":"screengrab"},{"location":"generated/actions/screengrab/#installation","text":"Install the gem gem install fastlane","title":"Installation"},{"location":"generated/actions/screengrab/#generating-screenshots-with-screengrab","text":"Then, before running fastlane screengrab you'll need a debug and test apk You can create your APKs manually with ./gradlew assembleDebug assembleAndroidTest You can also create a lane and use build_android_app : ruby desc \"Build debug and test APK for screenshots\" lane :build_and_screengrab do build_android_app( task: 'assemble', build_type: 'Debug' ) build_android_app( task: 'assemble', build_type: 'AndroidTest' ) screengrab() end - Once complete run fastlane screengrab in your app project directory to generate screenshots - You will be prompted to provide any required parameters which are not in your Screengrabfile or provided as command line arguments - Your screenshots will be saved to fastlane/metadata/android in the directory where you ran screengrab","title":"Generating Screenshots with screengrab"},{"location":"generated/actions/screengrab/#improved-screenshot-capture-with-ui-automator","text":"As of screengrab 0.5.0, you can specify different strategies to control the way screengrab captures screenshots. The newer strategy delegates to UI Automator which fixes a number of problems compared to the original strategy: Shadows/elevation are correctly captured for Material UI Multi-window situations are correctly captured (dialogs, etc.) Works on Android N UI Automator is the default strategy. However, UI Automator requires a device with API level >= 18 . If you need to grab screenshots on an older Android version, use the latest 1.x.x version of this library and set the DecorView ScreenshotStrategy. Screengrab.setDefaultScreenshotStrategy(new DecorViewScreenshotStrategy());","title":"Improved screenshot capture with UI Automator"},{"location":"generated/actions/screengrab/#improved-screenshot-capture-with-falcon","text":"As of screengrab 1.2.0, you can specify a new strategy to delegate to Falcon . Falcon may work better than UI Automator in some situations and also provides similar benefits as UI Automator: Multi-window situations are correctly captured (dialogs, etc.) Works on Android N Falcon requires a device with API level >= 10 . To enable it for all screenshots by default, make the following call before your tests run: Screengrab.setDefaultScreenshotStrategy(new FalconScreenshotStrategy(activityRule.getActivity()));","title":"Improved screenshot capture with Falcon"},{"location":"generated/actions/screengrab/#advanced-screengrabfile-configuration","text":"Running fastlane screengrab init generated a Screengrabfile which can store all of your configuration options. Since most values will not change often for your project, it is recommended to store them there. The Screengrabfile is written in Ruby, so you may find it helpful to use an editor that highlights Ruby syntax to modify this file. # remove the leading '#' to uncomment lines # app_package_name('your.app.package') # use_tests_in_packages(['your.screenshot.tests.package']) # app_apk_path('path/to/your/app.apk') # tests_apk_path('path/to/your/tests.apk') locales(['en-US', 'fr-FR', 'it-IT']) # clear all previously generated screenshots in your local output directory before creating new ones clear_previous_screenshots(true) For more information about all available options run fastlane action screengrab","title":"Advanced Screengrabfile Configuration"},{"location":"generated/actions/screengrab/#tips","text":"","title":"Tips"},{"location":"generated/actions/screengrab/#ui-tests","text":"Check out Testing UI for a Single App for an introduction to using Espresso for UI testing.","title":"UI Tests"},{"location":"generated/actions/screengrab/#clean-status-bar","text":"screengrab can clean your status bar to make your screenshots even more beautiful. It is simply a wrapper that allows configuring SystemUI DemoMode in your code. Note: the clean status bar feature is only supported on devices with API level >= 23 . You can enable and disable the clean status bar at any moment during your tests. In most cases you probably want to do this in the @BeforeClass and @AfterClass methods. @BeforeClass public static void beforeAll() { CleanStatusBar.enableWithDefaults(); } @AfterClass public static void afterAll() { CleanStatusBar.disable(); } Have a look at the methods of the CleanStatusBar class to customize the status bar even more. You could for example show the Bluetooth icon and the LTE text. new CleanStatusBar() .setBluetoothState(BluetoothState.DISCONNECTED) .setMobileNetworkDataType(MobileDataType.LTE) .enable();","title":"Clean Status Bar"},{"location":"generated/actions/screengrab/#advanced-screengrab","text":"Launch Arguments You can provide additional arguments to your test cases on launch. These strings will be available in your tests through InstrumentationRegistry.getArguments() . screengrab( launch_arguments: [ \"username hjanuschka\", \"build_number 201\" ] ) Bundle extras = InstrumentationRegistry.getArguments(); String peerID = null; if (extras != null) { if (extras.containsKey(\"username\")) { username = extras.getString(\"username\"); System.out.println(\"Username: \" + username); } else { System.out.println(\"No username in extras\"); } } else { System.out.println(\"No extras\"); } Detecting screengrab at runtime For some apps, it is helpful to know when screengrab is running so that you can display specific data for your screenshots. For iOS fastlane users, this is much like \"FASTLANE_SNAPSHOT\". In order to do this, you'll need to have at least two product flavors of your app. Add two product flavors to the app-level build.gradle file: android { ... flavorDimensions \"mode\" productFlavors { screengrab { dimension \"mode\" } regular { dimension \"mode\" } } ... } Check for the existence of that flavor (i.e screengrab) in your app code as follows in order to use mock data or customize data for screenshots: if (BuildConfig.FLAVOR == \"screengrab\") { System.out.println(\"screengrab is running!\"); } When running screengrab , do the following to build the flavor you want as well as the test apk. Note that you use \"assembleFlavor_name\" where Flavor_name is the flavor name, capitalized (i.e. Screengrab). ./gradlew assembleScreengrab assembleAndroidTest Run screengrab : fastlane screengrab screengrab will ask you to select the debug and test apps (which you can then add to your Screengrabfile to skip this step later). The debug apk should be somewhere like this: app/build/outputs/apk/screengrab/debug/app-screengrab-debug.apk The test apk should be somewhere like this: app/build/outputs/apk/androidTest/screengrab/debug/app-screengrab-debug-androidTest.apk Sit back and enjoy your new screenshots! Note: while this could also be done by creating a new build variant (i.e. debug, release and creating a new one called screengrab), Android only allows one build type to be tested which defaults to debug. That's why we use product flavors. screengrab Supported platforms android Author @asfalcone, @i2amsam, @mfurtak","title":"Advanced screengrab"},{"location":"generated/actions/screengrab/#3-examples","text":"capture_android_screenshots screengrab # alias for \"capture_android_screenshots\" capture_android_screenshots( locales: [\"en-US\", \"fr-FR\", \"ja-JP\"], clear_previous_screenshots: true, app_apk_path: \"build/outputs/apk/example-debug.apk\", tests_apk_path: \"build/outputs/apk/example-debug-androidTest-unaligned.apk\" )","title":"3 Examples"},{"location":"generated/actions/screengrab/#parameters","text":"Key Description Default android_home Path to the root of your Android SDK installation, e.g. ~/tools/android-sdk-macosx * build_tools_version DEPRECATED! The Android build tools version to use, e.g. '23.0.2' locales A list of locales which should be used [\"en-US\"] clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running screengrab false output_directory The directory where to store the screenshots fastlane/metadata/android skip_open_summary Don't open the summary after running screengrab * app_package_name The package name of the app under test (e.g. com.yourcompany.yourapp) * tests_package_name The package name of the tests bundle (e.g. com.yourcompany.yourapp.test) use_tests_in_packages Only run tests in these Java packages use_tests_in_classes Only run tests in these Java classes launch_arguments Additional launch arguments test_instrumentation_runner The fully qualified class name of your test instrumentation runner androidx.test.runner.AndroidJUnitRunner ending_locale DEPRECATED! Return the device to this locale after running tests en-US use_adb_root DEPRECATED! Restarts the adb daemon using adb root to allow access to screenshots directories on device. Use if getting 'Permission denied' errors false app_apk_path The path to the APK for the app under test * tests_apk_path The path to the APK for the tests bundle * specific_device Use the device or emulator with the given serial number or qualifier device_type Type of device used for screenshots. Matches Google Play Types (phone, sevenInch, tenInch, tv, wear) phone exit_on_test_failure Whether or not to exit Screengrab on test failure. Exiting on failure will not copy screenshots to local machine nor open screenshots summary true reinstall_app Enabling this option will automatically uninstall the application before running it false use_timestamp_suffix Add timestamp suffix to screenshot filename true adb_host Configure the host used by adb to connect, allows running on remote devices farm * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/screengrab/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The screengrab action generates the following Lane Variables: SharedValue Description SharedValues::SCREENGRAB_OUTPUT_DIRECTORY The path to the output directory To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/screengrab/#documentation","text":"To show the documentation in your terminal, run fastlane action screengrab","title":"Documentation"},{"location":"generated/actions/screengrab/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run screengrab To pass parameters, make use of the : symbol, for example fastlane run screengrab parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/screengrab/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/set_build_number_repository/","text":"set_build_number_repository Set the build number from the current repository This action will set the build number according to what the SCM HEAD reports. Currently supported SCMs are svn (uses root revision), git-svn (uses svn revision) and git (uses short hash) and mercurial (uses short hash or revision number). There is an option, :use_hg_revision_number , which allows to use mercurial revision number instead of hash. set_build_number_repository Supported platforms ios, mac Author @pbrooks, @armadsen, @AndrewSB 2 Examples set_build_number_repository set_build_number_repository( xcodeproj: \"./path/to/MyApp.xcodeproj\" ) Parameters Key Description Default use_hg_revision_number Use hg revision number instead of hash (ignored for non-hg repos) false xcodeproj explicitly specify which xcodeproj to use * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action set_build_number_repository CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_build_number_repository To pass parameters, make use of the : symbol, for example fastlane run set_build_number_repository parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Set build number repository"},{"location":"generated/actions/set_build_number_repository/#set_build_number_repository","text":"Set the build number from the current repository This action will set the build number according to what the SCM HEAD reports. Currently supported SCMs are svn (uses root revision), git-svn (uses svn revision) and git (uses short hash) and mercurial (uses short hash or revision number). There is an option, :use_hg_revision_number , which allows to use mercurial revision number instead of hash. set_build_number_repository Supported platforms ios, mac Author @pbrooks, @armadsen, @AndrewSB","title":"set_build_number_repository"},{"location":"generated/actions/set_build_number_repository/#2-examples","text":"set_build_number_repository set_build_number_repository( xcodeproj: \"./path/to/MyApp.xcodeproj\" )","title":"2 Examples"},{"location":"generated/actions/set_build_number_repository/#parameters","text":"Key Description Default use_hg_revision_number Use hg revision number instead of hash (ignored for non-hg repos) false xcodeproj explicitly specify which xcodeproj to use * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/set_build_number_repository/#documentation","text":"To show the documentation in your terminal, run fastlane action set_build_number_repository","title":"Documentation"},{"location":"generated/actions/set_build_number_repository/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_build_number_repository To pass parameters, make use of the : symbol, for example fastlane run set_build_number_repository parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/set_build_number_repository/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/set_changelog/","text":"set_changelog Set the changelog for all languages on App Store Connect This is useful if you have only one changelog for all languages. You can store the changelog in ./fastlane/changelog.txt and it will automatically get loaded from there. This integration is useful if you support e.g. 10 languages and want to use the same \"What's new\"-text for all languages. Defining the version is optional. fastlane will try to automatically detect it if you don't provide one. set_changelog Supported platforms ios, mac Author @KrauseFx 2 Examples set_changelog(changelog: \"Changelog for all Languages\") set_changelog(app_identifier: \"com.krausefx.app\", version: \"1.0\", changelog: \"Changelog for all Languages\") Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * app_identifier The bundle identifier of your app * username Your Apple ID Username * version The version number to create/update changelog Changelog text that should be uploaded to App Store Connect team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * platform The platform of the app (ios, appletvos, mac) ios * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action set_changelog CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_changelog To pass parameters, make use of the : symbol, for example fastlane run set_changelog parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Set changelog"},{"location":"generated/actions/set_changelog/#set_changelog","text":"Set the changelog for all languages on App Store Connect This is useful if you have only one changelog for all languages. You can store the changelog in ./fastlane/changelog.txt and it will automatically get loaded from there. This integration is useful if you support e.g. 10 languages and want to use the same \"What's new\"-text for all languages. Defining the version is optional. fastlane will try to automatically detect it if you don't provide one. set_changelog Supported platforms ios, mac Author @KrauseFx","title":"set_changelog"},{"location":"generated/actions/set_changelog/#2-examples","text":"set_changelog(changelog: \"Changelog for all Languages\") set_changelog(app_identifier: \"com.krausefx.app\", version: \"1.0\", changelog: \"Changelog for all Languages\")","title":"2 Examples"},{"location":"generated/actions/set_changelog/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) * app_identifier The bundle identifier of your app * username Your Apple ID Username * version The version number to create/update changelog Changelog text that should be uploaded to App Store Connect team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * platform The platform of the app (ios, appletvos, mac) ios * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/set_changelog/#documentation","text":"To show the documentation in your terminal, run fastlane action set_changelog","title":"Documentation"},{"location":"generated/actions/set_changelog/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_changelog To pass parameters, make use of the : symbol, for example fastlane run set_changelog parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/set_changelog/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/set_github_release/","text":"set_github_release This will create a new release on GitHub and upload assets for it Creates a new release on GitHub. You must provide your GitHub Personal token (get one from https://github.com/settings/tokens/new ), the repository name and tag name. By default, that's master . If the tag doesn't exist, one will be created on the commit or branch passed in as commitish. Out parameters provide the release's id, which can be used for later editing and the release HTML link to GitHub. You can also specify a list of assets to be uploaded to the release with the :upload_assets parameter. set_github_release Supported platforms ios, android, mac Author @czechboy0, @tommeier Returns A hash containing all relevant information of this release Access things like 'html_url', 'tag_name', 'name', 'body' 1 Example github_release = set_github_release( repository_name: \"fastlane/fastlane\", api_token: ENV[\"GITHUB_TOKEN\"], name: \"Super New actions\", tag_name: \"v1.22.0\", description: (File.read(\"changelog\") rescue \"No changelog provided\"), commitish: \"master\", upload_assets: [\"example_integration.ipa\", \"./pkg/built.gem\"] ) Parameters Key Description Default repository_name The path to your repo, e.g. 'fastlane/fastlane' server_url The server url. e.g. 'https://your.internal.github.host/api/v3' (Default: 'https://api.github.com') https://api.github.com api_token Personal API Token for GitHub - generate one at https://github.com/settings/tokens * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable tag_name Pass in the tag name name Name of this release commitish Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Unused if the Git tag already exists. Default: the repository's default branch (usually master) description Description of this release * is_draft Whether the release should be marked as draft false is_prerelease Whether the release should be marked as prerelease false is_generate_release_notes Whether the name and body of this release should be generated automatically false upload_assets Path to assets to be uploaded with the release * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The set_github_release action generates the following Lane Variables: SharedValue Description SharedValues::SET_GITHUB_RELEASE_HTML_LINK Link to your created release SharedValues::SET_GITHUB_RELEASE_RELEASE_ID Release id (useful for subsequent editing) SharedValues::SET_GITHUB_RELEASE_JSON The whole release JSON object To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action set_github_release CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_github_release To pass parameters, make use of the : symbol, for example fastlane run set_github_release parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Set github release"},{"location":"generated/actions/set_github_release/#set_github_release","text":"This will create a new release on GitHub and upload assets for it Creates a new release on GitHub. You must provide your GitHub Personal token (get one from https://github.com/settings/tokens/new ), the repository name and tag name. By default, that's master . If the tag doesn't exist, one will be created on the commit or branch passed in as commitish. Out parameters provide the release's id, which can be used for later editing and the release HTML link to GitHub. You can also specify a list of assets to be uploaded to the release with the :upload_assets parameter. set_github_release Supported platforms ios, android, mac Author @czechboy0, @tommeier Returns A hash containing all relevant information of this release Access things like 'html_url', 'tag_name', 'name', 'body'","title":"set_github_release"},{"location":"generated/actions/set_github_release/#1-example","text":"github_release = set_github_release( repository_name: \"fastlane/fastlane\", api_token: ENV[\"GITHUB_TOKEN\"], name: \"Super New actions\", tag_name: \"v1.22.0\", description: (File.read(\"changelog\") rescue \"No changelog provided\"), commitish: \"master\", upload_assets: [\"example_integration.ipa\", \"./pkg/built.gem\"] )","title":"1 Example"},{"location":"generated/actions/set_github_release/#parameters","text":"Key Description Default repository_name The path to your repo, e.g. 'fastlane/fastlane' server_url The server url. e.g. 'https://your.internal.github.host/api/v3' (Default: 'https://api.github.com') https://api.github.com api_token Personal API Token for GitHub - generate one at https://github.com/settings/tokens * api_bearer Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable tag_name Pass in the tag name name Name of this release commitish Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Unused if the Git tag already exists. Default: the repository's default branch (usually master) description Description of this release * is_draft Whether the release should be marked as draft false is_prerelease Whether the release should be marked as prerelease false is_generate_release_notes Whether the name and body of this release should be generated automatically false upload_assets Path to assets to be uploaded with the release * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/set_github_release/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The set_github_release action generates the following Lane Variables: SharedValue Description SharedValues::SET_GITHUB_RELEASE_HTML_LINK Link to your created release SharedValues::SET_GITHUB_RELEASE_RELEASE_ID Release id (useful for subsequent editing) SharedValues::SET_GITHUB_RELEASE_JSON The whole release JSON object To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/set_github_release/#documentation","text":"To show the documentation in your terminal, run fastlane action set_github_release","title":"Documentation"},{"location":"generated/actions/set_github_release/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_github_release To pass parameters, make use of the : symbol, for example fastlane run set_github_release parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/set_github_release/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/set_info_plist_value/","text":"set_info_plist_value Sets value to Info.plist of your project as native Ruby data structures set_info_plist_value Supported platforms ios, mac Author @kohtenko, @uwehollatz 2 Examples set_info_plist_value(path: \"./Info.plist\", key: \"CFBundleIdentifier\", value: \"com.krausefx.app.beta\") set_info_plist_value(path: \"./MyApp-Info.plist\", key: \"NSAppTransportSecurity\", subkey: \"NSAllowsArbitraryLoads\", value: true, output_file_name: \"./Info.plist\") Parameters Key Description Default key Name of key in plist subkey Name of subkey in plist value Value to setup path Path to plist file you want to update output_file_name Path to the output file you want to generate * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action set_info_plist_value CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_info_plist_value To pass parameters, make use of the : symbol, for example fastlane run set_info_plist_value parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Set info plist value"},{"location":"generated/actions/set_info_plist_value/#set_info_plist_value","text":"Sets value to Info.plist of your project as native Ruby data structures set_info_plist_value Supported platforms ios, mac Author @kohtenko, @uwehollatz","title":"set_info_plist_value"},{"location":"generated/actions/set_info_plist_value/#2-examples","text":"set_info_plist_value(path: \"./Info.plist\", key: \"CFBundleIdentifier\", value: \"com.krausefx.app.beta\") set_info_plist_value(path: \"./MyApp-Info.plist\", key: \"NSAppTransportSecurity\", subkey: \"NSAllowsArbitraryLoads\", value: true, output_file_name: \"./Info.plist\")","title":"2 Examples"},{"location":"generated/actions/set_info_plist_value/#parameters","text":"Key Description Default key Name of key in plist subkey Name of subkey in plist value Value to setup path Path to plist file you want to update output_file_name Path to the output file you want to generate * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/set_info_plist_value/#documentation","text":"To show the documentation in your terminal, run fastlane action set_info_plist_value","title":"Documentation"},{"location":"generated/actions/set_info_plist_value/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_info_plist_value To pass parameters, make use of the : symbol, for example fastlane run set_info_plist_value parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/set_info_plist_value/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/set_pod_key/","text":"set_pod_key Sets a value for a key with cocoapods-keys Adds a key to cocoapods-keys set_pod_key Supported platforms ios, mac Author @marcelofabri 1 Example set_pod_key( key: \"APIToken\", value: \"1234\", project: \"MyProject\" ) Parameters Key Description Default use_bundle_exec Use bundle exec when there is a Gemfile presented true key The key to be saved with cocoapods-keys value The value to be saved with cocoapods-keys project The project name * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action set_pod_key CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_pod_key To pass parameters, make use of the : symbol, for example fastlane run set_pod_key parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Set pod key"},{"location":"generated/actions/set_pod_key/#set_pod_key","text":"Sets a value for a key with cocoapods-keys Adds a key to cocoapods-keys set_pod_key Supported platforms ios, mac Author @marcelofabri","title":"set_pod_key"},{"location":"generated/actions/set_pod_key/#1-example","text":"set_pod_key( key: \"APIToken\", value: \"1234\", project: \"MyProject\" )","title":"1 Example"},{"location":"generated/actions/set_pod_key/#parameters","text":"Key Description Default use_bundle_exec Use bundle exec when there is a Gemfile presented true key The key to be saved with cocoapods-keys value The value to be saved with cocoapods-keys project The project name * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/set_pod_key/#documentation","text":"To show the documentation in your terminal, run fastlane action set_pod_key","title":"Documentation"},{"location":"generated/actions/set_pod_key/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run set_pod_key To pass parameters, make use of the : symbol, for example fastlane run set_pod_key parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/set_pod_key/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/setup_ci/","text":"setup_ci Setup the keychain and match to work with CI Creates a new temporary keychain for use with match Switches match to readonly mode to not create new profiles/cert on CI Sets up log and test result paths to be easily collectible This action helps with CI integration. Add this to the top of your Fastfile if you use CI. setup_ci Supported platforms ios, mac Author @mollyIV, @svenmuennich 2 Examples setup_ci( provider: \"circleci\" ) setup_ci( provider: \"circleci\", timeout: 0 ) Parameters Key Description Default force Force setup, even if not executed by CI false provider CI provider. If none is set, the provider is detected automatically timeout Set a custom timeout in seconds for keychain. Set 0 if you want to specify 'no time-out' 3600 * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action setup_ci CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run setup_ci To pass parameters, make use of the : symbol, for example fastlane run setup_ci parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Setup ci"},{"location":"generated/actions/setup_ci/#setup_ci","text":"Setup the keychain and match to work with CI Creates a new temporary keychain for use with match Switches match to readonly mode to not create new profiles/cert on CI Sets up log and test result paths to be easily collectible This action helps with CI integration. Add this to the top of your Fastfile if you use CI. setup_ci Supported platforms ios, mac Author @mollyIV, @svenmuennich","title":"setup_ci"},{"location":"generated/actions/setup_ci/#2-examples","text":"setup_ci( provider: \"circleci\" ) setup_ci( provider: \"circleci\", timeout: 0 )","title":"2 Examples"},{"location":"generated/actions/setup_ci/#parameters","text":"Key Description Default force Force setup, even if not executed by CI false provider CI provider. If none is set, the provider is detected automatically timeout Set a custom timeout in seconds for keychain. Set 0 if you want to specify 'no time-out' 3600 * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/setup_ci/#documentation","text":"To show the documentation in your terminal, run fastlane action setup_ci","title":"Documentation"},{"location":"generated/actions/setup_ci/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run setup_ci To pass parameters, make use of the : symbol, for example fastlane run setup_ci parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/setup_ci/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/setup_circle_ci/","text":"setup_circle_ci Setup the keychain and match to work with CircleCI Creates a new temporary keychain for use with match Switches match to readonly mode to not create new profiles/cert on CI Sets up log and test result paths to be easily collectible This action helps with CircleCI integration. Add this to the top of your Fastfile if you use CircleCI. setup_circle_ci Supported platforms ios, android, mac Author @dantoml 1 Example setup_circle_ci Parameters Key Description Default force Force setup, even if not executed by CircleCI false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action setup_circle_ci CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run setup_circle_ci To pass parameters, make use of the : symbol, for example fastlane run setup_circle_ci parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Setup circle ci"},{"location":"generated/actions/setup_circle_ci/#setup_circle_ci","text":"Setup the keychain and match to work with CircleCI Creates a new temporary keychain for use with match Switches match to readonly mode to not create new profiles/cert on CI Sets up log and test result paths to be easily collectible This action helps with CircleCI integration. Add this to the top of your Fastfile if you use CircleCI. setup_circle_ci Supported platforms ios, android, mac Author @dantoml","title":"setup_circle_ci"},{"location":"generated/actions/setup_circle_ci/#1-example","text":"setup_circle_ci","title":"1 Example"},{"location":"generated/actions/setup_circle_ci/#parameters","text":"Key Description Default force Force setup, even if not executed by CircleCI false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/setup_circle_ci/#documentation","text":"To show the documentation in your terminal, run fastlane action setup_circle_ci","title":"Documentation"},{"location":"generated/actions/setup_circle_ci/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run setup_circle_ci To pass parameters, make use of the : symbol, for example fastlane run setup_circle_ci parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/setup_circle_ci/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/setup_jenkins/","text":"setup_jenkins Setup xcodebuild, gym and scan for easier Jenkins integration Adds and unlocks keychains from Jenkins 'Keychains and Provisioning Profiles Plugin' Sets unlocked keychain to be used by Match Sets code signing identity from Jenkins 'Keychains and Provisioning Profiles Plugin' Sets output directory to './output' (gym, scan and backup_xcarchive) Sets derived data path to './derivedData' (xcodebuild, gym, scan and clear_derived_data, carthage) Produce result bundle (gym and scan) This action helps with Jenkins integration. Creates own derived data for each job. All build results like IPA files and archives will be stored in the ./output directory. The action also works with Keychains and Provisioning Profiles Plugin , the selected keychain will be automatically unlocked and the selected code signing identity will be used. Match will be also set up to use the unlocked keychain and set in read-only mode, if its environment variables were not yet defined. By default this action will only work when fastlane is executed on a CI system. setup_jenkins Supported platforms ios, mac Author @bartoszj 1 Example setup_jenkins Parameters Key Description Default force Force setup, even if not executed by Jenkins false unlock_keychain Unlocks keychain true add_keychain_to_search_list Add to keychain search list, valid values are true, false, :add, and :replace :replace set_default_keychain Set keychain as default true keychain_path Path to keychain keychain_password Keychain password '' set_code_signing_identity Set code signing identity from CODE_SIGNING_IDENTITY environment true code_signing_identity Code signing identity output_directory The directory in which the ipa file should be stored in ./output derived_data_path The directory where built products and other derived data will go ./derivedData result_bundle Produce the result bundle describing what occurred will be placed true * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action setup_jenkins CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run setup_jenkins To pass parameters, make use of the : symbol, for example fastlane run setup_jenkins parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Setup jenkins"},{"location":"generated/actions/setup_jenkins/#setup_jenkins","text":"Setup xcodebuild, gym and scan for easier Jenkins integration Adds and unlocks keychains from Jenkins 'Keychains and Provisioning Profiles Plugin' Sets unlocked keychain to be used by Match Sets code signing identity from Jenkins 'Keychains and Provisioning Profiles Plugin' Sets output directory to './output' (gym, scan and backup_xcarchive) Sets derived data path to './derivedData' (xcodebuild, gym, scan and clear_derived_data, carthage) Produce result bundle (gym and scan) This action helps with Jenkins integration. Creates own derived data for each job. All build results like IPA files and archives will be stored in the ./output directory. The action also works with Keychains and Provisioning Profiles Plugin , the selected keychain will be automatically unlocked and the selected code signing identity will be used. Match will be also set up to use the unlocked keychain and set in read-only mode, if its environment variables were not yet defined. By default this action will only work when fastlane is executed on a CI system. setup_jenkins Supported platforms ios, mac Author @bartoszj","title":"setup_jenkins"},{"location":"generated/actions/setup_jenkins/#1-example","text":"setup_jenkins","title":"1 Example"},{"location":"generated/actions/setup_jenkins/#parameters","text":"Key Description Default force Force setup, even if not executed by Jenkins false unlock_keychain Unlocks keychain true add_keychain_to_search_list Add to keychain search list, valid values are true, false, :add, and :replace :replace set_default_keychain Set keychain as default true keychain_path Path to keychain keychain_password Keychain password '' set_code_signing_identity Set code signing identity from CODE_SIGNING_IDENTITY environment true code_signing_identity Code signing identity output_directory The directory in which the ipa file should be stored in ./output derived_data_path The directory where built products and other derived data will go ./derivedData result_bundle Produce the result bundle describing what occurred will be placed true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/setup_jenkins/#documentation","text":"To show the documentation in your terminal, run fastlane action setup_jenkins","title":"Documentation"},{"location":"generated/actions/setup_jenkins/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run setup_jenkins To pass parameters, make use of the : symbol, for example fastlane run setup_jenkins parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/setup_jenkins/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/setup_travis/","text":"setup_travis Setup the keychain and match to work with Travis CI Creates a new temporary keychain for use with match Switches match to readonly mode to not create new profiles/cert on CI This action helps with Travis integration. Add this to the top of your Fastfile if you use Travis. setup_travis Supported platforms ios, android, mac Author @KrauseFx 1 Example setup_travis Parameters Key Description Default force Force setup, even if not executed by travis false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action setup_travis CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run setup_travis To pass parameters, make use of the : symbol, for example fastlane run setup_travis parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Setup travis"},{"location":"generated/actions/setup_travis/#setup_travis","text":"Setup the keychain and match to work with Travis CI Creates a new temporary keychain for use with match Switches match to readonly mode to not create new profiles/cert on CI This action helps with Travis integration. Add this to the top of your Fastfile if you use Travis. setup_travis Supported platforms ios, android, mac Author @KrauseFx","title":"setup_travis"},{"location":"generated/actions/setup_travis/#1-example","text":"setup_travis","title":"1 Example"},{"location":"generated/actions/setup_travis/#parameters","text":"Key Description Default force Force setup, even if not executed by travis false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/setup_travis/#documentation","text":"To show the documentation in your terminal, run fastlane action setup_travis","title":"Documentation"},{"location":"generated/actions/setup_travis/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run setup_travis To pass parameters, make use of the : symbol, for example fastlane run setup_travis parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/setup_travis/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/sh/","text":"sh Runs a shell command Allows running an arbitrary shell command. Be aware of a specific behavior of sh action with regard to the working directory. For details, refer to Advanced . sh Supported platforms ios, android, mac Author @KrauseFx Returns Outputs the string and executes it. When running in tests, it returns the actual command instead of executing it 2 Examples sh(\"ls\") sh(\"git\", \"commit\", \"-m\", \"My message\") Parameters Key Description Default command Shell command to be executed log Determines whether fastlane should print out the executed command itself and output of the executed command. If command line option --troubleshoot is used, then it overrides this option to true true error_callback A callback invoked with the command output if there is a non-zero exit status * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action sh CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sh To pass parameters, make use of the : symbol, for example fastlane run sh parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Sh"},{"location":"generated/actions/sh/#sh","text":"Runs a shell command Allows running an arbitrary shell command. Be aware of a specific behavior of sh action with regard to the working directory. For details, refer to Advanced . sh Supported platforms ios, android, mac Author @KrauseFx Returns Outputs the string and executes it. When running in tests, it returns the actual command instead of executing it","title":"sh"},{"location":"generated/actions/sh/#2-examples","text":"sh(\"ls\") sh(\"git\", \"commit\", \"-m\", \"My message\")","title":"2 Examples"},{"location":"generated/actions/sh/#parameters","text":"Key Description Default command Shell command to be executed log Determines whether fastlane should print out the executed command itself and output of the executed command. If command line option --troubleshoot is used, then it overrides this option to true true error_callback A callback invoked with the command output if there is a non-zero exit status * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/sh/#documentation","text":"To show the documentation in your terminal, run fastlane action sh","title":"Documentation"},{"location":"generated/actions/sh/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sh To pass parameters, make use of the : symbol, for example fastlane run sh parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/sh/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/sigh/","text":"sigh Alias for the get_provisioning_profile action Because you would rather spend your time building stuff than fighting provisioning sigh can create, renew, download and repair provisioning profiles (with one command). It supports App Store, Ad Hoc, Development and Enterprise profiles and supports nice features, like auto-adding all test devices. Features \u2022 Usage \u2022 Resign \u2022 How does it work? Features Download the latest provisioning profile for your app Renew a provisioning profile, when it has expired Repair a provisioning profile, when it is broken Create a new provisioning profile, if it doesn't exist already Supports App Store , Ad Hoc and Development profiles Support for multiple Apple accounts , storing your credentials securely in the Keychain Support for multiple Teams Support for Enterprise Profiles To automate iOS Push profiles you can use pem . Why not let Xcode do the work? sigh can easily be integrated into your CI-server (e.g. Jenkins) Xcode sometimes invalidates all existing profiles You have control over what happens You still get to have the signing files, which you can then use for your build scripts or store in git See sigh in action: Usage Note : It is recommended to use match according to the codesigning.guide for generating and maintaining your provisioning profiles. Use sigh directly only if you want full control over what's going on and know more about codesigning. fastlane sigh Yes, that's the whole command! sigh will create, repair and download profiles for the App Store by default. You can pass your bundle identifier and username like this: fastlane sigh -a com.krausefx.app -u username If you want to generate an Ad Hoc profile instead of an App Store profile: fastlane sigh --adhoc If you want to generate a Development profile: fastlane sigh --development To generate the profile in a specific directory: fastlane sigh -o \"~/Certificates/\" To download all your provisioning profiles use fastlane sigh download_all Optionally, use fastlane sigh download_all --download_xcode_profiles to also include the Xcode managed provisioning profiles For a list of available parameters and commands run fastlane action sigh Advanced By default, sigh will install the downloaded profile on your machine. If you just want to generate the profile and skip the installation, use the following flag: fastlane sigh --skip_install To save the provisioning profile under a specific name, use the -q option: fastlane sigh -a com.krausefx.app -u username -q \"myProfile.mobileprovision\" If for some reason you don't want sigh to verify that the code signing identity is installed on your local machine: fastlane sigh --skip_certificate_verification If you need the provisioning profile to be renewed regardless of its state use the --force option. This gives you a profile with the maximum lifetime. --force will also add all available devices to this profile. fastlane sigh --force By default, sigh will include all certificates on development profiles, and first certificate on other types. If you need to specify which certificate to use you can either use the environment variable SIGH_CERTIFICATE , or pass the name or expiry date of the certificate as argument: fastlane sigh -c \"SunApps GmbH\" For a list of available parameters and commands run fastlane action sigh Use with fastlane sigh becomes really interesting when used in fastlane in combination with cert . Update your Fastfile to contain the following code: lane :beta do cert sigh(force: true) end force: true will make sure to re-generate the provisioning profile on each run. This will result in sigh always using the correct signing certificate, which is installed on the local machine. Repair sigh can automatically repair all your existing provisioning profiles which are expired or just invalid. fastlane sigh repair Resign If you generated your ipa file but want to apply a different code signing onto the ipa file, you can use sigh resign : fastlane sigh resign sigh will find the ipa file and the provisioning profile for you if they are located in the current folder. You can pass more information using the command line: fastlane sigh resign ./path/app.ipa --signing_identity \"iPhone Distribution: Felix Krause\" -p \"my.mobileprovision\" Manage With sigh manage you can list all provisioning profiles installed locally. fastlane sigh manage Delete all expired provisioning profiles fastlane sigh manage -e Or delete all iOS Team Provisioning Profile by using a regular expression fastlane sigh manage -p \"iOS\\ ?Team Provisioning Profile:\" Environment Variables Run fastlane action sigh to get a list of all available environment variables. If you're using cert in combination with fastlane the signing certificate will automatically be selected for you. (make sure to run cert before sigh ) How does it work? sigh will access the iOS Dev Center to download, renew or generate the .mobileprovision file. It uses spaceship to communicate with Apple's web services. How is my password stored? sigh uses the CredentialsManager from fastlane . Tips Use 'ProvisionQL' for advanced Quick Look in Finder Install ProvisionQL . It will show you mobileprovision files like this: App Identifier couldn't be found If you also want to create a new App Identifier on the Apple Developer Portal, check out produce , which does exactly that. What happens to my Xcode managed profiles? sigh will never touch or use the profiles which are created and managed by Xcode. Instead sigh will manage its own set of provisioning profiles. sigh Supported platforms ios, mac Author @KrauseFx Returns The UUID of the profile sigh just fetched/generated 3 Examples get_provisioning_profile sigh # alias for \"get_provisioning_profile\" get_provisioning_profile( adhoc: true, force: true, filename: \"myFile.mobileprovision\" ) Parameters Key Description Default adhoc Setting this flag will generate AdHoc profiles instead of App Store Profiles false developer_id Setting this flag will generate Developer ID profiles instead of App Store Profiles false development Renew the development certificate instead of the production one false skip_install By default, the certificate will be added to your local machine. Setting this flag will skip this action false force Renew provisioning profiles regardless of its state - to automatically add all devices for ad hoc profiles false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false app_identifier The bundle identifier of your app * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * provisioning_name The name of the profile that is used on the Apple Developer Portal ignore_profiles_with_different_name Use in combination with :provisioning_name - when true only profiles matching this exact name will be downloaded false output_path Directory in which the profile should be stored . cert_id The ID of the code signing certificate to use (e.g. 78ADL6LVAA) cert_owner_name The certificate name to use for new profiles, or to renew with. (e.g. \"Felix Krause\") filename Filename to use for the generated provisioning profile (must include .mobileprovision) skip_fetch_profiles Skips the verification of existing profiles which is useful if you have thousands of profiles false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false skip_certificate_verification Skips the verification of the certificates for every existing profiles. This will make sure the provisioning profile can be used on the local machine * platform Set the provisioning profile's platform (i.e. ios, tvos, macos, catalyst) ios readonly Only fetch existing profile, don't generate new ones false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The sigh action generates the following Lane Variables: SharedValue Description SharedValues::SIGH_PROFILE_PATH A path in which certificates, key and profile are exported SharedValues::SIGH_PROFILE_PATHS Paths in which certificates, key and profile are exported SharedValues::SIGH_UUID UUID (Universally Unique IDentifier) of a provisioning profile SharedValues::SIGH_NAME The name of the profile SharedValues::SIGH_PROFILE_TYPE The profile type, can be app-store, ad-hoc, development, enterprise, developer-id, can be used in build_app as a default value for export_method To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action sigh CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sigh To pass parameters, make use of the : symbol, for example fastlane run sigh parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Sigh"},{"location":"generated/actions/sigh/#sigh","text":"Alias for the get_provisioning_profile action","title":"sigh"},{"location":"generated/actions/sigh/#features","text":"Download the latest provisioning profile for your app Renew a provisioning profile, when it has expired Repair a provisioning profile, when it is broken Create a new provisioning profile, if it doesn't exist already Supports App Store , Ad Hoc and Development profiles Support for multiple Apple accounts , storing your credentials securely in the Keychain Support for multiple Teams Support for Enterprise Profiles To automate iOS Push profiles you can use pem .","title":"Features"},{"location":"generated/actions/sigh/#usage","text":"Note : It is recommended to use match according to the codesigning.guide for generating and maintaining your provisioning profiles. Use sigh directly only if you want full control over what's going on and know more about codesigning. fastlane sigh Yes, that's the whole command! sigh will create, repair and download profiles for the App Store by default. You can pass your bundle identifier and username like this: fastlane sigh -a com.krausefx.app -u username If you want to generate an Ad Hoc profile instead of an App Store profile: fastlane sigh --adhoc If you want to generate a Development profile: fastlane sigh --development To generate the profile in a specific directory: fastlane sigh -o \"~/Certificates/\" To download all your provisioning profiles use fastlane sigh download_all Optionally, use fastlane sigh download_all --download_xcode_profiles to also include the Xcode managed provisioning profiles For a list of available parameters and commands run fastlane action sigh","title":"Usage"},{"location":"generated/actions/sigh/#repair","text":"sigh can automatically repair all your existing provisioning profiles which are expired or just invalid. fastlane sigh repair","title":"Repair"},{"location":"generated/actions/sigh/#resign","text":"If you generated your ipa file but want to apply a different code signing onto the ipa file, you can use sigh resign : fastlane sigh resign sigh will find the ipa file and the provisioning profile for you if they are located in the current folder. You can pass more information using the command line: fastlane sigh resign ./path/app.ipa --signing_identity \"iPhone Distribution: Felix Krause\" -p \"my.mobileprovision\"","title":"Resign"},{"location":"generated/actions/sigh/#manage","text":"With sigh manage you can list all provisioning profiles installed locally. fastlane sigh manage Delete all expired provisioning profiles fastlane sigh manage -e Or delete all iOS Team Provisioning Profile by using a regular expression fastlane sigh manage -p \"iOS\\ ?Team Provisioning Profile:\"","title":"Manage"},{"location":"generated/actions/sigh/#environment-variables","text":"Run fastlane action sigh to get a list of all available environment variables. If you're using cert in combination with fastlane the signing certificate will automatically be selected for you. (make sure to run cert before sigh )","title":"Environment Variables"},{"location":"generated/actions/sigh/#how-does-it-work","text":"sigh will access the iOS Dev Center to download, renew or generate the .mobileprovision file. It uses spaceship to communicate with Apple's web services.","title":"How does it work?"},{"location":"generated/actions/sigh/#how-is-my-password-stored","text":"sigh uses the CredentialsManager from fastlane .","title":"How is my password stored?"},{"location":"generated/actions/sigh/#tips","text":"","title":"Tips"},{"location":"generated/actions/sigh/#use-provisionql-for-advanced-quick-look-in-finder","text":"Install ProvisionQL . It will show you mobileprovision files like this:","title":"Use 'ProvisionQL' for advanced Quick Look in Finder"},{"location":"generated/actions/sigh/#app-identifier-couldnt-be-found","text":"If you also want to create a new App Identifier on the Apple Developer Portal, check out produce , which does exactly that.","title":"App Identifier couldn't be found"},{"location":"generated/actions/sigh/#what-happens-to-my-xcode-managed-profiles","text":"sigh will never touch or use the profiles which are created and managed by Xcode. Instead sigh will manage its own set of provisioning profiles. sigh Supported platforms ios, mac Author @KrauseFx Returns The UUID of the profile sigh just fetched/generated","title":"What happens to my Xcode managed profiles?"},{"location":"generated/actions/sigh/#3-examples","text":"get_provisioning_profile sigh # alias for \"get_provisioning_profile\" get_provisioning_profile( adhoc: true, force: true, filename: \"myFile.mobileprovision\" )","title":"3 Examples"},{"location":"generated/actions/sigh/#parameters","text":"Key Description Default adhoc Setting this flag will generate AdHoc profiles instead of App Store Profiles false developer_id Setting this flag will generate Developer ID profiles instead of App Store Profiles false development Renew the development certificate instead of the production one false skip_install By default, the certificate will be added to your local machine. Setting this flag will skip this action false force Renew provisioning profiles regardless of its state - to automatically add all devices for ad hoc profiles false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false app_identifier The bundle identifier of your app * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * provisioning_name The name of the profile that is used on the Apple Developer Portal ignore_profiles_with_different_name Use in combination with :provisioning_name - when true only profiles matching this exact name will be downloaded false output_path Directory in which the profile should be stored . cert_id The ID of the code signing certificate to use (e.g. 78ADL6LVAA) cert_owner_name The certificate name to use for new profiles, or to renew with. (e.g. \"Felix Krause\") filename Filename to use for the generated provisioning profile (must include .mobileprovision) skip_fetch_profiles Skips the verification of existing profiles which is useful if you have thousands of profiles false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false skip_certificate_verification Skips the verification of the certificates for every existing profiles. This will make sure the provisioning profile can be used on the local machine * platform Set the provisioning profile's platform (i.e. ios, tvos, macos, catalyst) ios readonly Only fetch existing profile, don't generate new ones false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/sigh/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The sigh action generates the following Lane Variables: SharedValue Description SharedValues::SIGH_PROFILE_PATH A path in which certificates, key and profile are exported SharedValues::SIGH_PROFILE_PATHS Paths in which certificates, key and profile are exported SharedValues::SIGH_UUID UUID (Universally Unique IDentifier) of a provisioning profile SharedValues::SIGH_NAME The name of the profile SharedValues::SIGH_PROFILE_TYPE The profile type, can be app-store, ad-hoc, development, enterprise, developer-id, can be used in build_app as a default value for export_method To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/sigh/#documentation","text":"To show the documentation in your terminal, run fastlane action sigh","title":"Documentation"},{"location":"generated/actions/sigh/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sigh To pass parameters, make use of the : symbol, for example fastlane run sigh parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/sigh/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/skip_docs/","text":"skip_docs Skip the creation of the fastlane/README.md file when running fastlane Tell fastlane to not automatically create a fastlane/README.md when running fastlane . You can always trigger the creation of this file manually by running fastlane docs . skip_docs Supported platforms ios, android, mac Author @KrauseFx 1 Example skip_docs Documentation To show the documentation in your terminal, run fastlane action skip_docs CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run skip_docs To pass parameters, make use of the : symbol, for example fastlane run skip_docs parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Skip docs"},{"location":"generated/actions/skip_docs/#skip_docs","text":"Skip the creation of the fastlane/README.md file when running fastlane Tell fastlane to not automatically create a fastlane/README.md when running fastlane . You can always trigger the creation of this file manually by running fastlane docs . skip_docs Supported platforms ios, android, mac Author @KrauseFx","title":"skip_docs"},{"location":"generated/actions/skip_docs/#1-example","text":"skip_docs","title":"1 Example"},{"location":"generated/actions/skip_docs/#documentation","text":"To show the documentation in your terminal, run fastlane action skip_docs","title":"Documentation"},{"location":"generated/actions/skip_docs/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run skip_docs To pass parameters, make use of the : symbol, for example fastlane run skip_docs parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/skip_docs/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/slack/","text":"slack Send a success/error message to your Slack group Create an Incoming WebHook and export this as SLACK_URL . Can send a message to #channel (by default), a direct message to @username or a message to a private group group with success (green) or failure (red) status. slack Supported platforms ios, android, mac Author @KrauseFx 2 Examples slack(message: \"App successfully released!\") slack( message: \"App successfully released!\", channel: \"#channel\", # Optional, by default will post to the default channel configured for the POST URL. success: true, # Optional, defaults to true. payload: { # Optional, lets you specify any number of your own Slack attachments. \"Build Date\" => Time.new.to_s, \"Built by\" => \"Jenkins\", }, default_payloads: [:git_branch, :git_author], # Optional, lets you specify default payloads to include. Pass an empty array to suppress all the default payloads. attachment_properties: { # Optional, lets you specify any other properties available for attachments in the slack API (see https://api.slack.com/docs/attachments). # This hash is deep merged with the existing properties set using the other properties above. This allows your own fields properties to be appended to the existing fields that were created using the `payload` property for instance. thumb_url: \"http://example.com/path/to/thumb.png\", fields: [{ title: \"My Field\", value: \"My Value\", short: true }] } ) Parameters Key Description Default message The message that should be displayed on Slack. This supports the standard Slack markup language pretext This is optional text that appears above the message attachment block. This supports the standard Slack markup language channel #channel or @username use_webhook_configured_username_and_icon Use webhook's default username and icon settings? (true/false) false slack_url Create an Incoming WebHook for your Slack group username Overrides the webhook's username property if use_webhook_configured_username_and_icon is false fastlane icon_url Overrides the webhook's image property if use_webhook_configured_username_and_icon is false https://fastlane.tools/assets/img/fastlane_icon.png payload Add additional information to this post. payload must be a hash containing any key with any value {} default_payloads Specifies default payloads to include. Pass an empty array to suppress all the default payloads [\"lane\", \"test_result\", \"git_branch\", \"git_author\", \"last_git_commit\", \"last_git_commit_hash\"] attachment_properties Merge additional properties in the slack attachment, see https://api.slack.com/docs/attachments {} success Was this build successful? (true/false) true fail_on_error Should an error sending the slack notification cause a failure? (true/false) true link_names Find and link channel names and usernames (true/false) false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action slack CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run slack To pass parameters, make use of the : symbol, for example fastlane run slack parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Slack"},{"location":"generated/actions/slack/#slack","text":"Send a success/error message to your Slack group Create an Incoming WebHook and export this as SLACK_URL . Can send a message to #channel (by default), a direct message to @username or a message to a private group group with success (green) or failure (red) status. slack Supported platforms ios, android, mac Author @KrauseFx","title":"slack"},{"location":"generated/actions/slack/#2-examples","text":"slack(message: \"App successfully released!\") slack( message: \"App successfully released!\", channel: \"#channel\", # Optional, by default will post to the default channel configured for the POST URL. success: true, # Optional, defaults to true. payload: { # Optional, lets you specify any number of your own Slack attachments. \"Build Date\" => Time.new.to_s, \"Built by\" => \"Jenkins\", }, default_payloads: [:git_branch, :git_author], # Optional, lets you specify default payloads to include. Pass an empty array to suppress all the default payloads. attachment_properties: { # Optional, lets you specify any other properties available for attachments in the slack API (see https://api.slack.com/docs/attachments). # This hash is deep merged with the existing properties set using the other properties above. This allows your own fields properties to be appended to the existing fields that were created using the `payload` property for instance. thumb_url: \"http://example.com/path/to/thumb.png\", fields: [{ title: \"My Field\", value: \"My Value\", short: true }] } )","title":"2 Examples"},{"location":"generated/actions/slack/#parameters","text":"Key Description Default message The message that should be displayed on Slack. This supports the standard Slack markup language pretext This is optional text that appears above the message attachment block. This supports the standard Slack markup language channel #channel or @username use_webhook_configured_username_and_icon Use webhook's default username and icon settings? (true/false) false slack_url Create an Incoming WebHook for your Slack group username Overrides the webhook's username property if use_webhook_configured_username_and_icon is false fastlane icon_url Overrides the webhook's image property if use_webhook_configured_username_and_icon is false https://fastlane.tools/assets/img/fastlane_icon.png payload Add additional information to this post. payload must be a hash containing any key with any value {} default_payloads Specifies default payloads to include. Pass an empty array to suppress all the default payloads [\"lane\", \"test_result\", \"git_branch\", \"git_author\", \"last_git_commit\", \"last_git_commit_hash\"] attachment_properties Merge additional properties in the slack attachment, see https://api.slack.com/docs/attachments {} success Was this build successful? (true/false) true fail_on_error Should an error sending the slack notification cause a failure? (true/false) true link_names Find and link channel names and usernames (true/false) false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/slack/#documentation","text":"To show the documentation in your terminal, run fastlane action slack","title":"Documentation"},{"location":"generated/actions/slack/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run slack To pass parameters, make use of the : symbol, for example fastlane run slack parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/slack/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/slack_train/","text":"slack_train Show a train of the fastlane progress slack_train | -----|---- Supported platforms | ios, android, mac Author | @@KrauseFx Returns | A string that is being sent to slack To show the documentation in your terminal, run fastlane action slack_train View source code Back to actions","title":"Slack train"},{"location":"generated/actions/slack_train/#slack_train","text":"Show a train of the fastlane progress slack_train | -----|---- Supported platforms | ios, android, mac Author | @@KrauseFx Returns | A string that is being sent to slack To show the documentation in your terminal, run fastlane action slack_train View source code Back to actions","title":"slack_train"},{"location":"generated/actions/slack_train_crash/","text":"slack_train_crash slack_train_crash | -----|---- Supported platforms | ios, android, mac Author | @@KrauseFx To show the documentation in your terminal, run fastlane action slack_train_crash View source code Back to actions","title":"Slack train crash"},{"location":"generated/actions/slack_train_crash/#slack_train_crash","text":"slack_train_crash | -----|---- Supported platforms | ios, android, mac Author | @@KrauseFx To show the documentation in your terminal, run fastlane action slack_train_crash View source code Back to actions","title":"slack_train_crash"},{"location":"generated/actions/slack_train_start/","text":"slack_train_start Show a train of the fastlane progress slack_train_start | -----|---- Supported platforms | ios, android, mac Author | @@KrauseFx Parameters Key Description Default distance How many rails do we need? 5 train Train emoji \ud83d\ude9d rail Character or emoji for the rail = reverse_direction Pass true if you want the train to go from left to right false * = default value is dependent on the user's system To show the documentation in your terminal, run fastlane action slack_train_start View source code Back to actions","title":"Slack train start"},{"location":"generated/actions/slack_train_start/#slack_train_start","text":"Show a train of the fastlane progress slack_train_start | -----|---- Supported platforms | ios, android, mac Author | @@KrauseFx","title":"slack_train_start"},{"location":"generated/actions/slack_train_start/#parameters","text":"Key Description Default distance How many rails do we need? 5 train Train emoji \ud83d\ude9d rail Character or emoji for the rail = reverse_direction Pass true if you want the train to go from left to right false * = default value is dependent on the user's system To show the documentation in your terminal, run fastlane action slack_train_start View source code Back to actions","title":"Parameters"},{"location":"generated/actions/slather/","text":"slather Use slather to generate a code coverage report Slather works with multiple code coverage formats, including Xcode 7 code coverage. Slather is available at https://github.com/SlatherOrg/slather . slather Supported platforms ios, mac Author @mattdelves 1 Example slather( build_directory: \"foo\", input_format: \"bah\", scheme: \"MyScheme\", proj: \"MyProject.xcodeproj\" ) Parameters Key Description Default build_directory The location of the build output proj The project file that slather looks at workspace The workspace that slather looks at scheme Scheme to use when calling slather configuration Configuration to use when calling slather (since slather-2.4.1) input_format The input format that slather should look for github Tell slather that it is running on Github Actions buildkite Tell slather that it is running on Buildkite teamcity Tell slather that it is running on TeamCity jenkins Tell slather that it is running on Jenkins travis Tell slather that it is running on TravisCI travis_pro Tell slather that it is running on TravisCI Pro circleci Tell slather that it is running on CircleCI coveralls Tell slather that it should post data to Coveralls simple_output Tell slather that it should output results to the terminal gutter_json Tell slather that it should output results as Gutter JSON format cobertura_xml Tell slather that it should output results as Cobertura XML format sonarqube_xml Tell slather that it should output results as SonarQube Generic XML format llvm_cov Tell slather that it should output results as llvm-cov show format json Tell slather that it should output results as static JSON report html Tell slather that it should output results as static HTML pages show Tell slather that it should open static html pages automatically false source_directory Tell slather the location of your source files output_directory Tell slather the location of for your output files ignore Tell slather to ignore files matching a path or any path from an array of paths verbose Tell slather to enable verbose mode use_bundle_exec Use bundle exec to execute slather. Make sure it is in the Gemfile false binary_basename Basename of the binary file, this should match the name of your bundle excluding its extension (i.e. YourApp [for YourApp.app bundle]) binary_file Binary file name to be used for code coverage arch Specify which architecture the binary file is in. Needed for universal binaries source_files A Dir.glob compatible pattern used to limit the lookup to specific source files. Ignored in gcov mode false decimals The amount of decimals to use for % coverage reporting false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action slather CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run slather To pass parameters, make use of the : symbol, for example fastlane run slather parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Slather"},{"location":"generated/actions/slather/#slather","text":"Use slather to generate a code coverage report Slather works with multiple code coverage formats, including Xcode 7 code coverage. Slather is available at https://github.com/SlatherOrg/slather . slather Supported platforms ios, mac Author @mattdelves","title":"slather"},{"location":"generated/actions/slather/#1-example","text":"slather( build_directory: \"foo\", input_format: \"bah\", scheme: \"MyScheme\", proj: \"MyProject.xcodeproj\" )","title":"1 Example"},{"location":"generated/actions/slather/#parameters","text":"Key Description Default build_directory The location of the build output proj The project file that slather looks at workspace The workspace that slather looks at scheme Scheme to use when calling slather configuration Configuration to use when calling slather (since slather-2.4.1) input_format The input format that slather should look for github Tell slather that it is running on Github Actions buildkite Tell slather that it is running on Buildkite teamcity Tell slather that it is running on TeamCity jenkins Tell slather that it is running on Jenkins travis Tell slather that it is running on TravisCI travis_pro Tell slather that it is running on TravisCI Pro circleci Tell slather that it is running on CircleCI coveralls Tell slather that it should post data to Coveralls simple_output Tell slather that it should output results to the terminal gutter_json Tell slather that it should output results as Gutter JSON format cobertura_xml Tell slather that it should output results as Cobertura XML format sonarqube_xml Tell slather that it should output results as SonarQube Generic XML format llvm_cov Tell slather that it should output results as llvm-cov show format json Tell slather that it should output results as static JSON report html Tell slather that it should output results as static HTML pages show Tell slather that it should open static html pages automatically false source_directory Tell slather the location of your source files output_directory Tell slather the location of for your output files ignore Tell slather to ignore files matching a path or any path from an array of paths verbose Tell slather to enable verbose mode use_bundle_exec Use bundle exec to execute slather. Make sure it is in the Gemfile false binary_basename Basename of the binary file, this should match the name of your bundle excluding its extension (i.e. YourApp [for YourApp.app bundle]) binary_file Binary file name to be used for code coverage arch Specify which architecture the binary file is in. Needed for universal binaries source_files A Dir.glob compatible pattern used to limit the lookup to specific source files. Ignored in gcov mode false decimals The amount of decimals to use for % coverage reporting false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/slather/#documentation","text":"To show the documentation in your terminal, run fastlane action slather","title":"Documentation"},{"location":"generated/actions/slather/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run slather To pass parameters, make use of the : symbol, for example fastlane run slather parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/slather/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/snapshot/","text":"snapshot Alias for the capture_ios_screenshots action Automate taking localized screenshots of your iOS, tvOS, and watchOS apps on every device Check out the new fastlane documentation on how to generate screenshots snapshot generates localized iOS, tvOS, and watchOS screenshots for different device types and languages for the App Store and can be uploaded using ( deliver ). You have to manually create 20 (languages) x 6 (devices) x 5 (screenshots) = 600 screenshots . It's hard to get everything right! New screenshots with every (design) update No loading indicators Same content / screens Clean Status Bar Uploading screenshots ( deliver is your friend) More information about creating perfect screenshots . snapshot runs completely in the background - you can do something else, while your computer takes the screenshots for you. Features \u2022 UI Tests \u2022 Quick Start \u2022 Usage \u2022 Tips \u2022 How? Features Create hundreds of screenshots in multiple languages on all simulators Take screenshots in multiple device simulators concurrently to cut down execution time (Xcode 9 only) Configure it once, store the configuration in git Do something else, while the computer takes the screenshots for you Integrates with fastlane and deliver Generates a beautiful web page, which shows all screenshots on all devices. This is perfect to send to QA or the marketing team snapshot automatically waits for network requests to be finished before taking a screenshot (we don't want loading images in the App Store screenshots) After snapshot successfully created new screenshots, it will generate a beautiful HTML file to get a quick overview of all screens: Why? This tool automatically switches the language and device type and runs UI Tests for every combination. Why should I automate this process? It takes hours to take screenshots You get a great overview of all your screens, running on all available simulators without the need to manually start it hundreds of times Easy verification for translators (without an iDevice) that translations do make sense in real App context Easy verification that localizations fit into labels on all screen dimensions It is an integration test: You can test for UI elements and other things inside your scripts Be so nice, and provide new screenshots with every App Store update. Your customers deserve it You realize, there is a spelling mistake in one of the screens? Well, just correct it and re-run the script UI Tests Getting started This project uses Apple's newly announced UI Tests. We will not go into detail on how to write scripts. Here a few links to get started: WWDC 2015 Introduction to UI Tests A first look into UI Tests UI Testing in Xcode 7 HSTestingBackchannel : \u2018Cheat\u2019 by communicating directly with your app Automating App Store screenshots using fastlane snapshot and frameit Quick Start Create a new UI Test target in your Xcode project ( top part of this article ) Run fastlane snapshot init in your project folder Add the ./SnapshotHelper.swift to your UI Test target (You can move the file anywhere you want) (Xcode 8 only) add the ./SnapshotHelperXcode8.swift to your UI Test target (Objective C only) add the bridging header to your test class: #import \"MYUITests-Swift.h\" (The bridging header is named after your test target with -Swift.h appended.) In your UI Test class, click the Record button on the bottom left and record your interaction To take a snapshot, call the following between interactions Swift: snapshot(\"01LoginScreen\") Objective C: [Snapshot snapshot:@\"01LoginScreen\" timeWaitingForIdle:10]; Add the following code to your setUp() method: Swift: let app = XCUIApplication() setupSnapshot(app) app.launch() Objective C: XCUIApplication *app = [[XCUIApplication alloc] init]; [Snapshot setupSnapshot:app waitForAnimations:NO]; [app launch]; Make sure you only have one launch call in your test class, as Xcode adds one automatically on new test files. You can try the snapshot example project by cloning this repo. To quick start your UI tests, you can use the UI Test recorder. You only have to interact with the simulator, and Xcode will generate the UI Test code for you. You can find the red record button on the bottom of the screen (more information in this blog post ) Usage fastlane snapshot Your screenshots will be stored in the ./screenshots/ folder by default (or ./fastlane/screenshots if you're using fastlane ) New with Xcode 9, snapshot can run multiple simulators concurrently. This is the default behavior in order to take your screenshots as quickly as possible. This can be disabled to run each device, one at a time, by setting the :concurrent_simulators option to false . Note: While running snapshot with Xcode 9, the simulators will not be visibly spawned. So, while you won't see the simulators running your tests, they will, in fact, be taking your screenshots. If any error occurs while running the snapshot script on a device, that device will not have any screenshots, and snapshot will continue with the next device or language. To stop the flow after the first error, run fastlane snapshot --stop_after_first_error Also by default, snapshot will open the HTML after all is done. This can be skipped with the following command fastlane snapshot --stop_after_first_error --skip_open_summary There are a lot of options available that define how to build your app, for example fastlane snapshot --scheme \"UITests\" --configuration \"Release\" --sdk \"iphonesimulator\" Reinstall the app before running snapshot fastlane snapshot --reinstall_app --app_identifier \"tools.fastlane.app\" By default snapshot automatically retries running UI Tests if they fail. This is due to randomly failing UI Tests (e.g. #2517 ). You can adapt this number using fastlane snapshot --number_of_retries 3 Add photos and/or videos to the simulator before running snapshot fastlane snapshot --add_photos MyTestApp/Assets/demo.jpg --add_videos MyTestApp/Assets/demo.mp4 For a list for all available options run fastlane action snapshot After running snapshot you will get a nice summary: Snapfile All of the available options can also be stored in a configuration file called the Snapfile . Since most values will not change often for your project, it is recommended to store them there: First make sure to have a Snapfile (you get it for free when running fastlane snapshot init ) The Snapfile can contain all the options that are also available on fastlane action snapshot scheme(\"UITests\") devices([ \"iPad (7th generation)\", \"iPad Air (3rd generation)\", \"iPad Pro (11-inch)\", \"iPad Pro (12.9-inch) (3rd generation)\", \"iPad Pro (9.7-inch)\", \"iPhone 11\", \"iPhone 11 Pro\", \"iPhone 11 Pro Max\", \"iPhone 8\", \"iPhone 8 Plus\" ]) languages([ \"en-US\", \"de-DE\", \"es-ES\", [\"pt\", \"pt_BR\"] # Portuguese with Brazilian locale ]) launch_arguments([\"-username Felix\"]) # The directory in which the screenshots should be stored output_directory('./screenshots') clear_previous_screenshots(true) override_status_bar(true) add_photos([\"MyTestApp/Assets/demo.jpg\"]) Completely reset all simulators You can run this command in the terminal to delete and re-create all iOS and tvOS simulators: fastlane snapshot reset_simulators Warning : This will delete all your simulators and replace by new ones! This is useful, if you run into weird problems when running snapshot . You can use the environment variable SNAPSHOT_FORCE_DELETE to stop asking for confirmation before deleting. SNAPSHOT_FORCE_DELETE=1 fastlane snapshot reset_simulators Update snapshot helpers Some updates require the helper files to be updated. snapshot will automatically warn you and tell you how to update. Basically you can run fastlane snapshot update to update your SnapshotHelper.swift files. In case you modified your SnapshotHelper.swift and want to manually update the file, check out SnapshotHelper.swift . Launch Arguments You can provide additional arguments to your app on launch. These strings will be available in your app (e.g. not in the testing target) through ProcessInfo.processInfo.arguments . Alternatively, use user-default syntax ( -key value ) and they will be available as key-value pairs in UserDefaults.standard . launch_arguments([ \"-firstName Felix -lastName Krause\" ]) name.text = UserDefaults.standard.string(forKey: \"firstName\") // name.text = \"Felix\" snapshot includes -FASTLANE_SNAPSHOT YES , which will set a temporary user default for the key FASTLANE_SNAPSHOT , you may use this to detect when the app is run by snapshot . if UserDefaults.standard.bool(forKey: \"FASTLANE_SNAPSHOT\") { // runtime check that we are in snapshot mode } Specify multiple argument strings and snapshot will generate screenshots for each combination of arguments, devices, and languages. This is useful for comparing the same screenshots with different feature flags, dynamic text sizes, and different data sets. # Snapfile for A/B Test Comparison launch_arguments([ \"-secretFeatureEnabled YES\", \"-secretFeatureEnabled NO\" ]) Xcode Environment Variables snapshot includes FASTLANE_SNAPSHOT=YES and FASTLANE_LANGUAGE= as arguments when executing xcodebuild . This means you may use these environment variables in a custom build phase run script to do any additional configuration. How does it work? The easiest solution would be to just render the UIWindow into a file. That's not possible because UI Tests don't run on a main thread. So snapshot uses a different approach: When you run unit tests in Xcode, the reporter generates a plist file, documenting all events that occurred during the tests ( More Information ). Additionally, Xcode generates screenshots before, during and after each of these events. There is no way to manually trigger a screenshot event. The screenshots and the plist files are stored in the DerivedData directory, which snapshot stores in a temporary folder. When the user calls snapshot(...) in the UI Tests (Swift or Objective C) the script actually does a rotation to .Unknown which doesn't have any effect on the actual app, but is enough to trigger a screenshot. It has no effect to the application and is not something you would do in your tests. The goal was to find some event that a user would never trigger, so that we know it's from snapshot . On tvOS, there is no orientation so we ask for a count of app views with type \"Browser\" (which should never exist on tvOS). snapshot then iterates through all test events and check where we either did this weird rotation (on iOS) or searched for browsers (on tvOS). Once snapshot has all events triggered by snapshot it collects a ordered list of all the file names of the actual screenshots of the application. In the test output, the Swift snapshot function will print out something like this snapshot: [some random text here] snapshot finds all these entries using a regex. The number of snapshot outputs in the terminal and the number of snapshot events in the plist file should be the same. Knowing that, snapshot automatically matches these 2 lists to identify the name of each of these screenshots. They are then copied over to the output directory and separated by language and device. 2 thing have to be passed on from snapshot to the xcodebuild command line tool: The device type is passed via the destination parameter of the xcodebuild parameter The language is passed via a temporary file which is written by snapshot before running the tests and read by the UI Tests when launching the application If you find a better way to do any of this, please submit an issue on GitHub or even a pull request :+1: Radar 23062925 has been resolved with Xcode 8.3, so it's now possible to actually take screenshots from the simulator. We'll keep using the old approach for now, since many of you still want to use older versions of Xcode. Tips Check out the new fastlane documentation on how to generate screenshots Frame the screenshots If you want to add frames around the screenshots and even put a title on top, check out frameit . Available language codes ALL_LANGUAGES = [\"da\", \"de-DE\", \"el\", \"en-AU\", \"en-CA\", \"en-GB\", \"en-US\", \"es-ES\", \"es-MX\", \"fi\", \"fr-CA\", \"fr-FR\", \"id\", \"it\", \"ja\", \"ko\", \"ms\", \"nl-NL\", \"no\", \"pt-BR\", \"pt-PT\", \"ru\", \"sv\", \"th\", \"tr\", \"vi\", \"zh-Hans\", \"zh-Hant\"] To get more information about language and locale codes please read Internationalization and Localization Guide . Use a clean status bar You can set override_status_bar to true to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available. Editing the Snapfile Change syntax highlighting to Ruby . Simulator doesn't launch the application When the app dies directly after the application is launched there might be 2 problems The simulator is somehow in a broken state and you need to re-create it. You can use snapshot reset_simulators to reset all simulators (this will remove all installed apps) A restart helps very often Determine language To detect the currently used localization in your tests, access the deviceLanguage variable from SnapshotHelper.swift . Speed up snapshots A lot of time in UI tests is spent waiting for animations. You can disable UIView animations in your app to make the tests faster: if ProcessInfo().arguments.contains(\"SKIP_ANIMATIONS\") { UIView.setAnimationsEnabled(false) } This requires you to pass the launch argument like so: snapshot(launch_arguments: [\"SKIP_ANIMATIONS\"]) By default, snapshot will wait for a short time for the animations to finish. If you're skipping the animations, this wait time is unnecessary and can be skipped: setupSnapshot(app, waitForAnimations: false) snapshot Supported platforms ios, mac Author @KrauseFx 3 Examples capture_ios_screenshots snapshot # alias for \"capture_ios_screenshots\" capture_ios_screenshots( skip_open_summary: true, clean: true ) Parameters Key Description Default workspace Path the workspace file project Path the project file xcargs Pass additional arguments to xcodebuild for the test phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app devices A list of devices you want to take the screenshots from languages A list of languages which should be used [\"en-US\"] launch_arguments A list of launch arguments which should be used [\"\"] output_directory The directory where to store the screenshots * output_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false ios_version By default, the latest version should be used automatically. If you want to change it, do it here skip_open_summary Don't open the HTML summary after running snapshot false skip_helper_version_check Do not check for most recent SnapshotHelper code false clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running snapshot false reinstall_app Enabling this option will automatically uninstall the application before running it false erase_simulator Enabling this option will automatically erase the simulator before running the application false headless Enabling this option will prevent displaying the simulator window true override_status_bar Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception (Adjust 'SNAPSHOT_SIMULATOR_WAIT_FOR_BOOT_TIMEOUT' environment variable if override status bar is not working. Might be because simulator is not fully booted. Defaults to 10 seconds) false override_status_bar_arguments Fully customize the status bar by setting each option here. Requires override_status_bar to be set to true . See xcrun simctl status_bar --help localize_simulator Enabling this option will configure the Simulator's system language false dark_mode Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark) app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * add_photos A list of photos that should be added to the simulator before running the application add_videos A list of videos that should be added to the simulator before running the application html_template A path to screenshots.html template buildlog_path The directory where to store the build log * clean Should the project be cleaned before building it? false test_without_building Test without building, requires a derived data path configuration The configuration to use when building the app. Defaults to 'Release' * sdk The SDK that should be used for building the application scheme The scheme you want to use, this must be the scheme for the UI Tests number_of_retries The number of times a test can fail before snapshot should stop retrying 1 stop_after_first_error Should snapshot stop immediately after the tests completely failed on one device? false derived_data_path The directory where build products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false test_target_name The name of the target you want to test (if you desire to override the Target Application from Xcode) namespace_log_files Separate the log files per device and per language concurrent_simulators Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9 true disable_slide_to_type Disable the simulator from showing the 'Slide to type' prompt false cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false testplan The testplan associated with the scheme that should be used for testing only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * xcpretty_args DEPRECATED! Use xcodebuild_formatter: '' instead - Additional xcpretty arguments disable_xcpretty Disable xcpretty formatting of build suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The snapshot action generates the following Lane Variables: SharedValue Description SharedValues::SNAPSHOT_SCREENSHOTS_PATH The path to the screenshots To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action snapshot CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run snapshot To pass parameters, make use of the : symbol, for example fastlane run snapshot parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Snapshot"},{"location":"generated/actions/snapshot/#snapshot","text":"Alias for the capture_ios_screenshots action","title":"snapshot"},{"location":"generated/actions/snapshot/#features","text":"Create hundreds of screenshots in multiple languages on all simulators Take screenshots in multiple device simulators concurrently to cut down execution time (Xcode 9 only) Configure it once, store the configuration in git Do something else, while the computer takes the screenshots for you Integrates with fastlane and deliver Generates a beautiful web page, which shows all screenshots on all devices. This is perfect to send to QA or the marketing team snapshot automatically waits for network requests to be finished before taking a screenshot (we don't want loading images in the App Store screenshots) After snapshot successfully created new screenshots, it will generate a beautiful HTML file to get a quick overview of all screens:","title":"Features"},{"location":"generated/actions/snapshot/#why","text":"This tool automatically switches the language and device type and runs UI Tests for every combination.","title":"Why?"},{"location":"generated/actions/snapshot/#ui-tests","text":"","title":"UI Tests"},{"location":"generated/actions/snapshot/#getting-started","text":"This project uses Apple's newly announced UI Tests. We will not go into detail on how to write scripts. Here a few links to get started: WWDC 2015 Introduction to UI Tests A first look into UI Tests UI Testing in Xcode 7 HSTestingBackchannel : \u2018Cheat\u2019 by communicating directly with your app Automating App Store screenshots using fastlane snapshot and frameit","title":"Getting started"},{"location":"generated/actions/snapshot/#quick-start","text":"Create a new UI Test target in your Xcode project ( top part of this article ) Run fastlane snapshot init in your project folder Add the ./SnapshotHelper.swift to your UI Test target (You can move the file anywhere you want) (Xcode 8 only) add the ./SnapshotHelperXcode8.swift to your UI Test target (Objective C only) add the bridging header to your test class: #import \"MYUITests-Swift.h\" (The bridging header is named after your test target with -Swift.h appended.) In your UI Test class, click the Record button on the bottom left and record your interaction To take a snapshot, call the following between interactions Swift: snapshot(\"01LoginScreen\") Objective C: [Snapshot snapshot:@\"01LoginScreen\" timeWaitingForIdle:10]; Add the following code to your setUp() method: Swift: let app = XCUIApplication() setupSnapshot(app) app.launch() Objective C: XCUIApplication *app = [[XCUIApplication alloc] init]; [Snapshot setupSnapshot:app waitForAnimations:NO]; [app launch]; Make sure you only have one launch call in your test class, as Xcode adds one automatically on new test files. You can try the snapshot example project by cloning this repo. To quick start your UI tests, you can use the UI Test recorder. You only have to interact with the simulator, and Xcode will generate the UI Test code for you. You can find the red record button on the bottom of the screen (more information in this blog post )","title":"Quick Start"},{"location":"generated/actions/snapshot/#usage","text":"fastlane snapshot Your screenshots will be stored in the ./screenshots/ folder by default (or ./fastlane/screenshots if you're using fastlane ) New with Xcode 9, snapshot can run multiple simulators concurrently. This is the default behavior in order to take your screenshots as quickly as possible. This can be disabled to run each device, one at a time, by setting the :concurrent_simulators option to false . Note: While running snapshot with Xcode 9, the simulators will not be visibly spawned. So, while you won't see the simulators running your tests, they will, in fact, be taking your screenshots. If any error occurs while running the snapshot script on a device, that device will not have any screenshots, and snapshot will continue with the next device or language. To stop the flow after the first error, run fastlane snapshot --stop_after_first_error Also by default, snapshot will open the HTML after all is done. This can be skipped with the following command fastlane snapshot --stop_after_first_error --skip_open_summary There are a lot of options available that define how to build your app, for example fastlane snapshot --scheme \"UITests\" --configuration \"Release\" --sdk \"iphonesimulator\" Reinstall the app before running snapshot fastlane snapshot --reinstall_app --app_identifier \"tools.fastlane.app\" By default snapshot automatically retries running UI Tests if they fail. This is due to randomly failing UI Tests (e.g. #2517 ). You can adapt this number using fastlane snapshot --number_of_retries 3 Add photos and/or videos to the simulator before running snapshot fastlane snapshot --add_photos MyTestApp/Assets/demo.jpg --add_videos MyTestApp/Assets/demo.mp4 For a list for all available options run fastlane action snapshot After running snapshot you will get a nice summary:","title":"Usage"},{"location":"generated/actions/snapshot/#snapfile","text":"All of the available options can also be stored in a configuration file called the Snapfile . Since most values will not change often for your project, it is recommended to store them there: First make sure to have a Snapfile (you get it for free when running fastlane snapshot init ) The Snapfile can contain all the options that are also available on fastlane action snapshot scheme(\"UITests\") devices([ \"iPad (7th generation)\", \"iPad Air (3rd generation)\", \"iPad Pro (11-inch)\", \"iPad Pro (12.9-inch) (3rd generation)\", \"iPad Pro (9.7-inch)\", \"iPhone 11\", \"iPhone 11 Pro\", \"iPhone 11 Pro Max\", \"iPhone 8\", \"iPhone 8 Plus\" ]) languages([ \"en-US\", \"de-DE\", \"es-ES\", [\"pt\", \"pt_BR\"] # Portuguese with Brazilian locale ]) launch_arguments([\"-username Felix\"]) # The directory in which the screenshots should be stored output_directory('./screenshots') clear_previous_screenshots(true) override_status_bar(true) add_photos([\"MyTestApp/Assets/demo.jpg\"])","title":"Snapfile"},{"location":"generated/actions/snapshot/#update-snapshot-helpers","text":"Some updates require the helper files to be updated. snapshot will automatically warn you and tell you how to update. Basically you can run fastlane snapshot update to update your SnapshotHelper.swift files. In case you modified your SnapshotHelper.swift and want to manually update the file, check out SnapshotHelper.swift .","title":"Update snapshot helpers"},{"location":"generated/actions/snapshot/#launch-arguments","text":"You can provide additional arguments to your app on launch. These strings will be available in your app (e.g. not in the testing target) through ProcessInfo.processInfo.arguments . Alternatively, use user-default syntax ( -key value ) and they will be available as key-value pairs in UserDefaults.standard . launch_arguments([ \"-firstName Felix -lastName Krause\" ]) name.text = UserDefaults.standard.string(forKey: \"firstName\") // name.text = \"Felix\" snapshot includes -FASTLANE_SNAPSHOT YES , which will set a temporary user default for the key FASTLANE_SNAPSHOT , you may use this to detect when the app is run by snapshot . if UserDefaults.standard.bool(forKey: \"FASTLANE_SNAPSHOT\") { // runtime check that we are in snapshot mode } Specify multiple argument strings and snapshot will generate screenshots for each combination of arguments, devices, and languages. This is useful for comparing the same screenshots with different feature flags, dynamic text sizes, and different data sets. # Snapfile for A/B Test Comparison launch_arguments([ \"-secretFeatureEnabled YES\", \"-secretFeatureEnabled NO\" ])","title":"Launch Arguments"},{"location":"generated/actions/snapshot/#xcode-environment-variables","text":"snapshot includes FASTLANE_SNAPSHOT=YES and FASTLANE_LANGUAGE= as arguments when executing xcodebuild . This means you may use these environment variables in a custom build phase run script to do any additional configuration.","title":"Xcode Environment Variables"},{"location":"generated/actions/snapshot/#how-does-it-work","text":"The easiest solution would be to just render the UIWindow into a file. That's not possible because UI Tests don't run on a main thread. So snapshot uses a different approach: When you run unit tests in Xcode, the reporter generates a plist file, documenting all events that occurred during the tests ( More Information ). Additionally, Xcode generates screenshots before, during and after each of these events. There is no way to manually trigger a screenshot event. The screenshots and the plist files are stored in the DerivedData directory, which snapshot stores in a temporary folder. When the user calls snapshot(...) in the UI Tests (Swift or Objective C) the script actually does a rotation to .Unknown which doesn't have any effect on the actual app, but is enough to trigger a screenshot. It has no effect to the application and is not something you would do in your tests. The goal was to find some event that a user would never trigger, so that we know it's from snapshot . On tvOS, there is no orientation so we ask for a count of app views with type \"Browser\" (which should never exist on tvOS). snapshot then iterates through all test events and check where we either did this weird rotation (on iOS) or searched for browsers (on tvOS). Once snapshot has all events triggered by snapshot it collects a ordered list of all the file names of the actual screenshots of the application. In the test output, the Swift snapshot function will print out something like this snapshot: [some random text here] snapshot finds all these entries using a regex. The number of snapshot outputs in the terminal and the number of snapshot events in the plist file should be the same. Knowing that, snapshot automatically matches these 2 lists to identify the name of each of these screenshots. They are then copied over to the output directory and separated by language and device. 2 thing have to be passed on from snapshot to the xcodebuild command line tool: The device type is passed via the destination parameter of the xcodebuild parameter The language is passed via a temporary file which is written by snapshot before running the tests and read by the UI Tests when launching the application If you find a better way to do any of this, please submit an issue on GitHub or even a pull request :+1: Radar 23062925 has been resolved with Xcode 8.3, so it's now possible to actually take screenshots from the simulator. We'll keep using the old approach for now, since many of you still want to use older versions of Xcode.","title":"How does it work?"},{"location":"generated/actions/snapshot/#tips","text":"","title":"Tips"},{"location":"generated/actions/snapshot/#frame-the-screenshots","text":"If you want to add frames around the screenshots and even put a title on top, check out frameit .","title":"Frame the screenshots"},{"location":"generated/actions/snapshot/#available-language-codes","text":"ALL_LANGUAGES = [\"da\", \"de-DE\", \"el\", \"en-AU\", \"en-CA\", \"en-GB\", \"en-US\", \"es-ES\", \"es-MX\", \"fi\", \"fr-CA\", \"fr-FR\", \"id\", \"it\", \"ja\", \"ko\", \"ms\", \"nl-NL\", \"no\", \"pt-BR\", \"pt-PT\", \"ru\", \"sv\", \"th\", \"tr\", \"vi\", \"zh-Hans\", \"zh-Hant\"] To get more information about language and locale codes please read Internationalization and Localization Guide .","title":"Available language codes"},{"location":"generated/actions/snapshot/#use-a-clean-status-bar","text":"You can set override_status_bar to true to set the status bar to Tuesday January 9th at 9:41AM with full battery and reception. If you need more granular customization, to set a Carrier name for example, also set override_status_bar_arguments to the specific arguments to be passed to the xcrun simctl status_bar override command. Run xcrun simctl status_bar --help to see the options available.","title":"Use a clean status bar"},{"location":"generated/actions/snapshot/#editing-the-snapfile","text":"Change syntax highlighting to Ruby .","title":"Editing the Snapfile"},{"location":"generated/actions/snapshot/#determine-language","text":"To detect the currently used localization in your tests, access the deviceLanguage variable from SnapshotHelper.swift .","title":"Determine language"},{"location":"generated/actions/snapshot/#speed-up-snapshots","text":"A lot of time in UI tests is spent waiting for animations. You can disable UIView animations in your app to make the tests faster: if ProcessInfo().arguments.contains(\"SKIP_ANIMATIONS\") { UIView.setAnimationsEnabled(false) } This requires you to pass the launch argument like so: snapshot(launch_arguments: [\"SKIP_ANIMATIONS\"]) By default, snapshot will wait for a short time for the animations to finish. If you're skipping the animations, this wait time is unnecessary and can be skipped: setupSnapshot(app, waitForAnimations: false) snapshot Supported platforms ios, mac Author @KrauseFx","title":"Speed up snapshots"},{"location":"generated/actions/snapshot/#3-examples","text":"capture_ios_screenshots snapshot # alias for \"capture_ios_screenshots\" capture_ios_screenshots( skip_open_summary: true, clean: true )","title":"3 Examples"},{"location":"generated/actions/snapshot/#parameters","text":"Key Description Default workspace Path the workspace file project Path the project file xcargs Pass additional arguments to xcodebuild for the test phase. Be sure to quote the setting names and values e.g. OTHER_LDFLAGS=\"-ObjC -lstdc++\" xcconfig Use an extra XCCONFIG file to build your app devices A list of devices you want to take the screenshots from languages A list of languages which should be used [\"en-US\"] launch_arguments A list of launch arguments which should be used [\"\"] output_directory The directory where to store the screenshots * output_simulator_logs If the logs generated by the app (e.g. using NSLog, perror, etc.) in the Simulator should be written to the output_directory false ios_version By default, the latest version should be used automatically. If you want to change it, do it here skip_open_summary Don't open the HTML summary after running snapshot false skip_helper_version_check Do not check for most recent SnapshotHelper code false clear_previous_screenshots Enabling this option will automatically clear previously generated screenshots before running snapshot false reinstall_app Enabling this option will automatically uninstall the application before running it false erase_simulator Enabling this option will automatically erase the simulator before running the application false headless Enabling this option will prevent displaying the simulator window true override_status_bar Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception (Adjust 'SNAPSHOT_SIMULATOR_WAIT_FOR_BOOT_TIMEOUT' environment variable if override status bar is not working. Might be because simulator is not fully booted. Defaults to 10 seconds) false override_status_bar_arguments Fully customize the status bar by setting each option here. Requires override_status_bar to be set to true . See xcrun simctl status_bar --help localize_simulator Enabling this option will configure the Simulator's system language false dark_mode Enabling this option will configure the Simulator to be in dark mode (false for light, true for dark) app_identifier The bundle identifier of the app to uninstall (only needed when enabling reinstall_app) * add_photos A list of photos that should be added to the simulator before running the application add_videos A list of videos that should be added to the simulator before running the application html_template A path to screenshots.html template buildlog_path The directory where to store the build log * clean Should the project be cleaned before building it? false test_without_building Test without building, requires a derived data path configuration The configuration to use when building the app. Defaults to 'Release' * sdk The SDK that should be used for building the application scheme The scheme you want to use, this must be the scheme for the UI Tests number_of_retries The number of times a test can fail before snapshot should stop retrying 1 stop_after_first_error Should snapshot stop immediately after the tests completely failed on one device? false derived_data_path The directory where build products and other derived data will go result_bundle Should an Xcode result bundle be generated in the output directory false test_target_name The name of the target you want to test (if you desire to override the Target Application from Xcode) namespace_log_files Separate the log files per device and per language concurrent_simulators Take snapshots on multiple simulators concurrently. Note: This option is only applicable when running against Xcode 9 true disable_slide_to_type Disable the simulator from showing the 'Slide to type' prompt false cloned_source_packages_path Sets a custom path for Swift Package Manager dependencies skip_package_dependencies_resolution Skips resolution of Swift Package Manager dependencies false disable_package_automatic_updates Prevents packages from automatically being resolved to versions other than those recorded in the Package.resolved file false testplan The testplan associated with the scheme that should be used for testing only_testing Array of strings matching Test Bundle/Test Suite/Test Cases to run skip_testing Array of strings matching Test Bundle/Test Suite/Test Cases to skip xcodebuild_formatter xcodebuild formatter to use (ex: 'xcbeautify', 'xcbeautify --quieter', 'xcpretty', 'xcpretty -test'). Use empty string (ex: '') to disable any formatter (More information: https://docs.fastlane.tools/best-practices/xcodebuild-formatters/) * xcpretty_args DEPRECATED! Use xcodebuild_formatter: '' instead - Additional xcpretty arguments disable_xcpretty Disable xcpretty formatting of build suppress_xcode_output Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path use_system_scm Lets xcodebuild use system's scm configuration false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/snapshot/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The snapshot action generates the following Lane Variables: SharedValue Description SharedValues::SNAPSHOT_SCREENSHOTS_PATH The path to the screenshots To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/snapshot/#documentation","text":"To show the documentation in your terminal, run fastlane action snapshot","title":"Documentation"},{"location":"generated/actions/snapshot/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run snapshot To pass parameters, make use of the : symbol, for example fastlane run snapshot parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/snapshot/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/sonar/","text":"sonar Invokes sonar-scanner to programmatically run SonarQube analysis See http://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner for details. It can process unit test results if formatted as junit report as shown in xctest action. It can also integrate coverage reports in Cobertura format, which can be transformed into by the slather action. sonar Supported platforms ios, android, mac Author @c_gretzki Returns The exit code of the sonar-scanner binary 2 Examples sonar( project_key: \"name.gretzki.awesomeApp\", project_version: \"1.0\", project_name: \"iOS - AwesomeApp\", sources_path: File.expand_path(\"../AwesomeApp\") ) sonar( project_key: \"name.gretzki.awesomeApp\", project_version: \"1.0\", project_name: \"iOS - AwesomeApp\", sources_path: File.expand_path(\"../AwesomeApp\"), sonar_organization: \"myOrg\", sonar_login: \"123456abcdef\", sonar_url: \"https://sonarcloud.io\" ) Parameters Key Description Default project_configuration_path The path to your sonar project configuration file; defaults to sonar-project.properties project_key The key sonar uses to identify the project, e.g. name.gretzki.awesomeApp . Must either be specified here or inside the sonar project configuration file project_name The name of the project that gets displayed on the sonar report page. Must either be specified here or inside the sonar project configuration file project_version The project's version that gets displayed on the sonar report page. Must either be specified here or inside the sonar project configuration file sources_path Comma-separated paths to directories containing source files. Must either be specified here or inside the sonar project configuration file exclusions Comma-separated paths to directories to be excluded from the analysis project_language Language key, e.g. objc source_encoding Used encoding of source files, e.g., UTF-8 sonar_runner_args Pass additional arguments to sonar-scanner. Be sure to provide the arguments with a leading -D e.g. FL_SONAR_RUNNER_ARGS=\"-Dsonar.verbose=true\" sonar_login Pass the Sonar Login token (e.g: xxxxxxprivate_token_XXXXbXX7e) sonar_url Pass the url of the Sonar server sonar_organization Key of the organization on SonarCloud branch_name Pass the branch name which is getting scanned pull_request_branch The name of the branch that contains the changes to be merged pull_request_base The long-lived branch into which the PR will be merged pull_request_key Unique identifier of your PR. Must correspond to the key of the PR in GitHub or TFS * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action sonar CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sonar To pass parameters, make use of the : symbol, for example fastlane run sonar parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Sonar"},{"location":"generated/actions/sonar/#sonar","text":"Invokes sonar-scanner to programmatically run SonarQube analysis See http://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner for details. It can process unit test results if formatted as junit report as shown in xctest action. It can also integrate coverage reports in Cobertura format, which can be transformed into by the slather action. sonar Supported platforms ios, android, mac Author @c_gretzki Returns The exit code of the sonar-scanner binary","title":"sonar"},{"location":"generated/actions/sonar/#2-examples","text":"sonar( project_key: \"name.gretzki.awesomeApp\", project_version: \"1.0\", project_name: \"iOS - AwesomeApp\", sources_path: File.expand_path(\"../AwesomeApp\") ) sonar( project_key: \"name.gretzki.awesomeApp\", project_version: \"1.0\", project_name: \"iOS - AwesomeApp\", sources_path: File.expand_path(\"../AwesomeApp\"), sonar_organization: \"myOrg\", sonar_login: \"123456abcdef\", sonar_url: \"https://sonarcloud.io\" )","title":"2 Examples"},{"location":"generated/actions/sonar/#parameters","text":"Key Description Default project_configuration_path The path to your sonar project configuration file; defaults to sonar-project.properties project_key The key sonar uses to identify the project, e.g. name.gretzki.awesomeApp . Must either be specified here or inside the sonar project configuration file project_name The name of the project that gets displayed on the sonar report page. Must either be specified here or inside the sonar project configuration file project_version The project's version that gets displayed on the sonar report page. Must either be specified here or inside the sonar project configuration file sources_path Comma-separated paths to directories containing source files. Must either be specified here or inside the sonar project configuration file exclusions Comma-separated paths to directories to be excluded from the analysis project_language Language key, e.g. objc source_encoding Used encoding of source files, e.g., UTF-8 sonar_runner_args Pass additional arguments to sonar-scanner. Be sure to provide the arguments with a leading -D e.g. FL_SONAR_RUNNER_ARGS=\"-Dsonar.verbose=true\" sonar_login Pass the Sonar Login token (e.g: xxxxxxprivate_token_XXXXbXX7e) sonar_url Pass the url of the Sonar server sonar_organization Key of the organization on SonarCloud branch_name Pass the branch name which is getting scanned pull_request_branch The name of the branch that contains the changes to be merged pull_request_base The long-lived branch into which the PR will be merged pull_request_key Unique identifier of your PR. Must correspond to the key of the PR in GitHub or TFS * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/sonar/#documentation","text":"To show the documentation in your terminal, run fastlane action sonar","title":"Documentation"},{"location":"generated/actions/sonar/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sonar To pass parameters, make use of the : symbol, for example fastlane run sonar parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/sonar/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/sourcedocs/","text":"sourcedocs Generate docs using SourceDocs sourcedocs Supported platforms ios, mac Author @Kukurijek 2 Examples sourcedocs(output_folder: 'docs') sourcedocs(output_folder: 'docs', clean: true, reproducible: true, scheme: 'MyApp') Parameters Key Description Default all_modules Generate documentation for all modules in a Swift package spm_module Generate documentation for Swift Package Manager module module_name Generate documentation for a Swift module link_beginning The text to begin links with link_ending The text to end links with (default: .md) output_folder Output directory to clean (default: Documentation/Reference) min_acl Access level to include in documentation [private, fileprivate, internal, public, open] (default: public) module_name_path Include the module name as part of the output folder path clean Delete output folder before generating documentation collapsible Put methods, properties and enum cases inside collapsible blocks table_of_contents Generate a table of contents with properties and methods for each type reproducible Generate documentation that is reproducible: only depends on the sources scheme Create documentation for specific scheme sdk_platform Create documentation for specific sdk platform * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action sourcedocs CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sourcedocs To pass parameters, make use of the : symbol, for example fastlane run sourcedocs parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Sourcedocs"},{"location":"generated/actions/sourcedocs/#sourcedocs","text":"Generate docs using SourceDocs sourcedocs Supported platforms ios, mac Author @Kukurijek","title":"sourcedocs"},{"location":"generated/actions/sourcedocs/#2-examples","text":"sourcedocs(output_folder: 'docs') sourcedocs(output_folder: 'docs', clean: true, reproducible: true, scheme: 'MyApp')","title":"2 Examples"},{"location":"generated/actions/sourcedocs/#parameters","text":"Key Description Default all_modules Generate documentation for all modules in a Swift package spm_module Generate documentation for Swift Package Manager module module_name Generate documentation for a Swift module link_beginning The text to begin links with link_ending The text to end links with (default: .md) output_folder Output directory to clean (default: Documentation/Reference) min_acl Access level to include in documentation [private, fileprivate, internal, public, open] (default: public) module_name_path Include the module name as part of the output folder path clean Delete output folder before generating documentation collapsible Put methods, properties and enum cases inside collapsible blocks table_of_contents Generate a table of contents with properties and methods for each type reproducible Generate documentation that is reproducible: only depends on the sources scheme Create documentation for specific scheme sdk_platform Create documentation for specific sdk platform * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/sourcedocs/#documentation","text":"To show the documentation in your terminal, run fastlane action sourcedocs","title":"Documentation"},{"location":"generated/actions/sourcedocs/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sourcedocs To pass parameters, make use of the : symbol, for example fastlane run sourcedocs parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/sourcedocs/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/spaceship_logs/","text":"spaceship_logs Find, print, and copy Spaceship logs spaceship_logs Supported platforms ios, android, mac Author @joshdholtz Returns The array of Spaceship logs 5 Examples spaceship_logs spaceship_logs( copy_to_path: \"/tmp/artifacts\" ) spaceship_logs( copy_to_clipboard: true ) spaceship_logs( print_contents: true, print_paths: true ) spaceship_logs( latest: false, print_contents: true, print_paths: true ) Parameters Key Description Default latest Finds only the latest Spaceshop log file if set to true, otherwise returns all true print_contents Prints the contents of the found Spaceship log file(s) false print_paths Prints the paths of the found Spaceship log file(s) false copy_to_path Copies the found Spaceship log file(s) to a directory copy_to_clipboard Copies the contents of the found Spaceship log file(s) to the clipboard false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action spaceship_logs CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run spaceship_logs To pass parameters, make use of the : symbol, for example fastlane run spaceship_logs parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Spaceship logs"},{"location":"generated/actions/spaceship_logs/#spaceship_logs","text":"Find, print, and copy Spaceship logs spaceship_logs Supported platforms ios, android, mac Author @joshdholtz Returns The array of Spaceship logs","title":"spaceship_logs"},{"location":"generated/actions/spaceship_logs/#5-examples","text":"spaceship_logs spaceship_logs( copy_to_path: \"/tmp/artifacts\" ) spaceship_logs( copy_to_clipboard: true ) spaceship_logs( print_contents: true, print_paths: true ) spaceship_logs( latest: false, print_contents: true, print_paths: true )","title":"5 Examples"},{"location":"generated/actions/spaceship_logs/#parameters","text":"Key Description Default latest Finds only the latest Spaceshop log file if set to true, otherwise returns all true print_contents Prints the contents of the found Spaceship log file(s) false print_paths Prints the paths of the found Spaceship log file(s) false copy_to_path Copies the found Spaceship log file(s) to a directory copy_to_clipboard Copies the contents of the found Spaceship log file(s) to the clipboard false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/spaceship_logs/#documentation","text":"To show the documentation in your terminal, run fastlane action spaceship_logs","title":"Documentation"},{"location":"generated/actions/spaceship_logs/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run spaceship_logs To pass parameters, make use of the : symbol, for example fastlane run spaceship_logs parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/spaceship_logs/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/spaceship_stats/","text":"spaceship_stats Print out Spaceship stats from this session (number of request to each domain) spaceship_stats Supported platforms ios, android, mac Author @joshdholtz 1 Example spaceship_stats Parameters Key Description Default print_request_logs Print all URLs requested false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action spaceship_stats CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run spaceship_stats To pass parameters, make use of the : symbol, for example fastlane run spaceship_stats parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Spaceship stats"},{"location":"generated/actions/spaceship_stats/#spaceship_stats","text":"Print out Spaceship stats from this session (number of request to each domain) spaceship_stats Supported platforms ios, android, mac Author @joshdholtz","title":"spaceship_stats"},{"location":"generated/actions/spaceship_stats/#1-example","text":"spaceship_stats","title":"1 Example"},{"location":"generated/actions/spaceship_stats/#parameters","text":"Key Description Default print_request_logs Print all URLs requested false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/spaceship_stats/#documentation","text":"To show the documentation in your terminal, run fastlane action spaceship_stats","title":"Documentation"},{"location":"generated/actions/spaceship_stats/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run spaceship_stats To pass parameters, make use of the : symbol, for example fastlane run spaceship_stats parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/spaceship_stats/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/splunkmint/","text":"splunkmint Upload dSYM file to Splunk MINT splunkmint Supported platforms ios Author @xfreebird 1 Example splunkmint( dsym: \"My.app.dSYM.zip\", api_key: \"43564d3a\", api_token: \"e05456234c4869fb7e0b61\" ) Parameters Key Description Default dsym dSYM.zip file to upload to Splunk MINT api_key Splunk MINT App API key e.g. f57a57ca api_token Splunk MINT API token e.g. e05ba40754c4869fb7e0b61 verbose Make detailed output false upload_progress Show upload progress false proxy_username Proxy username proxy_password Proxy password proxy_address Proxy address proxy_port Proxy port * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action splunkmint CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run splunkmint To pass parameters, make use of the : symbol, for example fastlane run splunkmint parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Splunkmint"},{"location":"generated/actions/splunkmint/#splunkmint","text":"Upload dSYM file to Splunk MINT splunkmint Supported platforms ios Author @xfreebird","title":"splunkmint"},{"location":"generated/actions/splunkmint/#1-example","text":"splunkmint( dsym: \"My.app.dSYM.zip\", api_key: \"43564d3a\", api_token: \"e05456234c4869fb7e0b61\" )","title":"1 Example"},{"location":"generated/actions/splunkmint/#parameters","text":"Key Description Default dsym dSYM.zip file to upload to Splunk MINT api_key Splunk MINT App API key e.g. f57a57ca api_token Splunk MINT API token e.g. e05ba40754c4869fb7e0b61 verbose Make detailed output false upload_progress Show upload progress false proxy_username Proxy username proxy_password Proxy password proxy_address Proxy address proxy_port Proxy port * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/splunkmint/#documentation","text":"To show the documentation in your terminal, run fastlane action splunkmint","title":"Documentation"},{"location":"generated/actions/splunkmint/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run splunkmint To pass parameters, make use of the : symbol, for example fastlane run splunkmint parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/splunkmint/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/spm/","text":"spm Runs Swift Package Manager on your project spm Supported platforms ios, android, mac Author @fjcaetano, @nxtstep 3 Examples spm spm( command: \"build\", build_path: \"./build\", configuration: \"release\" ) spm( command: \"generate-xcodeproj\", xcconfig: \"Package.xcconfig\" ) Parameters Key Description Default command The swift command (one of: build, test, clean, reset, update, resolve, generate-xcodeproj, init) build enable_code_coverage Enables code coverage for the generated Xcode project when using the 'generate-xcodeproj' and the 'test' command build_path Specify build/cache directory [default: ./.build] package_path Change working directory before any other operation xcconfig Use xcconfig file to override swift package generate-xcodeproj defaults configuration Build with configuration (debug|release) [default: debug] disable_sandbox Disable using the sandbox when executing subprocesses false xcpretty_output Specifies the output type for xcpretty. eg. 'test', or 'simple' xcpretty_args Pass in xcpretty additional command line arguments (e.g. '--test --no-color' or '--tap --no-utf'), requires xcpretty_output to be specified also verbose Increase verbosity of informational output false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action spm CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run spm To pass parameters, make use of the : symbol, for example fastlane run spm parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Spm"},{"location":"generated/actions/spm/#spm","text":"Runs Swift Package Manager on your project spm Supported platforms ios, android, mac Author @fjcaetano, @nxtstep","title":"spm"},{"location":"generated/actions/spm/#3-examples","text":"spm spm( command: \"build\", build_path: \"./build\", configuration: \"release\" ) spm( command: \"generate-xcodeproj\", xcconfig: \"Package.xcconfig\" )","title":"3 Examples"},{"location":"generated/actions/spm/#parameters","text":"Key Description Default command The swift command (one of: build, test, clean, reset, update, resolve, generate-xcodeproj, init) build enable_code_coverage Enables code coverage for the generated Xcode project when using the 'generate-xcodeproj' and the 'test' command build_path Specify build/cache directory [default: ./.build] package_path Change working directory before any other operation xcconfig Use xcconfig file to override swift package generate-xcodeproj defaults configuration Build with configuration (debug|release) [default: debug] disable_sandbox Disable using the sandbox when executing subprocesses false xcpretty_output Specifies the output type for xcpretty. eg. 'test', or 'simple' xcpretty_args Pass in xcpretty additional command line arguments (e.g. '--test --no-color' or '--tap --no-utf'), requires xcpretty_output to be specified also verbose Increase verbosity of informational output false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/spm/#documentation","text":"To show the documentation in your terminal, run fastlane action spm","title":"Documentation"},{"location":"generated/actions/spm/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run spm To pass parameters, make use of the : symbol, for example fastlane run spm parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/spm/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/ssh/","text":"ssh Allows remote command execution using ssh Lets you execute remote commands via ssh using username/password or ssh-agent. If one of the commands in command-array returns non 0, it fails. ssh Supported platforms ios, android, mac Author @hjanuschka 1 Example ssh( host: \"dev.januschka.com\", username: \"root\", commands: [ \"date\", \"echo 1 > /tmp/file1\" ] ) Parameters Key Description Default username Username password Password host Hostname port Port 22 commands Commands log Log commands and output true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The ssh action generates the following Lane Variables: SharedValue Description SharedValues::SSH_STDOUT_VALUE Holds the standard output of all commands SharedValues::SSH_STDERR_VALUE Holds the standard error of all commands To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action ssh CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ssh To pass parameters, make use of the : symbol, for example fastlane run ssh parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Ssh"},{"location":"generated/actions/ssh/#ssh","text":"Allows remote command execution using ssh Lets you execute remote commands via ssh using username/password or ssh-agent. If one of the commands in command-array returns non 0, it fails. ssh Supported platforms ios, android, mac Author @hjanuschka","title":"ssh"},{"location":"generated/actions/ssh/#1-example","text":"ssh( host: \"dev.januschka.com\", username: \"root\", commands: [ \"date\", \"echo 1 > /tmp/file1\" ] )","title":"1 Example"},{"location":"generated/actions/ssh/#parameters","text":"Key Description Default username Username password Password host Hostname port Port 22 commands Commands log Log commands and output true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/ssh/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The ssh action generates the following Lane Variables: SharedValue Description SharedValues::SSH_STDOUT_VALUE Holds the standard output of all commands SharedValues::SSH_STDERR_VALUE Holds the standard error of all commands To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/ssh/#documentation","text":"To show the documentation in your terminal, run fastlane action ssh","title":"Documentation"},{"location":"generated/actions/ssh/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run ssh To pass parameters, make use of the : symbol, for example fastlane run ssh parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/ssh/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/supply/","text":"supply Alias for the upload_to_play_store action Command line tool for updating Android apps and their metadata on the Google Play Store supply uploads app metadata, screenshots, binaries, and app bundles to Google Play. You can also select tracks for builds and promote builds to production. Features \u2022 Setup \u2022 Quick Start \u2022 Commands \u2022 Uploading an APK \u2022 Uploading an AAB \u2022 Images Features Update existing Android applications on Google Play via the command line Upload new builds (APKs and AABs) Retrieve and edit metadata, such as title and description, for multiple languages Upload the app icon, promo graphics and screenshots for multiple languages Have a local copy of the metadata in your git repository Retrieve version code numbers from existing Google Play tracks Setup Setup consists of setting up your Google Developers Service Account Tip: If you see Google Play Console or Google Developer Console in your local language, add &hl=en at the end of the URL (before any #... ) to switch to English. All the links below already have this to make it easier to find the correct buttons. Note: if you face issues when following these instructions, you might want to refer to the official documentation by Google . Open the Google Play Console Click Account Details , and note the Developer Account ID listed there Enable the Google Play Developer API by selecting an existing Google Cloud Project that fits your needs and pushing ENABLE If you don't have an existing project or prefer to have a dedicated one for fastlane , create a new one here and follow the instructions Open Service Accounts on Google Cloud and select the project you'd like to use Click the CREATE SERVICE ACCOUNT button at the top of the Google Cloud Platform Console page Verify that you are on the correct Google Cloud Platform Project by looking for the Developer Account ID from earlier within the light gray text in the second input, preceding .iam.gserviceaccount.com , or by checking the project name in the navigaton bar. If not, open the picker in the top navigation bar, and find the right one. Provide a Service account name (e.g. fastlane-supply) Copy the generated email address that is noted below the Service account-ID field for later use Click DONE (don't click CREATE AND CONTINUE as the optional steps such as granting access are not needed): Click on the Actions vertical three-dot icon of the service account you just created Select Manage keys on the menu Click ADD KEY \u2192 Create New Key Make sure JSON is selected as the Key type , and click CREATE Save the file on your computer when prompted and remember where it was saved at Open the Google Play Console and select Users and Permissions Click Invite new users Paste the email address you saved for later use into the email address field Click on Account Permissions Choose the permissions you'd like this account to have. We recommend Admin (all permissions) , but you may want to manually select all checkboxes and leave out some of the Releases permissions such as Release to production, exclude devices, and use Play App Signing Click on Invite User You can use fastlane run validate_play_store_json_key json_key:/path/to/your/downloaded/file.json to test the connection to Google Play Store with the downloaded private key. Once that works, add the path to the JSON file to your Appfile : json_key_file(\"path/to/your/play-store-credentials.json\") package_name(\"my.package.name\") The path is relative to where you normally run fastlane . Migrating Google credential format (from .p12 key file to .json) In previous versions of supply, credentials to your Play Console were stored as .p12 files. Since version 0.4.0, supply now supports the recommended .json key Service Account credential files. If you wish to upgrade: follow the Setup procedure once again to make sure you create the appropriate JSON file update your fastlane configuration or your command line invocation to use the appropriate argument if necessary. Note that you don't need to take note nor pass the issuer argument anymore. The previous p12 configuration is still currently supported. Quick Start Before using supply to connect to Google Play Store, you'll need to set up your app manually first by uploading at least one build to Google Play Store. See fastlane/fastlane#14686 for more info. cd [your_project_folder] fastlane supply init Make changes to the downloaded metadata, add images, screenshots and/or an APK fastlane supply Available Commands fastlane supply : update an app with metadata, a build, images and screenshots fastlane supply init : download metadata for an existing app to a local directory fastlane action supply : show information on available commands, arguments and environment variables You can either run supply on its own and use it interactively, or you can pass arguments or specify environment variables for all the options to skip the questions. Uploading an APK To upload a new binary to Google Play, simply run fastlane supply --apk path/to/app.apk This will also upload app metadata if you previously ran fastlane supply init . To gradually roll out a new build use fastlane supply --apk path/app.apk --track beta --rollout 0.5 To set the in-app update priority level for a release, set a valid update priority (an integer value from 0 to 5) using option in_app_update_priority fastlane supply --apk path/app.apk --track beta --in_app_update_priority 3 Expansion files ( .obb ) Expansion files (obbs) found under the same directory as your APK will also be uploaded together with your APK as long as: they are identified as type 'main' or 'patch' (by containing 'main' or 'patch' in their file name) you have at most one of each type If you only want to update the APK, but keep the expansion files from the previous version on Google Play use fastlane supply --apk path/app.apk --obb_main_references_version 21 --obb_main_file_size 666154207 or fastlane supply --apk path/app.apk --obb_patch_references_version 21 --obb_patch_file_size 666154207 Uploading an AAB To upload a new Android application bundle to Google Play, simply run fastlane supply --aab path/to/app.aab This will also upload app metadata if you previously ran fastlane supply init . To gradually roll out a new build use fastlane supply --aab path/app.aab --track beta --rollout 0.5 To set the in-app update priority level for a release, set a valid update priority (an integer value from 0 to 5) using option in_app_update_priority fastlane supply --aab path/app.aab --track beta --in_app_update_priority 3 Images and Screenshots After running fastlane supply init , you will have a metadata directory. This directory contains one or more locale directories (e.g. en-US, en-GB, etc.), and inside this directory are text files such as title.txt and short_description.txt . Inside of a given locale directory is a folder called images . Here you can supply images with the following file names (extension can be png, jpg or jpeg): featureGraphic icon promoGraphic tvBanner You can also supply screenshots by creating directories within the images directory with the following names, containing PNGs or JPEGs: phoneScreenshots/ sevenInchScreenshots/ (7-inch tablets) tenInchScreenshots/ (10-inch tablets) tvScreenshots/ wearScreenshots/ You may name images anything you like, but screenshots will appear in the Play Store in alphanumerical filename order. Note that these will replace the current images and screenshots on the play store listing, not add to them. Changelogs (What's new) You can add changelog files under the changelogs/ directory for each locale. The filename should exactly match the version code of the APK that it represents. You can also provide default notes that will be used if no files match the version code by adding a default.txt file. fastlane supply init will populate changelog files from existing data on Google Play if no metadata/ directory exists when it is run. \u2514\u2500\u2500 fastlane \u2514\u2500\u2500 metadata \u2514\u2500\u2500 android \u251c\u2500\u2500 en-US \u2502 \u2514\u2500\u2500 changelogs \u2502 \u251c\u2500\u2500 default.txt \u2502 \u251c\u2500\u2500 100000.txt \u2502 \u2514\u2500\u2500 100100.txt \u2514\u2500\u2500 fr-FR \u2514\u2500\u2500 changelogs \u251c\u2500\u2500 default.txt \u2514\u2500\u2500 100100.txt Track Promotion A common Play publishing scenario might involve uploading an APK version to a test track, testing it, and finally promoting that version to production. This can be done using the --track_promote_to parameter. The --track_promote_to parameter works with the --track parameter to command the Play API to promote existing Play track APK version(s) (those active on the track identified by the --track param value) to a new track ( --track_promote_to value). Retrieve Track Release Names & Version Codes Before performing a new APK upload you may want to check existing track version codes or release names, or you may simply want to provide an informational lane that displays the currently promoted version codes or release name for the production track. You can use the google_play_track_version_codes action to retrieve existing version codes for a package and track. You can use the google_play_track_release_names action to retrieve existing release names for a package and track. For more information, see the fastlane action google_play_track_version_codes and fastlane action google_play_track_release_names help output. Migration from AndroidPublisherV2 to AndroidPublisherV3 in fastlane 2.135.0 New Options :version_name Used when uploading with :apk_path , :apk_paths , :aab_path , and :aab_paths Can be any string such (example: \"October Release\" or \"Awesome New Feature\") Defaults to the version name in app/build.gradle or AndroidManifest.xml :release_status Used when uploading with :apk_path , :apk_paths , :aab_path , and :aab_paths Can set as \"draft\" to complete the release at some other time Defaults to \"completed\" :version_code Used for :update_rollout , :track_promote_to , and uploading of meta data and screenshots :skip_upload_changelogs Changelogs were previously included with the :skip_upload_metadata but is now its own option Deprecated Options :check_superseded_tracks Google Play will automatically remove releases that are superseded now :deactivate_on_promote Google Play will automatically deactivate a release from its previous track on promote : supply Supported platforms android Author @KrauseFx 2 Examples upload_to_play_store supply # alias for \"upload_to_play_store\" Parameters Key Description Default package_name The package name of the application to use * version_name Version name (used when uploading new apks/aabs) - defaults to 'versionName' in build.gradle or AndroidManifest.xml * version_code The versionCode for which to download the generated APK * release_status Release status (used when uploading new apks/aabs) - valid values are completed, draft, halted, inProgress * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production rollout The percentage of the user fraction when uploading to the rollout track (setting to 1 will complete the rollout) metadata_path Path to the directory containing the metadata files * key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * apk Path to the APK file to upload * apk_paths An array of paths to APK files to upload aab Path to the AAB file to upload * aab_paths An array of paths to AAB files to upload skip_upload_apk Whether to skip uploading APK false skip_upload_aab Whether to skip uploading AAB false skip_upload_metadata Whether to skip uploading metadata, changelogs not included false skip_upload_changelogs Whether to skip uploading changelogs false skip_upload_images Whether to skip uploading images, screenshots not included false skip_upload_screenshots Whether to skip uploading SCREENSHOTS false sync_image_upload Whether to use sha256 comparison to skip upload of images and screenshots that are already in Play Store false track_promote_to The track to promote to. The default available tracks are: production, beta, alpha, internal track_promote_release_status Promoted track release status (used when promoting a track) - valid values are completed, draft, halted, inProgress completed validate_only Only validate changes with Google Play rather than actually publish false mapping Path to the mapping file to upload (mapping.txt or native-debug-symbols.zip alike) mapping_paths An array of paths to mapping files to upload (mapping.txt or native-debug-symbols.zip alike) root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ check_superseded_tracks DEPRECATED! Google Play does this automatically now - Check the other tracks for superseded versions and disable them false timeout Timeout for read, open, and send (in seconds) 300 deactivate_on_promote DEPRECATED! Google Play does this automatically now - When promoting to a new track, deactivate the binary in the origin track true version_codes_to_retain An array of version codes to retain when publishing a new APK changes_not_sent_for_review Indicates that the changes in this edit will not be reviewed until they are explicitly sent for review from the Google Play Console UI false rescue_changes_not_sent_for_review Catches changes_not_sent_for_review errors when an edit is committed and retries with the configuration that the error message recommended true in_app_update_priority In-app update priority for all the newly added apks in the release. Can take values between [0,5] obb_main_references_version References version of 'main' expansion file obb_main_file_size Size of 'main' expansion file in bytes obb_patch_references_version References version of 'patch' expansion file obb_patch_file_size Size of 'patch' expansion file in bytes ack_bundle_installation_warning Must be set to true if the bundle installation may trigger a warning on user devices (e.g can only be downloaded over wifi). Typically this is required for bundles over 150MB false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action supply CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run supply To pass parameters, make use of the : symbol, for example fastlane run supply parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Supply"},{"location":"generated/actions/supply/#supply","text":"Alias for the upload_to_play_store action","title":"supply"},{"location":"generated/actions/supply/#features","text":"Update existing Android applications on Google Play via the command line Upload new builds (APKs and AABs) Retrieve and edit metadata, such as title and description, for multiple languages Upload the app icon, promo graphics and screenshots for multiple languages Have a local copy of the metadata in your git repository Retrieve version code numbers from existing Google Play tracks","title":"Features"},{"location":"generated/actions/supply/#setup","text":"Setup consists of setting up your Google Developers Service Account Tip: If you see Google Play Console or Google Developer Console in your local language, add &hl=en at the end of the URL (before any #... ) to switch to English. All the links below already have this to make it easier to find the correct buttons. Note: if you face issues when following these instructions, you might want to refer to the official documentation by Google . Open the Google Play Console Click Account Details , and note the Developer Account ID listed there Enable the Google Play Developer API by selecting an existing Google Cloud Project that fits your needs and pushing ENABLE If you don't have an existing project or prefer to have a dedicated one for fastlane , create a new one here and follow the instructions Open Service Accounts on Google Cloud and select the project you'd like to use Click the CREATE SERVICE ACCOUNT button at the top of the Google Cloud Platform Console page Verify that you are on the correct Google Cloud Platform Project by looking for the Developer Account ID from earlier within the light gray text in the second input, preceding .iam.gserviceaccount.com , or by checking the project name in the navigaton bar. If not, open the picker in the top navigation bar, and find the right one. Provide a Service account name (e.g. fastlane-supply) Copy the generated email address that is noted below the Service account-ID field for later use Click DONE (don't click CREATE AND CONTINUE as the optional steps such as granting access are not needed): Click on the Actions vertical three-dot icon of the service account you just created Select Manage keys on the menu Click ADD KEY \u2192 Create New Key Make sure JSON is selected as the Key type , and click CREATE Save the file on your computer when prompted and remember where it was saved at Open the Google Play Console and select Users and Permissions Click Invite new users Paste the email address you saved for later use into the email address field Click on Account Permissions Choose the permissions you'd like this account to have. We recommend Admin (all permissions) , but you may want to manually select all checkboxes and leave out some of the Releases permissions such as Release to production, exclude devices, and use Play App Signing Click on Invite User You can use fastlane run validate_play_store_json_key json_key:/path/to/your/downloaded/file.json to test the connection to Google Play Store with the downloaded private key. Once that works, add the path to the JSON file to your Appfile : json_key_file(\"path/to/your/play-store-credentials.json\") package_name(\"my.package.name\") The path is relative to where you normally run fastlane .","title":"Setup"},{"location":"generated/actions/supply/#quick-start","text":"Before using supply to connect to Google Play Store, you'll need to set up your app manually first by uploading at least one build to Google Play Store. See fastlane/fastlane#14686 for more info. cd [your_project_folder] fastlane supply init Make changes to the downloaded metadata, add images, screenshots and/or an APK fastlane supply","title":"Quick Start"},{"location":"generated/actions/supply/#available-commands","text":"fastlane supply : update an app with metadata, a build, images and screenshots fastlane supply init : download metadata for an existing app to a local directory fastlane action supply : show information on available commands, arguments and environment variables You can either run supply on its own and use it interactively, or you can pass arguments or specify environment variables for all the options to skip the questions.","title":"Available Commands"},{"location":"generated/actions/supply/#uploading-an-apk","text":"To upload a new binary to Google Play, simply run fastlane supply --apk path/to/app.apk This will also upload app metadata if you previously ran fastlane supply init . To gradually roll out a new build use fastlane supply --apk path/app.apk --track beta --rollout 0.5 To set the in-app update priority level for a release, set a valid update priority (an integer value from 0 to 5) using option in_app_update_priority fastlane supply --apk path/app.apk --track beta --in_app_update_priority 3","title":"Uploading an APK"},{"location":"generated/actions/supply/#uploading-an-aab","text":"To upload a new Android application bundle to Google Play, simply run fastlane supply --aab path/to/app.aab This will also upload app metadata if you previously ran fastlane supply init . To gradually roll out a new build use fastlane supply --aab path/app.aab --track beta --rollout 0.5 To set the in-app update priority level for a release, set a valid update priority (an integer value from 0 to 5) using option in_app_update_priority fastlane supply --aab path/app.aab --track beta --in_app_update_priority 3","title":"Uploading an AAB"},{"location":"generated/actions/supply/#images-and-screenshots","text":"After running fastlane supply init , you will have a metadata directory. This directory contains one or more locale directories (e.g. en-US, en-GB, etc.), and inside this directory are text files such as title.txt and short_description.txt . Inside of a given locale directory is a folder called images . Here you can supply images with the following file names (extension can be png, jpg or jpeg): featureGraphic icon promoGraphic tvBanner You can also supply screenshots by creating directories within the images directory with the following names, containing PNGs or JPEGs: phoneScreenshots/ sevenInchScreenshots/ (7-inch tablets) tenInchScreenshots/ (10-inch tablets) tvScreenshots/ wearScreenshots/ You may name images anything you like, but screenshots will appear in the Play Store in alphanumerical filename order. Note that these will replace the current images and screenshots on the play store listing, not add to them.","title":"Images and Screenshots"},{"location":"generated/actions/supply/#changelogs-whats-new","text":"You can add changelog files under the changelogs/ directory for each locale. The filename should exactly match the version code of the APK that it represents. You can also provide default notes that will be used if no files match the version code by adding a default.txt file. fastlane supply init will populate changelog files from existing data on Google Play if no metadata/ directory exists when it is run. \u2514\u2500\u2500 fastlane \u2514\u2500\u2500 metadata \u2514\u2500\u2500 android \u251c\u2500\u2500 en-US \u2502 \u2514\u2500\u2500 changelogs \u2502 \u251c\u2500\u2500 default.txt \u2502 \u251c\u2500\u2500 100000.txt \u2502 \u2514\u2500\u2500 100100.txt \u2514\u2500\u2500 fr-FR \u2514\u2500\u2500 changelogs \u251c\u2500\u2500 default.txt \u2514\u2500\u2500 100100.txt","title":"Changelogs (What's new)"},{"location":"generated/actions/supply/#track-promotion","text":"A common Play publishing scenario might involve uploading an APK version to a test track, testing it, and finally promoting that version to production. This can be done using the --track_promote_to parameter. The --track_promote_to parameter works with the --track parameter to command the Play API to promote existing Play track APK version(s) (those active on the track identified by the --track param value) to a new track ( --track_promote_to value).","title":"Track Promotion"},{"location":"generated/actions/supply/#retrieve-track-release-names-version-codes","text":"Before performing a new APK upload you may want to check existing track version codes or release names, or you may simply want to provide an informational lane that displays the currently promoted version codes or release name for the production track. You can use the google_play_track_version_codes action to retrieve existing version codes for a package and track. You can use the google_play_track_release_names action to retrieve existing release names for a package and track. For more information, see the fastlane action google_play_track_version_codes and fastlane action google_play_track_release_names help output.","title":"Retrieve Track Release Names & Version Codes"},{"location":"generated/actions/supply/#migration-from-androidpublisherv2-to-androidpublisherv3-in-fastlane-21350","text":"","title":"Migration from AndroidPublisherV2 to AndroidPublisherV3 in fastlane 2.135.0"},{"location":"generated/actions/supply/#2-examples","text":"upload_to_play_store supply # alias for \"upload_to_play_store\"","title":"2 Examples"},{"location":"generated/actions/supply/#parameters","text":"Key Description Default package_name The package name of the application to use * version_name Version name (used when uploading new apks/aabs) - defaults to 'versionName' in build.gradle or AndroidManifest.xml * version_code The versionCode for which to download the generated APK * release_status Release status (used when uploading new apks/aabs) - valid values are completed, draft, halted, inProgress * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production rollout The percentage of the user fraction when uploading to the rollout track (setting to 1 will complete the rollout) metadata_path Path to the directory containing the metadata files * key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * apk Path to the APK file to upload * apk_paths An array of paths to APK files to upload aab Path to the AAB file to upload * aab_paths An array of paths to AAB files to upload skip_upload_apk Whether to skip uploading APK false skip_upload_aab Whether to skip uploading AAB false skip_upload_metadata Whether to skip uploading metadata, changelogs not included false skip_upload_changelogs Whether to skip uploading changelogs false skip_upload_images Whether to skip uploading images, screenshots not included false skip_upload_screenshots Whether to skip uploading SCREENSHOTS false sync_image_upload Whether to use sha256 comparison to skip upload of images and screenshots that are already in Play Store false track_promote_to The track to promote to. The default available tracks are: production, beta, alpha, internal track_promote_release_status Promoted track release status (used when promoting a track) - valid values are completed, draft, halted, inProgress completed validate_only Only validate changes with Google Play rather than actually publish false mapping Path to the mapping file to upload (mapping.txt or native-debug-symbols.zip alike) mapping_paths An array of paths to mapping files to upload (mapping.txt or native-debug-symbols.zip alike) root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ check_superseded_tracks DEPRECATED! Google Play does this automatically now - Check the other tracks for superseded versions and disable them false timeout Timeout for read, open, and send (in seconds) 300 deactivate_on_promote DEPRECATED! Google Play does this automatically now - When promoting to a new track, deactivate the binary in the origin track true version_codes_to_retain An array of version codes to retain when publishing a new APK changes_not_sent_for_review Indicates that the changes in this edit will not be reviewed until they are explicitly sent for review from the Google Play Console UI false rescue_changes_not_sent_for_review Catches changes_not_sent_for_review errors when an edit is committed and retries with the configuration that the error message recommended true in_app_update_priority In-app update priority for all the newly added apks in the release. Can take values between [0,5] obb_main_references_version References version of 'main' expansion file obb_main_file_size Size of 'main' expansion file in bytes obb_patch_references_version References version of 'patch' expansion file obb_patch_file_size Size of 'patch' expansion file in bytes ack_bundle_installation_warning Must be set to true if the bundle installation may trigger a warning on user devices (e.g can only be downloaded over wifi). Typically this is required for bundles over 150MB false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/supply/#documentation","text":"To show the documentation in your terminal, run fastlane action supply","title":"Documentation"},{"location":"generated/actions/supply/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run supply To pass parameters, make use of the : symbol, for example fastlane run supply parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/supply/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/swiftlint/","text":"swiftlint Run swift code validation using SwiftLint swiftlint Supported platforms ios, mac Author @KrauseFx 1 Example swiftlint( mode: :lint, # SwiftLint mode: :lint (default) or :autocorrect path: \"/path/to/lint\", # Specify path to lint (optional) output_file: \"swiftlint.result.json\", # The path of the output file (optional) config_file: \".swiftlint-ci.yml\", # The path of the configuration file (optional) files: [# List of files to process (optional) \"AppDelegate.swift\", \"path/to/project/Model.swift\" ], raise_if_swiftlint_error: true, # Allow fastlane to raise an error if swiftlint fails ignore_exit_status: true # Allow fastlane to continue even if SwiftLint returns a non-zero exit status ) Parameters Key Description Default mode SwiftLint mode: :lint, :fix, :autocorrect or :analyze :lint path Specify path to lint output_file Path to output SwiftLint result config_file Custom configuration file of SwiftLint strict Fail on warnings? (true/false) false files List of files to process ignore_exit_status Ignore the exit status of the SwiftLint command, so that serious violations don't fail the build (true/false) false raise_if_swiftlint_error Raises an error if swiftlint fails, so you can fail CI/CD jobs if necessary (true/false) false reporter Choose output reporter. Available: xcode, json, csv, checkstyle, codeclimate, junit, html, emoji, sonarqube, markdown, github-actions-logging quiet Don't print status logs like 'Linting ' & 'Done linting' false executable Path to the swiftlint executable on your machine format Format code when mode is :autocorrect false no_cache Ignore the cache when mode is :autocorrect or :lint false compiler_log_path Compiler log path when mode is :analyze * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action swiftlint CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run swiftlint To pass parameters, make use of the : symbol, for example fastlane run swiftlint parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Swiftlint"},{"location":"generated/actions/swiftlint/#swiftlint","text":"Run swift code validation using SwiftLint swiftlint Supported platforms ios, mac Author @KrauseFx","title":"swiftlint"},{"location":"generated/actions/swiftlint/#1-example","text":"swiftlint( mode: :lint, # SwiftLint mode: :lint (default) or :autocorrect path: \"/path/to/lint\", # Specify path to lint (optional) output_file: \"swiftlint.result.json\", # The path of the output file (optional) config_file: \".swiftlint-ci.yml\", # The path of the configuration file (optional) files: [# List of files to process (optional) \"AppDelegate.swift\", \"path/to/project/Model.swift\" ], raise_if_swiftlint_error: true, # Allow fastlane to raise an error if swiftlint fails ignore_exit_status: true # Allow fastlane to continue even if SwiftLint returns a non-zero exit status )","title":"1 Example"},{"location":"generated/actions/swiftlint/#parameters","text":"Key Description Default mode SwiftLint mode: :lint, :fix, :autocorrect or :analyze :lint path Specify path to lint output_file Path to output SwiftLint result config_file Custom configuration file of SwiftLint strict Fail on warnings? (true/false) false files List of files to process ignore_exit_status Ignore the exit status of the SwiftLint command, so that serious violations don't fail the build (true/false) false raise_if_swiftlint_error Raises an error if swiftlint fails, so you can fail CI/CD jobs if necessary (true/false) false reporter Choose output reporter. Available: xcode, json, csv, checkstyle, codeclimate, junit, html, emoji, sonarqube, markdown, github-actions-logging quiet Don't print status logs like 'Linting ' & 'Done linting' false executable Path to the swiftlint executable on your machine format Format code when mode is :autocorrect false no_cache Ignore the cache when mode is :autocorrect or :lint false compiler_log_path Compiler log path when mode is :analyze * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/swiftlint/#documentation","text":"To show the documentation in your terminal, run fastlane action swiftlint","title":"Documentation"},{"location":"generated/actions/swiftlint/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run swiftlint To pass parameters, make use of the : symbol, for example fastlane run swiftlint parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/swiftlint/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/sync_code_signing/","text":"sync_code_signing Easily sync your certificates and profiles across your team (via match ) Easily sync your certificates and profiles across your team A new approach to iOS and macOS code signing: Share one code signing identity across your development team to simplify your codesigning setup and prevent code signing issues. match is the implementation of the codesigning.guide concept . match creates all required certificates & provisioning profiles and stores them in a separate git repository, Google Cloud, or Amazon S3. Every team member with access to the selected storage can use those credentials for code signing. match also automatically repairs broken and expired credentials. It's the easiest way to share signing credentials across teams More information on how to get started with codesigning Why? \u2022 Usage \u2022 Is this secure? match is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Why match? Before starting to use match , make sure to read the codesigning.guide : When deploying an app to the App Store, beta testing service or even installing it on a device, most development teams have separate code signing identities for every member. This results in dozens of profiles including a lot of duplicates. You have to manually renew and download the latest set of provisioning profiles every time you add a new device or a certificate expires. Additionally this requires spending a lot of time when setting up a new machine that will build your app. A new approach Share one code signing identity across your development team to simplify your setup and prevent code signing issues. What if there was a central place where your code signing identity and profiles are kept, so anyone in the team can access them during the build process? For more information about the concept, visit codesigning.guide . Why not let Xcode handle all this? You have full control over what happens You have access to all the certificates and profiles, which are all securely stored in git You share one code signing identity across the team to have fewer certificates and profiles Xcode sometimes revokes certificates which breaks your setup causing failed builds More predictable builds by settings profiles in an explicit way instead of using the Automatic setting It just works\u2122 What does match do for you? match \ud83d\udd04 Automatically sync your iOS and macOS keys and profiles across all your team members using git \ud83d\udce6 Handle all the heavy lifting of creating and storing your certificates and profiles \ud83d\udcbb Setup codesigning on a new machine in under a minute \ud83c\udfaf Designed to work with apps with multiple targets and bundle identifiers \ud83d\udd12 You have full control over your files and Git repo, no third party service involved \u2728 Provisioning profile will always match the correct certificate \ud83d\udca5 Easily reset your existing profiles and certificates if your current account has expired or invalid profiles \u267b\ufe0f Automatically renew your provisioning profiles to include all your devices using the --force option \ud83d\udc65 Support for multiple Apple accounts and multiple teams \u2728 Tightly integrated with fastlane to work seamlessly with gym and other build tools Usage Setup Optional: Create a new, shared Apple Developer Portal account , something like office@company.com , that will be shared across your team from now on (for more information visit codesigning.guide ) Run the following in your project folder to start using match : fastlane match init You'll be asked if you want to store your code signing identities inside a Git repo , Google Cloud or Amazon S3 . Git Storage Use Git Storage to store all code signing identities in a private git repo, owned and operated by you. The files will be encrypted using OpenSSL. First, enter the URL to your private (!) Git repo (You can create one for free on e.g. GitHub or BitBucket ). The URL you enter can be either a https:// or a git URL. fastlane match init won't read or modify your certificates or profiles yet, and also won't validate your git URL. This will create a Matchfile in your current directory (or in your ./fastlane/ folder). Example content (for more advanced setups check out the fastlane section ): git_url(\"https://github.com/fastlane/certificates\") app_identifier(\"tools.fastlane.app\") username(\"user@fastlane.tools\") Git Storage on GitHub If your machine is currently using SSH to authenticate with GitHub, you'll want to use a git URL, otherwise, you may see an authentication error when you attempt to use match. Alternatively, you can set a basic authorization for match : Using parameter: match(git_basic_authorization: '') Using environment variable: ENV['MATCH_GIT_BASIC_AUTHORIZATION'] = '' match To generate your base64 key according to RFC 7617 , run this: echo -n your_github_username:your_personal_access_token | base64 You can find more information about GitHub basic authentication and personal token generation here: https://developer.github.com/v3/auth/#basic-authentication Git Storage on GitHub - Deploy keys If your machine does not have a private key set up for your certificates repository, you can give match a path for one: Using parameter: match(git_private_key: '') Using environment variable: ENV['MATCH_GIT_PRIVATE_KEY'] = '' match You can find more information about GitHub basic authentication and personal token generation here: https://developer.github.com/v3/auth/#basic-authentication Git Storage on Azure DevOps If you're running a pipeline on Azure DevOps and using git storage in a another repository on the same project, you might want to use bearer token authentication. Using parameter: match(git_bearer_authorization: '') Using environment variable: ENV['MATCH_GIT_BEARER_AUTHORIZATION'] = '' match You can find more information about this use case here: https://docs.microsoft.com/en-us/azure/devops/pipelines/repos/azure-repos-git?view=azure-devops&tabs=yaml#authorize-access-to-your-repositories Google Cloud Storage Use Google Cloud Storage for a fully hosted solution for your code signing identities. Certificates are stored on Google Cloud, encrypted using Google managed keys. Everything will be stored on your Google account, inside a storage bucket you provide. You can also directly access the files using the web console. This will create a Matchfile in your current directory (or in your ./fastlane/ folder). Example content (for more advanced setups check out the fastlane section ): google_cloud_bucket_name(\"major-key-certificates\") Amazon S3 Use Amazon S3 for a fully hosted solution for your code signing identities. Certificates are stored on S3, inside a storage bucket you provide. You can also directly access the files using the web console. This will create a Matchfile in your current directory (or in your ./fastlane/ folder). Example content (for more advanced setups check out the fastlane section ): s3_bucket(\"ios-certificates\") Multiple teams match can store the codesigning files for multiple development teams: Git Storage Use one git branch per team. match also supports storing certificates of multiple teams in one repo, by using separate git branches. If you work in multiple teams, make sure to set the git_branch parameter to a unique value per team. From there, match will automatically create and use the specified branch for you. match(git_branch: \"team1\", username: \"user@team1.com\") match(git_branch: \"team2\", username: \"user@team2.com\") Google Cloud or Amazon S3 Storage If you use Google Cloud or Amazon S3 Storage, you don't need to do anything manually. Just use Google Cloud or Amazon S3 Storage, and the top level folder will be the team ID. Run Before running match for the first time, you should consider clearing your existing profiles and certificates using the match nuke command . After running fastlane match init you can run the following to generate new certificates and profiles: fastlane match appstore fastlane match development This will create a new certificate and provisioning profile (if required) and store them in your selected storage. If you previously ran match with the configured storage it will automatically install the existing profiles from your storage. The provisioning profiles are installed in ~/Library/MobileDevice/Provisioning Profiles while the certificates and private keys are installed in your Keychain. To get a more detailed output of what match is doing use fastlane match --verbose For a list of all available options run fastlane action match Handle multiple targets match can use the same one Git repository, Google Cloud, or Amazon S3 Storage for all bundle identifiers. If you have several targets with different bundle identifiers, supply them as a comma-separated list: fastlane match appstore -a tools.fastlane.app,tools.fastlane.app.watchkitapp You can make this even easier using fastlane by creating a certificates lane like this: lane :certificates do match(app_identifier: [\"tools.fastlane.app\", \"tools.fastlane.app.watchkitapp\"]) end Then all your team has to do is run fastlane certificates and the keys, certificates and profiles for all targets will be synced. Handle multiple apps per developer/distribution certificate If you want to use a single developer and/or distribution certificate for multiple apps belonging to the same development team, you may use the same signing identities repository and branch to store the signing identities for your apps: Matchfile example for both App #1 and #2: git_url(\"https://github.com/example/example-repo.git\") git_branch(\"master\") match will reuse certificates and will create separate provisioning profiles for each app. Passphrase Git Repo storage only When running match for the first time on a new machine, it will ask you for the passphrase for the Git repository. This is an additional layer of security: each of the files will be encrypted using openssl . Make sure to remember the password, as you'll need it when you run match on a different machine. To set the passphrase to decrypt your profiles using an environment variable (and avoid the prompt) use MATCH_PASSWORD . Migrate from Git Repo to Google Cloud If you're already using a Git Repo, but would like to switch to using Google Cloud Storage, run the following command to automatically migrate all your existing code signing identities and provisioning profiles fastlane match migrate After a successful migration you can safely delete your Git repo. Google Cloud access control Google Cloud Storage only There are two cases for reading and writing certificates stored in a Google Cloud storage bucket: Continuous integration jobs. These will authenticate to your Google Cloud project via a service account, and use a gc_keys.json file as credentials. Developers on a local workstation. In this case, you should choose whether everyone on your team will create their own gc_keys.json file, or whether you want to manage access to the bucket directly using your developers' Google accounts. When running fastlane match init the first time, the setup process will give you the option to create your gc_keys.json file. This file contains the authentication credentials needed to access your Google Cloud storage bucket. Make sure to keep that file secret and never add it to version control. We recommend adding gc_keys.json to your .gitignore Managing developer access via keys If you want to manage developer access to your certificates via authentication keys, every developer should create their own gc_keys.json and add the file to all their work machines. This will give the admin full control over who has read/write access to the given Storage bucket. At the same time it allows your team to revoke a single key if a file gets compromised. Managing developer access via Google accounts If your developers already have Google accounts and access to your Google Cloud project, you can also manage access to the storage bucket via Cloud Identity and Access Management (IAM) . Just set up individual developer accounts or an entire Google Group containing your team as readers and writers on your storage bucket. You can then specify the Google Cloud project id containing your storage bucket in your Matchfile : storage_mode(\"google_cloud\") google_cloud_bucket_name(\"my-app-certificates\") google_cloud_project_id(\"my-app-project\") This lets developers on your team use Application Default Credentials when accessing your storage bucket. After installing the Google Cloud SDK , they only need to run the following command once: gcloud auth application-default login ... and log in with their Google account. Then, when they run fastlane match , match will use these credentials to read from and write to the storage bucket. New machine To set up the certificates and provisioning profiles on a new machine, you just run the same command using: fastlane match development You can also run match in a readonly mode to be sure it won't create any new certificates or profiles. fastlane match development --readonly We recommend to always use readonly mode when running fastlane on CI systems. This can be done using lane :beta do match(type: \"appstore\", readonly: is_ci) gym(scheme: \"Release\") end Access Control A benefit of using match is that it enables you to give the developers of your team access to the code signing certificates without having to give everyone access to the Developer Portal: Run match to store the certificates in a Git repo or Google Cloud Storage Grant access to the Git repo / Google Cloud Storage Bucket to your developers and give them the passphrase (for git storage) The developers can now run match which will install the latest code signing profiles so they can build and sign the application without having to have access to the Apple Developer Portal Every time you run match to update the profiles (e.g. add a new device), all your developers will automatically get the latest profiles when running match If you decide to run match without access to the Developer Portal, make sure to use the --readonly option so that the commands don't ask you for the password to the Developer Portal. The advantage of this approach is that no one in your team will revoke a certificate by mistake, while having all code signing secrets in one location. Folder structure After running match for the first time, your Git repo or Google Cloud bucket will contain 2 directories: The certs folder contains all certificates with their private keys The profiles folder contains all provisioning profiles Additionally, match creates a nice repo README.md for you, making it easy to onboard new team members: In the case of Google Cloud, the top level folder will be the team ID. fastlane Add match to your Fastfile to automatically fetch the latest code signing certificates with fastlane . match(type: \"appstore\") match(type: \"development\") match(type: \"adhoc\", app_identifier: \"tools.fastlane.app\") match(type: \"enterprise\", app_identifier: \"tools.fastlane.app\") # _match_ should be called before building the app with _gym_ gym # ... Registering new devices By using match , you'll save a lot of time every time you add new device to your Ad Hoc or Development profiles. Use match in combination with the register_devices action. lane :beta do register_devices(devices_file: \"./devices.txt\") match(type: \"adhoc\", force_for_new_devices: true) end By using the force_for_new_devices parameter, match will check if the (enabled) device count has changed since the last time you ran match , and automatically re-generate the provisioning profile if necessary. You can also use force: true to re-generate the provisioning profile on each run. Important: The force_for_new_devices parameter is ignored for App Store provisioning profiles since they don't contain any device information. If you're not using Fastfile , you can also use the force_for_new_devices option from the command line: fastlane match adhoc --force_for_new_devices Templates (aka: custom entitlements) match can generate profiles that contain custom entitlements by passing in the entitlement's name with the template_name parameter. match(type: \"development\", template_name: \"Apple Pay Pass Suppression Development\") Setup Xcode project Docs on how to set up your Xcode project To build from the command line using fastlane match automatically pre-fills environment variables with the UUIDs of the correct provisioning profiles, ready to be used in your Xcode project. More information about how to setup your Xcode project can be found here To build from Xcode manually This is useful when installing your application on your device using the Development profile. You can statically select the right provisioning profile in your Xcode project (the name will be match Development tools.fastlane.app ). Docs on how to set up your Xcode project Continuous Integration Git repo access There is one tricky part of setting up a CI system to work with match , which is enabling the CI to access the repo. Usually you'd just add your CI's public ssh key as a deploy key to your match repo, but since your CI will already likely be using its public ssh key to access the codebase repo, you won't be able to do that . Some repo hosts might allow you to use the same deploy key for different repos, but GitHub will not. If your host does, you don't need to worry about this, just add your CI's public ssh key as a deploy key for your match repo and scroll down to \" Encryption password \". There are a few ways around this: Create a new account on your repo host with read-only access to your match repo. Bitrise have a good description of this here . Some CIs allow you to upload your signing credentials manually, but obviously this means that you'll have to re-upload the profiles/keys/certs each time they change. Neither solution is pretty. It's one of those trade-off things. Do you care more about not having an extra account sitting around, or do you care more about having the :sparkles: of auto-syncing of credentials. Git repo encryption password Once you've decided which approach to take, all that's left to do is to set your encryption password as secret environment variable named MATCH_PASSWORD . match will pick this up when it's run. Google Cloud Storage access Accessing Google Cloud Storage from your CI system requires you to provide the gc_keys.json file as part of your build. How you implement this is your decision. You can inject that file during build time. Amazon S3 Storage access Accessing Amazon S3 Storage from your CI system requires you to provide the s3_region , s3_access_key , s3_secret_access_key and s3_bucket options (or environment variables), with keys that has read access to the bucket. Nuke If you never really cared about code signing and have a messy Apple Developer account with a lot of invalid, expired or Xcode managed profiles/certificates, you can use the match nuke command to revoke your certificates and provisioning profiles. Don't worry, apps that are already available in the App Store / TestFlight will still work. Builds distributed via Ad Hoc or Enterprise will be disabled after nuking your account, so you'll have to re-upload a new build. After clearing your account you'll start from a clean state, and you can run match to generate your certificates and profiles again. To revoke all certificates and provisioning profiles for a specific environment: fastlane match nuke development fastlane match nuke distribution fastlane match nuke enterprise You'll have to confirm a list of profiles / certificates that will be deleted. Advanced Git Storage features Change Password To change the password of your repo and therefore decrypting and encrypting all files run: fastlane match change_password You'll be asked for the new password on all your machines on the next run. Import To import and encrypt a certificate ( .cer ), the private key ( .p12 ) and the provisioning profiles ( .mobileprovision or .provisionprofile ) into the match repo run: fastlane match import You'll be prompted for the certificate ( .cer ), the private key ( .p12 ) and the provisioning profiles ( .mobileprovision or .provisionprofile ) paths. match will first validate the certificate ( .cer ) against the Developer Portal before importing the certificate, the private key and the provisioning profiles into the specified match repository. However if there is no access to the developer portal but there are certificates, private keys and profiles provided, you can use the skip_certificate_matching option to tell match not to verify the certificates. Like this: fastlane match import --skip_certificate_matching true This will skip login to Apple Developer Portal and will import the provided certificate, private key and profile directly to the certificates repo. Please be careful when using this option and ensure the certificates and profiles match the type (development, adhoc, appstore, enterprise, developer_id) and are not revoked or expired. Manual Decrypt If you want to manually decrypt a file you can. openssl aes-256-cbc -k \"\" -in \"\" -out \"\" -a -d -md [md5|sha256] Note: You may need to swap double quotes \" for single quotes ' if your match password contains an exclamation mark ! . Export Distribution Certificate and Private Key as Single .p12 File match stores the certificate ( .cer ) and the private key ( .p12 ) files separately. The following steps will repackage the separate certificate and private key into a single .p12 file. Decrypt your cert found in certs//.cer as a pem file: openssl aes-256-cbc -k \"\" -in \"certs//.cer\" -out \"cert.der\" -a -d -md [md5|sha256] openssl x509 -inform der -in cert.der -out cert.pem Decrypt your private key found in certs//.p12 as a pem file: openssl aes-256-cbc -k \"\" -in \"certs/distribution/.p12\" -out \"key.pem\" -a -d -md [md5|sha256] Generate an encrypted p12 file with the same or new password: openssl pkcs12 -export -out \"cert.p12\" -inkey \"key.pem\" -in \"cert.pem\" -password pass: Is this secure? Git Both your keys and provisioning profiles are encrypted using OpenSSL using a passphrase. Storing your private keys in a Git repo may sound off-putting at first. We did an analysis of potential security issues, see section below. Google Cloud Storage All your keys and provisioning profiles are encrypted using Google managed keys. What could happen if someone stole a private key? If attackers would have your certificate and provisioning profile, they could codesign an application with the same bundle identifier. What's the worst that could happen for each of the profile types? App Store Profiles An App Store profile can't be used for anything as long as it's not re-signed by Apple. The only way to get an app resigned is to submit an app for review which could take anywhere from 24 hours to a few days (checkout appreviewtimes.com for up-to-date expectations). Attackers could only submit an app for review, if they also got access to your App Store Connect credentials (which are not stored in git, but in your local keychain). Additionally you get an email notification every time a build gets uploaded to cancel the submission even before your app gets into the review stage. Development and Ad Hoc Profiles In general those profiles are harmless as they can only be used to install a signed application on a small subset of devices. To add new devices, the attacker would also need your Apple Developer Portal credentials (which are not stored in git, but in your local keychain). Enterprise Profiles Attackers could use an In-House profile to distribute signed application to a potentially unlimited number of devices. All this would run under your company name and it could eventually lead to Apple revoking your In-House account. However it is very easy to revoke a certificate to remotely break the app on all devices. Because of the potentially dangerous nature of In-House profiles please use match with enterprise profiles with caution, ensure your git repository is private and use a secure password. To sum up You have full control over the access list of your Git repo, no third party service involved Even if your certificates are leaked, they can't be used to cause any harm without your App Store Connect login credentials Use In-House enterprise profile with match with caution If you use GitHub or Bitbucket we encourage enabling 2 factor authentication for all accounts that have access to the certificates repo The complete source code of match is fully open source on GitHub sync_code_signing Supported platforms ios, mac Author @KrauseFx 4 Examples sync_code_signing(type: \"appstore\", app_identifier: \"tools.fastlane.app\") sync_code_signing(type: \"development\", readonly: true) sync_code_signing(app_identifier: [\"tools.fastlane.app\", \"tools.fastlane.sleepy\"]) match # alias for \"sync_code_signing\" Parameters Key Description Default type Define the profile type, can be appstore, adhoc, development, enterprise, developer_id, mac_installer_distribution, developer_id_installer development additional_cert_types Create additional cert types needed for macOS installers (valid values: mac_installer_distribution, developer_id_installer) readonly Only fetch existing certificates and profiles, don't generate new ones false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * skip_provisioning_profiles Skip syncing provisioning profiles false app_identifier The bundle identifier(s) of your app (comma-separated string or array of strings) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * storage_mode Define where you want to store your certificates git git_url URL to the git repo containing all the certificates git_branch Specific git branch to use master git_full_name git user full name to commit git_user_email git user email to commit shallow_clone Make a shallow clone of the repository (truncate the history to 1 revision) false clone_branch_directly Clone just the branch specified, instead of the whole repo. This requires that the branch already exists. Otherwise the command will fail false git_basic_authorization Use a basic authorization header to access the git repo (e.g.: access via HTTPS, GitHub Actions, etc), usually a string in Base64 git_bearer_authorization Use a bearer authorization header to access the git repo (e.g.: access to an Azure DevOps repository), usually a string in Base64 git_private_key Use a private key to access the git repo (e.g.: access to GitHub repository via Deploy keys), usually a id_rsa named file or the contents hereof google_cloud_bucket_name Name of the Google Cloud Storage bucket to use google_cloud_keys_file Path to the gc_keys.json file google_cloud_project_id ID of the Google Cloud project to use for authentication skip_google_cloud_account_confirmation Skips confirming to use the system google account false s3_region Name of the S3 region s3_access_key S3 access key s3_secret_access_key S3 secret access key s3_bucket Name of the S3 bucket s3_object_prefix Prefix to be used on all objects uploaded to S3 s3_skip_encryption Skip encryption of all objects uploaded to S3. WARNING: only enable this on S3 buckets with sufficiently restricted permissions and server-side encryption enabled. See https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html false gitlab_project GitLab Project Path (i.e. 'gitlab-org/gitlab') gitlab_host GitLab Host (i.e. 'https://gitlab.com') https://gitlab.com job_token GitLab CI_JOB_TOKEN private_token GitLab Access Token keychain_name Keychain the items should be imported to login.keychain keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password force Renew the provisioning profiles every time you run match false force_for_new_devices Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile types 'appstore' and 'developer_id' false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false force_for_new_certificates Renew the provisioning profiles if the certificate count on the developer portal has changed. Works only for the 'development' provisioning profile type. Requires 'include_all_certificates' option to be 'true' false skip_confirmation Disables confirmation prompts during nuke, answering them with yes false safe_remove_certs Remove certs from repository during nuke without revoking them on the developer portal false skip_docs Skip generation of a README.md for the created git repository false platform Set the provisioning profile's platform to work with (i.e. ios, tvos, macos, catalyst) * derive_catalyst_app_identifier Enable this if you have the Mac Catalyst capability enabled and your project was created with Xcode 11.3 or earlier. Prepends 'maccatalyst.' to the app identifier for the provisioning profile mapping false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") profile_name A custom name for the provisioning profile. This will replace the default provisioning profile name if specified fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false skip_certificate_matching Set to true if there is no access to Apple developer portal but there are certificates, keys and profiles provided. Only works with match import action false output_path Path in which to export certificates, key and profile skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false verbose Print out extra information and all commands false * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The sync_code_signing action generates the following Lane Variables: SharedValue Description SharedValues::MATCH_PROVISIONING_PROFILE_MAPPING The match provisioning profile mapping SharedValues::SIGH_PROFILE_TYPE The profile type, can be app-store, ad-hoc, development, enterprise, can be used in build_app as a default value for export_method To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action sync_code_signing CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sync_code_signing To pass parameters, make use of the : symbol, for example fastlane run sync_code_signing parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Sync code signing"},{"location":"generated/actions/sync_code_signing/#sync_code_signing","text":"Easily sync your certificates and profiles across your team (via match )","title":"sync_code_signing"},{"location":"generated/actions/sync_code_signing/#why-match","text":"Before starting to use match , make sure to read the codesigning.guide : When deploying an app to the App Store, beta testing service or even installing it on a device, most development teams have separate code signing identities for every member. This results in dozens of profiles including a lot of duplicates. You have to manually renew and download the latest set of provisioning profiles every time you add a new device or a certificate expires. Additionally this requires spending a lot of time when setting up a new machine that will build your app. A new approach Share one code signing identity across your development team to simplify your setup and prevent code signing issues. What if there was a central place where your code signing identity and profiles are kept, so anyone in the team can access them during the build process? For more information about the concept, visit codesigning.guide .","title":"Why match?"},{"location":"generated/actions/sync_code_signing/#usage","text":"","title":"Usage"},{"location":"generated/actions/sync_code_signing/#advanced-git-storage-features","text":"","title":"Advanced Git Storage features"},{"location":"generated/actions/sync_code_signing/#is-this-secure","text":"","title":"Is this secure?"},{"location":"generated/actions/sync_code_signing/#4-examples","text":"sync_code_signing(type: \"appstore\", app_identifier: \"tools.fastlane.app\") sync_code_signing(type: \"development\", readonly: true) sync_code_signing(app_identifier: [\"tools.fastlane.app\", \"tools.fastlane.sleepy\"]) match # alias for \"sync_code_signing\"","title":"4 Examples"},{"location":"generated/actions/sync_code_signing/#parameters","text":"Key Description Default type Define the profile type, can be appstore, adhoc, development, enterprise, developer_id, mac_installer_distribution, developer_id_installer development additional_cert_types Create additional cert types needed for macOS installers (valid values: mac_installer_distribution, developer_id_installer) readonly Only fetch existing certificates and profiles, don't generate new ones false generate_apple_certs Create a certificate type for Xcode 11 and later (Apple Development or Apple Distribution) * skip_provisioning_profiles Skip syncing provisioning profiles false app_identifier The bundle identifier(s) of your app (comma-separated string or array of strings) * api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * team_id The ID of your Developer Portal team if you're in multiple teams * team_name The name of your Developer Portal team if you're in multiple teams * storage_mode Define where you want to store your certificates git git_url URL to the git repo containing all the certificates git_branch Specific git branch to use master git_full_name git user full name to commit git_user_email git user email to commit shallow_clone Make a shallow clone of the repository (truncate the history to 1 revision) false clone_branch_directly Clone just the branch specified, instead of the whole repo. This requires that the branch already exists. Otherwise the command will fail false git_basic_authorization Use a basic authorization header to access the git repo (e.g.: access via HTTPS, GitHub Actions, etc), usually a string in Base64 git_bearer_authorization Use a bearer authorization header to access the git repo (e.g.: access to an Azure DevOps repository), usually a string in Base64 git_private_key Use a private key to access the git repo (e.g.: access to GitHub repository via Deploy keys), usually a id_rsa named file or the contents hereof google_cloud_bucket_name Name of the Google Cloud Storage bucket to use google_cloud_keys_file Path to the gc_keys.json file google_cloud_project_id ID of the Google Cloud project to use for authentication skip_google_cloud_account_confirmation Skips confirming to use the system google account false s3_region Name of the S3 region s3_access_key S3 access key s3_secret_access_key S3 secret access key s3_bucket Name of the S3 bucket s3_object_prefix Prefix to be used on all objects uploaded to S3 s3_skip_encryption Skip encryption of all objects uploaded to S3. WARNING: only enable this on S3 buckets with sufficiently restricted permissions and server-side encryption enabled. See https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html false gitlab_project GitLab Project Path (i.e. 'gitlab-org/gitlab') gitlab_host GitLab Host (i.e. 'https://gitlab.com') https://gitlab.com job_token GitLab CI_JOB_TOKEN private_token GitLab Access Token keychain_name Keychain the items should be imported to login.keychain keychain_password This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password force Renew the provisioning profiles every time you run match false force_for_new_devices Renew the provisioning profiles if the device count on the developer portal has changed. Ignored for profile types 'appstore' and 'developer_id' false include_mac_in_profiles Include Apple Silicon Mac devices in provisioning profiles for iOS/iPadOS apps false include_all_certificates Include all matching certificates in the provisioning profile. Works only for the 'development' provisioning profile type false force_for_new_certificates Renew the provisioning profiles if the certificate count on the developer portal has changed. Works only for the 'development' provisioning profile type. Requires 'include_all_certificates' option to be 'true' false skip_confirmation Disables confirmation prompts during nuke, answering them with yes false safe_remove_certs Remove certs from repository during nuke without revoking them on the developer portal false skip_docs Skip generation of a README.md for the created git repository false platform Set the provisioning profile's platform to work with (i.e. ios, tvos, macos, catalyst) * derive_catalyst_app_identifier Enable this if you have the Mac Catalyst capability enabled and your project was created with Xcode 11.3 or earlier. Prepends 'maccatalyst.' to the app identifier for the provisioning profile mapping false template_name The name of provisioning profile template. If the developer account has provisioning profile templates (aka: custom entitlements), the template name can be found by inspecting the Entitlements drop-down while creating/editing a provisioning profile (e.g. \"Apple Pay Pass Suppression Development\") profile_name A custom name for the provisioning profile. This will replace the default provisioning profile name if specified fail_on_name_taken Should the command fail if it was about to create a duplicate of an existing provisioning profile. It can happen due to issues on Apple Developer Portal, when profile to be recreated was not properly deleted first false skip_certificate_matching Set to true if there is no access to Apple developer portal but there are certificates, keys and profiles provided. Only works with match import action false output_path Path in which to export certificates, key and profile skip_set_partition_list Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing false verbose Print out extra information and all commands false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/sync_code_signing/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The sync_code_signing action generates the following Lane Variables: SharedValue Description SharedValues::MATCH_PROVISIONING_PROFILE_MAPPING The match provisioning profile mapping SharedValues::SIGH_PROFILE_TYPE The profile type, can be app-store, ad-hoc, development, enterprise, can be used in build_app as a default value for export_method To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/sync_code_signing/#documentation","text":"To show the documentation in your terminal, run fastlane action sync_code_signing","title":"Documentation"},{"location":"generated/actions/sync_code_signing/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run sync_code_signing To pass parameters, make use of the : symbol, for example fastlane run sync_code_signing parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/sync_code_signing/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/team_id/","text":"team_id Specify the Team ID you want to use for the Apple Developer Portal team_id Supported platforms ios Author @KrauseFx 1 Example team_id(\"Q2CBPK58CA\") Documentation To show the documentation in your terminal, run fastlane action team_id CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run team_id To pass parameters, make use of the : symbol, for example fastlane run team_id parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Team id"},{"location":"generated/actions/team_id/#team_id","text":"Specify the Team ID you want to use for the Apple Developer Portal team_id Supported platforms ios Author @KrauseFx","title":"team_id"},{"location":"generated/actions/team_id/#1-example","text":"team_id(\"Q2CBPK58CA\")","title":"1 Example"},{"location":"generated/actions/team_id/#documentation","text":"To show the documentation in your terminal, run fastlane action team_id","title":"Documentation"},{"location":"generated/actions/team_id/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run team_id To pass parameters, make use of the : symbol, for example fastlane run team_id parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/team_id/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/team_name/","text":"team_name Set a team to use by its name team_name Supported platforms ios Author @KrauseFx 1 Example team_name(\"Felix Krause\") Documentation To show the documentation in your terminal, run fastlane action team_name CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run team_name To pass parameters, make use of the : symbol, for example fastlane run team_name parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Team name"},{"location":"generated/actions/team_name/#team_name","text":"Set a team to use by its name team_name Supported platforms ios Author @KrauseFx","title":"team_name"},{"location":"generated/actions/team_name/#1-example","text":"team_name(\"Felix Krause\")","title":"1 Example"},{"location":"generated/actions/team_name/#documentation","text":"To show the documentation in your terminal, run fastlane action team_name","title":"Documentation"},{"location":"generated/actions/team_name/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run team_name To pass parameters, make use of the : symbol, for example fastlane run team_name parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/team_name/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/testfairy/","text":"testfairy Upload a new build to TestFairy You can retrieve your API key on your settings page testfairy Supported platforms ios, android Author @taka0125, @tcurdt, @vijaysharm, @cdm2012 2 Examples testfairy( api_key: \"...\", ipa: \"./ipa_file.ipa\", comment: \"Build #{lane_context[SharedValues::BUILD_NUMBER]}\", ) testfairy( api_key: \"...\", apk: \"../build/app/outputs/apk/qa/release/app-qa-release.apk\", comment: \"Build #{lane_context[SharedValues::BUILD_NUMBER]}\", ) Parameters Key Description Default api_key API Key for TestFairy ipa Path to your IPA file for iOS * apk Path to your APK file for Android * symbols_file Symbols mapping file * upload_url API URL for TestFairy https://upload.testfairy.com testers_groups Array of tester groups to be notified [] metrics Array of metrics to record (cpu,memory,network,phone_signal,gps,battery,mic,wifi) [] comment Additional release notes for this upload. This text will be added to email notifications No comment provided auto_update Allows an easy upgrade of all users to the current version. To enable set to 'on' off notify Send email to testers off options Array of options (shake,video_only_wifi,anonymous) [] custom Array of custom options. Contact support@testfairy.com for more information '' timeout Request timeout in seconds * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The testfairy action generates the following Lane Variables: SharedValue Description SharedValues::TESTFAIRY_BUILD_URL URL for the sessions of the newly uploaded build SharedValues::TESTFAIRY_DOWNLOAD_URL URL directly to the newly uploaded build SharedValues::TESTFAIRY_LANDING_PAGE URL of the build's landing page To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action testfairy CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run testfairy To pass parameters, make use of the : symbol, for example fastlane run testfairy parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Testfairy"},{"location":"generated/actions/testfairy/#testfairy","text":"Upload a new build to TestFairy You can retrieve your API key on your settings page testfairy Supported platforms ios, android Author @taka0125, @tcurdt, @vijaysharm, @cdm2012","title":"testfairy"},{"location":"generated/actions/testfairy/#2-examples","text":"testfairy( api_key: \"...\", ipa: \"./ipa_file.ipa\", comment: \"Build #{lane_context[SharedValues::BUILD_NUMBER]}\", ) testfairy( api_key: \"...\", apk: \"../build/app/outputs/apk/qa/release/app-qa-release.apk\", comment: \"Build #{lane_context[SharedValues::BUILD_NUMBER]}\", )","title":"2 Examples"},{"location":"generated/actions/testfairy/#parameters","text":"Key Description Default api_key API Key for TestFairy ipa Path to your IPA file for iOS * apk Path to your APK file for Android * symbols_file Symbols mapping file * upload_url API URL for TestFairy https://upload.testfairy.com testers_groups Array of tester groups to be notified [] metrics Array of metrics to record (cpu,memory,network,phone_signal,gps,battery,mic,wifi) [] comment Additional release notes for this upload. This text will be added to email notifications No comment provided auto_update Allows an easy upgrade of all users to the current version. To enable set to 'on' off notify Send email to testers off options Array of options (shake,video_only_wifi,anonymous) [] custom Array of custom options. Contact support@testfairy.com for more information '' timeout Request timeout in seconds * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/testfairy/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The testfairy action generates the following Lane Variables: SharedValue Description SharedValues::TESTFAIRY_BUILD_URL URL for the sessions of the newly uploaded build SharedValues::TESTFAIRY_DOWNLOAD_URL URL directly to the newly uploaded build SharedValues::TESTFAIRY_LANDING_PAGE URL of the build's landing page To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/testfairy/#documentation","text":"To show the documentation in your terminal, run fastlane action testfairy","title":"Documentation"},{"location":"generated/actions/testfairy/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run testfairy To pass parameters, make use of the : symbol, for example fastlane run testfairy parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/testfairy/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/testflight/","text":"testflight Alias for the upload_to_testflight action The best way to manage your TestFlight testers and builds from your terminal pilot makes it easier to manage your app on Apple\u2019s TestFlight. You can: Upload & distribute builds Add & remove testers Retrieve information about testers & devices Import/export all available testers pilot uses spaceship.airforce to interact with App Store Connect \ud83d\ude80 Usage \u2022 Tips pilot is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Usage For all commands, you can either use an API Key or your Apple ID . App Store Connect API Key The App Store Connect API Key is the preferred authentication method (if you are able to use it). Uses official App Store Connect API No need for 2FA Better performance over Apple ID Specify the API key using --api_key_path ./path/to/api_key_info.json or --api_key \"{\\\"key_id\\\": \\\"D83848D23\\\", \\\"issuer_id\\\": \\\"227b0bbf-ada8-458c-9d62-3d8022b7d07f\\\", \\\"key_filepath\\\": \\\"D83848D23.p8\\\"}\" Go to Using App Store Connect API for information on obtaining an API key, the fastlane api_key_info.json format, and other API key usage. Apple ID Specify the Apple ID to use using -u felix@krausefx.com . If you execute pilot in a project already using fastlane the username and app identifier will automatically be determined. Uploading builds To upload a new build, just run fastlane pilot upload This will automatically look for an ipa in your current directory and tries to fetch the login credentials from your fastlane setup . You'll be asked for any missing information. Additionally, you can pass all kinds of parameters: fastlane action pilot You can pass a changelog using fastlane pilot upload --changelog \"Something that is new here\" You can also skip the submission of the binary, which means, the ipa file will only be uploaded and not distributed to testers: fastlane pilot upload --skip_submission pilot does all kinds of magic for you: Automatically detects the bundle identifier from your ipa file Automatically fetch the AppID of your app based on the bundle identifier pilot uses spaceship to submit the build metadata and the iTunes Transporter to upload the binary. Because iTunes Transporter's upload capability is only supported on OS X, pilot upload does not work on Linux, as described in this issue List builds To list all builds for specific application use fastlane pilot builds The result lists all active builds and processing builds: +-----------+---------+----------+ | Great App Builds | +-----------+---------+----------+ | Version # | Build # | Installs | +-----------+---------+----------+ | 0.9.13 | 1 | 0 | | 0.9.13 | 2 | 0 | | 0.9.20 | 3 | 0 | | 0.9.20 | 4 | 3 | +-----------+---------+----------+ Managing beta testers List of Testers This command will list all your testers, both internal and external. fastlane pilot list The output will look like this: +--------+--------+--------------------------+-----------+ | Internal Testers | +--------+--------+--------------------------+-----------+ | First | Last | Email | # Devices | +--------+--------+--------------------------+-----------+ | Felix | Krause | felix@krausefx.com | 2 | +--------+--------+--------------------------+-----------+ +-----------+---------+----------------------------+-----------+ | External Testers | +-----------+---------+----------------------------+-----------+ | First | Last | Email | # Devices | +-----------+---------+----------------------------+-----------+ | Max | Manfred | email@email.com | 0 | | Detlef | M\u00fcller | detlef@krausefx.com | 1 | +-----------+---------+----------------------------+-----------+ Add a new tester To add a new tester to your App Store Connect account and to associate it to at least one testing group of your app, use the pilot add command. This will create a new tester (if necessary) or add an existing tester to the app to test. fastlane pilot add email@invite.com -g group-1,group-2 Additionally you can specify the app identifier (if necessary): fastlane pilot add email@email.com -a com.krausefx.app -g group-1,group-2 Find a tester To find a specific tester use fastlane pilot find felix@krausefx.com The resulting output will look like this: +---------------------+---------------------+ | felix@krausefx.com | +---------------------+---------------------+ | First name | Felix | | Last name | Krause | | Email | felix@krausefx.com | | Latest Version | 0.9.14 (23 | | Latest Install Date | 03/28/15 19:00 | | 2 Devices | \u2022 iPhone 6, iOS 8.3 | | | \u2022 iPhone 5, iOS 7.0 | +---------------------+---------------------+ Remove a tester This command will remove beta tester from app (from all internal and external groups) fastlane pilot remove felix@krausefx.com You can also use groups option to remove the tester from the groups specified: fastlane pilot remove felix@krausefx.com -g group-1,group-2 Export testers To export all external testers to a CSV file. Useful if you need to import tester info to another system or a new account. fastlane pilot export Import testers Add external testers from a CSV file. Create a file (ex: testers.csv ) and fill it with the following format: John,Appleseed,appleseed_john@mac.com,group-1;group-2 fastlane pilot import You can also specify the directory using fastlane pilot export -c ~/Desktop/testers.csv fastlane pilot import -c ~/Desktop/testers.csv Tips Debug information If you run into any issues you can use the verbose mode to get a more detailed output: fastlane pilot upload --verbose Firewall Issues pilot uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol from the command line using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" pilot ... If you are using pilot via the fastlane action , add the following to your Fastfile ENV[\"DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS\"] = \"-t DAV\" pilot... Note, however, that Apple recommends you don\u2019t specify the -t transport and instead allow Transporter to use automatic transport discovery to determine the best transport mode for your packages. For this reason, if the t option is passed, we will raise a warning. Also note that -t is not the only additional parameter that can be used. The string specified in the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS environment variable will be forwarded to Transporter. For all the available options, check Apple's Transporter User Guide . Credentials Issues If your password contains special characters, pilot may throw a confusing error saying your \"Your Apple ID or password was entered incorrectly\". The easiest way to fix this error is to change your password to something that does not contains special characters. How is my password stored? pilot uses the CredentialsManager from fastlane . Provider Short Name If you are on multiple App Store Connect teams, iTunes Transporter may need a provider short name to know where to upload your binary. pilot will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option. Use an Application Specific Password to upload pilot / upload_to_testflight can use an Application Specific Password via the FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD environment variable to upload a binary if both the skip_waiting_for_build_processing and apple_id options are set. (If any of those are not set, it will use the normal Apple login process that might require 2FA authentication.) Role for App Store Connect User pilot / upload_to_testflight updates build information and testers after the build has finished processing. App Store Connect requires the \"App Manager\" or \"Admin\" role for your Apple account to update this information. The \"Developer\" role will allow builds to be uploaded but will not allow updating of build information and testers. testflight Supported platforms ios, mac Author @KrauseFx 7 Examples upload_to_testflight testflight # alias for \"upload_to_testflight\" pilot # alias for \"upload_to_testflight\" upload_to_testflight(skip_submission: true) # to only upload the build upload_to_testflight( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) upload_to_testflight( beta_app_feedback_email: \"email@email.com\", beta_app_description: \"This is a description of my app\", demo_account_required: true, notify_external_testers: false, changelog: \"This is my changelog of things that have changed in a log\" ) upload_to_testflight( beta_app_review_info: { contact_email: \"email@email.com\", contact_first_name: \"Connect\", contact_last_name: \"API\", contact_phone: \"5558675309\", demo_account_name: \"demo@email.com\", demo_account_password: \"connectapi\", notes: \"this is review note for the reviewer <3 thank you for reviewing\" }, localized_app_info: { \"default\": { feedback_email: \"default@email.com\", marketing_url: \"https://example.com/marketing-defafult\", privacy_policy_url: \"https://example.com/privacy-defafult\", description: \"Default description\", }, \"en-GB\": { feedback_email: \"en-gb@email.com\", marketing_url: \"https://example.com/marketing-en-gb\", privacy_policy_url: \"https://example.com/privacy-en-gb\", description: \"en-gb description\", } }, localized_build_info: { \"default\": { whats_new: \"Default changelog\", }, \"en-GB\": { whats_new: \"en-gb changelog\", } } ) Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of the app to upload or manage testers (optional) * app_platform The platform to use (optional) apple_id Apple ID property in the App Information section in App Store Connect * ipa Path to the ipa file to upload * pkg Path to your pkg file * demo_account_required Do you need a demo account when Apple does review? beta_app_review_info Beta app review information for contact info and demo account localized_app_info Localized beta app test info for description, feedback email, marketing url, and privacy policy beta_app_description Provide the 'Beta App Description' when uploading a new build beta_app_feedback_email Provide the beta app email when uploading a new build localized_build_info Localized beta app test info for what's new changelog Provide the 'What to Test' text when uploading a new build skip_submission Skip the distributing action of pilot and only upload the ipa file false skip_waiting_for_build_processing If set to true, the distribute_external option won't work and no build will be distributed to testers. (You might want to use this option if you are using this action on CI and have to pay for 'minutes used' on your CI plan). If set to true and a changelog is provided, it will partially wait for the build to appear on AppStore Connect so the changelog can be set, and skip the remaining processing steps false update_build_info_on_upload DEPRECATED! Update build info immediately after validation. This is deprecated and will be removed in a future release. App Store Connect no longer supports setting build info until after build processing has completed, which is when build info is updated by default false distribute_only Distribute a previously uploaded build (equivalent to the fastlane pilot distribute command) false uses_non_exempt_encryption Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist false distribute_external Should the build be distributed to external testers? If set to true, use of groups option is required false notify_external_testers Should notify external testers? (Not setting a value will use App Store Connect's default which is to notify) app_version The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed build_number The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed expire_previous_builds Should expire previous builds? false first_name The tester's first name last_name The tester's last name email The tester's email testers_file_path Path to a CSV file of testers ./testers.csv groups Associate tester to one group or more by group name / group id. E.g. -g \"Team 1\",\"Team 2\" This is required when distribute_external option is set to true or when we want to add a tester to one or more external testing groups team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your team in the developer portal, if you're in multiple teams. Different from your iTC team ID! * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column wait_processing_interval Interval in seconds to wait for App Store Connect processing 30 wait_processing_timeout_duration Timeout duration in seconds to wait for App Store Connect processing. If set, after exceeding timeout duration, this will force stop to wait for App Store Connect processing and exit with exception wait_for_uploaded_build DEPRECATED! No longer needed with the transition over to the App Store Connect API - Use version info from uploaded ipa file to determine what build to use for distribution. If set to false, latest processing or any latest build will be used false reject_build_waiting_for_review Expire previous if it's 'waiting for review' false submit_beta_review Send the build for a beta review true * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action testflight CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run testflight To pass parameters, make use of the : symbol, for example fastlane run testflight parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Testflight"},{"location":"generated/actions/testflight/#testflight","text":"Alias for the upload_to_testflight action","title":"testflight"},{"location":"generated/actions/testflight/#usage","text":"For all commands, you can either use an API Key or your Apple ID .","title":"Usage"},{"location":"generated/actions/testflight/#uploading-builds","text":"To upload a new build, just run fastlane pilot upload This will automatically look for an ipa in your current directory and tries to fetch the login credentials from your fastlane setup . You'll be asked for any missing information. Additionally, you can pass all kinds of parameters: fastlane action pilot You can pass a changelog using fastlane pilot upload --changelog \"Something that is new here\" You can also skip the submission of the binary, which means, the ipa file will only be uploaded and not distributed to testers: fastlane pilot upload --skip_submission pilot does all kinds of magic for you: Automatically detects the bundle identifier from your ipa file Automatically fetch the AppID of your app based on the bundle identifier pilot uses spaceship to submit the build metadata and the iTunes Transporter to upload the binary. Because iTunes Transporter's upload capability is only supported on OS X, pilot upload does not work on Linux, as described in this issue","title":"Uploading builds"},{"location":"generated/actions/testflight/#list-builds","text":"To list all builds for specific application use fastlane pilot builds The result lists all active builds and processing builds: +-----------+---------+----------+ | Great App Builds | +-----------+---------+----------+ | Version # | Build # | Installs | +-----------+---------+----------+ | 0.9.13 | 1 | 0 | | 0.9.13 | 2 | 0 | | 0.9.20 | 3 | 0 | | 0.9.20 | 4 | 3 | +-----------+---------+----------+","title":"List builds"},{"location":"generated/actions/testflight/#managing-beta-testers","text":"","title":"Managing beta testers"},{"location":"generated/actions/testflight/#tips","text":"","title":"Tips"},{"location":"generated/actions/testflight/#debug-information","text":"If you run into any issues you can use the verbose mode to get a more detailed output: fastlane pilot upload --verbose","title":"Debug information"},{"location":"generated/actions/testflight/#firewall-issues","text":"pilot uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol from the command line using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" pilot ... If you are using pilot via the fastlane action , add the following to your Fastfile ENV[\"DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS\"] = \"-t DAV\" pilot... Note, however, that Apple recommends you don\u2019t specify the -t transport and instead allow Transporter to use automatic transport discovery to determine the best transport mode for your packages. For this reason, if the t option is passed, we will raise a warning. Also note that -t is not the only additional parameter that can be used. The string specified in the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS environment variable will be forwarded to Transporter. For all the available options, check Apple's Transporter User Guide .","title":"Firewall Issues"},{"location":"generated/actions/testflight/#credentials-issues","text":"If your password contains special characters, pilot may throw a confusing error saying your \"Your Apple ID or password was entered incorrectly\". The easiest way to fix this error is to change your password to something that does not contains special characters.","title":"Credentials Issues"},{"location":"generated/actions/testflight/#how-is-my-password-stored","text":"pilot uses the CredentialsManager from fastlane .","title":"How is my password stored?"},{"location":"generated/actions/testflight/#provider-short-name","text":"If you are on multiple App Store Connect teams, iTunes Transporter may need a provider short name to know where to upload your binary. pilot will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option.","title":"Provider Short Name"},{"location":"generated/actions/testflight/#use-an-application-specific-password-to-upload","text":"pilot / upload_to_testflight can use an Application Specific Password via the FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD environment variable to upload a binary if both the skip_waiting_for_build_processing and apple_id options are set. (If any of those are not set, it will use the normal Apple login process that might require 2FA authentication.)","title":"Use an Application Specific Password to upload"},{"location":"generated/actions/testflight/#role-for-app-store-connect-user","text":"pilot / upload_to_testflight updates build information and testers after the build has finished processing. App Store Connect requires the \"App Manager\" or \"Admin\" role for your Apple account to update this information. The \"Developer\" role will allow builds to be uploaded but will not allow updating of build information and testers. testflight Supported platforms ios, mac Author @KrauseFx","title":"Role for App Store Connect User"},{"location":"generated/actions/testflight/#7-examples","text":"upload_to_testflight testflight # alias for \"upload_to_testflight\" pilot # alias for \"upload_to_testflight\" upload_to_testflight(skip_submission: true) # to only upload the build upload_to_testflight( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) upload_to_testflight( beta_app_feedback_email: \"email@email.com\", beta_app_description: \"This is a description of my app\", demo_account_required: true, notify_external_testers: false, changelog: \"This is my changelog of things that have changed in a log\" ) upload_to_testflight( beta_app_review_info: { contact_email: \"email@email.com\", contact_first_name: \"Connect\", contact_last_name: \"API\", contact_phone: \"5558675309\", demo_account_name: \"demo@email.com\", demo_account_password: \"connectapi\", notes: \"this is review note for the reviewer <3 thank you for reviewing\" }, localized_app_info: { \"default\": { feedback_email: \"default@email.com\", marketing_url: \"https://example.com/marketing-defafult\", privacy_policy_url: \"https://example.com/privacy-defafult\", description: \"Default description\", }, \"en-GB\": { feedback_email: \"en-gb@email.com\", marketing_url: \"https://example.com/marketing-en-gb\", privacy_policy_url: \"https://example.com/privacy-en-gb\", description: \"en-gb description\", } }, localized_build_info: { \"default\": { whats_new: \"Default changelog\", }, \"en-GB\": { whats_new: \"en-gb changelog\", } } )","title":"7 Examples"},{"location":"generated/actions/testflight/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of the app to upload or manage testers (optional) * app_platform The platform to use (optional) apple_id Apple ID property in the App Information section in App Store Connect * ipa Path to the ipa file to upload * pkg Path to your pkg file * demo_account_required Do you need a demo account when Apple does review? beta_app_review_info Beta app review information for contact info and demo account localized_app_info Localized beta app test info for description, feedback email, marketing url, and privacy policy beta_app_description Provide the 'Beta App Description' when uploading a new build beta_app_feedback_email Provide the beta app email when uploading a new build localized_build_info Localized beta app test info for what's new changelog Provide the 'What to Test' text when uploading a new build skip_submission Skip the distributing action of pilot and only upload the ipa file false skip_waiting_for_build_processing If set to true, the distribute_external option won't work and no build will be distributed to testers. (You might want to use this option if you are using this action on CI and have to pay for 'minutes used' on your CI plan). If set to true and a changelog is provided, it will partially wait for the build to appear on AppStore Connect so the changelog can be set, and skip the remaining processing steps false update_build_info_on_upload DEPRECATED! Update build info immediately after validation. This is deprecated and will be removed in a future release. App Store Connect no longer supports setting build info until after build processing has completed, which is when build info is updated by default false distribute_only Distribute a previously uploaded build (equivalent to the fastlane pilot distribute command) false uses_non_exempt_encryption Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist false distribute_external Should the build be distributed to external testers? If set to true, use of groups option is required false notify_external_testers Should notify external testers? (Not setting a value will use App Store Connect's default which is to notify) app_version The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed build_number The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed expire_previous_builds Should expire previous builds? false first_name The tester's first name last_name The tester's last name email The tester's email testers_file_path Path to a CSV file of testers ./testers.csv groups Associate tester to one group or more by group name / group id. E.g. -g \"Team 1\",\"Team 2\" This is required when distribute_external option is set to true or when we want to add a tester to one or more external testing groups team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your team in the developer portal, if you're in multiple teams. Different from your iTC team ID! * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column wait_processing_interval Interval in seconds to wait for App Store Connect processing 30 wait_processing_timeout_duration Timeout duration in seconds to wait for App Store Connect processing. If set, after exceeding timeout duration, this will force stop to wait for App Store Connect processing and exit with exception wait_for_uploaded_build DEPRECATED! No longer needed with the transition over to the App Store Connect API - Use version info from uploaded ipa file to determine what build to use for distribution. If set to false, latest processing or any latest build will be used false reject_build_waiting_for_review Expire previous if it's 'waiting for review' false submit_beta_review Send the build for a beta review true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/testflight/#documentation","text":"To show the documentation in your terminal, run fastlane action testflight","title":"Documentation"},{"location":"generated/actions/testflight/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run testflight To pass parameters, make use of the : symbol, for example fastlane run testflight parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/testflight/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/trainer/","text":"trainer Convert the Xcode plist log to a JUnit report trainer Supported platforms ios, mac Author @KrauseFx Returns A hash with the key being the path of the generated file, the value being if the tests were successful Parameters Key Description Default path Path to the directory that should be converted . extension The extension for the newly created file. Usually .xml or .junit .xml output_directory Directory in which the xml files should be written to. Same directory as source by default output_filename Filename the xml file should be written to. Defaults to name of input file. (Only works if one input file is used) fail_build Should this step stop the build if the tests fail? Set this to false if you're handling this with a test reporter true xcpretty_naming Produces class name and test name identical to xcpretty naming in junit file false silent Silences all output false output_remove_retry_attempts Doesn't include retry attempts in the output false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action trainer CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run trainer To pass parameters, make use of the : symbol, for example fastlane run trainer parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Trainer"},{"location":"generated/actions/trainer/#trainer","text":"Convert the Xcode plist log to a JUnit report trainer Supported platforms ios, mac Author @KrauseFx Returns A hash with the key being the path of the generated file, the value being if the tests were successful","title":"trainer"},{"location":"generated/actions/trainer/#parameters","text":"Key Description Default path Path to the directory that should be converted . extension The extension for the newly created file. Usually .xml or .junit .xml output_directory Directory in which the xml files should be written to. Same directory as source by default output_filename Filename the xml file should be written to. Defaults to name of input file. (Only works if one input file is used) fail_build Should this step stop the build if the tests fail? Set this to false if you're handling this with a test reporter true xcpretty_naming Produces class name and test name identical to xcpretty naming in junit file false silent Silences all output false output_remove_retry_attempts Doesn't include retry attempts in the output false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/trainer/#documentation","text":"To show the documentation in your terminal, run fastlane action trainer","title":"Documentation"},{"location":"generated/actions/trainer/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run trainer To pass parameters, make use of the : symbol, for example fastlane run trainer parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/trainer/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/tryouts/","text":"tryouts Upload a new build to Tryouts More information: http://tryouts.readthedocs.org/en/latest/releases.html#create-release tryouts Supported platforms ios, android Author @alicertel 1 Example tryouts( api_token: \"...\", app_id: \"application-id\", build_file: \"test.ipa\", ) Parameters Key Description Default app_id Tryouts application hash api_token API Token (api_key:api_secret) for Tryouts Access build_file Path to your IPA or APK file. Optional if you use the gym or xcodebuild action * notes Release notes notes_path Release notes text file path. Overrides the :notes parameter notify Notify testers? 0 for no 1 status 2 to make your release public. Release will be distributed to available testers. 1 to make your release private. Release won't be distributed to testers. This also prevents release from showing up for SDK update 2 * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The tryouts action generates the following Lane Variables: SharedValue Description SharedValues::TRYOUTS_BUILD_INFORMATION Contains release info like :application_name, :download_url. See http://tryouts.readthedocs.org/en/latest/releases.html#create-release To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action tryouts CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run tryouts To pass parameters, make use of the : symbol, for example fastlane run tryouts parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Tryouts"},{"location":"generated/actions/tryouts/#tryouts","text":"Upload a new build to Tryouts More information: http://tryouts.readthedocs.org/en/latest/releases.html#create-release tryouts Supported platforms ios, android Author @alicertel","title":"tryouts"},{"location":"generated/actions/tryouts/#1-example","text":"tryouts( api_token: \"...\", app_id: \"application-id\", build_file: \"test.ipa\", )","title":"1 Example"},{"location":"generated/actions/tryouts/#parameters","text":"Key Description Default app_id Tryouts application hash api_token API Token (api_key:api_secret) for Tryouts Access build_file Path to your IPA or APK file. Optional if you use the gym or xcodebuild action * notes Release notes notes_path Release notes text file path. Overrides the :notes parameter notify Notify testers? 0 for no 1 status 2 to make your release public. Release will be distributed to available testers. 1 to make your release private. Release won't be distributed to testers. This also prevents release from showing up for SDK update 2 * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/tryouts/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The tryouts action generates the following Lane Variables: SharedValue Description SharedValues::TRYOUTS_BUILD_INFORMATION Contains release info like :application_name, :download_url. See http://tryouts.readthedocs.org/en/latest/releases.html#create-release To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/tryouts/#documentation","text":"To show the documentation in your terminal, run fastlane action tryouts","title":"Documentation"},{"location":"generated/actions/tryouts/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run tryouts To pass parameters, make use of the : symbol, for example fastlane run tryouts parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/tryouts/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/twitter/","text":"twitter Post a tweet on Twitter.com Post a tweet on Twitter. Requires you to setup an app on twitter.com and obtain consumer and access_token . twitter Supported platforms ios, android, mac Author @hjanuschka 1 Example twitter( access_token: \"XXXX\", access_token_secret: \"xxx\", consumer_key: \"xxx\", consumer_secret: \"xxx\", message: \"You rock!\" ) Parameters Key Description Default consumer_key Consumer Key consumer_secret Consumer Secret access_token Access Token access_token_secret Access Token Secret message The tweet * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action twitter CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run twitter To pass parameters, make use of the : symbol, for example fastlane run twitter parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Twitter"},{"location":"generated/actions/twitter/#twitter","text":"Post a tweet on Twitter.com Post a tweet on Twitter. Requires you to setup an app on twitter.com and obtain consumer and access_token . twitter Supported platforms ios, android, mac Author @hjanuschka","title":"twitter"},{"location":"generated/actions/twitter/#1-example","text":"twitter( access_token: \"XXXX\", access_token_secret: \"xxx\", consumer_key: \"xxx\", consumer_secret: \"xxx\", message: \"You rock!\" )","title":"1 Example"},{"location":"generated/actions/twitter/#parameters","text":"Key Description Default consumer_key Consumer Key consumer_secret Consumer Secret access_token Access Token access_token_secret Access Token Secret message The tweet * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/twitter/#documentation","text":"To show the documentation in your terminal, run fastlane action twitter","title":"Documentation"},{"location":"generated/actions/twitter/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run twitter To pass parameters, make use of the : symbol, for example fastlane run twitter parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/twitter/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/typetalk/","text":"typetalk Post a message to Typetalk typetalk Supported platforms ios, android, mac Author @Nulab Inc. 1 Example typetalk( message: \"App successfully released!\", note_path: \"ChangeLog.md\", topicId: 1, success: true, typetalk_token: \"Your Typetalk Token\" ) Documentation To show the documentation in your terminal, run fastlane action typetalk CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run typetalk To pass parameters, make use of the : symbol, for example fastlane run typetalk parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Typetalk"},{"location":"generated/actions/typetalk/#typetalk","text":"Post a message to Typetalk typetalk Supported platforms ios, android, mac Author @Nulab Inc.","title":"typetalk"},{"location":"generated/actions/typetalk/#1-example","text":"typetalk( message: \"App successfully released!\", note_path: \"ChangeLog.md\", topicId: 1, success: true, typetalk_token: \"Your Typetalk Token\" )","title":"1 Example"},{"location":"generated/actions/typetalk/#documentation","text":"To show the documentation in your terminal, run fastlane action typetalk","title":"Documentation"},{"location":"generated/actions/typetalk/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run typetalk To pass parameters, make use of the : symbol, for example fastlane run typetalk parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/typetalk/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/unlock_keychain/","text":"unlock_keychain Unlock a keychain Unlocks the given keychain file and adds it to the keychain search list. Keychains can be replaced with add_to_search_list: :replace . unlock_keychain Supported platforms ios, android, mac Author @xfreebird 4 Examples unlock_keychain( # Unlock an existing keychain and add it to the keychain search list path: \"/path/to/KeychainName.keychain\", password: \"mysecret\" ) unlock_keychain( # By default the keychain is added to the existing. To replace them with the selected keychain you may use `:replace` path: \"/path/to/KeychainName.keychain\", password: \"mysecret\", add_to_search_list: :replace # To only add a keychain use `true` or `:add`. ) unlock_keychain( # In addition, the keychain can be selected as a default keychain path: \"/path/to/KeychainName.keychain\", password: \"mysecret\", set_default: true ) unlock_keychain( # If the keychain file is located in the standard location `~/Library/Keychains`, then it is sufficient to provide the keychain file name, or file name with its suffix. path: \"KeychainName\", password: \"mysecret\" ) Parameters Key Description Default path Path to the keychain file login password Keychain password add_to_search_list Add to keychain search list, valid values are true, false, :add, and :replace true set_default Set as default keychain false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action unlock_keychain CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run unlock_keychain To pass parameters, make use of the : symbol, for example fastlane run unlock_keychain parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Unlock keychain"},{"location":"generated/actions/unlock_keychain/#unlock_keychain","text":"Unlock a keychain Unlocks the given keychain file and adds it to the keychain search list. Keychains can be replaced with add_to_search_list: :replace . unlock_keychain Supported platforms ios, android, mac Author @xfreebird","title":"unlock_keychain"},{"location":"generated/actions/unlock_keychain/#4-examples","text":"unlock_keychain( # Unlock an existing keychain and add it to the keychain search list path: \"/path/to/KeychainName.keychain\", password: \"mysecret\" ) unlock_keychain( # By default the keychain is added to the existing. To replace them with the selected keychain you may use `:replace` path: \"/path/to/KeychainName.keychain\", password: \"mysecret\", add_to_search_list: :replace # To only add a keychain use `true` or `:add`. ) unlock_keychain( # In addition, the keychain can be selected as a default keychain path: \"/path/to/KeychainName.keychain\", password: \"mysecret\", set_default: true ) unlock_keychain( # If the keychain file is located in the standard location `~/Library/Keychains`, then it is sufficient to provide the keychain file name, or file name with its suffix. path: \"KeychainName\", password: \"mysecret\" )","title":"4 Examples"},{"location":"generated/actions/unlock_keychain/#parameters","text":"Key Description Default path Path to the keychain file login password Keychain password add_to_search_list Add to keychain search list, valid values are true, false, :add, and :replace true set_default Set as default keychain false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/unlock_keychain/#documentation","text":"To show the documentation in your terminal, run fastlane action unlock_keychain","title":"Documentation"},{"location":"generated/actions/unlock_keychain/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run unlock_keychain To pass parameters, make use of the : symbol, for example fastlane run unlock_keychain parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/unlock_keychain/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/update_app_group_identifiers/","text":"update_app_group_identifiers This action changes the app group identifiers in the entitlements file Updates the App Group Identifiers in the given Entitlements file, so you can have app groups for the app store build and app groups for an enterprise build. update_app_group_identifiers Supported platforms ios Author @mathiasAichinger 1 Example update_app_group_identifiers( entitlements_file: \"/path/to/entitlements_file.entitlements\", app_group_identifiers: [\"group.your.app.group.identifier\"] ) Parameters Key Description Default entitlements_file The path to the entitlement file which contains the app group identifiers app_group_identifiers An Array of unique identifiers for the app groups. Eg. ['group.com.test.testapp'] * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The update_app_group_identifiers action generates the following Lane Variables: SharedValue Description SharedValues::APP_GROUP_IDENTIFIERS The new App Group Identifiers To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action update_app_group_identifiers CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_app_group_identifiers To pass parameters, make use of the : symbol, for example fastlane run update_app_group_identifiers parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Update app group identifiers"},{"location":"generated/actions/update_app_group_identifiers/#update_app_group_identifiers","text":"This action changes the app group identifiers in the entitlements file Updates the App Group Identifiers in the given Entitlements file, so you can have app groups for the app store build and app groups for an enterprise build. update_app_group_identifiers Supported platforms ios Author @mathiasAichinger","title":"update_app_group_identifiers"},{"location":"generated/actions/update_app_group_identifiers/#1-example","text":"update_app_group_identifiers( entitlements_file: \"/path/to/entitlements_file.entitlements\", app_group_identifiers: [\"group.your.app.group.identifier\"] )","title":"1 Example"},{"location":"generated/actions/update_app_group_identifiers/#parameters","text":"Key Description Default entitlements_file The path to the entitlement file which contains the app group identifiers app_group_identifiers An Array of unique identifiers for the app groups. Eg. ['group.com.test.testapp'] * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/update_app_group_identifiers/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The update_app_group_identifiers action generates the following Lane Variables: SharedValue Description SharedValues::APP_GROUP_IDENTIFIERS The new App Group Identifiers To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/update_app_group_identifiers/#documentation","text":"To show the documentation in your terminal, run fastlane action update_app_group_identifiers","title":"Documentation"},{"location":"generated/actions/update_app_group_identifiers/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_app_group_identifiers To pass parameters, make use of the : symbol, for example fastlane run update_app_group_identifiers parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/update_app_group_identifiers/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/update_app_identifier/","text":"update_app_identifier Update the project's bundle identifier Update an app identifier by either setting CFBundleIdentifier or PRODUCT_BUNDLE_IDENTIFIER , depending on which is already in use. update_app_identifier Supported platforms ios Author @squarefrog, @tobiasstrebitzer 1 Example update_app_identifier( xcodeproj: \"Example.xcodeproj\", # Optional path to xcodeproj, will use the first .xcodeproj if not set plist_path: \"Example/Info.plist\", # Path to info plist file, relative to xcodeproj app_identifier: \"com.test.example\" # The App Identifier ) Parameters Key Description Default xcodeproj Path to your Xcode project * plist_path Path to info plist, relative to your Xcode project app_identifier The app Identifier you want to set * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_app_identifier CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_app_identifier To pass parameters, make use of the : symbol, for example fastlane run update_app_identifier parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Update app identifier"},{"location":"generated/actions/update_app_identifier/#update_app_identifier","text":"Update the project's bundle identifier Update an app identifier by either setting CFBundleIdentifier or PRODUCT_BUNDLE_IDENTIFIER , depending on which is already in use. update_app_identifier Supported platforms ios Author @squarefrog, @tobiasstrebitzer","title":"update_app_identifier"},{"location":"generated/actions/update_app_identifier/#1-example","text":"update_app_identifier( xcodeproj: \"Example.xcodeproj\", # Optional path to xcodeproj, will use the first .xcodeproj if not set plist_path: \"Example/Info.plist\", # Path to info plist file, relative to xcodeproj app_identifier: \"com.test.example\" # The App Identifier )","title":"1 Example"},{"location":"generated/actions/update_app_identifier/#parameters","text":"Key Description Default xcodeproj Path to your Xcode project * plist_path Path to info plist, relative to your Xcode project app_identifier The app Identifier you want to set * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/update_app_identifier/#documentation","text":"To show the documentation in your terminal, run fastlane action update_app_identifier","title":"Documentation"},{"location":"generated/actions/update_app_identifier/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_app_identifier To pass parameters, make use of the : symbol, for example fastlane run update_app_identifier parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/update_app_identifier/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/update_code_signing_settings/","text":"update_code_signing_settings Configures Xcode's Codesigning options Configures Xcode's Codesigning options of all targets in the project update_code_signing_settings Supported platforms ios, mac Author @mathiasAichinger, @hjanuschka, @p4checo, @portellaa, @aeons, @att55, @abcdev Returns The current status (boolean) of codesigning after modification 3 Examples # manual code signing update_code_signing_settings( use_automatic_signing: false, path: \"demo-project/demo/demo.xcodeproj\" ) # automatic code signing update_code_signing_settings( use_automatic_signing: true, path: \"demo-project/demo/demo.xcodeproj\" ) # more advanced manual code signing update_code_signing_settings( use_automatic_signing: false, path: \"demo-project/demo/demo.xcodeproj\", team_id: \"QABC123DEV\", bundle_identifier: \"com.demoapp.QABC123DEV\", code_sign_identity: \"iPhone Distribution\", sdk: \"iphoneos*\", profile_name: \"Demo App Deployment Profile\", entitlements_file_path: \"Demo App/generated/New.entitlements\" ) Parameters Key Description Default path Path to your Xcode project * use_automatic_signing Defines if project should use automatic signing false sdk Build target SDKs (iphoneos , macosx , iphonesimulator*) team_id Team ID, is used when upgrading project targets Specify targets you want to toggle the signing mech. (default to all targets) build_configurations Specify build_configurations you want to toggle the signing mech. (default to all configurations) code_sign_identity Code signing identity type (iPhone Developer, iPhone Distribution) entitlements_file_path Path to your entitlements file profile_name Provisioning profile name to use for code signing profile_uuid Provisioning profile UUID to use for code signing bundle_identifier Application Product Bundle Identifier * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_code_signing_settings CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_code_signing_settings To pass parameters, make use of the : symbol, for example fastlane run update_code_signing_settings parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Update code signing settings"},{"location":"generated/actions/update_code_signing_settings/#update_code_signing_settings","text":"Configures Xcode's Codesigning options Configures Xcode's Codesigning options of all targets in the project update_code_signing_settings Supported platforms ios, mac Author @mathiasAichinger, @hjanuschka, @p4checo, @portellaa, @aeons, @att55, @abcdev Returns The current status (boolean) of codesigning after modification","title":"update_code_signing_settings"},{"location":"generated/actions/update_code_signing_settings/#3-examples","text":"# manual code signing update_code_signing_settings( use_automatic_signing: false, path: \"demo-project/demo/demo.xcodeproj\" ) # automatic code signing update_code_signing_settings( use_automatic_signing: true, path: \"demo-project/demo/demo.xcodeproj\" ) # more advanced manual code signing update_code_signing_settings( use_automatic_signing: false, path: \"demo-project/demo/demo.xcodeproj\", team_id: \"QABC123DEV\", bundle_identifier: \"com.demoapp.QABC123DEV\", code_sign_identity: \"iPhone Distribution\", sdk: \"iphoneos*\", profile_name: \"Demo App Deployment Profile\", entitlements_file_path: \"Demo App/generated/New.entitlements\" )","title":"3 Examples"},{"location":"generated/actions/update_code_signing_settings/#parameters","text":"Key Description Default path Path to your Xcode project * use_automatic_signing Defines if project should use automatic signing false sdk Build target SDKs (iphoneos , macosx , iphonesimulator*) team_id Team ID, is used when upgrading project targets Specify targets you want to toggle the signing mech. (default to all targets) build_configurations Specify build_configurations you want to toggle the signing mech. (default to all configurations) code_sign_identity Code signing identity type (iPhone Developer, iPhone Distribution) entitlements_file_path Path to your entitlements file profile_name Provisioning profile name to use for code signing profile_uuid Provisioning profile UUID to use for code signing bundle_identifier Application Product Bundle Identifier * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/update_code_signing_settings/#documentation","text":"To show the documentation in your terminal, run fastlane action update_code_signing_settings","title":"Documentation"},{"location":"generated/actions/update_code_signing_settings/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_code_signing_settings To pass parameters, make use of the : symbol, for example fastlane run update_code_signing_settings parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/update_code_signing_settings/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/update_fastlane/","text":"update_fastlane Makes sure fastlane-tools are up-to-date when running fastlane This action will update fastlane to the most recent version - major version updates will not be performed automatically, as they might include breaking changes. If an update was performed, fastlane will be restarted before the run continues. If you are using rbenv or rvm, everything should be good to go. However, if you are using the system's default ruby, some additional setup is needed for this action to work correctly. In short, fastlane needs to be able to access your gem library without running in sudo mode. The simplest possible fix for this is putting the following lines into your ~/.bashrc or ~/.zshrc file: export GEM_HOME=~/.gems export PATH=$PATH:~/.gems/bin After the above changes, restart your terminal, then run mkdir $GEM_HOME to create the new gem directory. After this, you're good to go! Recommended usage of the update_fastlane action is at the top inside of the before_all block, before running any other action. update_fastlane Supported platforms ios, android, mac Author @milch, @KrauseFx 1 Example before_all do update_fastlane # ... end Parameters Key Description Default no_update Don't update during this run. This is used internally false nightly DEPRECATED! Nightly builds are no longer being made available - Opt-in to install and use nightly fastlane builds false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_fastlane CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_fastlane To pass parameters, make use of the : symbol, for example fastlane run update_fastlane parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Update fastlane"},{"location":"generated/actions/update_fastlane/#update_fastlane","text":"Makes sure fastlane-tools are up-to-date when running fastlane This action will update fastlane to the most recent version - major version updates will not be performed automatically, as they might include breaking changes. If an update was performed, fastlane will be restarted before the run continues. If you are using rbenv or rvm, everything should be good to go. However, if you are using the system's default ruby, some additional setup is needed for this action to work correctly. In short, fastlane needs to be able to access your gem library without running in sudo mode. The simplest possible fix for this is putting the following lines into your ~/.bashrc or ~/.zshrc file: export GEM_HOME=~/.gems export PATH=$PATH:~/.gems/bin After the above changes, restart your terminal, then run mkdir $GEM_HOME to create the new gem directory. After this, you're good to go! Recommended usage of the update_fastlane action is at the top inside of the before_all block, before running any other action. update_fastlane Supported platforms ios, android, mac Author @milch, @KrauseFx","title":"update_fastlane"},{"location":"generated/actions/update_fastlane/#1-example","text":"before_all do update_fastlane # ... end","title":"1 Example"},{"location":"generated/actions/update_fastlane/#parameters","text":"Key Description Default no_update Don't update during this run. This is used internally false nightly DEPRECATED! Nightly builds are no longer being made available - Opt-in to install and use nightly fastlane builds false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/update_fastlane/#documentation","text":"To show the documentation in your terminal, run fastlane action update_fastlane","title":"Documentation"},{"location":"generated/actions/update_fastlane/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_fastlane To pass parameters, make use of the : symbol, for example fastlane run update_fastlane parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/update_fastlane/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/update_icloud_container_identifiers/","text":"update_icloud_container_identifiers This action changes the iCloud container identifiers in the entitlements file Updates the iCloud Container Identifiers in the given Entitlements file, so you can use different iCloud containers for different builds like Adhoc, App Store, etc. update_icloud_container_identifiers Supported platforms ios Author @JamesKuang 1 Example update_icloud_container_identifiers( entitlements_file: \"/path/to/entitlements_file.entitlements\", icloud_container_identifiers: [\"iCloud.com.companyname.appname\"] ) Parameters Key Description Default entitlements_file The path to the entitlement file which contains the iCloud container identifiers icloud_container_identifiers An Array of unique identifiers for the iCloud containers. Eg. ['iCloud.com.test.testapp'] * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The update_icloud_container_identifiers action generates the following Lane Variables: SharedValue Description SharedValues::UPDATE_ICLOUD_CONTAINER_IDENTIFIERS The new iCloud Container Identifiers To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action update_icloud_container_identifiers CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_icloud_container_identifiers To pass parameters, make use of the : symbol, for example fastlane run update_icloud_container_identifiers parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Update icloud container identifiers"},{"location":"generated/actions/update_icloud_container_identifiers/#update_icloud_container_identifiers","text":"This action changes the iCloud container identifiers in the entitlements file Updates the iCloud Container Identifiers in the given Entitlements file, so you can use different iCloud containers for different builds like Adhoc, App Store, etc. update_icloud_container_identifiers Supported platforms ios Author @JamesKuang","title":"update_icloud_container_identifiers"},{"location":"generated/actions/update_icloud_container_identifiers/#1-example","text":"update_icloud_container_identifiers( entitlements_file: \"/path/to/entitlements_file.entitlements\", icloud_container_identifiers: [\"iCloud.com.companyname.appname\"] )","title":"1 Example"},{"location":"generated/actions/update_icloud_container_identifiers/#parameters","text":"Key Description Default entitlements_file The path to the entitlement file which contains the iCloud container identifiers icloud_container_identifiers An Array of unique identifiers for the iCloud containers. Eg. ['iCloud.com.test.testapp'] * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/update_icloud_container_identifiers/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The update_icloud_container_identifiers action generates the following Lane Variables: SharedValue Description SharedValues::UPDATE_ICLOUD_CONTAINER_IDENTIFIERS The new iCloud Container Identifiers To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/update_icloud_container_identifiers/#documentation","text":"To show the documentation in your terminal, run fastlane action update_icloud_container_identifiers","title":"Documentation"},{"location":"generated/actions/update_icloud_container_identifiers/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_icloud_container_identifiers To pass parameters, make use of the : symbol, for example fastlane run update_icloud_container_identifiers parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/update_icloud_container_identifiers/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/update_info_plist/","text":"update_info_plist Update a Info.plist file with bundle identifier and display name This action allows you to modify your Info.plist file before building. This may be useful if you want a separate build for alpha, beta or nightly builds, but don't want a separate target. update_info_plist Supported platforms ios Author @tobiasstrebitzer 4 Examples update_info_plist( # update app identifier string plist_path: \"path/to/Info.plist\", app_identifier: \"com.example.newappidentifier\" ) update_info_plist( # Change the Display Name of your app plist_path: \"path/to/Info.plist\", display_name: \"MyApp-Beta\" ) update_info_plist( # Target a specific `xcodeproj` rather than finding the first available one xcodeproj: \"path/to/Example.proj\", plist_path: \"path/to/Info.plist\", display_name: \"MyApp-Beta\" ) update_info_plist( # Advanced processing: find URL scheme for particular key and replace value xcodeproj: \"path/to/Example.proj\", plist_path: \"path/to/Info.plist\", block: proc do |plist| urlScheme = plist[\"CFBundleURLTypes\"].find{|scheme| scheme[\"CFBundleURLName\"] == \"com.acme.default-url-handler\"} urlScheme[:CFBundleURLSchemes] = [\"acme-production\"] end ) Parameters Key Description Default xcodeproj Path to your Xcode project plist_path Path to info plist scheme Scheme of info plist app_identifier The App Identifier of your app * display_name The Display Name of your app block A block to process plist with custom logic * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_info_plist CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_info_plist To pass parameters, make use of the : symbol, for example fastlane run update_info_plist parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Update info plist"},{"location":"generated/actions/update_info_plist/#update_info_plist","text":"Update a Info.plist file with bundle identifier and display name This action allows you to modify your Info.plist file before building. This may be useful if you want a separate build for alpha, beta or nightly builds, but don't want a separate target. update_info_plist Supported platforms ios Author @tobiasstrebitzer","title":"update_info_plist"},{"location":"generated/actions/update_info_plist/#4-examples","text":"update_info_plist( # update app identifier string plist_path: \"path/to/Info.plist\", app_identifier: \"com.example.newappidentifier\" ) update_info_plist( # Change the Display Name of your app plist_path: \"path/to/Info.plist\", display_name: \"MyApp-Beta\" ) update_info_plist( # Target a specific `xcodeproj` rather than finding the first available one xcodeproj: \"path/to/Example.proj\", plist_path: \"path/to/Info.plist\", display_name: \"MyApp-Beta\" ) update_info_plist( # Advanced processing: find URL scheme for particular key and replace value xcodeproj: \"path/to/Example.proj\", plist_path: \"path/to/Info.plist\", block: proc do |plist| urlScheme = plist[\"CFBundleURLTypes\"].find{|scheme| scheme[\"CFBundleURLName\"] == \"com.acme.default-url-handler\"} urlScheme[:CFBundleURLSchemes] = [\"acme-production\"] end )","title":"4 Examples"},{"location":"generated/actions/update_info_plist/#parameters","text":"Key Description Default xcodeproj Path to your Xcode project plist_path Path to info plist scheme Scheme of info plist app_identifier The App Identifier of your app * display_name The Display Name of your app block A block to process plist with custom logic * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/update_info_plist/#documentation","text":"To show the documentation in your terminal, run fastlane action update_info_plist","title":"Documentation"},{"location":"generated/actions/update_info_plist/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_info_plist To pass parameters, make use of the : symbol, for example fastlane run update_info_plist parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/update_info_plist/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/update_keychain_access_groups/","text":"update_keychain_access_groups This action changes the keychain access groups in the entitlements file Updates the Keychain Group Access Groups in the given Entitlements file, so you can have keychain access groups for the app store build and keychain access groups for an enterprise build. update_keychain_access_groups Supported platforms ios Author @yutae 1 Example update_keychain_access_groups( entitlements_file: \"/path/to/entitlements_file.entitlements\", identifiers: [\"your.keychain.access.groups.identifiers\"] ) Parameters Key Description Default entitlements_file The path to the entitlement file which contains the keychain access groups identifiers An Array of unique identifiers for the keychain access groups. Eg. ['your.keychain.access.groups.identifiers'] * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The update_keychain_access_groups action generates the following Lane Variables: SharedValue Description SharedValues::KEYCHAIN_ACCESS_GROUPS The new Keychain Access Groups To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action update_keychain_access_groups CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_keychain_access_groups To pass parameters, make use of the : symbol, for example fastlane run update_keychain_access_groups parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Update keychain access groups"},{"location":"generated/actions/update_keychain_access_groups/#update_keychain_access_groups","text":"This action changes the keychain access groups in the entitlements file Updates the Keychain Group Access Groups in the given Entitlements file, so you can have keychain access groups for the app store build and keychain access groups for an enterprise build. update_keychain_access_groups Supported platforms ios Author @yutae","title":"update_keychain_access_groups"},{"location":"generated/actions/update_keychain_access_groups/#1-example","text":"update_keychain_access_groups( entitlements_file: \"/path/to/entitlements_file.entitlements\", identifiers: [\"your.keychain.access.groups.identifiers\"] )","title":"1 Example"},{"location":"generated/actions/update_keychain_access_groups/#parameters","text":"Key Description Default entitlements_file The path to the entitlement file which contains the keychain access groups identifiers An Array of unique identifiers for the keychain access groups. Eg. ['your.keychain.access.groups.identifiers'] * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/update_keychain_access_groups/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The update_keychain_access_groups action generates the following Lane Variables: SharedValue Description SharedValues::KEYCHAIN_ACCESS_GROUPS The new Keychain Access Groups To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/update_keychain_access_groups/#documentation","text":"To show the documentation in your terminal, run fastlane action update_keychain_access_groups","title":"Documentation"},{"location":"generated/actions/update_keychain_access_groups/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_keychain_access_groups To pass parameters, make use of the : symbol, for example fastlane run update_keychain_access_groups parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/update_keychain_access_groups/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/update_plist/","text":"update_plist Update a plist file This action allows you to modify any value inside any plist file. update_plist Supported platforms ios Author @rishabhtayal, @matthiaszarzecki 6 Examples update_plist( # Updates the CLIENT_ID and GOOGLE_APP_ID string entries in the plist-file plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| plist[:CLIENT_ID] = \"new_client_id\" plist[:GOOGLE_APP_ID] = \"new_google_app_id\" end ) update_plist( # Sets a boolean entry plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| plist[:boolean_entry] = true end ) update_plist( # Sets a number entry plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| plist[:number_entry] = 13 end ) update_plist( # Sets an array-entry with multiple sub-types plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| plist[:array_entry] = [\"entry_01\", true, 1243] end ) update_plist( # The block can contain logic too plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| if options[:environment] == \"production\" plist[:CLIENT_ID] = \"new_client_id_production\" else plist[:CLIENT_ID] = \"new_client_id_development\" end end ) update_plist( # Advanced processing: find URL scheme for particular key and replace value plist_path: \"path/to/Info.plist\", block: proc do |plist| urlScheme = plist[\"CFBundleURLTypes\"].find{|scheme| scheme[\"CFBundleURLName\"] == \"com.acme.default-url-handler\"} urlScheme[:CFBundleURLSchemes] = [\"acme-production\"] end ) Parameters Key Description Default plist_path Path to plist file block A block to process plist with custom logic * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_plist CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_plist To pass parameters, make use of the : symbol, for example fastlane run update_plist parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Update plist"},{"location":"generated/actions/update_plist/#update_plist","text":"Update a plist file This action allows you to modify any value inside any plist file. update_plist Supported platforms ios Author @rishabhtayal, @matthiaszarzecki","title":"update_plist"},{"location":"generated/actions/update_plist/#6-examples","text":"update_plist( # Updates the CLIENT_ID and GOOGLE_APP_ID string entries in the plist-file plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| plist[:CLIENT_ID] = \"new_client_id\" plist[:GOOGLE_APP_ID] = \"new_google_app_id\" end ) update_plist( # Sets a boolean entry plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| plist[:boolean_entry] = true end ) update_plist( # Sets a number entry plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| plist[:number_entry] = 13 end ) update_plist( # Sets an array-entry with multiple sub-types plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| plist[:array_entry] = [\"entry_01\", true, 1243] end ) update_plist( # The block can contain logic too plist_path: \"path/to/your_plist_file.plist\", block: proc do |plist| if options[:environment] == \"production\" plist[:CLIENT_ID] = \"new_client_id_production\" else plist[:CLIENT_ID] = \"new_client_id_development\" end end ) update_plist( # Advanced processing: find URL scheme for particular key and replace value plist_path: \"path/to/Info.plist\", block: proc do |plist| urlScheme = plist[\"CFBundleURLTypes\"].find{|scheme| scheme[\"CFBundleURLName\"] == \"com.acme.default-url-handler\"} urlScheme[:CFBundleURLSchemes] = [\"acme-production\"] end )","title":"6 Examples"},{"location":"generated/actions/update_plist/#parameters","text":"Key Description Default plist_path Path to plist file block A block to process plist with custom logic * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/update_plist/#documentation","text":"To show the documentation in your terminal, run fastlane action update_plist","title":"Documentation"},{"location":"generated/actions/update_plist/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_plist To pass parameters, make use of the : symbol, for example fastlane run update_plist parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/update_plist/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/update_project_code_signing/","text":"update_project_code_signing Updated code signing settings from 'Automatic' to a specific profile You shouldn't use update_project_code_signing . Have you considered using the recommended way to do code signing: https://docs.fastlane.tools/codesigning/getting-started/ ? update_project_code_signing Supported platforms ios Author @KrauseFx Parameters Key Description Default path Path to your Xcode project udid DEPRECATED! Use :uuid instead * uuid The UUID of the provisioning profile you want to use * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_project_code_signing CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_project_code_signing To pass parameters, make use of the : symbol, for example fastlane run update_project_code_signing parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Update project code signing"},{"location":"generated/actions/update_project_code_signing/#update_project_code_signing","text":"Updated code signing settings from 'Automatic' to a specific profile You shouldn't use update_project_code_signing . Have you considered using the recommended way to do code signing: https://docs.fastlane.tools/codesigning/getting-started/ ? update_project_code_signing Supported platforms ios Author @KrauseFx","title":"update_project_code_signing"},{"location":"generated/actions/update_project_code_signing/#parameters","text":"Key Description Default path Path to your Xcode project udid DEPRECATED! Use :uuid instead * uuid The UUID of the provisioning profile you want to use * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/update_project_code_signing/#documentation","text":"To show the documentation in your terminal, run fastlane action update_project_code_signing","title":"Documentation"},{"location":"generated/actions/update_project_code_signing/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_project_code_signing To pass parameters, make use of the : symbol, for example fastlane run update_project_code_signing parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/update_project_code_signing/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/update_project_provisioning/","text":"update_project_provisioning Update projects code signing settings from your provisioning profile You should check out the code signing guide before using this action. This action retrieves a provisioning profile UUID from a provisioning profile ( .mobileprovision ) to set up the Xcode projects' code signing settings in *.xcodeproj/project.pbxproj . The :target_filter value can be used to only update code signing for the specified targets. The :build_configuration value can be used to only update code signing for the specified build configurations of the targets passing through the :target_filter . Example usage is the WatchKit Extension or WatchKit App, where you need separate provisioning profiles. Example: update_project_provisioning(xcodeproj: \"..\", target_filter: \".*WatchKit App.*\") . update_project_provisioning Supported platforms ios, mac Author @tobiasstrebitzer, @czechboy0 1 Example update_project_provisioning( xcodeproj: \"Project.xcodeproj\", profile: \"./watch_app_store.mobileprovision\", # optional if you use sigh target_filter: \".*WatchKit Extension.*\", # matches name or type of a target build_configuration: \"Release\", code_signing_identity: \"iPhone Development\" # optionally specify the codesigning identity ) Parameters Key Description Default xcodeproj Path to your Xcode project profile Path to provisioning profile (.mobileprovision) * target_filter A filter for the target name. Use a standard regex build_configuration_filter Legacy option, use 'target_filter' instead build_configuration A filter for the build configuration name. Use a standard regex. Applied to all configurations if not specified certificate Path to apple root certificate /tmp/AppleIncRootCertificate.cer code_signing_identity Code sign identity for build configuration * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_project_provisioning CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_project_provisioning To pass parameters, make use of the : symbol, for example fastlane run update_project_provisioning parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Update project provisioning"},{"location":"generated/actions/update_project_provisioning/#update_project_provisioning","text":"Update projects code signing settings from your provisioning profile You should check out the code signing guide before using this action. This action retrieves a provisioning profile UUID from a provisioning profile ( .mobileprovision ) to set up the Xcode projects' code signing settings in *.xcodeproj/project.pbxproj . The :target_filter value can be used to only update code signing for the specified targets. The :build_configuration value can be used to only update code signing for the specified build configurations of the targets passing through the :target_filter . Example usage is the WatchKit Extension or WatchKit App, where you need separate provisioning profiles. Example: update_project_provisioning(xcodeproj: \"..\", target_filter: \".*WatchKit App.*\") . update_project_provisioning Supported platforms ios, mac Author @tobiasstrebitzer, @czechboy0","title":"update_project_provisioning"},{"location":"generated/actions/update_project_provisioning/#1-example","text":"update_project_provisioning( xcodeproj: \"Project.xcodeproj\", profile: \"./watch_app_store.mobileprovision\", # optional if you use sigh target_filter: \".*WatchKit Extension.*\", # matches name or type of a target build_configuration: \"Release\", code_signing_identity: \"iPhone Development\" # optionally specify the codesigning identity )","title":"1 Example"},{"location":"generated/actions/update_project_provisioning/#parameters","text":"Key Description Default xcodeproj Path to your Xcode project profile Path to provisioning profile (.mobileprovision) * target_filter A filter for the target name. Use a standard regex build_configuration_filter Legacy option, use 'target_filter' instead build_configuration A filter for the build configuration name. Use a standard regex. Applied to all configurations if not specified certificate Path to apple root certificate /tmp/AppleIncRootCertificate.cer code_signing_identity Code sign identity for build configuration * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/update_project_provisioning/#documentation","text":"To show the documentation in your terminal, run fastlane action update_project_provisioning","title":"Documentation"},{"location":"generated/actions/update_project_provisioning/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_project_provisioning To pass parameters, make use of the : symbol, for example fastlane run update_project_provisioning parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/update_project_provisioning/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/update_project_team/","text":"update_project_team Update Xcode Development Team ID This action updates the Developer Team ID of your Xcode project. update_project_team Supported platforms ios, mac Author @lgaches 2 Examples update_project_team update_project_team( path: \"Example.xcodeproj\", teamid: \"A3ZZVJ7CNY\" ) Parameters Key Description Default path Path to your Xcode project * targets Name of the targets you want to update teamid The Team ID you want to use * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_project_team CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_project_team To pass parameters, make use of the : symbol, for example fastlane run update_project_team parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Update project team"},{"location":"generated/actions/update_project_team/#update_project_team","text":"Update Xcode Development Team ID This action updates the Developer Team ID of your Xcode project. update_project_team Supported platforms ios, mac Author @lgaches","title":"update_project_team"},{"location":"generated/actions/update_project_team/#2-examples","text":"update_project_team update_project_team( path: \"Example.xcodeproj\", teamid: \"A3ZZVJ7CNY\" )","title":"2 Examples"},{"location":"generated/actions/update_project_team/#parameters","text":"Key Description Default path Path to your Xcode project * targets Name of the targets you want to update teamid The Team ID you want to use * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/update_project_team/#documentation","text":"To show the documentation in your terminal, run fastlane action update_project_team","title":"Documentation"},{"location":"generated/actions/update_project_team/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_project_team To pass parameters, make use of the : symbol, for example fastlane run update_project_team parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/update_project_team/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/update_urban_airship_configuration/","text":"update_urban_airship_configuration Set Urban Airship plist configuration values This action updates the AirshipConfig.plist needed to configure the Urban Airship SDK at runtime, allowing keys and secrets to easily be set for the Enterprise and Production versions of the application. update_urban_airship_configuration Supported platforms ios Author @kcharwood 1 Example update_urban_airship_configuration( plist_path: \"AirshipConfig.plist\", production_app_key: \"PRODKEY\", production_app_secret: \"PRODSECRET\" ) Parameters Key Description Default plist_path Path to Urban Airship configuration Plist development_app_key The development app key development_app_secret The development app secret production_app_key The production app key production_app_secret The production app secret detect_provisioning_mode Automatically detect provisioning mode * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_urban_airship_configuration CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_urban_airship_configuration To pass parameters, make use of the : symbol, for example fastlane run update_urban_airship_configuration parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Update urban airship configuration"},{"location":"generated/actions/update_urban_airship_configuration/#update_urban_airship_configuration","text":"Set Urban Airship plist configuration values This action updates the AirshipConfig.plist needed to configure the Urban Airship SDK at runtime, allowing keys and secrets to easily be set for the Enterprise and Production versions of the application. update_urban_airship_configuration Supported platforms ios Author @kcharwood","title":"update_urban_airship_configuration"},{"location":"generated/actions/update_urban_airship_configuration/#1-example","text":"update_urban_airship_configuration( plist_path: \"AirshipConfig.plist\", production_app_key: \"PRODKEY\", production_app_secret: \"PRODSECRET\" )","title":"1 Example"},{"location":"generated/actions/update_urban_airship_configuration/#parameters","text":"Key Description Default plist_path Path to Urban Airship configuration Plist development_app_key The development app key development_app_secret The development app secret production_app_key The production app key production_app_secret The production app secret detect_provisioning_mode Automatically detect provisioning mode * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/update_urban_airship_configuration/#documentation","text":"To show the documentation in your terminal, run fastlane action update_urban_airship_configuration","title":"Documentation"},{"location":"generated/actions/update_urban_airship_configuration/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_urban_airship_configuration To pass parameters, make use of the : symbol, for example fastlane run update_urban_airship_configuration parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/update_urban_airship_configuration/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/update_url_schemes/","text":"update_url_schemes Updates the URL schemes in the given Info.plist This action allows you to update the URL schemes of the app before building it. For example, you can use this to set a different URL scheme for the alpha or beta version of the app. update_url_schemes Supported platforms ios, mac Author @kmikael 2 Examples update_url_schemes( path: \"path/to/Info.plist\", url_schemes: [\"com.myapp\"] ) update_url_schemes( path: \"path/to/Info.plist\", update_url_schemes: proc do |schemes| schemes + [\"anotherscheme\"] end ) Parameters Key Description Default path The Plist file's path url_schemes The new URL schemes update_url_schemes Block that is called to update schemes with current schemes passed in as parameter * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action update_url_schemes CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_url_schemes To pass parameters, make use of the : symbol, for example fastlane run update_url_schemes parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Update url schemes"},{"location":"generated/actions/update_url_schemes/#update_url_schemes","text":"Updates the URL schemes in the given Info.plist This action allows you to update the URL schemes of the app before building it. For example, you can use this to set a different URL scheme for the alpha or beta version of the app. update_url_schemes Supported platforms ios, mac Author @kmikael","title":"update_url_schemes"},{"location":"generated/actions/update_url_schemes/#2-examples","text":"update_url_schemes( path: \"path/to/Info.plist\", url_schemes: [\"com.myapp\"] ) update_url_schemes( path: \"path/to/Info.plist\", update_url_schemes: proc do |schemes| schemes + [\"anotherscheme\"] end )","title":"2 Examples"},{"location":"generated/actions/update_url_schemes/#parameters","text":"Key Description Default path The Plist file's path url_schemes The new URL schemes update_url_schemes Block that is called to update schemes with current schemes passed in as parameter * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/update_url_schemes/#documentation","text":"To show the documentation in your terminal, run fastlane action update_url_schemes","title":"Documentation"},{"location":"generated/actions/update_url_schemes/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run update_url_schemes To pass parameters, make use of the : symbol, for example fastlane run update_url_schemes parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/update_url_schemes/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/upload_app_privacy_details_to_app_store/","text":"upload_app_privacy_details_to_app_store Upload App Privacy Details for an app in App Store Connect Upload App Privacy Details for an app in App Store Connect. For more detail information, view https://docs.fastlane.tools/uploading-app-privacy-details upload_app_privacy_details_to_app_store Supported platforms ios, mac Author @joshdholtz 2 Examples upload_app_privacy_details_to_app_store( username: \"your@email.com\", team_name: \"Your Team\", app_identifier: \"com.your.bundle\" ) upload_app_privacy_details_to_app_store( username: \"your@email.com\", team_name: \"Your Team\", app_identifier: \"com.your.bundle\", json_path: \"fastlane/app_data_usages.json\" ) Parameters Key Description Default username Your Apple ID Username for App Store Connect * app_identifier The bundle identifier of your app * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * json_path Path to the app usage data JSON output_json_path Path to the app usage data JSON file generated by interactive questions ./fastlane/app_privacy_details.json skip_json_file_saving Whether to skip the saving of the JSON file false skip_upload Whether to skip the upload and only create the JSON file with interactive questions false skip_publish Whether to skip the publishing false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action upload_app_privacy_details_to_app_store CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_app_privacy_details_to_app_store To pass parameters, make use of the : symbol, for example fastlane run upload_app_privacy_details_to_app_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Upload app privacy details to app store"},{"location":"generated/actions/upload_app_privacy_details_to_app_store/#upload_app_privacy_details_to_app_store","text":"Upload App Privacy Details for an app in App Store Connect Upload App Privacy Details for an app in App Store Connect. For more detail information, view https://docs.fastlane.tools/uploading-app-privacy-details upload_app_privacy_details_to_app_store Supported platforms ios, mac Author @joshdholtz","title":"upload_app_privacy_details_to_app_store"},{"location":"generated/actions/upload_app_privacy_details_to_app_store/#2-examples","text":"upload_app_privacy_details_to_app_store( username: \"your@email.com\", team_name: \"Your Team\", app_identifier: \"com.your.bundle\" ) upload_app_privacy_details_to_app_store( username: \"your@email.com\", team_name: \"Your Team\", app_identifier: \"com.your.bundle\", json_path: \"fastlane/app_data_usages.json\" )","title":"2 Examples"},{"location":"generated/actions/upload_app_privacy_details_to_app_store/#parameters","text":"Key Description Default username Your Apple ID Username for App Store Connect * app_identifier The bundle identifier of your app * team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * json_path Path to the app usage data JSON output_json_path Path to the app usage data JSON file generated by interactive questions ./fastlane/app_privacy_details.json skip_json_file_saving Whether to skip the saving of the JSON file false skip_upload Whether to skip the upload and only create the JSON file with interactive questions false skip_publish Whether to skip the publishing false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/upload_app_privacy_details_to_app_store/#documentation","text":"To show the documentation in your terminal, run fastlane action upload_app_privacy_details_to_app_store","title":"Documentation"},{"location":"generated/actions/upload_app_privacy_details_to_app_store/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_app_privacy_details_to_app_store To pass parameters, make use of the : symbol, for example fastlane run upload_app_privacy_details_to_app_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/upload_app_privacy_details_to_app_store/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/upload_symbols_to_crashlytics/","text":"upload_symbols_to_crashlytics Upload dSYM symbolication files to Crashlytics This action allows you to upload symbolication files to Crashlytics. It's extra useful if you use it to download the latest dSYM files from Apple when you use Bitcode. This action will not fail the build if one of the uploads failed. The reason for that is that sometimes some of dSYM files are invalid, and we don't want them to fail the complete build. upload_symbols_to_crashlytics Supported platforms ios Author @KrauseFx 1 Example upload_symbols_to_crashlytics(dsym_path: \"./App.dSYM.zip\") Parameters Key Description Default dsym_path Path to the DSYM file or zip to upload * dsym_paths Paths to the DSYM files or zips to upload api_token Crashlytics API Key gsp_path Path to GoogleService-Info.plist app_id Firebase Crashlytics APP ID binary_path The path to the upload-symbols file of the Fabric app platform The platform of the app (ios, appletvos, mac) ios dsym_worker_threads The number of threads to use for simultaneous dSYM upload 1 debug Enable debug mode for upload-symbols false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action upload_symbols_to_crashlytics CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_symbols_to_crashlytics To pass parameters, make use of the : symbol, for example fastlane run upload_symbols_to_crashlytics parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Upload symbols to crashlytics"},{"location":"generated/actions/upload_symbols_to_crashlytics/#upload_symbols_to_crashlytics","text":"Upload dSYM symbolication files to Crashlytics This action allows you to upload symbolication files to Crashlytics. It's extra useful if you use it to download the latest dSYM files from Apple when you use Bitcode. This action will not fail the build if one of the uploads failed. The reason for that is that sometimes some of dSYM files are invalid, and we don't want them to fail the complete build. upload_symbols_to_crashlytics Supported platforms ios Author @KrauseFx","title":"upload_symbols_to_crashlytics"},{"location":"generated/actions/upload_symbols_to_crashlytics/#1-example","text":"upload_symbols_to_crashlytics(dsym_path: \"./App.dSYM.zip\")","title":"1 Example"},{"location":"generated/actions/upload_symbols_to_crashlytics/#parameters","text":"Key Description Default dsym_path Path to the DSYM file or zip to upload * dsym_paths Paths to the DSYM files or zips to upload api_token Crashlytics API Key gsp_path Path to GoogleService-Info.plist app_id Firebase Crashlytics APP ID binary_path The path to the upload-symbols file of the Fabric app platform The platform of the app (ios, appletvos, mac) ios dsym_worker_threads The number of threads to use for simultaneous dSYM upload 1 debug Enable debug mode for upload-symbols false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/upload_symbols_to_crashlytics/#documentation","text":"To show the documentation in your terminal, run fastlane action upload_symbols_to_crashlytics","title":"Documentation"},{"location":"generated/actions/upload_symbols_to_crashlytics/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_symbols_to_crashlytics To pass parameters, make use of the : symbol, for example fastlane run upload_symbols_to_crashlytics parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/upload_symbols_to_crashlytics/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/upload_symbols_to_sentry/","text":"upload_symbols_to_sentry Upload dSYM symbolication files to Sentry Please use the sentry plugin instead. Install using fastlane add_plugin sentry . Replace upload_symbols_to_sentry(...) with sentry_upload_dsym(...) . This action allows you to upload symbolication files to Sentry. It's extra useful if you use it to download the latest dSYM files from Apple when you use Bitcode. upload_symbols_to_sentry Supported platforms ios Author @joshdholtz Returns The uploaded dSYM path(s) 1 Example upload_symbols_to_sentry( auth_token: \"...\", org_slug: \"...\", project_slug: \"...\", dsym_path: \"./App.dSYM.zip\" ) Parameters Key Description Default api_host API host url for Sentry https://app.getsentry.com/api/0 api_key API key for Sentry auth_token Authentication token for Sentry org_slug Organization slug for Sentry project project_slug Project slug for Sentry dsym_path Path to your symbols file. For iOS and Mac provide path to app.dSYM.zip * dsym_paths Path to an array of your symbols file. For iOS and Mac provide path to app.dSYM.zip * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action upload_symbols_to_sentry CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_symbols_to_sentry To pass parameters, make use of the : symbol, for example fastlane run upload_symbols_to_sentry parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Upload symbols to sentry"},{"location":"generated/actions/upload_symbols_to_sentry/#upload_symbols_to_sentry","text":"Upload dSYM symbolication files to Sentry Please use the sentry plugin instead. Install using fastlane add_plugin sentry . Replace upload_symbols_to_sentry(...) with sentry_upload_dsym(...) . This action allows you to upload symbolication files to Sentry. It's extra useful if you use it to download the latest dSYM files from Apple when you use Bitcode. upload_symbols_to_sentry Supported platforms ios Author @joshdholtz Returns The uploaded dSYM path(s)","title":"upload_symbols_to_sentry"},{"location":"generated/actions/upload_symbols_to_sentry/#1-example","text":"upload_symbols_to_sentry( auth_token: \"...\", org_slug: \"...\", project_slug: \"...\", dsym_path: \"./App.dSYM.zip\" )","title":"1 Example"},{"location":"generated/actions/upload_symbols_to_sentry/#parameters","text":"Key Description Default api_host API host url for Sentry https://app.getsentry.com/api/0 api_key API key for Sentry auth_token Authentication token for Sentry org_slug Organization slug for Sentry project project_slug Project slug for Sentry dsym_path Path to your symbols file. For iOS and Mac provide path to app.dSYM.zip * dsym_paths Path to an array of your symbols file. For iOS and Mac provide path to app.dSYM.zip * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/upload_symbols_to_sentry/#documentation","text":"To show the documentation in your terminal, run fastlane action upload_symbols_to_sentry","title":"Documentation"},{"location":"generated/actions/upload_symbols_to_sentry/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_symbols_to_sentry To pass parameters, make use of the : symbol, for example fastlane run upload_symbols_to_sentry parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/upload_symbols_to_sentry/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/upload_to_app_store/","text":"upload_to_app_store Upload metadata and binary to App Store Connect (via deliver ) deliver uploads screenshots, metadata and binaries to App Store Connect. Use deliver to submit your app for App Store review. Features \u2022 Quick Start \u2022 Usage \u2022 Tips deliver is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Features Upload hundreds of localized screenshots completely automatically Upload a new ipa/pkg file to App Store Connect without Xcode from any Mac Maintain your app metadata locally and push changes back to App Store Connect Easily implement a real Continuous Deployment process using fastlane Store the configuration in git to easily deploy from any Mac, including your Continuous Integration server Get a HTML preview of the fetched metadata before uploading the app metadata and screenshots to iTC Automatically uses precheck to ensure your app has the highest chances of passing app review the first time To upload builds to TestFlight check out pilot . Quick Start The guide will create all the necessary files for you, using the existing app metadata from App Store Connect. cd [your_project_folder] fastlane deliver init Enter your App Store Connect credentials Enter your app identifier Enjoy a good drink, while the computer does all the work for you From now on, you can run fastlane deliver to deploy a new update, or just upload new app metadata and screenshots. Usage Check out your local ./fastlane/metadata and ./fastlane/screenshots folders (if you don't use fastlane it's ./metadata instead) You'll see your metadata from App Store Connect. Feel free to store the metadata in git (not the screenshots). You can now modify it locally and push the changes back to App Store Connect. Run fastlane deliver to upload the app metadata from your local machine fastlane deliver Provide the path to an ipa file to upload and submit your app for review: fastlane deliver --ipa \"App.ipa\" --submit_for_review or you can specify path to pkg file for macOS apps: fastlane deliver --pkg \"MacApp.pkg\" If you use fastlane you don't have to manually specify the path to your ipa / pkg file. This is just a small sub-set of what you can do with deliver , check out the full documentation in #more-options Download existing screenshots from App Store Connect fastlane deliver download_screenshots Download existing metadata from App Store Connect fastlane deliver download_metadata To get a list of available options run fastlane action deliver Use in a Fastfile deliver deliver( submit_for_review: true, force: true, metadata_path: \"./metadata\" ) More options View all available options and their valid values Available options All the options below can easily be added to your Deliverfile . The great thing: if you use fastlane you can use all these options from your Fastfile too, for example: deliver( submit_for_review: true, metadata_path: \"../folder\" ) app_identifier The bundle identifier (e.g. \"com.krausefx.app\") username Your Apple ID email address ipa A path to a signed ipa file, which will be uploaded. If you don't provide this value, only app metadata will be uploaded. If you want to submit the app for review make sure to either use fastlane deliver --submit_for_review or add submit_for_review true to your Deliverfile ipa(\"App.ipa\") if you use fastlane the ipa file will automatically be detected. pkg A path to a signed pkg file, which will be uploaded. Submission logic of ipa applies to pkg files. pkg(\"MacApp.pkg\") app_version Optional, as it is usually automatically detected. Specify the version that should be created / edited on App Store Connect: app_version(\"2.0\") skip_app_version_update In the case if deliver uploads your application to App Store Connect it will automatically update \"Prepare for submission\" app version (which could be found on App Store Connect->My Apps->App Store page) The option allows uploading your app without updating \"Prepare for submission\" version. This could be useful in the case if you are generating a lot of uploads while not submitting the latest build for Apple review. The default value is false. skip_app_version_update(true) submit_for_review Add this to your Deliverfile to automatically submit the app for review after uploading metadata/binary. This will select the latest build. submit_for_review(true) screenshots_path A path to a folder containing subfolders for each language. This will automatically detect the device type based on the image resolution. Also includes \uf8ff Watch Support. metadata_path Path to the metadata you want to use. The folder has to be structured like this If you run deliver init this will automatically be created for you. force force(true) If set to true , no HTML report will be generated before the actual upload. You can also pass --force when calling deliver . price_tier Pass the price tier as number. This will be active from the current day. price_tier 0 trade_representative_contact_information Trade Representative Contact information for Korean App Store. Available options: first_name , last_name , address_line1 , address_line2 , address_line3 , city_name , state , country , postal_code , phone_number , email_address , is_displayed_on_app_store . trade_representative_contact_information( first_name: \"Felix\", last_name: \"Krause\", address_line1: \"1 Infinite Loop\", address_line2: \"\", address_line3: null, city_name: \"Cupertino\", state: \"California\", country: \"United States\", postal_code: \"95014\", phone_number: \"+43 123123123\", email_address: \"github@krausefx.com\", ) You can also provide these values by creating files in a metadata/trade_representative_contact_information/ directory. The file names must match the pattern .txt (e.g. first_name.txt , address_line1.txt etc.). The contents of each file will be used as the value for the matching key. Values provided in the Deliverfile or Fastfile will be take priority over values from these files. is_displayed_on_app_store is the option on App Store Connect described as: Display Trade Representative Contact Information on the Korean App Store app_review_information Contact information for the app review team. Available options: first_name , last_name , phone_number , email_address , demo_user , demo_password , notes . app_review_information( first_name: \"Felix\", last_name: \"Krause\", phone_number: \"+43 123123123\", email_address: \"github@krausefx.com\", demo_user: \"demoUser\", demo_password: \"demoPass\", notes: \"such notes, very text\" ) You can also provide these values by creating files in a metadata/review_information/ directory. The file names must match the pattern .txt (e.g. first_name.txt , notes.txt etc.). The contents of each file will be used as the value for the matching key. Values provided in the Deliverfile or Fastfile will be take priority over values from these files. app_review_attachment_file You can provide additional information to the app review team as a file attachment. As of this writing, Apple supports following file attachment formats: .pdf, .doc, .docx, .rtf, .pages, .xls, .xlsx, .numbers, .zip, .rar, .plist, .crash, .jpg, .png, .mp4, or .avi. Provide an empty string (i.e. \"\", not null) to remove the existing attachment file (if any) from the review information being edited. app_review_attachment_file: \"./readme.txt\" submission_information Must be a hash. This is used as the last step for the deployment process, where you define if you use third party content or use encryption. A list of available options . submission_information({ add_id_info_serves_ads: true, ... }) automatic_release Should the app be released to all users once Apple approves it? If set to false , you'll have to manually release the update once it got approved. automatic_release(true) # or automatic_release(false) phased_release Enable or disable the phased releases feature of App Store Connect. If set to true , the update will be released over a 7 day period. Default behavior is to leave whatever you defined on App Store Connect. phased_release(true) # or phased_release(false) reset_ratings Reset your app's summary rating for all territories. If set to true , it will reset rating when this version is released. Default behavior is to keep existing rating. reset_ratings(true) # or reset_ratings(false) app_rating_config_path You can set the app age ratings using deliver . You'll have to create and store a JSON configuration file. Copy the template to your project folder and pass the path to the JSON file using the app_rating_config_path option. The keys/values on the top allow one of 3 strings: \"NONE\", \"INFREQUENT_OR_MILD\" or \"FREQUENT_OR_INTENSE\", and the items on the bottom allow false or true. More information in #reference . Metadata All options below are useful if you want to specify certain app metadata in your Deliverfile or Fastfile Localized Localized values should be set like this description({ 'en-US' => \"English Description here\", 'de-DE' => \"Deutsche Beschreibung hier\" }) name The title/name of the app subtitle Localized subtitle of the app subtitle( \"en-US\" => \"Awesome English subtitle here\", \"de-DE\" => \"Jetzt mit deutschen Untertiteln!\" ) description The description of the app release_notes The release_notes (What's new / Changelog) of the latest version support_url, marketing_url, privacy_url These URLs are shown in the AppStore keywords Keywords separated using a comma. keywords( \"en-US\" => \"Keyword1, Keyword2\" ) promotional_text Localized promotional text promotional_text( \"en-US\" => \"Hey, you should totally buy our app, it's the best\", \"de-DE\" => \"App kaufen bitte\" ) app_icon A path to a new app icon, which must be exactly 1024x1024px app_icon('./AppIcon.png') apple_watch_app_icon A path to a new app icon for the \uf8ff Watch, which must be exactly 1024x1024px apple_watch_app_icon('./AppleWatchAppIcon.png') platform The platform of your application (a.e. ios, osx). This option is optional. The default value is \"ios\" and deliver should be able to figure out the platform from your binary. However, in the case if multiple binaries present, you can specify a platform which you want to deliver explicitly. The available options: 'ios' 'appletvos' 'osx' Non-Localized copyright The up to date copyright information. copyright(\"#{Time.now.year} Felix Krause\") primary_category The english name of the category you want to set (e.g. Business , Books ) See #reference for a list of available categories secondary_category The english name of the secondary category you want to set primary_first_sub_category The english name of the primary first sub category you want to set primary_second_sub_category The english name of the primary second sub category you want to set secondary_first_sub_category The english name of the secondary first sub category you want to set secondary_second_sub_category The english name of the secondary second sub category you want to set Submit Build deliver allows you to promote an existing build to production. Below are examples to select a previously uploaded build and submit it for review. fastlane deliver submit_build --build_number 830 Submit build in a Fastfile lane :submit_review do deliver( build_number: '830', submit_for_review: true, automatic_release: true, force: true, # Skip HTMl report verification skip_metadata: true, skip_screenshots: true, skip_binary_upload: true ) end Omit build_number to let fastlane automatically select the latest build number for the current version being edited for release from App Store Connect. Compliance and IDFA settings Use the submission_information parameter for additional submission specifiers, including compliance and IDFA settings. Look at the Spaceship's app_submission.rb file for options. See this example . fastlane deliver submit_build --build_number 830 --submission_information \"{\\\"export_compliance_uses_encryption\\\": false, \\\"add_id_info_uses_idfa\\\": false }\" App Privacy Details Starting on December 8, 2020, Apple announced that developers are required to provide app privacy details that will help users understand an app's privacy practies. deliver does not allow for updating of this information but this can be done with the upload_app_privacy_details_to_app_store action. More information on Uploading App Privacy Details Credentials A detailed description about how your credentials are handled is available in a credentials_manager . How does this thing even work? Is magic involved? \ud83c\udfa9 Your password will be stored in the macOS keychain, but can also be passed using environment variables. (More information available on CredentialsManager ) Before actually uploading anything to iTunes, deliver will generate a HTML summary of the collected data. deliver uses the following techniques under the hood: The iTMSTransporter tool is used to upload the binary to App Store Connect. iTMSTransporter is a command line tool provided by Apple. For all metadata related actions deliver uses spaceship Tips Available language codes ar-SA, ca, cs, da, de-DE, el, en-AU, en-CA, en-GB, en-US, es-ES, es-MX, fi, fr-CA, fr-FR, he, hi, hr, hu, id, it, ja, ko, ms, nl-NL, no, pl, pt-BR, pt-PT, ro, ru, sk, sv, th, tr, uk, vi, zh-Hans, zh-Hant Available Metadata Folder Options deliver allows for metadata to be set through .txt files in the metadata folder. This metadata folder location is defaulted to ./fastlane/metadata but can be overridden through the metadata_path parameter. Below are all allowed metadata options. Non-Localized Metadata Key Editable While Live Directory Filename copyright Yes copyright.txt primary_category No primary_category.txt secondary_category No secondary_category.txt primary_first_sub_category No primary_first_sub_category.txt primary_second_sub_category No primary_second_sub_category.txt secondary_first_sub_category No secondary_first_sub_category.txt secondary_second_sub_category No secondary_second_sub_category.txt Localized Metadata Key Editable While Live Directory Filename name No // name.txt subtitle No // subtitle.txt privacy_url Yes // privacy_url.txt apple_tv_privacy_policy No // apple_tv_privacy_policy.txt description Yes // description.txt keywords No // keywords.txt release_notes Yes // release_notes.txt support_url Yes // support_url.txt marketing_url Yes // marketing_url.txt promotional_text Yes // promotional_text.txt Review Information Metadata Key Editable While Live Directory Filename Deprecated Filename first_name Yes /review_information first_name.txt review_first_name.txt last_name Yes /review_information last_name.txt review_last_name.txt phone_number Yes /review_information phone_number.txt review_phone_number.txt email_address Yes /review_information email_address.txt review_email.txt demo_user Yes /review_information demo_user.txt review_demo_user.txt demo_password Yes /review_information demo_password.txt review_demo_password.txt notes Yes /review_information notes.txt review_notes.txt Reference View all available categories, etc. Available Categories FOOD_AND_DRINK BUSINESS EDUCATION SOCIAL_NETWORKING BOOKS SPORTS FINANCE REFERENCE GRAPHICS_AND_DESIGN DEVELOPER_TOOLS HEALTH_AND_FITNESS MUSIC WEATHER TRAVEL ENTERTAINMENT STICKERS GAMES LIFESTYLE MEDICAL MAGAZINES_AND_NEWSPAPERS UTILITIES SHOPPING PRODUCTIVITY NEWS PHOTO_AND_VIDEO NAVIGATION Available Game Subcategories MZGenre.Action MZGenre.Adventure MZGenre.Arcade MZGenre.Board MZGenre.Card MZGenre.Casino MZGenre.Dice MZGenre.Educational MZGenre.Family MZGenre.Music MZGenre.Puzzle MZGenre.Racing MZGenre.RolePlaying MZGenre.Simulation MZGenre.Sports MZGenre.Strategy MZGenre.Trivia MZGenre.Word GAMES_SPORTS GAMES_WORD GAMES_MUSIC GAMES_ADVENTURE GAMES_ACTION GAMES_ROLE_PLAYING GAMES_CASUAL GAMES_BOARD GAMES_TRIVIA GAMES_CARD GAMES_PUZZLE GAMES_CASINO GAMES_STRATEGY GAMES_SIMULATION GAMES_RACING GAMES_FAMILY Available Stickers Subcategories STICKERS_PLACES_AND_OBJECTS STICKERS_EMOJI_AND_EXPRESSIONS STICKERS_CELEBRATIONS STICKERS_CELEBRITIES STICKERS_MOVIES_AND_TV STICKERS_SPORTS_AND_ACTIVITIES STICKERS_EATING_AND_DRINKING STICKERS_CHARACTERS STICKERS_ANIMALS STICKERS_FASHION STICKERS_ART STICKERS_GAMING STICKERS_KIDS_AND_FAMILY STICKERS_PEOPLE STICKERS_MUSIC Available age rating groups Non Boolean Values 0: None (Legacy value, use NONE instead) 1: Infrequent/Mild (Legacy value, use INFREQUENT_OR_MILD instead) 2: Frequent/Intense (Legacy value, use FREQUENT_OR_INTENSE instead) NONE INFREQUENT_OR_MILD FREQUENT_OR_INTENSE Keys 'alcoholTobaccoOrDrugUseOrReferences' 'contests' 'gamblingSimulated' 'medicalOrTreatmentInformation' 'profanityOrCrudeHumor' 'sexualContentGraphicAndNudity' 'sexualContentOrNudity' 'horrorOrFearThemes' 'matureOrSuggestiveThemes' 'unrestrictedWebAccess' 'violenceCartoonOrFantasy' 'violenceRealisticProlongedGraphicOrSadistic' 'violenceRealistic' 'kidsAgeBand' Boolean Keys gambling 'seventeenPlus' unrestrictedWebAccess Kids Age Values FIVE_AND_UNDER SIX_TO_EIGHT NINE_TO_ELEVEN null Keys kidsAgeBand Default values Deliver has a special default language code which allows you to provide values that are not localized, and which will be used as defaults when you don\u2019t provide a specific localized value. In order to use default , you will need to tell deliver which languages your app uses. You can do this in either of two ways: Create the folders named with the language in the metadata folder (i.e. fastlane/metadata/en-US or fastlane/metadata/de-DE) Add the following to your Deliverfile languages(['en-US','de-DE']) You can use this either in json within your Deliverfile and/or as folders in your metadata folder. deliver will take the union of both language sets from the Deliverfile and from the metadata folder and create on single set of languages which will be enabled. Imagine that you have localized data for the following language codes: en-US, de-DE, el, it You can set the following in your Deliverfile release_notes({ 'default' => \"Shiny and new\", 'de-DE' => \"glaenzend und neu\" }) Deliver will use \"Shiny and new\" for en-US, el and it. It will use \"glaenzend und neu\" for de-DE. You can do the same with folders default keywords.txt marketing_url.txt name.txt privacy_url.txt support_url.txt release_notes.txt en-US description.txt de-DE description.txt el description.txt it description.txt In this case, default values for keywords, urls, name and release notes are used in all localizations, but each language has a fully localized description Uploading screenshots for \"iPad Pro (12.9-inch) (3rd generation)\" Starting March 20, 2019 Apple's App Store requires 12.9-inch iPad Pro (3rd generation) screenshots additionally to the iPad Pro 2nd generation screenshots . As fastlane historically uses the screenshot dimensions to determine the \"display family\" of a screenshot, this poses a problem as both use the same dimensions and are recognized as the same device family. To solve this a screenshot of a 12.9-inch iPad Pro (3rd generation) must contain either the string iPad Pro (12.9-inch) (3rd generation) , IPAD_PRO_3GEN_129 , or ipadPro129 (Apple's internal naming of the display family for the 3rd generation iPad Pro) in its filename to be assigned the correct display family and to be uploaded to the correct screenshot slot in your app's metadata. Automatically create screenshots If you want to integrate deliver with snapshot , check out fastlane ! Jenkins integration Detailed instructions about how to set up deliver and fastlane in Jenkins can be found in the fastlane README . Firewall Issues deliver uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" fastlane deliver HTTP Proxy iTunes Transporter is a Java application bundled with Xcode. In addition to utilizing the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" , you need to configure the transporter application to use the proxy independently from the system proxy or any environment proxy settings. You can find the configuration file within Xcode: for Xcode11 and later TOOLS_PATH=$( xcode-select -p ) REL_PATH='../SharedFrameworks/ContentDeliveryServices.framework/Versions/A/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" for Xcode10 or earlier TOOLS_PATH=$( xcode-select -p ) REL_PATH='../Applications/Application Loader.app/Contents/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" Add necessary proxy configuration values to the net.properties according to Java Proxy Configuration . As an alternative to editing the properties files, proxy configuration can be specified on the command line directly: DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV -Dhttp.proxyHost=myproxy.com -Dhttp.proxyPort=8080\" Limit App Store Connect has a limit of 150 binary uploads per day. Editing the Deliverfile Change syntax highlighting to Ruby . Provider Short Name If you are on multiple App Store Connect teams, deliver needs a provider short name to know where to upload your binary. deliver will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option. upload_to_app_store Supported platforms ios, mac Author @KrauseFx 3 Examples upload_to_app_store( force: true, # Set to true to skip verification of HTML preview itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) deliver # alias for \"upload_to_app_store\" appstore # alias for \"upload_to_app_store\" Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of your app * app_version The version that should be edited or created ipa Path to your ipa file * pkg Path to your pkg file * build_number If set the given build number (already uploaded to iTC) will be used instead of the current built one platform The platform to use (optional) ios edit_live Modify live metadata, this option disables ipa upload and screenshot upload false use_live_version Force usage of live version rather than edit version false metadata_path Path to the folder containing the metadata files screenshots_path Path to the folder containing the screenshots skip_binary_upload Skip uploading an ipa or pkg to App Store Connect false skip_screenshots Don't upload the screenshots false skip_metadata Don't upload the metadata (e.g. title, description). This will still upload screenshots false skip_app_version_update Don\u2019t create or update the app version that is being prepared for submission false force Skip verification of HTML preview file false overwrite_screenshots Clear all previously uploaded screenshots before uploading the new ones false sync_screenshots Sync screenshots with local ones. This is currently beta option so set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well false submit_for_review Submit the new version for Review after uploading everything false verify_only Verifies archive with App Store Connect without uploading false reject_if_possible Rejects the previously submitted build if it's in a state where it's possible false automatic_release Should the app be automatically released once it's approved? (Can not be used together with auto_release_date ) auto_release_date Date in milliseconds for automatically releasing on pending approval (Can not be used together with automatic_release ) phased_release Enable the phased release feature of iTC false reset_ratings Reset the summary rating when you release a new version of the application false price_tier The price tier of this application app_rating_config_path Path to the app rating's config submission_information Extra information for the submission (e.g. compliance specifications, IDFA settings) team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your Developer Portal team, if you're in multiple teams. Different from your iTC team ID! * dev_portal_team_name The name of your Developer Portal team if you're in multiple teams * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column * run_precheck_before_submit Run precheck before submitting to app review true precheck_default_rule_level The default precheck rule level unless otherwise configured :warn individual_metadata_items DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - An array of localized metadata items to upload individually by language so that errors can be identified. E.g. ['name', 'keywords', 'description']. Note: slow app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the app icon apple_watch_app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the Apple Watch app icon copyright Metadata: The copyright notice primary_category Metadata: The english name of the primary category (e.g. Business , Books ) secondary_category Metadata: The english name of the secondary category (e.g. Business , Books ) primary_first_sub_category Metadata: The english name of the primary first sub category (e.g. Educational , Puzzle ) primary_second_sub_category Metadata: The english name of the primary second sub category (e.g. Educational , Puzzle ) secondary_first_sub_category Metadata: The english name of the secondary first sub category (e.g. Educational , Puzzle ) secondary_second_sub_category Metadata: The english name of the secondary second sub category (e.g. Educational , Puzzle ) trade_representative_contact_information DEPRECATED! This is no longer used by App Store Connect - Metadata: A hash containing the trade representative contact information app_review_information Metadata: A hash containing the review information app_review_attachment_file Metadata: Path to the app review attachment file description Metadata: The localised app description name Metadata: The localised app name subtitle Metadata: The localised app subtitle keywords Metadata: An array of localised keywords promotional_text Metadata: An array of localised promotional texts release_notes Metadata: Localised release notes for this version privacy_url Metadata: Localised privacy url apple_tv_privacy_policy Metadata: Localised Apple TV privacy policy text support_url Metadata: Localised support url marketing_url Metadata: Localised marketing url languages Metadata: List of languages to activate ignore_language_directory_validation Ignore errors when invalid languages are found in metadata and screenshot directories false precheck_include_in_app_purchases Should precheck check in-app purchases? true app The (spaceship) app ID of the app you want to use/modify * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action upload_to_app_store CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_to_app_store To pass parameters, make use of the : symbol, for example fastlane run upload_to_app_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Upload to app store"},{"location":"generated/actions/upload_to_app_store/#upload_to_app_store","text":"Upload metadata and binary to App Store Connect (via deliver ) deliver uploads screenshots, metadata and binaries to App Store Connect. Use deliver to submit your app for App Store review. Features \u2022 Quick Start \u2022 Usage \u2022 Tips","title":"upload_to_app_store"},{"location":"generated/actions/upload_to_app_store/#features","text":"Upload hundreds of localized screenshots completely automatically Upload a new ipa/pkg file to App Store Connect without Xcode from any Mac Maintain your app metadata locally and push changes back to App Store Connect Easily implement a real Continuous Deployment process using fastlane Store the configuration in git to easily deploy from any Mac, including your Continuous Integration server Get a HTML preview of the fetched metadata before uploading the app metadata and screenshots to iTC Automatically uses precheck to ensure your app has the highest chances of passing app review the first time To upload builds to TestFlight check out pilot .","title":"Features"},{"location":"generated/actions/upload_to_app_store/#quick-start","text":"The guide will create all the necessary files for you, using the existing app metadata from App Store Connect. cd [your_project_folder] fastlane deliver init Enter your App Store Connect credentials Enter your app identifier Enjoy a good drink, while the computer does all the work for you From now on, you can run fastlane deliver to deploy a new update, or just upload new app metadata and screenshots.","title":"Quick Start"},{"location":"generated/actions/upload_to_app_store/#usage","text":"Check out your local ./fastlane/metadata and ./fastlane/screenshots folders (if you don't use fastlane it's ./metadata instead) You'll see your metadata from App Store Connect. Feel free to store the metadata in git (not the screenshots). You can now modify it locally and push the changes back to App Store Connect. Run fastlane deliver to upload the app metadata from your local machine fastlane deliver Provide the path to an ipa file to upload and submit your app for review: fastlane deliver --ipa \"App.ipa\" --submit_for_review or you can specify path to pkg file for macOS apps: fastlane deliver --pkg \"MacApp.pkg\" If you use fastlane you don't have to manually specify the path to your ipa / pkg file. This is just a small sub-set of what you can do with deliver , check out the full documentation in #more-options Download existing screenshots from App Store Connect fastlane deliver download_screenshots Download existing metadata from App Store Connect fastlane deliver download_metadata To get a list of available options run fastlane action deliver","title":"Usage"},{"location":"generated/actions/upload_to_app_store/#more-options","text":"View all available options and their valid values","title":"More options"},{"location":"generated/actions/upload_to_app_store/#available-options","text":"All the options below can easily be added to your Deliverfile . The great thing: if you use fastlane you can use all these options from your Fastfile too, for example: deliver( submit_for_review: true, metadata_path: \"../folder\" )","title":"Available options"},{"location":"generated/actions/upload_to_app_store/#metadata","text":"All options below are useful if you want to specify certain app metadata in your Deliverfile or Fastfile","title":"Metadata"},{"location":"generated/actions/upload_to_app_store/#submit-build","text":"deliver allows you to promote an existing build to production. Below are examples to select a previously uploaded build and submit it for review. fastlane deliver submit_build --build_number 830","title":"Submit Build"},{"location":"generated/actions/upload_to_app_store/#credentials","text":"A detailed description about how your credentials are handled is available in a credentials_manager .","title":"Credentials"},{"location":"generated/actions/upload_to_app_store/#tips","text":"","title":"Tips"},{"location":"generated/actions/upload_to_app_store/#available-language-codes","text":"ar-SA, ca, cs, da, de-DE, el, en-AU, en-CA, en-GB, en-US, es-ES, es-MX, fi, fr-CA, fr-FR, he, hi, hr, hu, id, it, ja, ko, ms, nl-NL, no, pl, pt-BR, pt-PT, ro, ru, sk, sv, th, tr, uk, vi, zh-Hans, zh-Hant","title":"Available language codes"},{"location":"generated/actions/upload_to_app_store/#available-metadata-folder-options","text":"deliver allows for metadata to be set through .txt files in the metadata folder. This metadata folder location is defaulted to ./fastlane/metadata but can be overridden through the metadata_path parameter. Below are all allowed metadata options.","title":"Available Metadata Folder Options"},{"location":"generated/actions/upload_to_app_store/#reference","text":"View all available categories, etc.","title":"Reference"},{"location":"generated/actions/upload_to_app_store/#default-values","text":"Deliver has a special default language code which allows you to provide values that are not localized, and which will be used as defaults when you don\u2019t provide a specific localized value. In order to use default , you will need to tell deliver which languages your app uses. You can do this in either of two ways: Create the folders named with the language in the metadata folder (i.e. fastlane/metadata/en-US or fastlane/metadata/de-DE) Add the following to your Deliverfile languages(['en-US','de-DE']) You can use this either in json within your Deliverfile and/or as folders in your metadata folder. deliver will take the union of both language sets from the Deliverfile and from the metadata folder and create on single set of languages which will be enabled. Imagine that you have localized data for the following language codes: en-US, de-DE, el, it You can set the following in your Deliverfile release_notes({ 'default' => \"Shiny and new\", 'de-DE' => \"glaenzend und neu\" }) Deliver will use \"Shiny and new\" for en-US, el and it. It will use \"glaenzend und neu\" for de-DE. You can do the same with folders default keywords.txt marketing_url.txt name.txt privacy_url.txt support_url.txt release_notes.txt en-US description.txt de-DE description.txt el description.txt it description.txt In this case, default values for keywords, urls, name and release notes are used in all localizations, but each language has a fully localized description","title":"Default values"},{"location":"generated/actions/upload_to_app_store/#uploading-screenshots-for-ipad-pro-129-inch-3rd-generation","text":"Starting March 20, 2019 Apple's App Store requires 12.9-inch iPad Pro (3rd generation) screenshots additionally to the iPad Pro 2nd generation screenshots . As fastlane historically uses the screenshot dimensions to determine the \"display family\" of a screenshot, this poses a problem as both use the same dimensions and are recognized as the same device family. To solve this a screenshot of a 12.9-inch iPad Pro (3rd generation) must contain either the string iPad Pro (12.9-inch) (3rd generation) , IPAD_PRO_3GEN_129 , or ipadPro129 (Apple's internal naming of the display family for the 3rd generation iPad Pro) in its filename to be assigned the correct display family and to be uploaded to the correct screenshot slot in your app's metadata.","title":"Uploading screenshots for \"iPad Pro (12.9-inch) (3rd generation)\""},{"location":"generated/actions/upload_to_app_store/#automatically-create-screenshots","text":"If you want to integrate deliver with snapshot , check out fastlane !","title":"Automatically create screenshots"},{"location":"generated/actions/upload_to_app_store/#jenkins-integration","text":"Detailed instructions about how to set up deliver and fastlane in Jenkins can be found in the fastlane README .","title":"Jenkins integration"},{"location":"generated/actions/upload_to_app_store/#firewall-issues","text":"deliver uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" fastlane deliver","title":"Firewall Issues"},{"location":"generated/actions/upload_to_app_store/#http-proxy","text":"iTunes Transporter is a Java application bundled with Xcode. In addition to utilizing the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" , you need to configure the transporter application to use the proxy independently from the system proxy or any environment proxy settings. You can find the configuration file within Xcode: for Xcode11 and later TOOLS_PATH=$( xcode-select -p ) REL_PATH='../SharedFrameworks/ContentDeliveryServices.framework/Versions/A/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" for Xcode10 or earlier TOOLS_PATH=$( xcode-select -p ) REL_PATH='../Applications/Application Loader.app/Contents/itms/java/lib/net.properties' echo \"$TOOLS_PATH/$REL_PATH\" Add necessary proxy configuration values to the net.properties according to Java Proxy Configuration . As an alternative to editing the properties files, proxy configuration can be specified on the command line directly: DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV -Dhttp.proxyHost=myproxy.com -Dhttp.proxyPort=8080\"","title":"HTTP Proxy"},{"location":"generated/actions/upload_to_app_store/#limit","text":"App Store Connect has a limit of 150 binary uploads per day.","title":"Limit"},{"location":"generated/actions/upload_to_app_store/#editing-the-deliverfile","text":"Change syntax highlighting to Ruby .","title":"Editing the Deliverfile"},{"location":"generated/actions/upload_to_app_store/#provider-short-name","text":"If you are on multiple App Store Connect teams, deliver needs a provider short name to know where to upload your binary. deliver will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option. upload_to_app_store Supported platforms ios, mac Author @KrauseFx","title":"Provider Short Name"},{"location":"generated/actions/upload_to_app_store/#3-examples","text":"upload_to_app_store( force: true, # Set to true to skip verification of HTML preview itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) deliver # alias for \"upload_to_app_store\" appstore # alias for \"upload_to_app_store\"","title":"3 Examples"},{"location":"generated/actions/upload_to_app_store/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of your app * app_version The version that should be edited or created ipa Path to your ipa file * pkg Path to your pkg file * build_number If set the given build number (already uploaded to iTC) will be used instead of the current built one platform The platform to use (optional) ios edit_live Modify live metadata, this option disables ipa upload and screenshot upload false use_live_version Force usage of live version rather than edit version false metadata_path Path to the folder containing the metadata files screenshots_path Path to the folder containing the screenshots skip_binary_upload Skip uploading an ipa or pkg to App Store Connect false skip_screenshots Don't upload the screenshots false skip_metadata Don't upload the metadata (e.g. title, description). This will still upload screenshots false skip_app_version_update Don\u2019t create or update the app version that is being prepared for submission false force Skip verification of HTML preview file false overwrite_screenshots Clear all previously uploaded screenshots before uploading the new ones false sync_screenshots Sync screenshots with local ones. This is currently beta option so set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well false submit_for_review Submit the new version for Review after uploading everything false verify_only Verifies archive with App Store Connect without uploading false reject_if_possible Rejects the previously submitted build if it's in a state where it's possible false automatic_release Should the app be automatically released once it's approved? (Can not be used together with auto_release_date ) auto_release_date Date in milliseconds for automatically releasing on pending approval (Can not be used together with automatic_release ) phased_release Enable the phased release feature of iTC false reset_ratings Reset the summary rating when you release a new version of the application false price_tier The price tier of this application app_rating_config_path Path to the app rating's config submission_information Extra information for the submission (e.g. compliance specifications, IDFA settings) team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your Developer Portal team, if you're in multiple teams. Different from your iTC team ID! * dev_portal_team_name The name of your Developer Portal team if you're in multiple teams * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column * run_precheck_before_submit Run precheck before submitting to app review true precheck_default_rule_level The default precheck rule level unless otherwise configured :warn individual_metadata_items DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - An array of localized metadata items to upload individually by language so that errors can be identified. E.g. ['name', 'keywords', 'description']. Note: slow app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the app icon apple_watch_app_icon DEPRECATED! Removed after the migration to the new App Store Connect API in June 2020 - Metadata: The path to the Apple Watch app icon copyright Metadata: The copyright notice primary_category Metadata: The english name of the primary category (e.g. Business , Books ) secondary_category Metadata: The english name of the secondary category (e.g. Business , Books ) primary_first_sub_category Metadata: The english name of the primary first sub category (e.g. Educational , Puzzle ) primary_second_sub_category Metadata: The english name of the primary second sub category (e.g. Educational , Puzzle ) secondary_first_sub_category Metadata: The english name of the secondary first sub category (e.g. Educational , Puzzle ) secondary_second_sub_category Metadata: The english name of the secondary second sub category (e.g. Educational , Puzzle ) trade_representative_contact_information DEPRECATED! This is no longer used by App Store Connect - Metadata: A hash containing the trade representative contact information app_review_information Metadata: A hash containing the review information app_review_attachment_file Metadata: Path to the app review attachment file description Metadata: The localised app description name Metadata: The localised app name subtitle Metadata: The localised app subtitle keywords Metadata: An array of localised keywords promotional_text Metadata: An array of localised promotional texts release_notes Metadata: Localised release notes for this version privacy_url Metadata: Localised privacy url apple_tv_privacy_policy Metadata: Localised Apple TV privacy policy text support_url Metadata: Localised support url marketing_url Metadata: Localised marketing url languages Metadata: List of languages to activate ignore_language_directory_validation Ignore errors when invalid languages are found in metadata and screenshot directories false precheck_include_in_app_purchases Should precheck check in-app purchases? true app The (spaceship) app ID of the app you want to use/modify * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/upload_to_app_store/#documentation","text":"To show the documentation in your terminal, run fastlane action upload_to_app_store","title":"Documentation"},{"location":"generated/actions/upload_to_app_store/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_to_app_store To pass parameters, make use of the : symbol, for example fastlane run upload_to_app_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/upload_to_app_store/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/upload_to_play_store/","text":"upload_to_play_store Upload metadata, screenshots and binaries to Google Play (via supply ) Command line tool for updating Android apps and their metadata on the Google Play Store supply uploads app metadata, screenshots, binaries, and app bundles to Google Play. You can also select tracks for builds and promote builds to production. Features \u2022 Setup \u2022 Quick Start \u2022 Commands \u2022 Uploading an APK \u2022 Uploading an AAB \u2022 Images Features Update existing Android applications on Google Play via the command line Upload new builds (APKs and AABs) Retrieve and edit metadata, such as title and description, for multiple languages Upload the app icon, promo graphics and screenshots for multiple languages Have a local copy of the metadata in your git repository Retrieve version code numbers from existing Google Play tracks Setup Setup consists of setting up your Google Developers Service Account Tip: If you see Google Play Console or Google Developer Console in your local language, add &hl=en at the end of the URL (before any #... ) to switch to English. All the links below already have this to make it easier to find the correct buttons. Note: if you face issues when following these instructions, you might want to refer to the official documentation by Google . Open the Google Play Console Click Account Details , and note the Developer Account ID listed there Enable the Google Play Developer API by selecting an existing Google Cloud Project that fits your needs and pushing ENABLE If you don't have an existing project or prefer to have a dedicated one for fastlane , create a new one here and follow the instructions Open Service Accounts on Google Cloud and select the project you'd like to use Click the CREATE SERVICE ACCOUNT button at the top of the Google Cloud Platform Console page Verify that you are on the correct Google Cloud Platform Project by looking for the Developer Account ID from earlier within the light gray text in the second input, preceding .iam.gserviceaccount.com , or by checking the project name in the navigaton bar. If not, open the picker in the top navigation bar, and find the right one. Provide a Service account name (e.g. fastlane-supply) Copy the generated email address that is noted below the Service account-ID field for later use Click DONE (don't click CREATE AND CONTINUE as the optional steps such as granting access are not needed): Click on the Actions vertical three-dot icon of the service account you just created Select Manage keys on the menu Click ADD KEY \u2192 Create New Key Make sure JSON is selected as the Key type , and click CREATE Save the file on your computer when prompted and remember where it was saved at Open the Google Play Console and select Users and Permissions Click Invite new users Paste the email address you saved for later use into the email address field Click on Account Permissions Choose the permissions you'd like this account to have. We recommend Admin (all permissions) , but you may want to manually select all checkboxes and leave out some of the Releases permissions such as Release to production, exclude devices, and use Play App Signing Click on Invite User You can use fastlane run validate_play_store_json_key json_key:/path/to/your/downloaded/file.json to test the connection to Google Play Store with the downloaded private key. Once that works, add the path to the JSON file to your Appfile : json_key_file(\"path/to/your/play-store-credentials.json\") package_name(\"my.package.name\") The path is relative to where you normally run fastlane . Migrating Google credential format (from .p12 key file to .json) In previous versions of supply, credentials to your Play Console were stored as .p12 files. Since version 0.4.0, supply now supports the recommended .json key Service Account credential files. If you wish to upgrade: follow the Setup procedure once again to make sure you create the appropriate JSON file update your fastlane configuration or your command line invocation to use the appropriate argument if necessary. Note that you don't need to take note nor pass the issuer argument anymore. The previous p12 configuration is still currently supported. Quick Start Before using supply to connect to Google Play Store, you'll need to set up your app manually first by uploading at least one build to Google Play Store. See fastlane/fastlane#14686 for more info. cd [your_project_folder] fastlane supply init Make changes to the downloaded metadata, add images, screenshots and/or an APK fastlane supply Available Commands fastlane supply : update an app with metadata, a build, images and screenshots fastlane supply init : download metadata for an existing app to a local directory fastlane action supply : show information on available commands, arguments and environment variables You can either run supply on its own and use it interactively, or you can pass arguments or specify environment variables for all the options to skip the questions. Uploading an APK To upload a new binary to Google Play, simply run fastlane supply --apk path/to/app.apk This will also upload app metadata if you previously ran fastlane supply init . To gradually roll out a new build use fastlane supply --apk path/app.apk --track beta --rollout 0.5 To set the in-app update priority level for a release, set a valid update priority (an integer value from 0 to 5) using option in_app_update_priority fastlane supply --apk path/app.apk --track beta --in_app_update_priority 3 Expansion files ( .obb ) Expansion files (obbs) found under the same directory as your APK will also be uploaded together with your APK as long as: they are identified as type 'main' or 'patch' (by containing 'main' or 'patch' in their file name) you have at most one of each type If you only want to update the APK, but keep the expansion files from the previous version on Google Play use fastlane supply --apk path/app.apk --obb_main_references_version 21 --obb_main_file_size 666154207 or fastlane supply --apk path/app.apk --obb_patch_references_version 21 --obb_patch_file_size 666154207 Uploading an AAB To upload a new Android application bundle to Google Play, simply run fastlane supply --aab path/to/app.aab This will also upload app metadata if you previously ran fastlane supply init . To gradually roll out a new build use fastlane supply --aab path/app.aab --track beta --rollout 0.5 To set the in-app update priority level for a release, set a valid update priority (an integer value from 0 to 5) using option in_app_update_priority fastlane supply --aab path/app.aab --track beta --in_app_update_priority 3 Images and Screenshots After running fastlane supply init , you will have a metadata directory. This directory contains one or more locale directories (e.g. en-US, en-GB, etc.), and inside this directory are text files such as title.txt and short_description.txt . Inside of a given locale directory is a folder called images . Here you can supply images with the following file names (extension can be png, jpg or jpeg): featureGraphic icon promoGraphic tvBanner You can also supply screenshots by creating directories within the images directory with the following names, containing PNGs or JPEGs: phoneScreenshots/ sevenInchScreenshots/ (7-inch tablets) tenInchScreenshots/ (10-inch tablets) tvScreenshots/ wearScreenshots/ You may name images anything you like, but screenshots will appear in the Play Store in alphanumerical filename order. Note that these will replace the current images and screenshots on the play store listing, not add to them. Changelogs (What's new) You can add changelog files under the changelogs/ directory for each locale. The filename should exactly match the version code of the APK that it represents. You can also provide default notes that will be used if no files match the version code by adding a default.txt file. fastlane supply init will populate changelog files from existing data on Google Play if no metadata/ directory exists when it is run. \u2514\u2500\u2500 fastlane \u2514\u2500\u2500 metadata \u2514\u2500\u2500 android \u251c\u2500\u2500 en-US \u2502 \u2514\u2500\u2500 changelogs \u2502 \u251c\u2500\u2500 default.txt \u2502 \u251c\u2500\u2500 100000.txt \u2502 \u2514\u2500\u2500 100100.txt \u2514\u2500\u2500 fr-FR \u2514\u2500\u2500 changelogs \u251c\u2500\u2500 default.txt \u2514\u2500\u2500 100100.txt Track Promotion A common Play publishing scenario might involve uploading an APK version to a test track, testing it, and finally promoting that version to production. This can be done using the --track_promote_to parameter. The --track_promote_to parameter works with the --track parameter to command the Play API to promote existing Play track APK version(s) (those active on the track identified by the --track param value) to a new track ( --track_promote_to value). Retrieve Track Release Names & Version Codes Before performing a new APK upload you may want to check existing track version codes or release names, or you may simply want to provide an informational lane that displays the currently promoted version codes or release name for the production track. You can use the google_play_track_version_codes action to retrieve existing version codes for a package and track. You can use the google_play_track_release_names action to retrieve existing release names for a package and track. For more information, see the fastlane action google_play_track_version_codes and fastlane action google_play_track_release_names help output. Migration from AndroidPublisherV2 to AndroidPublisherV3 in fastlane 2.135.0 New Options :version_name Used when uploading with :apk_path , :apk_paths , :aab_path , and :aab_paths Can be any string such (example: \"October Release\" or \"Awesome New Feature\") Defaults to the version name in app/build.gradle or AndroidManifest.xml :release_status Used when uploading with :apk_path , :apk_paths , :aab_path , and :aab_paths Can set as \"draft\" to complete the release at some other time Defaults to \"completed\" :version_code Used for :update_rollout , :track_promote_to , and uploading of meta data and screenshots :skip_upload_changelogs Changelogs were previously included with the :skip_upload_metadata but is now its own option Deprecated Options :check_superseded_tracks Google Play will automatically remove releases that are superseded now :deactivate_on_promote Google Play will automatically deactivate a release from its previous track on promote : upload_to_play_store Supported platforms android Author @KrauseFx 2 Examples upload_to_play_store supply # alias for \"upload_to_play_store\" Parameters Key Description Default package_name The package name of the application to use * version_name Version name (used when uploading new apks/aabs) - defaults to 'versionName' in build.gradle or AndroidManifest.xml * version_code The versionCode for which to download the generated APK * release_status Release status (used when uploading new apks/aabs) - valid values are completed, draft, halted, inProgress * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production rollout The percentage of the user fraction when uploading to the rollout track (setting to 1 will complete the rollout) metadata_path Path to the directory containing the metadata files * key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * apk Path to the APK file to upload * apk_paths An array of paths to APK files to upload aab Path to the AAB file to upload * aab_paths An array of paths to AAB files to upload skip_upload_apk Whether to skip uploading APK false skip_upload_aab Whether to skip uploading AAB false skip_upload_metadata Whether to skip uploading metadata, changelogs not included false skip_upload_changelogs Whether to skip uploading changelogs false skip_upload_images Whether to skip uploading images, screenshots not included false skip_upload_screenshots Whether to skip uploading SCREENSHOTS false sync_image_upload Whether to use sha256 comparison to skip upload of images and screenshots that are already in Play Store false track_promote_to The track to promote to. The default available tracks are: production, beta, alpha, internal track_promote_release_status Promoted track release status (used when promoting a track) - valid values are completed, draft, halted, inProgress completed validate_only Only validate changes with Google Play rather than actually publish false mapping Path to the mapping file to upload (mapping.txt or native-debug-symbols.zip alike) mapping_paths An array of paths to mapping files to upload (mapping.txt or native-debug-symbols.zip alike) root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ check_superseded_tracks DEPRECATED! Google Play does this automatically now - Check the other tracks for superseded versions and disable them false timeout Timeout for read, open, and send (in seconds) 300 deactivate_on_promote DEPRECATED! Google Play does this automatically now - When promoting to a new track, deactivate the binary in the origin track true version_codes_to_retain An array of version codes to retain when publishing a new APK changes_not_sent_for_review Indicates that the changes in this edit will not be reviewed until they are explicitly sent for review from the Google Play Console UI false rescue_changes_not_sent_for_review Catches changes_not_sent_for_review errors when an edit is committed and retries with the configuration that the error message recommended true in_app_update_priority In-app update priority for all the newly added apks in the release. Can take values between [0,5] obb_main_references_version References version of 'main' expansion file obb_main_file_size Size of 'main' expansion file in bytes obb_patch_references_version References version of 'patch' expansion file obb_patch_file_size Size of 'patch' expansion file in bytes ack_bundle_installation_warning Must be set to true if the bundle installation may trigger a warning on user devices (e.g can only be downloaded over wifi). Typically this is required for bundles over 150MB false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action upload_to_play_store CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_to_play_store To pass parameters, make use of the : symbol, for example fastlane run upload_to_play_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Upload to play store"},{"location":"generated/actions/upload_to_play_store/#upload_to_play_store","text":"Upload metadata, screenshots and binaries to Google Play (via supply )","title":"upload_to_play_store"},{"location":"generated/actions/upload_to_play_store/#features","text":"Update existing Android applications on Google Play via the command line Upload new builds (APKs and AABs) Retrieve and edit metadata, such as title and description, for multiple languages Upload the app icon, promo graphics and screenshots for multiple languages Have a local copy of the metadata in your git repository Retrieve version code numbers from existing Google Play tracks","title":"Features"},{"location":"generated/actions/upload_to_play_store/#setup","text":"Setup consists of setting up your Google Developers Service Account Tip: If you see Google Play Console or Google Developer Console in your local language, add &hl=en at the end of the URL (before any #... ) to switch to English. All the links below already have this to make it easier to find the correct buttons. Note: if you face issues when following these instructions, you might want to refer to the official documentation by Google . Open the Google Play Console Click Account Details , and note the Developer Account ID listed there Enable the Google Play Developer API by selecting an existing Google Cloud Project that fits your needs and pushing ENABLE If you don't have an existing project or prefer to have a dedicated one for fastlane , create a new one here and follow the instructions Open Service Accounts on Google Cloud and select the project you'd like to use Click the CREATE SERVICE ACCOUNT button at the top of the Google Cloud Platform Console page Verify that you are on the correct Google Cloud Platform Project by looking for the Developer Account ID from earlier within the light gray text in the second input, preceding .iam.gserviceaccount.com , or by checking the project name in the navigaton bar. If not, open the picker in the top navigation bar, and find the right one. Provide a Service account name (e.g. fastlane-supply) Copy the generated email address that is noted below the Service account-ID field for later use Click DONE (don't click CREATE AND CONTINUE as the optional steps such as granting access are not needed): Click on the Actions vertical three-dot icon of the service account you just created Select Manage keys on the menu Click ADD KEY \u2192 Create New Key Make sure JSON is selected as the Key type , and click CREATE Save the file on your computer when prompted and remember where it was saved at Open the Google Play Console and select Users and Permissions Click Invite new users Paste the email address you saved for later use into the email address field Click on Account Permissions Choose the permissions you'd like this account to have. We recommend Admin (all permissions) , but you may want to manually select all checkboxes and leave out some of the Releases permissions such as Release to production, exclude devices, and use Play App Signing Click on Invite User You can use fastlane run validate_play_store_json_key json_key:/path/to/your/downloaded/file.json to test the connection to Google Play Store with the downloaded private key. Once that works, add the path to the JSON file to your Appfile : json_key_file(\"path/to/your/play-store-credentials.json\") package_name(\"my.package.name\") The path is relative to where you normally run fastlane .","title":"Setup"},{"location":"generated/actions/upload_to_play_store/#quick-start","text":"Before using supply to connect to Google Play Store, you'll need to set up your app manually first by uploading at least one build to Google Play Store. See fastlane/fastlane#14686 for more info. cd [your_project_folder] fastlane supply init Make changes to the downloaded metadata, add images, screenshots and/or an APK fastlane supply","title":"Quick Start"},{"location":"generated/actions/upload_to_play_store/#available-commands","text":"fastlane supply : update an app with metadata, a build, images and screenshots fastlane supply init : download metadata for an existing app to a local directory fastlane action supply : show information on available commands, arguments and environment variables You can either run supply on its own and use it interactively, or you can pass arguments or specify environment variables for all the options to skip the questions.","title":"Available Commands"},{"location":"generated/actions/upload_to_play_store/#uploading-an-apk","text":"To upload a new binary to Google Play, simply run fastlane supply --apk path/to/app.apk This will also upload app metadata if you previously ran fastlane supply init . To gradually roll out a new build use fastlane supply --apk path/app.apk --track beta --rollout 0.5 To set the in-app update priority level for a release, set a valid update priority (an integer value from 0 to 5) using option in_app_update_priority fastlane supply --apk path/app.apk --track beta --in_app_update_priority 3","title":"Uploading an APK"},{"location":"generated/actions/upload_to_play_store/#uploading-an-aab","text":"To upload a new Android application bundle to Google Play, simply run fastlane supply --aab path/to/app.aab This will also upload app metadata if you previously ran fastlane supply init . To gradually roll out a new build use fastlane supply --aab path/app.aab --track beta --rollout 0.5 To set the in-app update priority level for a release, set a valid update priority (an integer value from 0 to 5) using option in_app_update_priority fastlane supply --aab path/app.aab --track beta --in_app_update_priority 3","title":"Uploading an AAB"},{"location":"generated/actions/upload_to_play_store/#images-and-screenshots","text":"After running fastlane supply init , you will have a metadata directory. This directory contains one or more locale directories (e.g. en-US, en-GB, etc.), and inside this directory are text files such as title.txt and short_description.txt . Inside of a given locale directory is a folder called images . Here you can supply images with the following file names (extension can be png, jpg or jpeg): featureGraphic icon promoGraphic tvBanner You can also supply screenshots by creating directories within the images directory with the following names, containing PNGs or JPEGs: phoneScreenshots/ sevenInchScreenshots/ (7-inch tablets) tenInchScreenshots/ (10-inch tablets) tvScreenshots/ wearScreenshots/ You may name images anything you like, but screenshots will appear in the Play Store in alphanumerical filename order. Note that these will replace the current images and screenshots on the play store listing, not add to them.","title":"Images and Screenshots"},{"location":"generated/actions/upload_to_play_store/#changelogs-whats-new","text":"You can add changelog files under the changelogs/ directory for each locale. The filename should exactly match the version code of the APK that it represents. You can also provide default notes that will be used if no files match the version code by adding a default.txt file. fastlane supply init will populate changelog files from existing data on Google Play if no metadata/ directory exists when it is run. \u2514\u2500\u2500 fastlane \u2514\u2500\u2500 metadata \u2514\u2500\u2500 android \u251c\u2500\u2500 en-US \u2502 \u2514\u2500\u2500 changelogs \u2502 \u251c\u2500\u2500 default.txt \u2502 \u251c\u2500\u2500 100000.txt \u2502 \u2514\u2500\u2500 100100.txt \u2514\u2500\u2500 fr-FR \u2514\u2500\u2500 changelogs \u251c\u2500\u2500 default.txt \u2514\u2500\u2500 100100.txt","title":"Changelogs (What's new)"},{"location":"generated/actions/upload_to_play_store/#track-promotion","text":"A common Play publishing scenario might involve uploading an APK version to a test track, testing it, and finally promoting that version to production. This can be done using the --track_promote_to parameter. The --track_promote_to parameter works with the --track parameter to command the Play API to promote existing Play track APK version(s) (those active on the track identified by the --track param value) to a new track ( --track_promote_to value).","title":"Track Promotion"},{"location":"generated/actions/upload_to_play_store/#retrieve-track-release-names-version-codes","text":"Before performing a new APK upload you may want to check existing track version codes or release names, or you may simply want to provide an informational lane that displays the currently promoted version codes or release name for the production track. You can use the google_play_track_version_codes action to retrieve existing version codes for a package and track. You can use the google_play_track_release_names action to retrieve existing release names for a package and track. For more information, see the fastlane action google_play_track_version_codes and fastlane action google_play_track_release_names help output.","title":"Retrieve Track Release Names & Version Codes"},{"location":"generated/actions/upload_to_play_store/#migration-from-androidpublisherv2-to-androidpublisherv3-in-fastlane-21350","text":"","title":"Migration from AndroidPublisherV2 to AndroidPublisherV3 in fastlane 2.135.0"},{"location":"generated/actions/upload_to_play_store/#2-examples","text":"upload_to_play_store supply # alias for \"upload_to_play_store\"","title":"2 Examples"},{"location":"generated/actions/upload_to_play_store/#parameters","text":"Key Description Default package_name The package name of the application to use * version_name Version name (used when uploading new apks/aabs) - defaults to 'versionName' in build.gradle or AndroidManifest.xml * version_code The versionCode for which to download the generated APK * release_status Release status (used when uploading new apks/aabs) - valid values are completed, draft, halted, inProgress * track The track of the application to use. The default available tracks are: production, beta, alpha, internal production rollout The percentage of the user fraction when uploading to the rollout track (setting to 1 will complete the rollout) metadata_path Path to the directory containing the metadata files * key DEPRECATED! Use --json_key instead - The p12 File used to authenticate with Google * issuer DEPRECATED! Use --json_key instead - The issuer of the p12 file (email address of the service account) * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * apk Path to the APK file to upload * apk_paths An array of paths to APK files to upload aab Path to the AAB file to upload * aab_paths An array of paths to AAB files to upload skip_upload_apk Whether to skip uploading APK false skip_upload_aab Whether to skip uploading AAB false skip_upload_metadata Whether to skip uploading metadata, changelogs not included false skip_upload_changelogs Whether to skip uploading changelogs false skip_upload_images Whether to skip uploading images, screenshots not included false skip_upload_screenshots Whether to skip uploading SCREENSHOTS false sync_image_upload Whether to use sha256 comparison to skip upload of images and screenshots that are already in Play Store false track_promote_to The track to promote to. The default available tracks are: production, beta, alpha, internal track_promote_release_status Promoted track release status (used when promoting a track) - valid values are completed, draft, halted, inProgress completed validate_only Only validate changes with Google Play rather than actually publish false mapping Path to the mapping file to upload (mapping.txt or native-debug-symbols.zip alike) mapping_paths An array of paths to mapping files to upload (mapping.txt or native-debug-symbols.zip alike) root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ check_superseded_tracks DEPRECATED! Google Play does this automatically now - Check the other tracks for superseded versions and disable them false timeout Timeout for read, open, and send (in seconds) 300 deactivate_on_promote DEPRECATED! Google Play does this automatically now - When promoting to a new track, deactivate the binary in the origin track true version_codes_to_retain An array of version codes to retain when publishing a new APK changes_not_sent_for_review Indicates that the changes in this edit will not be reviewed until they are explicitly sent for review from the Google Play Console UI false rescue_changes_not_sent_for_review Catches changes_not_sent_for_review errors when an edit is committed and retries with the configuration that the error message recommended true in_app_update_priority In-app update priority for all the newly added apks in the release. Can take values between [0,5] obb_main_references_version References version of 'main' expansion file obb_main_file_size Size of 'main' expansion file in bytes obb_patch_references_version References version of 'patch' expansion file obb_patch_file_size Size of 'patch' expansion file in bytes ack_bundle_installation_warning Must be set to true if the bundle installation may trigger a warning on user devices (e.g can only be downloaded over wifi). Typically this is required for bundles over 150MB false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/upload_to_play_store/#documentation","text":"To show the documentation in your terminal, run fastlane action upload_to_play_store","title":"Documentation"},{"location":"generated/actions/upload_to_play_store/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_to_play_store To pass parameters, make use of the : symbol, for example fastlane run upload_to_play_store parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/upload_to_play_store/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/upload_to_play_store_internal_app_sharing/","text":"upload_to_play_store_internal_app_sharing Upload binaries to Google Play Internal App Sharing (via supply ) More information: https://docs.fastlane.tools/actions/upload_to_play_store_internal_app_sharing/ upload_to_play_store_internal_app_sharing Supported platforms android Author @andrewhavens Returns Returns a string containing the download URL for the uploaded APK/AAB (or array of strings if multiple were uploaded). 1 Example upload_to_play_store_internal_app_sharing Parameters Key Description Default package_name The package name of the application to use * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * apk Path to the APK file to upload * apk_paths An array of paths to APK files to upload aab Path to the AAB file to upload * aab_paths An array of paths to AAB files to upload root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action upload_to_play_store_internal_app_sharing CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_to_play_store_internal_app_sharing To pass parameters, make use of the : symbol, for example fastlane run upload_to_play_store_internal_app_sharing parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Upload to play store internal app sharing"},{"location":"generated/actions/upload_to_play_store_internal_app_sharing/#upload_to_play_store_internal_app_sharing","text":"Upload binaries to Google Play Internal App Sharing (via supply ) More information: https://docs.fastlane.tools/actions/upload_to_play_store_internal_app_sharing/ upload_to_play_store_internal_app_sharing Supported platforms android Author @andrewhavens Returns Returns a string containing the download URL for the uploaded APK/AAB (or array of strings if multiple were uploaded).","title":"upload_to_play_store_internal_app_sharing"},{"location":"generated/actions/upload_to_play_store_internal_app_sharing/#1-example","text":"upload_to_play_store_internal_app_sharing","title":"1 Example"},{"location":"generated/actions/upload_to_play_store_internal_app_sharing/#parameters","text":"Key Description Default package_name The package name of the application to use * json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * apk Path to the APK file to upload * apk_paths An array of paths to APK files to upload aab Path to the AAB file to upload * aab_paths An array of paths to AAB files to upload root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/upload_to_play_store_internal_app_sharing/#documentation","text":"To show the documentation in your terminal, run fastlane action upload_to_play_store_internal_app_sharing","title":"Documentation"},{"location":"generated/actions/upload_to_play_store_internal_app_sharing/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_to_play_store_internal_app_sharing To pass parameters, make use of the : symbol, for example fastlane run upload_to_play_store_internal_app_sharing parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/upload_to_play_store_internal_app_sharing/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/upload_to_testflight/","text":"upload_to_testflight Upload new binary to App Store Connect for TestFlight beta testing (via pilot ) The best way to manage your TestFlight testers and builds from your terminal pilot makes it easier to manage your app on Apple\u2019s TestFlight. You can: Upload & distribute builds Add & remove testers Retrieve information about testers & devices Import/export all available testers pilot uses spaceship.airforce to interact with App Store Connect \ud83d\ude80 Usage \u2022 Tips pilot is part of fastlane : The easiest way to automate beta deployments and releases for your iOS and Android apps. Usage For all commands, you can either use an API Key or your Apple ID . App Store Connect API Key The App Store Connect API Key is the preferred authentication method (if you are able to use it). Uses official App Store Connect API No need for 2FA Better performance over Apple ID Specify the API key using --api_key_path ./path/to/api_key_info.json or --api_key \"{\\\"key_id\\\": \\\"D83848D23\\\", \\\"issuer_id\\\": \\\"227b0bbf-ada8-458c-9d62-3d8022b7d07f\\\", \\\"key_filepath\\\": \\\"D83848D23.p8\\\"}\" Go to Using App Store Connect API for information on obtaining an API key, the fastlane api_key_info.json format, and other API key usage. Apple ID Specify the Apple ID to use using -u felix@krausefx.com . If you execute pilot in a project already using fastlane the username and app identifier will automatically be determined. Uploading builds To upload a new build, just run fastlane pilot upload This will automatically look for an ipa in your current directory and tries to fetch the login credentials from your fastlane setup . You'll be asked for any missing information. Additionally, you can pass all kinds of parameters: fastlane action pilot You can pass a changelog using fastlane pilot upload --changelog \"Something that is new here\" You can also skip the submission of the binary, which means, the ipa file will only be uploaded and not distributed to testers: fastlane pilot upload --skip_submission pilot does all kinds of magic for you: Automatically detects the bundle identifier from your ipa file Automatically fetch the AppID of your app based on the bundle identifier pilot uses spaceship to submit the build metadata and the iTunes Transporter to upload the binary. Because iTunes Transporter's upload capability is only supported on OS X, pilot upload does not work on Linux, as described in this issue List builds To list all builds for specific application use fastlane pilot builds The result lists all active builds and processing builds: +-----------+---------+----------+ | Great App Builds | +-----------+---------+----------+ | Version # | Build # | Installs | +-----------+---------+----------+ | 0.9.13 | 1 | 0 | | 0.9.13 | 2 | 0 | | 0.9.20 | 3 | 0 | | 0.9.20 | 4 | 3 | +-----------+---------+----------+ Managing beta testers List of Testers This command will list all your testers, both internal and external. fastlane pilot list The output will look like this: +--------+--------+--------------------------+-----------+ | Internal Testers | +--------+--------+--------------------------+-----------+ | First | Last | Email | # Devices | +--------+--------+--------------------------+-----------+ | Felix | Krause | felix@krausefx.com | 2 | +--------+--------+--------------------------+-----------+ +-----------+---------+----------------------------+-----------+ | External Testers | +-----------+---------+----------------------------+-----------+ | First | Last | Email | # Devices | +-----------+---------+----------------------------+-----------+ | Max | Manfred | email@email.com | 0 | | Detlef | M\u00fcller | detlef@krausefx.com | 1 | +-----------+---------+----------------------------+-----------+ Add a new tester To add a new tester to your App Store Connect account and to associate it to at least one testing group of your app, use the pilot add command. This will create a new tester (if necessary) or add an existing tester to the app to test. fastlane pilot add email@invite.com -g group-1,group-2 Additionally you can specify the app identifier (if necessary): fastlane pilot add email@email.com -a com.krausefx.app -g group-1,group-2 Find a tester To find a specific tester use fastlane pilot find felix@krausefx.com The resulting output will look like this: +---------------------+---------------------+ | felix@krausefx.com | +---------------------+---------------------+ | First name | Felix | | Last name | Krause | | Email | felix@krausefx.com | | Latest Version | 0.9.14 (23 | | Latest Install Date | 03/28/15 19:00 | | 2 Devices | \u2022 iPhone 6, iOS 8.3 | | | \u2022 iPhone 5, iOS 7.0 | +---------------------+---------------------+ Remove a tester This command will remove beta tester from app (from all internal and external groups) fastlane pilot remove felix@krausefx.com You can also use groups option to remove the tester from the groups specified: fastlane pilot remove felix@krausefx.com -g group-1,group-2 Export testers To export all external testers to a CSV file. Useful if you need to import tester info to another system or a new account. fastlane pilot export Import testers Add external testers from a CSV file. Create a file (ex: testers.csv ) and fill it with the following format: John,Appleseed,appleseed_john@mac.com,group-1;group-2 fastlane pilot import You can also specify the directory using fastlane pilot export -c ~/Desktop/testers.csv fastlane pilot import -c ~/Desktop/testers.csv Tips Debug information If you run into any issues you can use the verbose mode to get a more detailed output: fastlane pilot upload --verbose Firewall Issues pilot uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol from the command line using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" pilot ... If you are using pilot via the fastlane action , add the following to your Fastfile ENV[\"DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS\"] = \"-t DAV\" pilot... Note, however, that Apple recommends you don\u2019t specify the -t transport and instead allow Transporter to use automatic transport discovery to determine the best transport mode for your packages. For this reason, if the t option is passed, we will raise a warning. Also note that -t is not the only additional parameter that can be used. The string specified in the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS environment variable will be forwarded to Transporter. For all the available options, check Apple's Transporter User Guide . Credentials Issues If your password contains special characters, pilot may throw a confusing error saying your \"Your Apple ID or password was entered incorrectly\". The easiest way to fix this error is to change your password to something that does not contains special characters. How is my password stored? pilot uses the CredentialsManager from fastlane . Provider Short Name If you are on multiple App Store Connect teams, iTunes Transporter may need a provider short name to know where to upload your binary. pilot will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option. Use an Application Specific Password to upload pilot / upload_to_testflight can use an Application Specific Password via the FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD environment variable to upload a binary if both the skip_waiting_for_build_processing and apple_id options are set. (If any of those are not set, it will use the normal Apple login process that might require 2FA authentication.) Role for App Store Connect User pilot / upload_to_testflight updates build information and testers after the build has finished processing. App Store Connect requires the \"App Manager\" or \"Admin\" role for your Apple account to update this information. The \"Developer\" role will allow builds to be uploaded but will not allow updating of build information and testers. upload_to_testflight Supported platforms ios, mac Author @KrauseFx 7 Examples upload_to_testflight testflight # alias for \"upload_to_testflight\" pilot # alias for \"upload_to_testflight\" upload_to_testflight(skip_submission: true) # to only upload the build upload_to_testflight( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) upload_to_testflight( beta_app_feedback_email: \"email@email.com\", beta_app_description: \"This is a description of my app\", demo_account_required: true, notify_external_testers: false, changelog: \"This is my changelog of things that have changed in a log\" ) upload_to_testflight( beta_app_review_info: { contact_email: \"email@email.com\", contact_first_name: \"Connect\", contact_last_name: \"API\", contact_phone: \"5558675309\", demo_account_name: \"demo@email.com\", demo_account_password: \"connectapi\", notes: \"this is review note for the reviewer <3 thank you for reviewing\" }, localized_app_info: { \"default\": { feedback_email: \"default@email.com\", marketing_url: \"https://example.com/marketing-defafult\", privacy_policy_url: \"https://example.com/privacy-defafult\", description: \"Default description\", }, \"en-GB\": { feedback_email: \"en-gb@email.com\", marketing_url: \"https://example.com/marketing-en-gb\", privacy_policy_url: \"https://example.com/privacy-en-gb\", description: \"en-gb description\", } }, localized_build_info: { \"default\": { whats_new: \"Default changelog\", }, \"en-GB\": { whats_new: \"en-gb changelog\", } } ) Parameters Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of the app to upload or manage testers (optional) * app_platform The platform to use (optional) apple_id Apple ID property in the App Information section in App Store Connect * ipa Path to the ipa file to upload * pkg Path to your pkg file * demo_account_required Do you need a demo account when Apple does review? beta_app_review_info Beta app review information for contact info and demo account localized_app_info Localized beta app test info for description, feedback email, marketing url, and privacy policy beta_app_description Provide the 'Beta App Description' when uploading a new build beta_app_feedback_email Provide the beta app email when uploading a new build localized_build_info Localized beta app test info for what's new changelog Provide the 'What to Test' text when uploading a new build skip_submission Skip the distributing action of pilot and only upload the ipa file false skip_waiting_for_build_processing If set to true, the distribute_external option won't work and no build will be distributed to testers. (You might want to use this option if you are using this action on CI and have to pay for 'minutes used' on your CI plan). If set to true and a changelog is provided, it will partially wait for the build to appear on AppStore Connect so the changelog can be set, and skip the remaining processing steps false update_build_info_on_upload DEPRECATED! Update build info immediately after validation. This is deprecated and will be removed in a future release. App Store Connect no longer supports setting build info until after build processing has completed, which is when build info is updated by default false distribute_only Distribute a previously uploaded build (equivalent to the fastlane pilot distribute command) false uses_non_exempt_encryption Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist false distribute_external Should the build be distributed to external testers? If set to true, use of groups option is required false notify_external_testers Should notify external testers? (Not setting a value will use App Store Connect's default which is to notify) app_version The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed build_number The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed expire_previous_builds Should expire previous builds? false first_name The tester's first name last_name The tester's last name email The tester's email testers_file_path Path to a CSV file of testers ./testers.csv groups Associate tester to one group or more by group name / group id. E.g. -g \"Team 1\",\"Team 2\" This is required when distribute_external option is set to true or when we want to add a tester to one or more external testing groups team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your team in the developer portal, if you're in multiple teams. Different from your iTC team ID! * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column wait_processing_interval Interval in seconds to wait for App Store Connect processing 30 wait_processing_timeout_duration Timeout duration in seconds to wait for App Store Connect processing. If set, after exceeding timeout duration, this will force stop to wait for App Store Connect processing and exit with exception wait_for_uploaded_build DEPRECATED! No longer needed with the transition over to the App Store Connect API - Use version info from uploaded ipa file to determine what build to use for distribution. If set to false, latest processing or any latest build will be used false reject_build_waiting_for_review Expire previous if it's 'waiting for review' false submit_beta_review Send the build for a beta review true * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action upload_to_testflight CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_to_testflight To pass parameters, make use of the : symbol, for example fastlane run upload_to_testflight parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Upload to testflight"},{"location":"generated/actions/upload_to_testflight/#upload_to_testflight","text":"Upload new binary to App Store Connect for TestFlight beta testing (via pilot )","title":"upload_to_testflight"},{"location":"generated/actions/upload_to_testflight/#usage","text":"For all commands, you can either use an API Key or your Apple ID .","title":"Usage"},{"location":"generated/actions/upload_to_testflight/#uploading-builds","text":"To upload a new build, just run fastlane pilot upload This will automatically look for an ipa in your current directory and tries to fetch the login credentials from your fastlane setup . You'll be asked for any missing information. Additionally, you can pass all kinds of parameters: fastlane action pilot You can pass a changelog using fastlane pilot upload --changelog \"Something that is new here\" You can also skip the submission of the binary, which means, the ipa file will only be uploaded and not distributed to testers: fastlane pilot upload --skip_submission pilot does all kinds of magic for you: Automatically detects the bundle identifier from your ipa file Automatically fetch the AppID of your app based on the bundle identifier pilot uses spaceship to submit the build metadata and the iTunes Transporter to upload the binary. Because iTunes Transporter's upload capability is only supported on OS X, pilot upload does not work on Linux, as described in this issue","title":"Uploading builds"},{"location":"generated/actions/upload_to_testflight/#list-builds","text":"To list all builds for specific application use fastlane pilot builds The result lists all active builds and processing builds: +-----------+---------+----------+ | Great App Builds | +-----------+---------+----------+ | Version # | Build # | Installs | +-----------+---------+----------+ | 0.9.13 | 1 | 0 | | 0.9.13 | 2 | 0 | | 0.9.20 | 3 | 0 | | 0.9.20 | 4 | 3 | +-----------+---------+----------+","title":"List builds"},{"location":"generated/actions/upload_to_testflight/#managing-beta-testers","text":"","title":"Managing beta testers"},{"location":"generated/actions/upload_to_testflight/#tips","text":"","title":"Tips"},{"location":"generated/actions/upload_to_testflight/#debug-information","text":"If you run into any issues you can use the verbose mode to get a more detailed output: fastlane pilot upload --verbose","title":"Debug information"},{"location":"generated/actions/upload_to_testflight/#firewall-issues","text":"pilot uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol from the command line using DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS=\"-t DAV\" pilot ... If you are using pilot via the fastlane action , add the following to your Fastfile ENV[\"DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS\"] = \"-t DAV\" pilot... Note, however, that Apple recommends you don\u2019t specify the -t transport and instead allow Transporter to use automatic transport discovery to determine the best transport mode for your packages. For this reason, if the t option is passed, we will raise a warning. Also note that -t is not the only additional parameter that can be used. The string specified in the DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS environment variable will be forwarded to Transporter. For all the available options, check Apple's Transporter User Guide .","title":"Firewall Issues"},{"location":"generated/actions/upload_to_testflight/#credentials-issues","text":"If your password contains special characters, pilot may throw a confusing error saying your \"Your Apple ID or password was entered incorrectly\". The easiest way to fix this error is to change your password to something that does not contains special characters.","title":"Credentials Issues"},{"location":"generated/actions/upload_to_testflight/#how-is-my-password-stored","text":"pilot uses the CredentialsManager from fastlane .","title":"How is my password stored?"},{"location":"generated/actions/upload_to_testflight/#provider-short-name","text":"If you are on multiple App Store Connect teams, iTunes Transporter may need a provider short name to know where to upload your binary. pilot will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the itc_provider option.","title":"Provider Short Name"},{"location":"generated/actions/upload_to_testflight/#use-an-application-specific-password-to-upload","text":"pilot / upload_to_testflight can use an Application Specific Password via the FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD environment variable to upload a binary if both the skip_waiting_for_build_processing and apple_id options are set. (If any of those are not set, it will use the normal Apple login process that might require 2FA authentication.)","title":"Use an Application Specific Password to upload"},{"location":"generated/actions/upload_to_testflight/#role-for-app-store-connect-user","text":"pilot / upload_to_testflight updates build information and testers after the build has finished processing. App Store Connect requires the \"App Manager\" or \"Admin\" role for your Apple account to update this information. The \"Developer\" role will allow builds to be uploaded but will not allow updating of build information and testers. upload_to_testflight Supported platforms ios, mac Author @KrauseFx","title":"Role for App Store Connect User"},{"location":"generated/actions/upload_to_testflight/#7-examples","text":"upload_to_testflight testflight # alias for \"upload_to_testflight\" pilot # alias for \"upload_to_testflight\" upload_to_testflight(skip_submission: true) # to only upload the build upload_to_testflight( username: \"felix@krausefx.com\", app_identifier: \"com.krausefx.app\", itc_provider: \"abcde12345\" # pass a specific value to the iTMSTransporter -itc_provider option ) upload_to_testflight( beta_app_feedback_email: \"email@email.com\", beta_app_description: \"This is a description of my app\", demo_account_required: true, notify_external_testers: false, changelog: \"This is my changelog of things that have changed in a log\" ) upload_to_testflight( beta_app_review_info: { contact_email: \"email@email.com\", contact_first_name: \"Connect\", contact_last_name: \"API\", contact_phone: \"5558675309\", demo_account_name: \"demo@email.com\", demo_account_password: \"connectapi\", notes: \"this is review note for the reviewer <3 thank you for reviewing\" }, localized_app_info: { \"default\": { feedback_email: \"default@email.com\", marketing_url: \"https://example.com/marketing-defafult\", privacy_policy_url: \"https://example.com/privacy-defafult\", description: \"Default description\", }, \"en-GB\": { feedback_email: \"en-gb@email.com\", marketing_url: \"https://example.com/marketing-en-gb\", privacy_policy_url: \"https://example.com/privacy-en-gb\", description: \"en-gb description\", } }, localized_build_info: { \"default\": { whats_new: \"Default changelog\", }, \"en-GB\": { whats_new: \"en-gb changelog\", } } )","title":"7 Examples"},{"location":"generated/actions/upload_to_testflight/#parameters","text":"Key Description Default api_key_path Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file) api_key Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option) username Your Apple ID Username * app_identifier The bundle identifier of the app to upload or manage testers (optional) * app_platform The platform to use (optional) apple_id Apple ID property in the App Information section in App Store Connect * ipa Path to the ipa file to upload * pkg Path to your pkg file * demo_account_required Do you need a demo account when Apple does review? beta_app_review_info Beta app review information for contact info and demo account localized_app_info Localized beta app test info for description, feedback email, marketing url, and privacy policy beta_app_description Provide the 'Beta App Description' when uploading a new build beta_app_feedback_email Provide the beta app email when uploading a new build localized_build_info Localized beta app test info for what's new changelog Provide the 'What to Test' text when uploading a new build skip_submission Skip the distributing action of pilot and only upload the ipa file false skip_waiting_for_build_processing If set to true, the distribute_external option won't work and no build will be distributed to testers. (You might want to use this option if you are using this action on CI and have to pay for 'minutes used' on your CI plan). If set to true and a changelog is provided, it will partially wait for the build to appear on AppStore Connect so the changelog can be set, and skip the remaining processing steps false update_build_info_on_upload DEPRECATED! Update build info immediately after validation. This is deprecated and will be removed in a future release. App Store Connect no longer supports setting build info until after build processing has completed, which is when build info is updated by default false distribute_only Distribute a previously uploaded build (equivalent to the fastlane pilot distribute command) false uses_non_exempt_encryption Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist false distribute_external Should the build be distributed to external testers? If set to true, use of groups option is required false notify_external_testers Should notify external testers? (Not setting a value will use App Store Connect's default which is to notify) app_version The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed build_number The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed expire_previous_builds Should expire previous builds? false first_name The tester's first name last_name The tester's last name email The tester's email testers_file_path Path to a CSV file of testers ./testers.csv groups Associate tester to one group or more by group name / group id. E.g. -g \"Team 1\",\"Team 2\" This is required when distribute_external option is set to true or when we want to add a tester to one or more external testing groups team_id The ID of your App Store Connect team if you're in multiple teams * team_name The name of your App Store Connect team if you're in multiple teams * dev_portal_team_id The short ID of your team in the developer portal, if you're in multiple teams. Different from your iTC team ID! * itc_provider The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run pathToXcode.app/Contents/Applications/Application\\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off . The short names of providers should be listed in the second column wait_processing_interval Interval in seconds to wait for App Store Connect processing 30 wait_processing_timeout_duration Timeout duration in seconds to wait for App Store Connect processing. If set, after exceeding timeout duration, this will force stop to wait for App Store Connect processing and exit with exception wait_for_uploaded_build DEPRECATED! No longer needed with the transition over to the App Store Connect API - Use version info from uploaded ipa file to determine what build to use for distribution. If set to false, latest processing or any latest build will be used false reject_build_waiting_for_review Expire previous if it's 'waiting for review' false submit_beta_review Send the build for a beta review true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/upload_to_testflight/#documentation","text":"To show the documentation in your terminal, run fastlane action upload_to_testflight","title":"Documentation"},{"location":"generated/actions/upload_to_testflight/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run upload_to_testflight To pass parameters, make use of the : symbol, for example fastlane run upload_to_testflight parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/upload_to_testflight/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/validate_play_store_json_key/","text":"validate_play_store_json_key Validate that the Google Play Store json_key works Use this action to test and validate your private key json key file used to connect and authenticate with the Google Play API validate_play_store_json_key Supported platforms android Author @janpio 1 Example validate_play_store_json_key( json_key: 'path/to/you/json/key/file' ) Parameters Key Description Default json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action validate_play_store_json_key CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run validate_play_store_json_key To pass parameters, make use of the : symbol, for example fastlane run validate_play_store_json_key parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Validate play store json key"},{"location":"generated/actions/validate_play_store_json_key/#validate_play_store_json_key","text":"Validate that the Google Play Store json_key works Use this action to test and validate your private key json key file used to connect and authenticate with the Google Play API validate_play_store_json_key Supported platforms android Author @janpio","title":"validate_play_store_json_key"},{"location":"generated/actions/validate_play_store_json_key/#1-example","text":"validate_play_store_json_key( json_key: 'path/to/you/json/key/file' )","title":"1 Example"},{"location":"generated/actions/validate_play_store_json_key/#parameters","text":"Key Description Default json_key The path to a file containing service account JSON, used to authenticate with Google * json_key_data The raw service account JSON data used to authenticate with Google * root_url Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/ timeout Timeout for read, open, and send (in seconds) 300 * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/validate_play_store_json_key/#documentation","text":"To show the documentation in your terminal, run fastlane action validate_play_store_json_key","title":"Documentation"},{"location":"generated/actions/validate_play_store_json_key/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run validate_play_store_json_key To pass parameters, make use of the : symbol, for example fastlane run validate_play_store_json_key parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/validate_play_store_json_key/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/verify_build/","text":"verify_build Able to verify various settings in ipa file Verifies that the built app was built using the expected build resources. This is relevant for people who build on machines that are used to build apps with different profiles, certificates and/or bundle identifiers to guard against configuration mistakes. verify_build Supported platforms ios Author @CodeReaper 1 Example verify_build( provisioning_type: \"distribution\", bundle_identifier: \"com.example.myapp\" ) Parameters Key Description Default provisioning_type Required type of provisioning provisioning_uuid Required UUID of provisioning profile team_identifier Required team identifier team_name Required team name app_name Required app name bundle_identifier Required bundle identifier ipa_path Explicitly set the ipa path build_path Explicitly set the ipa, app or xcarchive path * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action verify_build CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run verify_build To pass parameters, make use of the : symbol, for example fastlane run verify_build parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Verify build"},{"location":"generated/actions/verify_build/#verify_build","text":"Able to verify various settings in ipa file Verifies that the built app was built using the expected build resources. This is relevant for people who build on machines that are used to build apps with different profiles, certificates and/or bundle identifiers to guard against configuration mistakes. verify_build Supported platforms ios Author @CodeReaper","title":"verify_build"},{"location":"generated/actions/verify_build/#1-example","text":"verify_build( provisioning_type: \"distribution\", bundle_identifier: \"com.example.myapp\" )","title":"1 Example"},{"location":"generated/actions/verify_build/#parameters","text":"Key Description Default provisioning_type Required type of provisioning provisioning_uuid Required UUID of provisioning profile team_identifier Required team identifier team_name Required team name app_name Required app name bundle_identifier Required bundle identifier ipa_path Explicitly set the ipa path build_path Explicitly set the ipa, app or xcarchive path * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/verify_build/#documentation","text":"To show the documentation in your terminal, run fastlane action verify_build","title":"Documentation"},{"location":"generated/actions/verify_build/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run verify_build To pass parameters, make use of the : symbol, for example fastlane run verify_build parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/verify_build/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/verify_pod_keys/","text":"verify_pod_keys Verifies all keys referenced from the Podfile are non-empty Runs a check against all keys specified in your Podfile to make sure they're more than a single character long. This is to ensure you don't deploy with stubbed keys. verify_pod_keys Supported platforms ios, mac Author @ashfurrow 1 Example verify_pod_keys Documentation To show the documentation in your terminal, run fastlane action verify_pod_keys CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run verify_pod_keys To pass parameters, make use of the : symbol, for example fastlane run verify_pod_keys parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Verify pod keys"},{"location":"generated/actions/verify_pod_keys/#verify_pod_keys","text":"Verifies all keys referenced from the Podfile are non-empty Runs a check against all keys specified in your Podfile to make sure they're more than a single character long. This is to ensure you don't deploy with stubbed keys. verify_pod_keys Supported platforms ios, mac Author @ashfurrow","title":"verify_pod_keys"},{"location":"generated/actions/verify_pod_keys/#1-example","text":"verify_pod_keys","title":"1 Example"},{"location":"generated/actions/verify_pod_keys/#documentation","text":"To show the documentation in your terminal, run fastlane action verify_pod_keys","title":"Documentation"},{"location":"generated/actions/verify_pod_keys/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run verify_pod_keys To pass parameters, make use of the : symbol, for example fastlane run verify_pod_keys parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/verify_pod_keys/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/verify_xcode/","text":"verify_xcode Verifies that the Xcode installation is properly signed by Apple This action was implemented after the recent Xcode attack to make sure you're not using a hacked Xcode installation . verify_xcode Supported platforms ios, mac Author @KrauseFx 2 Examples verify_xcode verify_xcode(xcode_path: \"/Applications/Xcode.app\") Parameters Key Description Default xcode_path The path to the Xcode installation to test * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action verify_xcode CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run verify_xcode To pass parameters, make use of the : symbol, for example fastlane run verify_xcode parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Verify xcode"},{"location":"generated/actions/verify_xcode/#verify_xcode","text":"Verifies that the Xcode installation is properly signed by Apple This action was implemented after the recent Xcode attack to make sure you're not using a hacked Xcode installation . verify_xcode Supported platforms ios, mac Author @KrauseFx","title":"verify_xcode"},{"location":"generated/actions/verify_xcode/#2-examples","text":"verify_xcode verify_xcode(xcode_path: \"/Applications/Xcode.app\")","title":"2 Examples"},{"location":"generated/actions/verify_xcode/#parameters","text":"Key Description Default xcode_path The path to the Xcode installation to test * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/verify_xcode/#documentation","text":"To show the documentation in your terminal, run fastlane action verify_xcode","title":"Documentation"},{"location":"generated/actions/verify_xcode/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run verify_xcode To pass parameters, make use of the : symbol, for example fastlane run verify_xcode parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/verify_xcode/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/version_bump_podspec/","text":"version_bump_podspec Increment or set the version in a podspec file You can use this action to manipulate any 'version' variable contained in a ruby file. For example, you can use it to bump the version of a CocoaPods' podspec file. It also supports versions that are not semantic: 1.4.14.4.1 . For such versions, there is an option to change the appendix (e.g. 4.1 ). version_bump_podspec Supported platforms ios, mac Author @Liquidsoul, @KrauseFx 2 Examples version = version_bump_podspec(path: \"TSMessages.podspec\", bump_type: \"patch\") version = version_bump_podspec(path: \"TSMessages.podspec\", version_number: \"1.4\") Parameters Key Description Default path You must specify the path to the podspec file to update * bump_type The type of this version bump. Available: patch, minor, major patch version_number Change to a specific version. This will replace the bump type value version_appendix Change version appendix to a specific value. For example 1.4.14.4.1 -> 1.4.14.5 require_variable_prefix true by default, this is used for non CocoaPods version bumps only true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The version_bump_podspec action generates the following Lane Variables: SharedValue Description SharedValues::PODSPEC_VERSION_NUMBER The new podspec version number To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action version_bump_podspec CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run version_bump_podspec To pass parameters, make use of the : symbol, for example fastlane run version_bump_podspec parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Version bump podspec"},{"location":"generated/actions/version_bump_podspec/#version_bump_podspec","text":"Increment or set the version in a podspec file You can use this action to manipulate any 'version' variable contained in a ruby file. For example, you can use it to bump the version of a CocoaPods' podspec file. It also supports versions that are not semantic: 1.4.14.4.1 . For such versions, there is an option to change the appendix (e.g. 4.1 ). version_bump_podspec Supported platforms ios, mac Author @Liquidsoul, @KrauseFx","title":"version_bump_podspec"},{"location":"generated/actions/version_bump_podspec/#2-examples","text":"version = version_bump_podspec(path: \"TSMessages.podspec\", bump_type: \"patch\") version = version_bump_podspec(path: \"TSMessages.podspec\", version_number: \"1.4\")","title":"2 Examples"},{"location":"generated/actions/version_bump_podspec/#parameters","text":"Key Description Default path You must specify the path to the podspec file to update * bump_type The type of this version bump. Available: patch, minor, major patch version_number Change to a specific version. This will replace the bump type value version_appendix Change version appendix to a specific value. For example 1.4.14.4.1 -> 1.4.14.5 require_variable_prefix true by default, this is used for non CocoaPods version bumps only true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/version_bump_podspec/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The version_bump_podspec action generates the following Lane Variables: SharedValue Description SharedValues::PODSPEC_VERSION_NUMBER The new podspec version number To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/version_bump_podspec/#documentation","text":"To show the documentation in your terminal, run fastlane action version_bump_podspec","title":"Documentation"},{"location":"generated/actions/version_bump_podspec/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run version_bump_podspec To pass parameters, make use of the : symbol, for example fastlane run version_bump_podspec parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/version_bump_podspec/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/version_get_podspec/","text":"version_get_podspec Receive the version number from a podspec file version_get_podspec Supported platforms ios, mac Author @Liquidsoul, @KrauseFx 1 Example version = version_get_podspec(path: \"TSMessages.podspec\") Parameters Key Description Default path You must specify the path to the podspec file * require_variable_prefix true by default, this is used for non CocoaPods version bumps only true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The version_get_podspec action generates the following Lane Variables: SharedValue Description SharedValues::PODSPEC_VERSION_NUMBER The podspec version number To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action version_get_podspec CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run version_get_podspec To pass parameters, make use of the : symbol, for example fastlane run version_get_podspec parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Version get podspec"},{"location":"generated/actions/version_get_podspec/#version_get_podspec","text":"Receive the version number from a podspec file version_get_podspec Supported platforms ios, mac Author @Liquidsoul, @KrauseFx","title":"version_get_podspec"},{"location":"generated/actions/version_get_podspec/#1-example","text":"version = version_get_podspec(path: \"TSMessages.podspec\")","title":"1 Example"},{"location":"generated/actions/version_get_podspec/#parameters","text":"Key Description Default path You must specify the path to the podspec file * require_variable_prefix true by default, this is used for non CocoaPods version bumps only true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/version_get_podspec/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The version_get_podspec action generates the following Lane Variables: SharedValue Description SharedValues::PODSPEC_VERSION_NUMBER The podspec version number To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/version_get_podspec/#documentation","text":"To show the documentation in your terminal, run fastlane action version_get_podspec","title":"Documentation"},{"location":"generated/actions/version_get_podspec/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run version_get_podspec To pass parameters, make use of the : symbol, for example fastlane run version_get_podspec parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/version_get_podspec/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/xcarchive/","text":"xcarchive Archives the project using xcodebuild xcarchive Supported platforms ios, mac Author @dtrenz 1 Example xcarchive Documentation To show the documentation in your terminal, run fastlane action xcarchive CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcarchive To pass parameters, make use of the : symbol, for example fastlane run xcarchive parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Xcarchive"},{"location":"generated/actions/xcarchive/#xcarchive","text":"Archives the project using xcodebuild xcarchive Supported platforms ios, mac Author @dtrenz","title":"xcarchive"},{"location":"generated/actions/xcarchive/#1-example","text":"xcarchive","title":"1 Example"},{"location":"generated/actions/xcarchive/#documentation","text":"To show the documentation in your terminal, run fastlane action xcarchive","title":"Documentation"},{"location":"generated/actions/xcarchive/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcarchive To pass parameters, make use of the : symbol, for example fastlane run xcarchive parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/xcarchive/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/xcbuild/","text":"xcbuild Builds the project using xcodebuild xcbuild Supported platforms ios, mac Author @dtrenz 1 Example xcbuild Documentation To show the documentation in your terminal, run fastlane action xcbuild CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcbuild To pass parameters, make use of the : symbol, for example fastlane run xcbuild parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Xcbuild"},{"location":"generated/actions/xcbuild/#xcbuild","text":"Builds the project using xcodebuild xcbuild Supported platforms ios, mac Author @dtrenz","title":"xcbuild"},{"location":"generated/actions/xcbuild/#1-example","text":"xcbuild","title":"1 Example"},{"location":"generated/actions/xcbuild/#documentation","text":"To show the documentation in your terminal, run fastlane action xcbuild","title":"Documentation"},{"location":"generated/actions/xcbuild/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcbuild To pass parameters, make use of the : symbol, for example fastlane run xcbuild parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/xcbuild/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/xcclean/","text":"xcclean Cleans the project using xcodebuild xcclean Supported platforms ios, mac Author @dtrenz 1 Example xcclean Documentation To show the documentation in your terminal, run fastlane action xcclean CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcclean To pass parameters, make use of the : symbol, for example fastlane run xcclean parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Xcclean"},{"location":"generated/actions/xcclean/#xcclean","text":"Cleans the project using xcodebuild xcclean Supported platforms ios, mac Author @dtrenz","title":"xcclean"},{"location":"generated/actions/xcclean/#1-example","text":"xcclean","title":"1 Example"},{"location":"generated/actions/xcclean/#documentation","text":"To show the documentation in your terminal, run fastlane action xcclean","title":"Documentation"},{"location":"generated/actions/xcclean/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcclean To pass parameters, make use of the : symbol, for example fastlane run xcclean parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/xcclean/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/xcexport/","text":"xcexport Exports the project using xcodebuild xcexport Supported platforms ios, mac Author @dtrenz 1 Example xcexport Documentation To show the documentation in your terminal, run fastlane action xcexport CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcexport To pass parameters, make use of the : symbol, for example fastlane run xcexport parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Xcexport"},{"location":"generated/actions/xcexport/#xcexport","text":"Exports the project using xcodebuild xcexport Supported platforms ios, mac Author @dtrenz","title":"xcexport"},{"location":"generated/actions/xcexport/#1-example","text":"xcexport","title":"1 Example"},{"location":"generated/actions/xcexport/#documentation","text":"To show the documentation in your terminal, run fastlane action xcexport","title":"Documentation"},{"location":"generated/actions/xcexport/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcexport To pass parameters, make use of the : symbol, for example fastlane run xcexport parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/xcexport/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/xcode_install/","text":"xcode_install Make sure a certain version of Xcode is installed The xcode-install gem, which this action depends on, has been sunset. Please migrate to xcodes . You can find a migration guide here: xcpretty/xcode-install/MIGRATION.md Makes sure a specific version of Xcode is installed. If that's not the case, it will automatically be downloaded by the xcode_install gem. This will make sure to use the correct Xcode for later actions. xcode_install Supported platforms ios, mac Author @Krausefx Returns The path to the newly installed Xcode version 1 Example xcode_install(version: \"7.1\") Parameters Key Description Default version The version number of the version of Xcode to install username Your Apple ID Username * team_id The ID of your team if you're in multiple teams * download_retry_attempts Number of times the download will be retried in case of failure 3 * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The xcode_install action generates the following Lane Variables: SharedValue Description SharedValues::XCODE_INSTALL_XCODE_PATH The path to the newly installed Xcode To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action xcode_install CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcode_install To pass parameters, make use of the : symbol, for example fastlane run xcode_install parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Xcode install"},{"location":"generated/actions/xcode_install/#xcode_install","text":"Make sure a certain version of Xcode is installed The xcode-install gem, which this action depends on, has been sunset. Please migrate to xcodes . You can find a migration guide here: xcpretty/xcode-install/MIGRATION.md Makes sure a specific version of Xcode is installed. If that's not the case, it will automatically be downloaded by the xcode_install gem. This will make sure to use the correct Xcode for later actions. xcode_install Supported platforms ios, mac Author @Krausefx Returns The path to the newly installed Xcode version","title":"xcode_install"},{"location":"generated/actions/xcode_install/#1-example","text":"xcode_install(version: \"7.1\")","title":"1 Example"},{"location":"generated/actions/xcode_install/#parameters","text":"Key Description Default version The version number of the version of Xcode to install username Your Apple ID Username * team_id The ID of your team if you're in multiple teams * download_retry_attempts Number of times the download will be retried in case of failure 3 * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/xcode_install/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The xcode_install action generates the following Lane Variables: SharedValue Description SharedValues::XCODE_INSTALL_XCODE_PATH The path to the newly installed Xcode To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/xcode_install/#documentation","text":"To show the documentation in your terminal, run fastlane action xcode_install","title":"Documentation"},{"location":"generated/actions/xcode_install/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcode_install To pass parameters, make use of the : symbol, for example fastlane run xcode_install parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/xcode_install/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/xcode_select/","text":"xcode_select Change the xcode-path to use. Useful for beta versions of Xcode Select and build with the Xcode installed at the provided path. Use the xcodes action if you want to select an Xcode: - Based on a version specifier or - You don't have known, stable paths, as may happen in a CI environment. xcode_select Supported platforms ios, mac Author @dtrenz 1 Example xcode_select(\"/Applications/Xcode-8.3.2.app\") Documentation To show the documentation in your terminal, run fastlane action xcode_select CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcode_select To pass parameters, make use of the : symbol, for example fastlane run xcode_select parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Xcode select"},{"location":"generated/actions/xcode_select/#xcode_select","text":"Change the xcode-path to use. Useful for beta versions of Xcode Select and build with the Xcode installed at the provided path. Use the xcodes action if you want to select an Xcode: - Based on a version specifier or - You don't have known, stable paths, as may happen in a CI environment. xcode_select Supported platforms ios, mac Author @dtrenz","title":"xcode_select"},{"location":"generated/actions/xcode_select/#1-example","text":"xcode_select(\"/Applications/Xcode-8.3.2.app\")","title":"1 Example"},{"location":"generated/actions/xcode_select/#documentation","text":"To show the documentation in your terminal, run fastlane action xcode_select","title":"Documentation"},{"location":"generated/actions/xcode_select/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcode_select To pass parameters, make use of the : symbol, for example fastlane run xcode_select parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/xcode_select/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/xcode_server_get_assets/","text":"xcode_server_get_assets Downloads Xcode Bot assets like the .xcarchive and logs This action downloads assets from your Xcode Server Bot (works with Xcode Server using Xcode 6 and 7. By default, this action downloads all assets, unzips them and deletes everything except for the .xcarchive . If you'd like to keep all downloaded assets, pass keep_all_assets: true . This action returns the path to the downloaded assets folder and puts into shared values the paths to the asset folder and to the .xcarchive inside it. xcode_server_get_assets Supported platforms ios, mac Author @czechboy0 1 Example xcode_server_get_assets( host: \"10.99.0.59\", # Specify Xcode Server's Host or IP Address bot_name: \"release-1.3.4\" # Specify the particular Bot ) Parameters Key Description Default host IP Address/Hostname of Xcode Server bot_name Name of the Bot to pull assets from integration_number Optionally you can override which integration's assets should be downloaded. If not provided, the latest integration is used username Username for your Xcode Server '' password Password for your Xcode Server '' target_folder Relative path to a folder into which to download assets ./xcs_assets keep_all_assets Whether to keep all assets or let the script delete everything except for the .xcarchive false trust_self_signed_certs Whether to trust self-signed certs on your Xcode Server true * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The xcode_server_get_assets action generates the following Lane Variables: SharedValue Description SharedValues::XCODE_SERVER_GET_ASSETS_PATH Absolute path to the downloaded assets folder SharedValues::XCODE_SERVER_GET_ASSETS_ARCHIVE_PATH Absolute path to the downloaded xcarchive file To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action xcode_server_get_assets CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcode_server_get_assets To pass parameters, make use of the : symbol, for example fastlane run xcode_server_get_assets parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Xcode server get assets"},{"location":"generated/actions/xcode_server_get_assets/#xcode_server_get_assets","text":"Downloads Xcode Bot assets like the .xcarchive and logs This action downloads assets from your Xcode Server Bot (works with Xcode Server using Xcode 6 and 7. By default, this action downloads all assets, unzips them and deletes everything except for the .xcarchive . If you'd like to keep all downloaded assets, pass keep_all_assets: true . This action returns the path to the downloaded assets folder and puts into shared values the paths to the asset folder and to the .xcarchive inside it. xcode_server_get_assets Supported platforms ios, mac Author @czechboy0","title":"xcode_server_get_assets"},{"location":"generated/actions/xcode_server_get_assets/#1-example","text":"xcode_server_get_assets( host: \"10.99.0.59\", # Specify Xcode Server's Host or IP Address bot_name: \"release-1.3.4\" # Specify the particular Bot )","title":"1 Example"},{"location":"generated/actions/xcode_server_get_assets/#parameters","text":"Key Description Default host IP Address/Hostname of Xcode Server bot_name Name of the Bot to pull assets from integration_number Optionally you can override which integration's assets should be downloaded. If not provided, the latest integration is used username Username for your Xcode Server '' password Password for your Xcode Server '' target_folder Relative path to a folder into which to download assets ./xcs_assets keep_all_assets Whether to keep all assets or let the script delete everything except for the .xcarchive false trust_self_signed_certs Whether to trust self-signed certs on your Xcode Server true * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/xcode_server_get_assets/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The xcode_server_get_assets action generates the following Lane Variables: SharedValue Description SharedValues::XCODE_SERVER_GET_ASSETS_PATH Absolute path to the downloaded assets folder SharedValues::XCODE_SERVER_GET_ASSETS_ARCHIVE_PATH Absolute path to the downloaded xcarchive file To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/xcode_server_get_assets/#documentation","text":"To show the documentation in your terminal, run fastlane action xcode_server_get_assets","title":"Documentation"},{"location":"generated/actions/xcode_server_get_assets/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcode_server_get_assets To pass parameters, make use of the : symbol, for example fastlane run xcode_server_get_assets parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/xcode_server_get_assets/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/xcodebuild/","text":"xcodebuild Use the xcodebuild command to build and sign your app Note : xcodebuild is a complex command, so it is recommended to use gym for building your ipa file and scan for testing your app instead. xcodebuild Supported platforms ios, mac Author @dtrenz 1 Example xcodebuild( archive: true, archive_path: \"./build-dir/MyApp.xcarchive\", scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\" ) Documentation To show the documentation in your terminal, run fastlane action xcodebuild CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcodebuild To pass parameters, make use of the : symbol, for example fastlane run xcodebuild parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Xcodebuild"},{"location":"generated/actions/xcodebuild/#xcodebuild","text":"Use the xcodebuild command to build and sign your app Note : xcodebuild is a complex command, so it is recommended to use gym for building your ipa file and scan for testing your app instead. xcodebuild Supported platforms ios, mac Author @dtrenz","title":"xcodebuild"},{"location":"generated/actions/xcodebuild/#1-example","text":"xcodebuild( archive: true, archive_path: \"./build-dir/MyApp.xcarchive\", scheme: \"MyApp\", workspace: \"MyApp.xcworkspace\" )","title":"1 Example"},{"location":"generated/actions/xcodebuild/#documentation","text":"To show the documentation in your terminal, run fastlane action xcodebuild","title":"Documentation"},{"location":"generated/actions/xcodebuild/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcodebuild To pass parameters, make use of the : symbol, for example fastlane run xcodebuild parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/xcodebuild/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/xcodes/","text":"xcodes Make sure a certain version of Xcode is installed, installing it only if needed Makes sure a specific version of Xcode is installed. If that's not the case, it will automatically be downloaded by xcodes . This will make sure to use the correct Xcode version for later actions. Note that this action depends on xcodes CLI, so make sure you have it installed in your environment. For the installation guide, see: https://github.com/RobotsAndPencils/xcodes#installation xcodes Supported platforms ios, mac Author @rogerluan Returns The path to the newly installed Xcode version 2 Examples xcodes(version: \"14.1\") xcodes # When missing, the version value defaults to the value specified in the .xcode-version file Parameters Key Description Default version The version number of the version of Xcode to install. Defaults to the value specified in the .xcode-version file * update_list Whether the list of available Xcode versions should be updated before running the install command true select_for_current_build_only When true, it won't attempt to install an Xcode version, just find the installed Xcode version that best matches the passed version argument, and select it for the current build steps. It doesn't change the global Xcode version (e.g. via 'xcrun xcode-select'), which would require sudo permissions \u2014 when this option is true, this action doesn't require sudo permissions false binary_path Where the xcodes binary lives on your system (full path) * xcodes_args Pass in xcodes command line arguments directly. When present, other parameters are ignored and only this parameter is used to build the command to be executed * = default value is dependent on the user's system Lane Variables Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The xcodes action generates the following Lane Variables: SharedValue Description SharedValues::XCODES_XCODE_PATH The path to the newly installed Xcode version To get more information check the Lanes documentation . Documentation To show the documentation in your terminal, run fastlane action xcodes CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcodes To pass parameters, make use of the : symbol, for example fastlane run xcodes parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Xcodes"},{"location":"generated/actions/xcodes/#xcodes","text":"Make sure a certain version of Xcode is installed, installing it only if needed Makes sure a specific version of Xcode is installed. If that's not the case, it will automatically be downloaded by xcodes . This will make sure to use the correct Xcode version for later actions. Note that this action depends on xcodes CLI, so make sure you have it installed in your environment. For the installation guide, see: https://github.com/RobotsAndPencils/xcodes#installation xcodes Supported platforms ios, mac Author @rogerluan Returns The path to the newly installed Xcode version","title":"xcodes"},{"location":"generated/actions/xcodes/#2-examples","text":"xcodes(version: \"14.1\") xcodes # When missing, the version value defaults to the value specified in the .xcode-version file","title":"2 Examples"},{"location":"generated/actions/xcodes/#parameters","text":"Key Description Default version The version number of the version of Xcode to install. Defaults to the value specified in the .xcode-version file * update_list Whether the list of available Xcode versions should be updated before running the install command true select_for_current_build_only When true, it won't attempt to install an Xcode version, just find the installed Xcode version that best matches the passed version argument, and select it for the current build steps. It doesn't change the global Xcode version (e.g. via 'xcrun xcode-select'), which would require sudo permissions \u2014 when this option is true, this action doesn't require sudo permissions false binary_path Where the xcodes binary lives on your system (full path) * xcodes_args Pass in xcodes command line arguments directly. When present, other parameters are ignored and only this parameter is used to build the command to be executed * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/xcodes/#lane-variables","text":"Actions can communicate with each other using a shared hash lane_context , that can be accessed in other actions, plugins or your lanes: lane_context[SharedValues:XYZ] . The xcodes action generates the following Lane Variables: SharedValue Description SharedValues::XCODES_XCODE_PATH The path to the newly installed Xcode version To get more information check the Lanes documentation .","title":"Lane Variables"},{"location":"generated/actions/xcodes/#documentation","text":"To show the documentation in your terminal, run fastlane action xcodes","title":"Documentation"},{"location":"generated/actions/xcodes/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcodes To pass parameters, make use of the : symbol, for example fastlane run xcodes parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/xcodes/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/xcov/","text":"xcov Nice code coverage reports without hassle Create nice code coverage reports and post coverage summaries on Slack (xcov gem is required) . More information: https://github.com/nakiostudio/xcov . xcov Supported platforms ios, mac Author @nakiostudio 1 Example xcov( workspace: \"YourWorkspace.xcworkspace\", scheme: \"YourScheme\", output_directory: \"xcov_output\" ) Parameters Key Description Default workspace Path the workspace file project Path the project file scheme The project's scheme. Make sure it's marked as Shared configuration The configuration used when building the app. Defaults to 'Release' source_directory The path to project's root directory derived_data_path The directory where build products and other derived data will go output_directory The directory in which all reports will be stored * html_report Produce an HTML report true markdown_report Produce a Markdown report false json_report Produce a JSON report false minimum_coverage_percentage Raise exception if overall coverage percentage is under this value (ie. 75) 0 slack_url Create an Incoming WebHook for your Slack group to post results there slack_channel #channel or @username skip_slack Don't publish to slack, even when an URL is given false slack_username The username which is used to publish to slack xcov slack_message The message which is published together with a successful report Your *xcov* coverage report ignore_file_path Relative or absolute path to the file containing the list of ignored files * include_test_targets Enables coverage reports for .xctest targets false exclude_targets Comma separated list of targets to exclude from coverage report include_targets Comma separated list of targets to include in coverage report. If specified then exlude_targets will be ignored only_project_targets Display the coverage only for main project targets (e.g. skip Pods targets) false disable_coveralls Add this flag to disable automatic submission to Coveralls false coveralls_service_name Name of the CI service compatible with Coveralls. i.e. travis-ci. This option must be defined along with coveralls_service_job_id coveralls_service_job_id Name of the current job running on a CI service compatible with Coveralls. This option must be defined along with coveralls_service_name coveralls_repo_token Repository token to be used by integrations not compatible with Coveralls xcconfig Use an extra XCCONFIG file to build your app ideFoundationPath Absolute path to the IDEFoundation.framework binary * legacy_support Whether xcov should parse a xccoverage file instead on xccovreport false * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action xcov CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcov To pass parameters, make use of the : symbol, for example fastlane run xcov parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Xcov"},{"location":"generated/actions/xcov/#xcov","text":"Nice code coverage reports without hassle Create nice code coverage reports and post coverage summaries on Slack (xcov gem is required) . More information: https://github.com/nakiostudio/xcov . xcov Supported platforms ios, mac Author @nakiostudio","title":"xcov"},{"location":"generated/actions/xcov/#1-example","text":"xcov( workspace: \"YourWorkspace.xcworkspace\", scheme: \"YourScheme\", output_directory: \"xcov_output\" )","title":"1 Example"},{"location":"generated/actions/xcov/#parameters","text":"Key Description Default workspace Path the workspace file project Path the project file scheme The project's scheme. Make sure it's marked as Shared configuration The configuration used when building the app. Defaults to 'Release' source_directory The path to project's root directory derived_data_path The directory where build products and other derived data will go output_directory The directory in which all reports will be stored * html_report Produce an HTML report true markdown_report Produce a Markdown report false json_report Produce a JSON report false minimum_coverage_percentage Raise exception if overall coverage percentage is under this value (ie. 75) 0 slack_url Create an Incoming WebHook for your Slack group to post results there slack_channel #channel or @username skip_slack Don't publish to slack, even when an URL is given false slack_username The username which is used to publish to slack xcov slack_message The message which is published together with a successful report Your *xcov* coverage report ignore_file_path Relative or absolute path to the file containing the list of ignored files * include_test_targets Enables coverage reports for .xctest targets false exclude_targets Comma separated list of targets to exclude from coverage report include_targets Comma separated list of targets to include in coverage report. If specified then exlude_targets will be ignored only_project_targets Display the coverage only for main project targets (e.g. skip Pods targets) false disable_coveralls Add this flag to disable automatic submission to Coveralls false coveralls_service_name Name of the CI service compatible with Coveralls. i.e. travis-ci. This option must be defined along with coveralls_service_job_id coveralls_service_job_id Name of the current job running on a CI service compatible with Coveralls. This option must be defined along with coveralls_service_name coveralls_repo_token Repository token to be used by integrations not compatible with Coveralls xcconfig Use an extra XCCONFIG file to build your app ideFoundationPath Absolute path to the IDEFoundation.framework binary * legacy_support Whether xcov should parse a xccoverage file instead on xccovreport false * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/xcov/#documentation","text":"To show the documentation in your terminal, run fastlane action xcov","title":"Documentation"},{"location":"generated/actions/xcov/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcov To pass parameters, make use of the : symbol, for example fastlane run xcov parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/xcov/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/xctest/","text":"xctest Runs tests on the given simulator xctest Supported platforms ios, mac Author @dtrenz 1 Example xctest( destination: \"name=iPhone 7s,OS=10.0\" ) Documentation To show the documentation in your terminal, run fastlane action xctest CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xctest To pass parameters, make use of the : symbol, for example fastlane run xctest parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Xctest"},{"location":"generated/actions/xctest/#xctest","text":"Runs tests on the given simulator xctest Supported platforms ios, mac Author @dtrenz","title":"xctest"},{"location":"generated/actions/xctest/#1-example","text":"xctest( destination: \"name=iPhone 7s,OS=10.0\" )","title":"1 Example"},{"location":"generated/actions/xctest/#documentation","text":"To show the documentation in your terminal, run fastlane action xctest","title":"Documentation"},{"location":"generated/actions/xctest/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xctest To pass parameters, make use of the : symbol, for example fastlane run xctest parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/xctest/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/xctool/","text":"xctool Run tests using xctool You can run any xctool action. This will require having xctool installed through Homebrew . It is recommended to store the build configuration in the .xctool-args file. More information: https://docs.fastlane.tools/actions/xctool/ . xctool Supported platforms ios, mac Author @KrauseFx 2 Examples xctool(:test) # If you prefer to have the build configuration stored in the `Fastfile`: xctool(:test, [ \"--workspace\", \"'AwesomeApp.xcworkspace'\", \"--scheme\", \"'Schema Name'\", \"--configuration\", \"Debug\", \"--sdk\", \"iphonesimulator\", \"--arch\", \"i386\" ].join(\" \")) Documentation To show the documentation in your terminal, run fastlane action xctool CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xctool To pass parameters, make use of the : symbol, for example fastlane run xctool parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Xctool"},{"location":"generated/actions/xctool/#xctool","text":"Run tests using xctool You can run any xctool action. This will require having xctool installed through Homebrew . It is recommended to store the build configuration in the .xctool-args file. More information: https://docs.fastlane.tools/actions/xctool/ . xctool Supported platforms ios, mac Author @KrauseFx","title":"xctool"},{"location":"generated/actions/xctool/#2-examples","text":"xctool(:test) # If you prefer to have the build configuration stored in the `Fastfile`: xctool(:test, [ \"--workspace\", \"'AwesomeApp.xcworkspace'\", \"--scheme\", \"'Schema Name'\", \"--configuration\", \"Debug\", \"--sdk\", \"iphonesimulator\", \"--arch\", \"i386\" ].join(\" \"))","title":"2 Examples"},{"location":"generated/actions/xctool/#documentation","text":"To show the documentation in your terminal, run fastlane action xctool","title":"Documentation"},{"location":"generated/actions/xctool/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xctool To pass parameters, make use of the : symbol, for example fastlane run xctool parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/xctool/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/xcversion/","text":"xcversion Select an Xcode to use by version specifier The xcode-install gem, which this action depends on, has been sunset. Please migrate to xcodes . You can find a migration guide here: xcpretty/xcode-install/MIGRATION.md Finds and selects a version of an installed Xcode that best matches the provided Gem::Version requirement specifier You can either manually provide a specific version using version: or you make use of the .xcode-version file. xcversion Supported platforms ios, mac Author @oysta, @rogerluan 3 Examples xcversion(version: \"8.1\") # Selects Xcode 8.1.0 xcversion(version: \"~> 8.1.0\") # Selects the latest installed version from the 8.1.x set xcversion # When missing, the version value defaults to the value specified in the .xcode-version file Parameters Key Description Default version The version of Xcode to select specified as a Gem::Version requirement string (e.g. '~> 7.1.0'). Defaults to the value specified in the .xcode-version file * * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action xcversion CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcversion To pass parameters, make use of the : symbol, for example fastlane run xcversion parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Xcversion"},{"location":"generated/actions/xcversion/#xcversion","text":"Select an Xcode to use by version specifier The xcode-install gem, which this action depends on, has been sunset. Please migrate to xcodes . You can find a migration guide here: xcpretty/xcode-install/MIGRATION.md Finds and selects a version of an installed Xcode that best matches the provided Gem::Version requirement specifier You can either manually provide a specific version using version: or you make use of the .xcode-version file. xcversion Supported platforms ios, mac Author @oysta, @rogerluan","title":"xcversion"},{"location":"generated/actions/xcversion/#3-examples","text":"xcversion(version: \"8.1\") # Selects Xcode 8.1.0 xcversion(version: \"~> 8.1.0\") # Selects the latest installed version from the 8.1.x set xcversion # When missing, the version value defaults to the value specified in the .xcode-version file","title":"3 Examples"},{"location":"generated/actions/xcversion/#parameters","text":"Key Description Default version The version of Xcode to select specified as a Gem::Version requirement string (e.g. '~> 7.1.0'). Defaults to the value specified in the .xcode-version file * * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/xcversion/#documentation","text":"To show the documentation in your terminal, run fastlane action xcversion","title":"Documentation"},{"location":"generated/actions/xcversion/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run xcversion To pass parameters, make use of the : symbol, for example fastlane run xcversion parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/xcversion/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"generated/actions/zip/","text":"zip Compress a file or folder to a zip zip Supported platforms ios, android, mac Author @KrauseFx Returns The path to the output zip file 6 Examples zip zip( path: \"MyApp.app\", output_path: \"Latest.app.zip\" ) zip( path: \"MyApp.app\", output_path: \"Latest.app.zip\", verbose: false ) zip( path: \"MyApp.app\", output_path: \"Latest.app.zip\", verbose: false, symlinks: true ) zip( path: \"./\", output_path: \"Source Code.zip\", exclude: [\".git/*\"] ) zip( path: \"./\", output_path: \"Swift Code.zip\", include: [\"**/*.swift\"], exclude: [\"Package.swift\", \"vendor/*\", \"Pods/*\"] ) Parameters Key Description Default path Path to the directory or file to be zipped output_path The name of the resulting zip file verbose Enable verbose output of zipped file true password Encrypt the contents of the zip archive using a password symlinks Store symbolic links as such in the zip archive false include Array of paths or patterns to include [] exclude Array of paths or patterns to exclude [] * = default value is dependent on the user's system Documentation To show the documentation in your terminal, run fastlane action zip CLI It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run zip To pass parameters, make use of the : symbol, for example fastlane run zip parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile . Source code This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Zip"},{"location":"generated/actions/zip/#zip","text":"Compress a file or folder to a zip zip Supported platforms ios, android, mac Author @KrauseFx Returns The path to the output zip file","title":"zip"},{"location":"generated/actions/zip/#6-examples","text":"zip zip( path: \"MyApp.app\", output_path: \"Latest.app.zip\" ) zip( path: \"MyApp.app\", output_path: \"Latest.app.zip\", verbose: false ) zip( path: \"MyApp.app\", output_path: \"Latest.app.zip\", verbose: false, symlinks: true ) zip( path: \"./\", output_path: \"Source Code.zip\", exclude: [\".git/*\"] ) zip( path: \"./\", output_path: \"Swift Code.zip\", include: [\"**/*.swift\"], exclude: [\"Package.swift\", \"vendor/*\", \"Pods/*\"] )","title":"6 Examples"},{"location":"generated/actions/zip/#parameters","text":"Key Description Default path Path to the directory or file to be zipped output_path The name of the resulting zip file verbose Enable verbose output of zipped file true password Encrypt the contents of the zip archive using a password symlinks Store symbolic links as such in the zip archive false include Array of paths or patterns to include [] exclude Array of paths or patterns to exclude [] * = default value is dependent on the user's system","title":"Parameters"},{"location":"generated/actions/zip/#documentation","text":"To show the documentation in your terminal, run fastlane action zip","title":"Documentation"},{"location":"generated/actions/zip/#cli","text":"It is recommended to add the above action into your Fastfile , however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal fastlane run zip To pass parameters, make use of the : symbol, for example fastlane run zip parameter1:\"value1\" parameter2:\"value2\" It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:\"1,2,3\" ). Hashes are not currently supported. It is recommended to add all fastlane actions you use to your Fastfile .","title":"CLI"},{"location":"generated/actions/zip/#source-code","text":"This action, just like the rest of fastlane , is fully open source, view the source code on GitHub Back to actions","title":"Source code"},{"location":"getting-started/android/beta-deployment/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 Deploy to Beta distribution services using fastlane If you would like to distribute your beta builds to Google Play, please make sure you've done the steps from Setting up supply before continuing. Building your app fastlane takes care of building your app by delegating to your existing Gradle build. Just add the following to your Fastfile : lane :beta do # Adjust the `build_type` and `flavor` params as needed to build the right APK for your setup gradle( task: 'assemble', build_type: 'Release' ) # ... end Try running the lane with: fastlane beta When that completes you should have the appropriate APK ready to go in the standard output directory. To get a list of all available parameters for the gradle action, run: fastlane action gradle Uploading your app After building your app, it's ready to be uploaded to a beta testing service of your choice. The beauty of fastlane is that you can easily switch beta providers, or even upload to multiple at once, with a minimum of configuration. Follow that with a notification posted to the group messaging service of your choice to let the team know that you've shipped. lane :beta do gradle(task: 'assemble', build_type: 'Release') upload_to_play_store(track: 'beta') slack(message: 'Successfully distributed a new beta build') end Supported beta testing services Google Play In order to distribute to Google Play with upload_to_play_store you will need to have your Google credentials set up. Make sure you've gone through Setting up supply before continuing! lane :beta do # ... gradle( task: 'assemble', build_type: 'Release' ) upload_to_play_store(track: 'beta') # ... end To get a list of all available options, run: fastlane action upload_to_play_store Firebase App Distribution Install the Firebase App Distribution plugin: fastlane add_plugin firebase_app_distribution Authenticate with Firebase by running the firebase_app_distribution_login action (or using one of the other authentication methods ): fastlane run firebase_app_distribution_login Then add the firebase_app_distribution action to your lane: lane :beta do # ... gradle( task: 'assemble', build_type: 'Release' ) firebase_app_distribution( app: \"1:123456789:android:abcd1234\", groups: \"qa-team, trusted-testers\" ) # ... end For more information and options (such as adding release notes) see the full Getting Started guide. More information about additional supported beta testing services can be found in the list of \"Beta\" actions Release Notes Generate based on Git commits You take the time to write great Git commit messages, right? Why not take advantage of them to automatically summarize the work done for your latest beta release? lane :beta do # ... # Generate the changelog based on commit messages since your last tag changelog_from_git_commits # The crashlytics action knows how to use the generated changelog automatically crashlytics( api_token: '[insert_key_here]', build_secret: '[insert_secret_here]' ) end You can get a list of all available options by running fastlane action changelog_from_git_commits , but here are some examples: changelog_from_git_commits( between: ['7b092b3', 'HEAD'], # Optional, lets you specify a revision/tag range between which to collect commit info merge_commit_filtering: 'exclude_merges' # Optional, lets you filter out merge commits ) Prompt for changelog You can automatically be asked for the changelog in your terminal using the prompt action: lane :beta do # Variant 1: Ask for a one line input changelog = prompt(text: \"Changelog: \") # Variant 2: Ask for a multi-line input # The user confirms their input by typing `END` and Enter changelog = prompt( text: \"Changelog: \", multi_line_end_keyword: \"END\" ) crashlytics( api_token: '[insert_key_here]', build_secret: '[insert_secret_here]', notes: changelog ) end Fetch the changelog from the file system or remote server You can fetch values from anywhere, including the file system and remote server, by writing code in your Fastfile lane :beta do # Variant 1: Read from file system # note the `..`, since fastlane runs in the _fastlane_ directory changelog = File.read(\"../Changelog.txt\") # Variant 2: Fetch data from a remote web server changelog = download(url: \"https://lookatmycms.com/changelog.txt\") crashlytics( api_token: '[insert_key_here]', build_secret: '[insert_secret_here]', notes: changelog ) end","title":"Beta Deployment"},{"location":"getting-started/android/beta-deployment/#deploy-to-beta-distribution-services-using-fastlane","text":"If you would like to distribute your beta builds to Google Play, please make sure you've done the steps from Setting up supply before continuing.","title":"Deploy to Beta distribution services using fastlane"},{"location":"getting-started/android/beta-deployment/#building-your-app","text":"fastlane takes care of building your app by delegating to your existing Gradle build. Just add the following to your Fastfile : lane :beta do # Adjust the `build_type` and `flavor` params as needed to build the right APK for your setup gradle( task: 'assemble', build_type: 'Release' ) # ... end Try running the lane with: fastlane beta When that completes you should have the appropriate APK ready to go in the standard output directory. To get a list of all available parameters for the gradle action, run: fastlane action gradle","title":"Building your app"},{"location":"getting-started/android/beta-deployment/#uploading-your-app","text":"After building your app, it's ready to be uploaded to a beta testing service of your choice. The beauty of fastlane is that you can easily switch beta providers, or even upload to multiple at once, with a minimum of configuration. Follow that with a notification posted to the group messaging service of your choice to let the team know that you've shipped. lane :beta do gradle(task: 'assemble', build_type: 'Release') upload_to_play_store(track: 'beta') slack(message: 'Successfully distributed a new beta build') end","title":"Uploading your app"},{"location":"getting-started/android/beta-deployment/#release-notes","text":"Generate based on Git commits You take the time to write great Git commit messages, right? Why not take advantage of them to automatically summarize the work done for your latest beta release? lane :beta do # ... # Generate the changelog based on commit messages since your last tag changelog_from_git_commits # The crashlytics action knows how to use the generated changelog automatically crashlytics( api_token: '[insert_key_here]', build_secret: '[insert_secret_here]' ) end You can get a list of all available options by running fastlane action changelog_from_git_commits , but here are some examples: changelog_from_git_commits( between: ['7b092b3', 'HEAD'], # Optional, lets you specify a revision/tag range between which to collect commit info merge_commit_filtering: 'exclude_merges' # Optional, lets you filter out merge commits ) Prompt for changelog You can automatically be asked for the changelog in your terminal using the prompt action: lane :beta do # Variant 1: Ask for a one line input changelog = prompt(text: \"Changelog: \") # Variant 2: Ask for a multi-line input # The user confirms their input by typing `END` and Enter changelog = prompt( text: \"Changelog: \", multi_line_end_keyword: \"END\" ) crashlytics( api_token: '[insert_key_here]', build_secret: '[insert_secret_here]', notes: changelog ) end Fetch the changelog from the file system or remote server You can fetch values from anywhere, including the file system and remote server, by writing code in your Fastfile lane :beta do # Variant 1: Read from file system # note the `..`, since fastlane runs in the _fastlane_ directory changelog = File.read(\"../Changelog.txt\") # Variant 2: Fetch data from a remote web server changelog = download(url: \"https://lookatmycms.com/changelog.txt\") crashlytics( api_token: '[insert_key_here]', build_secret: '[insert_secret_here]', notes: changelog ) end","title":"Release Notes"},{"location":"getting-started/android/release-deployment/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 Deploy to Google Play using fastlane Building your app fastlane takes care of building your app by delegating to your existing Gradle build. Just add the following to your Fastfile : lane :playstore do gradle( task: 'assemble', build_type: 'Release' ) end Try running the lane with: fastlane playstore When that completes you should have the appropriate APK ready to go in the standard output directory. To get a list of all available parameters for the gradle action, run: fastlane action gradle Uploading your APK To upload your binary to Google Play, fastlane uses a tool called supply . Because supply needs authentication information from Google, if you haven't yet done the supply setup steps , please do those now! With that done, simply add a call to supply to the lane you set up above: lane :playstore do gradle( task: 'assemble', build_type: 'Release' ) upload_to_play_store # Uploads the APK built in the gradle step above and releases it to all production users end This will also: Upload app metadata from fastlane/metadata/android if you previously ran fastlane supply init Upload expansion files (obbs) found under the same directory as your APK as long as: They are identified by type as main or patch by containing main or patch in their file names There is at most one of each type Upload screenshots from fastlane/metadata/android if you previously ran screengrab Create a new production build Release the production build to all users If you would like to capture and upload screenshots automatically as part of your deployment process, check out the fastlane screenshots for Android guide to get started! To gradually roll out a new build you can use: lane :playstore do # ... upload_to_play_store( track: 'rollout', rollout: '0.5' ) end To get a list of all available parameters for the upload_to_play_store action, run: fastlane action upload_to_play_store","title":"Release Deployment"},{"location":"getting-started/android/release-deployment/#deploy-to-google-play-using-fastlane","text":"","title":"Deploy to Google Play using fastlane"},{"location":"getting-started/android/release-deployment/#building-your-app","text":"fastlane takes care of building your app by delegating to your existing Gradle build. Just add the following to your Fastfile : lane :playstore do gradle( task: 'assemble', build_type: 'Release' ) end Try running the lane with: fastlane playstore When that completes you should have the appropriate APK ready to go in the standard output directory. To get a list of all available parameters for the gradle action, run: fastlane action gradle","title":"Building your app"},{"location":"getting-started/android/release-deployment/#uploading-your-apk","text":"To upload your binary to Google Play, fastlane uses a tool called supply . Because supply needs authentication information from Google, if you haven't yet done the supply setup steps , please do those now! With that done, simply add a call to supply to the lane you set up above: lane :playstore do gradle( task: 'assemble', build_type: 'Release' ) upload_to_play_store # Uploads the APK built in the gradle step above and releases it to all production users end This will also: Upload app metadata from fastlane/metadata/android if you previously ran fastlane supply init Upload expansion files (obbs) found under the same directory as your APK as long as: They are identified by type as main or patch by containing main or patch in their file names There is at most one of each type Upload screenshots from fastlane/metadata/android if you previously ran screengrab Create a new production build Release the production build to all users If you would like to capture and upload screenshots automatically as part of your deployment process, check out the fastlane screenshots for Android guide to get started! To gradually roll out a new build you can use: lane :playstore do # ... upload_to_play_store( track: 'rollout', rollout: '0.5' ) end To get a list of all available parameters for the upload_to_play_store action, run: fastlane action upload_to_play_store","title":"Uploading your APK"},{"location":"getting-started/android/running-tests/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 Running Android tests using fastlane To run your unit tests using fastlane, add the following to your Fastfile lane :tests do gradle(task: \"test\") end Replace \"test\" with the gradle task name for running unit tests of your app. Additionally you can specify more options for building and testing your app, check out the list of all available parameters To use the newly created lane, just run fastlane tests Setting up fastlane to run on CI To run Android tests using fastlane on a Continuous Integration service, check out the Continuous Integration docs . Since fastlane stores all configuration in simple configuration files, and runs via the command line, it supports every kind of CI system. We also prepared some docs to help you get started with some of the popular CI systems. Self-Hosted CIs Jenkins Bamboo GitLab Hosted CIs Circle Travis Visual Studio If your CI system isn't listed here, no problem, fastlane runs on any CI. To trigger fastlane , just add the command you would usually run from your terminal: fastlane tests Posting build results If you want to post test results on Slack, Hipchat, or other team chat client, check out the available fastlane actions . Build failures Hipchat To post a message when fastlane encounters a test or build failure, add the following to your Fastfile : error do |ex| hipchat(message: \"Tests have failed!\", channel: \"Room or @username\", success: false) end Other services The above example uses Hipchat, but fastlane supports many other services out there .","title":"Running Tests"},{"location":"getting-started/android/running-tests/#running-android-tests-using-fastlane","text":"To run your unit tests using fastlane, add the following to your Fastfile lane :tests do gradle(task: \"test\") end Replace \"test\" with the gradle task name for running unit tests of your app. Additionally you can specify more options for building and testing your app, check out the list of all available parameters To use the newly created lane, just run fastlane tests","title":"Running Android tests using fastlane"},{"location":"getting-started/android/screenshots/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 screenshots for Android Your app screenshots are probably the most important thing when it comes to convincing potential users to download or purchase your app. Unfortunately, many apps don't do screenshots well. This is often because taking screenshots of your app and then preparing them for display is time consuming, and it's hard to get everything right and consistent! For example: Are the screenshots in Google Play inconsistent with your latest app design? Is your app localized into many languages that require different screenshots for each? Is the same content displayed for each of your size variations? fastlane tools can automate this process, making it fast and consistent while giving you beautiful results! Capture Screenshots Automatically screengrab works with fastlane to automate the process of capturing screenshots of your app. It allows you to: Capture hundreds of screenshots in multiple languages on any simulator Do something else while the computer takes the screenshots for you Configure it once, and store the configuration so anyone on the team can run it Get a summary of how your app looks like across all supported devices and languages After screengrab completes, it will show you summary of the screenshots you captured: Getting Started Using Espresso screengrab uses the capabilities of Android's built-in Instrumented tests combined with Espresso to drive interactions with your app. To start writing UI Tests with Espresso, checkout the Create UI tests with Espresso Test Recorder video which talks about the Espresso Recording feature for writing UI tests. To learn more about UI testing in Android, refer to the Testing UI for a Single App guide. Installing screengrab Install the gem: sudo gem install screengrab Gradle dependency Add the test dependency to your Gradle build: androidTestImplementation 'tools.fastlane:screengrab:x.x.x' The latest version is Configuring your Manifest Permissions Ensure that the following permissions exist in your src/debug/AndroidManifest.xml Configuring your UI Tests for screengrab To handle automatic switching of locales, add @ClassRule public static final LocaleTestRule localeTestRule = new LocaleTestRule(); to /app/java/ (AndroidTest)/ExampleInstrumentedTest.java or to your tests class To capture screenshots, add the following to your tests Screengrab.screenshot(\"name_of_screenshot_here\"); on the appropriate screens Example UI Test Class (Using JUnit4) @RunWith(JUnit4.class) public class ExampleInstrumentedTest { @ClassRule public static final LocaleTestRule localeTestRule = new LocaleTestRule(); @Rule public ActivityTestRule activityRule = new ActivityTestRule<>(MainActivity.class); @Test public void testTakeScreenshot() { Screengrab.screenshot(\"before_button_click\"); // Your custom onView... onView(withId(R.id.fab)).perform(click()); Screengrab.screenshot(\"after_button_click\"); } } There is an example project showing how to use use JUnit 3 or 4 and Espresso with the screengrab Java library to capture screenshots during a UI test run. Using JUnit 4 is preferable because of its ability to perform actions before and after the entire test class is run. This means you will change the device's locale far fewer times when compared with JUnit 3 running those commands before and after each test method. When using JUnit 3 you'll need to add a bit more code: Use LocaleUtil.changeDeviceLocaleTo(LocaleUtil.getTestLocale()); in setUp() Use LocaleUtil.changeDeviceLocaleTo(LocaleUtil.getEndingLocale()); in tearDown() Use Screengrab.screenshot(\"name_of_screenshot_here\"); to capture screenshots at the appropriate points in your tests If you're having trouble getting your device unlocked and the screen activated to run tests, try using ScreenUtil.activateScreenForTesting(activity); in your test setup. Improved screenshot capture with UI Automator As of screengrab 0.5.0, you can specify different strategies to control the way screengrab captures screenshots. The newer strategy delegates to UI Automator which fixes a number of problems compared to the original strategy: Shadows/elevation are correctly captured for Material UI Multi-window situations are correctly captured (dialogs, etc.) Works on Android N However, UI Automator requires a device with API level >= 18 , so it is not yet the default strategy. To enable it for all screenshots by default, make the following call before your tests run: Screengrab.setDefaultScreenshotStrategy(new UiAutomatorScreenshotStrategy()); Clean Status Bar You can use QuickDemo to clean up the status bar for your screenshots. Generating Screenshots with Screengrab Run ./gradlew assembleDebug assembleAndroidTest manually to generate debug and test APKs You can also create a lane and use build_android_app : ruby desc \"Build debug and test APK for screenshots\" lane :build_for_screengrab do gradle( task: 'clean' ) build_android_app( task: 'assemble', build_type: 'Debug' ) build_android_app( task: 'assemble', build_type: 'AndroidTest' ) end Run fastlane screengrab in your app project directory to generate screenshots You will be prompted to provide any required parameters which are not in your Screengrabfile , or provided as command line arguments Your screenshots will be saved to fastlane/metadata/android in the directory where you ran fastlane screengrab Upload Screenshots to Google Play After generating your screenshots using fastlane screengrab , you'll usually want to upload them to Google Play. To upload the screenshots stored in fastlane/metadata/android , just run: fastlane supply Use in Fastfile To put all of this together so that anyone on your team could trigger generating and uploading new screenshots, you can define a fastlane lane called screenshots . It would be responsible for: Running your app through screengrab to automatically capture your screenshots Having supply send your screenshots to Google Play for use in the store Add the following code to your fastlane/Fastfile : lane :screenshots do capture_android_screenshots upload_to_play_store end To get a list of all available options for each of the steps, run fastlane action capture_android_screenshots fastlane action upload_to_play_store Advanced screengrab Launch Arguments You can provide additional arguments to your testcases on launch. These strings will be available in your tests through InstrumentationRegistry.getArguments() . launch_arguments([ \"username hjanuschka\", \"build_number 201\" ]) Bundle extras = InstrumentationRegistry.getArguments(); String peerID = null; if (extras != null) { if (extras.containsKey(\"username\")) { username = extras.getString(\"username\"); System.out.println(\"Username: \" + username); } else { System.out.println(\"No username in extras\"); } } else { System.out.println(\"No extras\"); }","title":"Screenshots"},{"location":"getting-started/android/screenshots/#fastlane-screenshots-for-android","text":"Your app screenshots are probably the most important thing when it comes to convincing potential users to download or purchase your app. Unfortunately, many apps don't do screenshots well. This is often because taking screenshots of your app and then preparing them for display is time consuming, and it's hard to get everything right and consistent! For example: Are the screenshots in Google Play inconsistent with your latest app design? Is your app localized into many languages that require different screenshots for each? Is the same content displayed for each of your size variations? fastlane tools can automate this process, making it fast and consistent while giving you beautiful results!","title":"fastlane screenshots for Android"},{"location":"getting-started/android/screenshots/#capture-screenshots-automatically","text":"screengrab works with fastlane to automate the process of capturing screenshots of your app. It allows you to: Capture hundreds of screenshots in multiple languages on any simulator Do something else while the computer takes the screenshots for you Configure it once, and store the configuration so anyone on the team can run it Get a summary of how your app looks like across all supported devices and languages After screengrab completes, it will show you summary of the screenshots you captured:","title":"Capture Screenshots Automatically"},{"location":"getting-started/android/screenshots/#upload-screenshots-to-google-play","text":"After generating your screenshots using fastlane screengrab , you'll usually want to upload them to Google Play. To upload the screenshots stored in fastlane/metadata/android , just run: fastlane supply","title":"Upload Screenshots to Google Play"},{"location":"getting-started/android/screenshots/#use-in-fastfile","text":"To put all of this together so that anyone on your team could trigger generating and uploading new screenshots, you can define a fastlane lane called screenshots . It would be responsible for: Running your app through screengrab to automatically capture your screenshots Having supply send your screenshots to Google Play for use in the store Add the following code to your fastlane/Fastfile : lane :screenshots do capture_android_screenshots upload_to_play_store end To get a list of all available options for each of the steps, run fastlane action capture_android_screenshots fastlane action upload_to_play_store","title":"Use in Fastfile"},{"location":"getting-started/android/screenshots/#advanced-screengrab","text":"Launch Arguments You can provide additional arguments to your testcases on launch. These strings will be available in your tests through InstrumentationRegistry.getArguments() . launch_arguments([ \"username hjanuschka\", \"build_number 201\" ]) Bundle extras = InstrumentationRegistry.getArguments(); String peerID = null; if (extras != null) { if (extras.containsKey(\"username\")) { username = extras.getString(\"username\"); System.out.println(\"Username: \" + username); } else { System.out.println(\"No username in extras\"); } } else { System.out.println(\"No extras\"); }","title":"Advanced screengrab"},{"location":"getting-started/android/setup/","text":"Getting started with fastlane for Android Installing fastlane fastlane can be installed in multiple ways. The preferred method is with Bundler . fastlane can also be installed directly through Homebrew (if on macOS). It is possible to use macOS's system Ruby, but it's not recommended, as it can be hard to manage dependencies and cause conflicts. Managed Ruby environment + Bundler (macOS/Linux/Windows) Ruby If you use macOS, system Ruby is not recommended. There are a variety of ways to install Ruby without having to modify your system environment . For macOS and Linux, rbenv is one of the most popular ways to manage your Ruby environment. fastlane supports Ruby versions 2.5 or newer. Verify which Ruby version you're using: $ ruby --version ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-darwin19] Bundler It is recommended that you use Bundler and Gemfile to define your dependency on fastlane . This will clearly define the fastlane version to be used and its dependencies, and will also speed up fastlane execution. Install Bundler by running gem install bundler Create a ./Gemfile in the root directory of your project with the content source \"https://rubygems.org\" gem \"fastlane\" Run bundle update and add both the ./Gemfile and the ./Gemfile.lock to version control Every time you run fastlane , use bundle exec fastlane [lane] On your CI, add bundle install as your first build step To update fastlane , just run bundle update fastlane Homebrew (macOS) This way, you don't have to install Ruby separately, and instead homebrew installs the adequate Ruby version for fastlane . See this page for details. brew install fastlane System Ruby + RubyGems (macOS/Linux/Windows) This is not recommended for your local environment, but you can still install fastlane to system Ruby's environment. Using sudo often occurs unwanted results later due to file permission and makes managing your environment harder. sudo gem install fastlane Setting up fastlane Navigate your terminal to your project's directory and run fastlane init You'll be asked to confirm that you're ready to begin, and then for a few pieces of information. To get started quickly: Provide the package name for your application when asked (e.g. io.fabric.yourapp) Press enter when asked for the path to your json secret file Answer 'n' when asked if you plan on uploading info to Google Play via fastlane (we can set this up later) That's it! fastlane will automatically generate a configuration for you based on the information provided. You can see the newly created ./fastlane directory, with the following files: Appfile which defines configuration information that is global to your app Fastfile which defines the \"lanes\" that drive the behavior of fastlane The most interesting file is fastlane/Fastfile , which contains all the information that is needed to distribute your app. Setting up supply supply is a fastlane tool that uploads app metadata, screenshots and binaries to Google Play. You can also select tracks for builds and promote builds to production! For supply to be able to initialize, you need to have successfully uploaded an APK to your app in the Google Play Console at least once. Setting it up requires downloading a credentials file from your Google Developers Service Account. Collect your Google credentials Tip: If you see Google Play Console or Google Developer Console in your local language, add &hl=en at the end of the URL (before any #... ) to switch to English. All the links below already have this to make it easier to find the correct buttons. Note: if you face issues when following these instructions, you might want to refer to the official documentation by Google . Open the Google Play Console Click Account Details , and note the Developer Account ID listed there Enable the Google Play Developer API by selecting an existing Google Cloud Project that fits your needs and pushing ENABLE If you don't have an existing project or prefer to have a dedicated one for fastlane , create a new one here and follow the instructions Open Service Accounts on Google Cloud and select the project you'd like to use Click the CREATE SERVICE ACCOUNT button at the top of the Google Cloud Platform Console page Verify that you are on the correct Google Cloud Platform Project by looking for the Developer Account ID from earlier within the light gray text in the second input, preceding .iam.gserviceaccount.com , or by checking the project name in the navigaton bar. If not, open the picker in the top navigation bar, and find the right one. Provide a Service account name (e.g. fastlane-supply) Copy the generated email address that is noted below the Service account-ID field for later use Click DONE (don't click CREATE AND CONTINUE as the optional steps such as granting access are not needed): Click on the Actions vertical three-dot icon of the service account you just created Select Manage keys on the menu Click ADD KEY \u2192 Create New Key Make sure JSON is selected as the Key type , and click CREATE Save the file on your computer when prompted and remember where it was saved at Open the Google Play Console and select Users and Permissions Click Invite new users Paste the email address you saved for later use into the email address field Click on Account Permissions Choose the permissions you'd like this account to have. We recommend Admin (all permissions) , but you may want to manually select all checkboxes and leave out some of the Releases permissions such as Release to production, exclude devices, and use Play App Signing Click on Invite User You can use fastlane run validate_play_store_json_key json_key:/path/to/your/downloaded/file.json to test the connection to Google Play Store with the downloaded private key. Once that works, add the path to the JSON file to your Appfile : json_key_file(\"path/to/your/play-store-credentials.json\") package_name(\"my.package.name\") The path is relative to where you normally run fastlane . Configure supply Edit your fastlane/Appfile and change the json_key_file line to have the path to your credentials file: json_key_file \"/path/to/your/downloaded/key.json\" Fetch your app metadata If your app has been created on the Google Play developer console, you're ready to start using supply to manage it! Run: fastlane supply init and all of your current Google Play store metadata will be downloaded to fastlane/metadata/android . Due to limitations of the Google Play API, supply can't download existing screenshots or videos. What's next? fastlane is ready to generate screenshots and automatically distribute new builds! To learn more, check out: fastlane screenshots for Android Deploy to Google Play using fastlane Set up environment variables fastlane requires some environment variables set up to run correctly. In particular, having your locale not set to a UTF-8 locale will cause issues with building and uploading your build. In your shell profile add the following lines: export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8 You can find your shell profile at ~/.bashrc , ~/.bash_profile , ~/.profile or ~/.zshrc depending on your system. Use a Gemfile It is recommended that you use a Gemfile to define your dependency on fastlane . This will clearly define the used fastlane version, and its dependencies, and will also speed up using fastlane . Create a ./Gemfile in the root directory of your project with the content source \"https://rubygems.org\" gem \"fastlane\" Run [sudo] bundle update and add both the ./Gemfile and the ./Gemfile.lock to version control Every time you run fastlane , use bundle exec fastlane [lane] On your CI, add [sudo] bundle install as your first build step To update fastlane , just run [sudo] bundle update fastlane","title":"Setup"},{"location":"getting-started/android/setup/#getting-started-with-fastlane-for-android","text":"","title":"Getting started with fastlane for Android"},{"location":"getting-started/cross-platform/flutter/","text":"Getting started with fastlane for Flutter Most of the fastlane docs on this page apply to Flutter projects as well. To get started, the Flutter team wrote an excellent official guide on Continuous Delivery using fastlane with Flutter .","title":"Flutter"},{"location":"getting-started/cross-platform/flutter/#getting-started-with-fastlane-for-flutter","text":"Most of the fastlane docs on this page apply to Flutter projects as well. To get started, the Flutter team wrote an excellent official guide on Continuous Delivery using fastlane with Flutter .","title":"Getting started with fastlane for Flutter"},{"location":"getting-started/cross-platform/nativescript/","text":"Getting started with fastlane for NativeScript Most of the fastlane docs on this page apply to NativeScript projects as well. To get started, please follow this tutorial from the official NativeScript Blog: Automatic NativeScript App Deployments with fastlane .","title":"NativeScript"},{"location":"getting-started/cross-platform/nativescript/#getting-started-with-fastlane-for-nativescript","text":"Most of the fastlane docs on this page apply to NativeScript projects as well. To get started, please follow this tutorial from the official NativeScript Blog: Automatic NativeScript App Deployments with fastlane .","title":"Getting started with fastlane for NativeScript"},{"location":"getting-started/cross-platform/react-native/","text":"Getting started with fastlane for React Native Most of the fastlane docs on this page apply to React Native projects as well. As there is no official getting started guide yet, here are some publications by the fastlane community: Distributing beta builds with Fastlane on Android and iOS Shipping React Native apps with fastlane React Native, fastlane and Visual Studio App Center Conference talk \"Automate your React Native world with fastlane\" Team Focused Fastlane Tutorials Simple Android Releases in React Native Simple iOS Releases in React Native Automatic Screenshots with Fastlane & Detox for React Native Automating React Native deployments for iOS with Fastlane","title":"React Native"},{"location":"getting-started/cross-platform/react-native/#getting-started-with-fastlane-for-react-native","text":"Most of the fastlane docs on this page apply to React Native projects as well. As there is no official getting started guide yet, here are some publications by the fastlane community: Distributing beta builds with Fastlane on Android and iOS Shipping React Native apps with fastlane React Native, fastlane and Visual Studio App Center Conference talk \"Automate your React Native world with fastlane\" Team Focused Fastlane Tutorials Simple Android Releases in React Native Simple iOS Releases in React Native Automatic Screenshots with Fastlane & Detox for React Native Automating React Native deployments for iOS with Fastlane","title":"Getting started with fastlane for React Native"},{"location":"getting-started/ios/appstore-deployment/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 iOS App Store deployment using fastlane Building your app fastlane takes care of building your app using an action called build_app , just add the following to your Fastfile : lane :release do build_app(scheme: \"MyApp\") end Additionally you can specify more options for building your app, for example lane :release do build_app(scheme: \"MyApp\", workspace: \"Example.xcworkspace\", include_bitcode: true) end Try running the lane using fastlane release If everything works, you should have a [ProductName].ipa file in the current directory. To get a list of all available parameters for build_app , run fastlane action build_app . Codesigning Chances are that something went wrong because of code signing at the previous step. We prepared our own Code Signing Guide that helps you setting up the right code signing approach for your project. Submitting your app Generating screenshots To find out more about how to automatically generate screenshots for the App Store, check out fastlane screenshots for iOS and tvOS . Upload the binary and app metadata After building your app, it's ready to be uploaded to the App Store. If you've already followed iOS Beta deployment using fastlane , the following code might look similar already. lane :release do capture_screenshots # generate new screenshots for the App Store sync_code_signing(type: \"appstore\") # see code signing guide for more information build_app(scheme: \"MyApp\") upload_to_app_store # upload your app to App Store Connect slack(message: \"Successfully uploaded a new App Store build\") end fastlane automatically passes on information about the generated screenshots and the binary to the upload_to_app_store action of your Fastfile . For a list of all options for each of the steps run fastlane action [action_name] . More details For more details on how upload_to_app_store works, how you can define more options, check out upload_to_app_store . Best Practices Push Notifications To make sure your latest push notification certificate is still valid during your submission process, add the following at the beginning of your lane: lane :release do get_push_certificate # ... end get_push_certificate will ensure your certificate is valid for at least another 2 weeks, and create a new one if it isn't. If you don't have any push certificates already, get_push_certificate will create one for you and store locally in your project's directory. To get more information about the available options run fastlane action get_push_certificate . Incrementing the build number The code sample below will use the latest build number from App Store Connect and temporarily set it. lane :beta do increment_build_number( build_number: app_store_build_number + 1, xcodeproj: \"Example.xcodeproj\" ) end For all the steps above, there are more parameters available, run the following to get a full list: fastlane action [action_name]","title":"App Store Deployment"},{"location":"getting-started/ios/appstore-deployment/#ios-app-store-deployment-using-fastlane","text":"","title":"iOS App Store deployment using fastlane"},{"location":"getting-started/ios/appstore-deployment/#building-your-app","text":"fastlane takes care of building your app using an action called build_app , just add the following to your Fastfile : lane :release do build_app(scheme: \"MyApp\") end Additionally you can specify more options for building your app, for example lane :release do build_app(scheme: \"MyApp\", workspace: \"Example.xcworkspace\", include_bitcode: true) end Try running the lane using fastlane release If everything works, you should have a [ProductName].ipa file in the current directory. To get a list of all available parameters for build_app , run fastlane action build_app .","title":"Building your app"},{"location":"getting-started/ios/appstore-deployment/#submitting-your-app","text":"","title":"Submitting your app"},{"location":"getting-started/ios/appstore-deployment/#best-practices","text":"Push Notifications To make sure your latest push notification certificate is still valid during your submission process, add the following at the beginning of your lane: lane :release do get_push_certificate # ... end get_push_certificate will ensure your certificate is valid for at least another 2 weeks, and create a new one if it isn't. If you don't have any push certificates already, get_push_certificate will create one for you and store locally in your project's directory. To get more information about the available options run fastlane action get_push_certificate . Incrementing the build number The code sample below will use the latest build number from App Store Connect and temporarily set it. lane :beta do increment_build_number( build_number: app_store_build_number + 1, xcodeproj: \"Example.xcodeproj\" ) end For all the steps above, there are more parameters available, run the following to get a full list: fastlane action [action_name]","title":"Best Practices"},{"location":"getting-started/ios/authentication/","text":"Authenticating with Apple services Several fastlane actions communicate with Apple services that need authentication. As this can pose several challenges especially on CI, this document focuses on those challenges, but everything described here can be done on your local machine as well. There are 4 ways to connect to Apple services: Method 1: App Store Connect API key (recommended) This is the recommended and official way of authenticating with Apple services. However, it doesn't support all of the fastlane features yet. Check out App Store Connect API for more information. Method 2: Two-step or two-factor authentication For actions that aren't yet supported by the official App Store Connect API, you will need to authenticate with your Apple ID. Luckily, fastlane fully supports 2-factor authentication (2FA) (and legacy 2-step verification (2SV) ) for logging in to your Apple ID and Apple Developer account. \ud83c\udf1f Manual verification With 2-factor authentication (or 2-step verification) enabled, you will be asked to verify your identity by entering a security code. If you already have a trusted device configured for your account, then the code will appear on the device. If you don't have any devices configured, but have trusted a phone number, then the code will be sent to your phone. The resulting session will be stored in ~/.fastlane/spaceship/[email]/cookie . Storing a manually verified session using spaceauth As your CI machine will not be able to prompt you for your two-factor authentication or two-step verification information, you can generate a login session for your Apple ID in advance by running: fastlane spaceauth -u user@email.com The generated value then has to be stored inside the FASTLANE_SESSION environment variable on your CI system. This session will be reused instead of triggering a new login each time fastlane communicates with Apple's APIs. It's advised that you run spaceauth in the same machine as your CI, instead of running it locally on your machine - see the notes below regarding session duration. Important note about session duration The session generated, stored and reused as part of a 2FA/2SV authentication, or as part of spaceauth is subject to technical limitations imposed by Apple. Namely: An Apple ID session is only valid within a certain region, meaning if the region you're using your session (e.g. CI system) is different than the region where you created that session (e.g. your local machine), you might run into issues. It's advised that you create the session in the same machine that will be used to consume it, to make the session last longer. The session's validity can greatly vary (anything between 1 day and 1 month, depending on factors such as geolocation of the session usage). This means you'll have to generate a new session at least once a month. Usually you'd only know about it when your build starts failing. Unfortunately there is nothing fastlane can do better in this regard, as these are technical limitations on how App Store Connect sessions are handled. Method 3: Application-specific passwords If you want to upload builds to App Store Connect (actions upload_to_app_store and deliver ) or TestFlight (actions upload_to_testflight , pilot or testflight ) from your CI machine, you may generate an application specific password : Visit appleid.apple.com/account/manage Generate a new application specific password Provide the application specific password using the environment variable FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD This will supply the application specific password to iTMSTransporter, the tool used by those actions to perform the upload. Note: The application specific password will not work if your action usage does anything else than uploading the binary, e.g. updating any metadata like setting release notes or distributing to testers, etc. For those actions, you must use one of the other methods. Method 4: Apple ID without 2FA (deprecated) Apple announced that as of February 27th 2019 , it would enforce 2-factor authentication on developer Apple IDs with the \"Account Holder\" role. Since then, they extended this rule to all roles, and then later throughout 2020 they slowly enforced all existing accounts to register 2FA. As of March 3rd 2021, no accounts without 2FA registered are able to login until they register a 2FA method, essentially breaking all \"non-2FA compliant Apple IDs\" that still existed. For this reason, when using fastlane in your CI, you will have to work your way with 2FA.","title":"Authentication"},{"location":"getting-started/ios/authentication/#authenticating-with-apple-services","text":"Several fastlane actions communicate with Apple services that need authentication. As this can pose several challenges especially on CI, this document focuses on those challenges, but everything described here can be done on your local machine as well. There are 4 ways to connect to Apple services:","title":"Authenticating with Apple services"},{"location":"getting-started/ios/beta-deployment/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 iOS Beta deployment using fastlane Building your app fastlane takes care of building your app using an action called build_app , just add the following to your Fastfile : lane :beta do build_app(scheme: \"MyApp\") end Additionally you can specify more options for building your app, for example lane :beta do build_app(scheme: \"MyApp\", workspace: \"Example.xcworkspace\", include_bitcode: true) end Try running the lane using fastlane beta If everything works, you should have a [ProductName].ipa file in the current directory. To get a list of all available parameters for build_app , run fastlane action build_app . Codesigning Chances are that something went wrong because of code signing at the previous step. We prepared our own Code Signing Guide that helps you setting up the right code signing approach for your project. Uploading your app After building your app, it's ready to be uploaded to a beta testing service of your choice. The beauty of fastlane is that you can easily switch beta provider, or even upload to multiple at once, without any extra work. All you have to do is to put the name of the beta testing provider of your choice after building the app using build_app : lane :beta do sync_code_signing(type: \"appstore\") # see code signing guide for more information build_app(scheme: \"MyApp\") upload_to_testflight slack(message: \"Successfully distributed a new beta build\") end fastlane automatically passes on information about the generated .ipa file from build_app to the beta testing provider of your choice. To get a list of all available parameters for a given action, run fastlane action slack Beta testing services TestFlight You can easily upload new builds to TestFlight (which is part of App Store Connect) using fastlane . To do so, just use the built-in testflight action after building your app lane :beta do # ... build_app upload_to_testflight end Some example use cases lane :beta do # ... build_app # Variant 1: Provide a changelog to your build upload_to_testflight(changelog: \"Add rocket emoji\") # Variant 2: Skip the \"Waiting for processing\" of the binary # While this will speed up your build, it will not distribute # the binary to your tests, nor set a changelog upload_to_testflight(skip_waiting_for_build_processing: true) end If you used fastlane init to setup fastlane , your Apple ID is stored in the fastlane/Appfile . You can also overwrite the username, using upload_to_testflight(username: \"bot@fastlane.tools\") . To get a list of all available options, run fastlane action upload_to_testflight With fastlane , you can also automatically manage your beta testers, check out the other actions available. Firebase App Distribution Install the Firebase App Distribution plugin: fastlane add_plugin firebase_app_distribution Authenticate with Firebase by running the firebase_app_distribution_login action (or using one of the other authentication methods ): fastlane run firebase_app_distribution_login Then add the firebase_app_distribution action to your lane: lane :beta do # ... build_app firebase_app_distribution( app: \"1:123456789:ios:abcd1234\", groups: \"qa-team, trusted-testers\" ) # ... end For more information and options (such as adding release notes) see the full Getting Started guide. HockeyApp lane :beta do # ... build_app hockey(api_token: \"[insert_key_here]\") end To get your API token, open API Tokens in Account Settings . From there, you can find your existing API token, or create a new one. To get a list of all available options see the hockey action docs , or run fastlane action hockey TestFairy lane :beta do # ... build_app testfairy(api_key: \"[insert_key_here]\") # Variant 1: Provide a changelog testfairy(api_key: \"[insert_key_here]\", comment: \"Add rocket emoji\") # Variant 2: Specify tester groups testfairy(api_key: \"[insert_key_here]\", testers_groups: [\"group1\"]) end To get a list of all available options, run fastlane action testfairy More information about the service on TestFairy.com . More information about additional supported beta testing services can be found in the list of \"Beta\" actions Release Notes Automatically based on git commits Your changelog changes, so it doesn't make a lot of sense to store a static release note in the Fastfile . lane :beta do sync_code_signing build_app changelog_from_git_commits # this will generate the changelog based on your last commits upload_to_testflight end Get a list of all available options using fastlane action changelog_from_git_commits , here are some examples changelog_from_git_commits( between: ['7b092b3', 'HEAD'], # Optional, lets you specify a revision/tag range between which to collect commit info merge_commit_filtering: 'exclude_merges' # Optional, lets you filter out merge commits ) Prompt for changelog You can automatically be asked for the changelog in your terminal using the prompt action: lane :beta do # Variant 1: Ask for a one line input changelog = prompt(text: \"Changelog: \") # Variant 2: Ask for a multi-line input # The user confirms their input by typing `END` and Enter changelog = prompt( text: \"Changelog: \", multi_line_end_keyword: \"END\" ) sync_code_signing build_app upload_to_testflight(changelog: changelog) end Fetching the changelog from the file system or remote server You can fetch values from anywhere in your Fastfile , including the file system and remote server lane :beta do # Variant 1: Read from file system # note the `..`, since fastlane runs in the _fastlane_ directory changelog = File.read(\"../Changelog.txt\") # Variant 2: Fetch data from a remote web server changelog = download(url: \"https://lookatmycms.com/changelog.txt\") sync_code_signing build_app upload_to_testflight(changelog: changelog) end Best Practices Manage devices and testers using fastlane TestFlight If you're using TestFlight you don't need to worry about UDIDs of your devices. Instead you just maintain a list of testers based on their Apple ID email address. fastlane supports automatically registering devices using different approaches boarding boarding allows you set up a registration page for your beta testers, so they can enter their email address and start testing your application. Check out the boarding GitHub repo for more information. pilot pilot is automatically installed with fastlane , you can use it to register individual testers to TestFlight # Register a new external tester fastlane pilot add email@invite.com # Register a new external tester and add them to your app fastlane pilot add email@invite.com -a com.app.name Third party beta testing services If you're using a third party beta testing service, you'll need to manage your registered devices and their UDIDs. fastlane already supports device registrations and updating provisioning profiles out of the box. lane :beta do # Before calling match, we make sure all our devices are registered on the Apple Developer Portal register_devices(devices_file: \"devices.txt\") # After registering the new devices, we'll make sure to update the provisioning profile if necessary # Note how we make sure to pass \"adhoc\" to get and use a provisioning profile for Ad Hoc distribution sync_code_signing(force_for_new_devices: true, type: \"adhoc\") build_app # ... end The devices.txt should look like this: Device ID Device Name A123456789012345678901234567890123456789 DeviceName1 B123456789012345678901234567890123456789 DeviceName2 Incrementing the build number Depending on the beta testing service you use, you'll have to increment the build number each time you upload a new build. This is a requirement for TestFlight for example. To do so, there are some built-in fastlane actions available, here are some examples Fetching the latest build number from TestFlight The code sample below will use the latest build number from TestFlight and temporarily set it. lane :beta do increment_build_number( build_number: latest_testflight_build_number + 1, xcodeproj: \"Example.xcodeproj\" ) end Committing the build number to version control The code sample below will increment the build number and commit the project changes to version control. lane :beta do # Ensure that your git status is not dirty ensure_git_status_clean # Increment the build number (not the version number) # Providing the xcodeproj is optional increment_build_number(xcodeproj: \"Example.xcodeproj\") # Commit the version bump commit_version_bump(xcodeproj: \"Example.xcodeproj\") # Add a git tag for this build. This will automatically # use an appropriate git tag name add_git_tag # Push the new commit and tag back to your git remote push_to_git_remote end For all the steps above, there are more parameters available, run the following to get a full list: fastlane action [action_name] Use the number of commits This isn't recommended, however some teams prefer this approach. You can use the number of commits of the current branch (via number_of_commits ) as the build number. This will only work if you always run the build on the same branch. lane :beta do increment_build_number(build_number: number_of_commits) end","title":"Beta Deployment"},{"location":"getting-started/ios/beta-deployment/#ios-beta-deployment-using-fastlane","text":"","title":"iOS Beta deployment using fastlane"},{"location":"getting-started/ios/beta-deployment/#building-your-app","text":"fastlane takes care of building your app using an action called build_app , just add the following to your Fastfile : lane :beta do build_app(scheme: \"MyApp\") end Additionally you can specify more options for building your app, for example lane :beta do build_app(scheme: \"MyApp\", workspace: \"Example.xcworkspace\", include_bitcode: true) end Try running the lane using fastlane beta If everything works, you should have a [ProductName].ipa file in the current directory. To get a list of all available parameters for build_app , run fastlane action build_app .","title":"Building your app"},{"location":"getting-started/ios/beta-deployment/#uploading-your-app","text":"After building your app, it's ready to be uploaded to a beta testing service of your choice. The beauty of fastlane is that you can easily switch beta provider, or even upload to multiple at once, without any extra work. All you have to do is to put the name of the beta testing provider of your choice after building the app using build_app : lane :beta do sync_code_signing(type: \"appstore\") # see code signing guide for more information build_app(scheme: \"MyApp\") upload_to_testflight slack(message: \"Successfully distributed a new beta build\") end fastlane automatically passes on information about the generated .ipa file from build_app to the beta testing provider of your choice. To get a list of all available parameters for a given action, run fastlane action slack","title":"Uploading your app"},{"location":"getting-started/ios/beta-deployment/#release-notes","text":"Automatically based on git commits Your changelog changes, so it doesn't make a lot of sense to store a static release note in the Fastfile . lane :beta do sync_code_signing build_app changelog_from_git_commits # this will generate the changelog based on your last commits upload_to_testflight end Get a list of all available options using fastlane action changelog_from_git_commits , here are some examples changelog_from_git_commits( between: ['7b092b3', 'HEAD'], # Optional, lets you specify a revision/tag range between which to collect commit info merge_commit_filtering: 'exclude_merges' # Optional, lets you filter out merge commits ) Prompt for changelog You can automatically be asked for the changelog in your terminal using the prompt action: lane :beta do # Variant 1: Ask for a one line input changelog = prompt(text: \"Changelog: \") # Variant 2: Ask for a multi-line input # The user confirms their input by typing `END` and Enter changelog = prompt( text: \"Changelog: \", multi_line_end_keyword: \"END\" ) sync_code_signing build_app upload_to_testflight(changelog: changelog) end Fetching the changelog from the file system or remote server You can fetch values from anywhere in your Fastfile , including the file system and remote server lane :beta do # Variant 1: Read from file system # note the `..`, since fastlane runs in the _fastlane_ directory changelog = File.read(\"../Changelog.txt\") # Variant 2: Fetch data from a remote web server changelog = download(url: \"https://lookatmycms.com/changelog.txt\") sync_code_signing build_app upload_to_testflight(changelog: changelog) end","title":"Release Notes"},{"location":"getting-started/ios/beta-deployment/#best-practices","text":"Manage devices and testers using fastlane TestFlight If you're using TestFlight you don't need to worry about UDIDs of your devices. Instead you just maintain a list of testers based on their Apple ID email address. fastlane supports automatically registering devices using different approaches","title":"Best Practices"},{"location":"getting-started/ios/fastlane-swift/","text":"Getting Started with Fastlane.swift (beta) Welcome to Fastlane.swift. Fastlane.swift allows you to write your fastlane configuration using Xcode, in Swift - the language you have come to know and love from the world of iOS development. Fastlane.swift is currently in beta. Please provide feedback by opening an issue in the fastlane repo . Currently Supported Fastlane.swift currently supports all built-in fastlane actions and 3rd party plugins . Make sure to update to the most recent fastlane release to try these features. Get Started (Xcode) Step 1 Run the following command in your terminal: fastlane init swift Step 2 Open the file located at [project]/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj to configure your lanes in Fastfile.swift . func betaLane() { desc(\"Submit a new Beta Build to Apple TestFlight. This will also make sure the profile is up to date\") syncCodeSigning(gitUrl: \"URL/for/your/git/repo\", appIdentifier: [appIdentifier], username: appleID) // Build your app - more options available buildIosApp(scheme: \"SchemeName\") uploadToTestflight(username: appleID) // You can also use other beta testing services here (run `fastlane actions`) } Step 3 Run fastlane in your terminal to execute fastlane . Step 4 \ud83c\udf89 Get Started (SPM) (Beta) Swift Package Manager (SPM) support adds the ability to distribute fastlane as a Swift Package Manager package, which allows other packages to integrate with the toolset. Step 1 Create an executable Swift Package Manager project with swift package init --type executable . Step 2 Add the fastlane dependency to your Package.swift . .package(name: \"Fastlane\", url: \"https://github.com/fastlane/fastlane\", from: \"2.179.0\") A full example of a working package description would be the following. // swift-tools-version:5.2 import PackageDescription let package = Package( name: \"fastlaneRunner\", products: [ .executable(name: \"fastlaneRunner\", targets: [\"fastlaneRunner\"]) ], dependencies: [ .package(name: \"Fastlane\", url: \"https://github.com/fastlane/fastlane\", from: \"2.179.0\") ], targets: [ .target( name: \"fastlaneRunner\", dependencies: [\"Fastlane\"], path: \"Sources/Thingy\" ) ] ) Step 3 Create your Fastfile.swift file in your package and add the desired lanes, as follows. import Fastlane // Create a class with: class FastFile: LaneFile { // Your lanes goes here. } Step 4 Add an entry point ( @main ) or a main.swift file (mandatory for executable SPM packages) and don't forget to start the fastlane runloop as follows: import Fastlane Main().run(with: Fastfile()) Step 5 Modify the target of your executable to have executable arguments lane myLane or add them in the call after making swift build . myExecutable lane myLane Notes: You can edit the created Package.swift file to add your desired dependencies so you can use them in the Fastfile. If you want to just push your Package.swift and Package.resolved to the repo, you'd need to swift build the package to create your executable again which can be found in the .debug or .release folders, depending on how you built the package ( .debug by default). Defining Lanes Lanes are defined with functions that end with Lane within the class Fastfile: LaneFile . class Fastfile: LaneFile { func testLane() { desc(\"This is a lane\") } func helper() { // This is not a lane but can be called from a lane } } Passing Parameters To pass parameters from the command line to your lane, use the following syntax: fastlane [lane] key:value key2:value2 fastlane deploy submit:false build_number:24 To access those values, change your lane declaration to also include withOptions options:[String: String]? class Fastfile: LaneFile { func deployLane(withOptions options:[String: String]?) { // ... if let submit = options?[\"submit\"], submit == \"true\" { // Only when submit is true } // ... incrementBuildNumber(buildNumber: options?[\"build_number\"]) // ... } } Using Plugins Once you add a plugin , fastlane will automatically generate the corresponding API and make it available in fastlane/swift/Plugins.swift . Example: bundle exec fastlane add_plugin ascii_art The fastlane/swift/Plugins.swift file should now contain the function asciiArt() , and you can access it in your lanes in fastlane/Fastlane.swift . Run Parallel Fastlane Swift uses socket internally. Therefore, for several Lane s to run in parallel at the same time, each Lane must be specified different socket port (lane's default socket port is 2000 ) To specify socket port from the command line to your lane, use the following syntax: fastlane [lane] --swift_server_port [socket port] We Would Love Your Feedback Please feel free to open an issue on GitHub to report any problems you are having with Fastlane.swift and we will respond as quickly as possible.","title":"Swift"},{"location":"getting-started/ios/fastlane-swift/#getting-started-with-fastlaneswift-beta","text":"Welcome to Fastlane.swift. Fastlane.swift allows you to write your fastlane configuration using Xcode, in Swift - the language you have come to know and love from the world of iOS development. Fastlane.swift is currently in beta. Please provide feedback by opening an issue in the fastlane repo .","title":"Getting Started with Fastlane.swift (beta)"},{"location":"getting-started/ios/running-tests/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 Running iOS tests using fastlane To run your unit tests or UI tests using fastlane, add the following to your Fastfile lane :tests do run_tests(scheme: \"MyAppTests\") end Additionally you can specify more options for building and testing your app, for example lane :tests do run_tests(workspace: \"Example.xcworkspace\", devices: [\"iPhone 6s\", \"iPad Air\"], scheme: \"MyAppTests\") end Check out the list of all available parameters To use the newly created lane, just run fastlane tests Setting up fastlane to run on CI To run iOS tests using fastlane on a Continuous Integration service, check out the Continuous Integration docs . Since fastlane stores all configuration in simple configuration files, and runs via the command line, it supports every kind of CI system. We also prepared some docs to help you get started with some of the popular CI systems. Self-Hosted CIs Jenkins Bamboo GitLab Hosted CIs Circle Travis Visual Studio If your CI system isn't listed here, no problem, fastlane runs on any CI. To trigger fastlane , just add the command you would usually run from your terminal: fastlane tests Setting up the environment Support for Two-step or Two-factor auth Environment variables to set Posting build results If you want to post test results on Slack, Hipchat or other team chat client, check out the available fastlane actions . Build failures Slack If you're using Slack, this is already built-into the default run_tests action, just provide your Slack URL: lane :tests do run_tests(scheme: \"MyAppTests\", slack_url: \"https://hooks.slack.com/services/T03N...\", slack_channel: \"#channel\") end To get the slack_url , create an Incoming WebHook for your Slack group. Other services To post a message when fastlane encounters a test or build failure, add the following to your Fastfile : error do |ex| hipchat(message: \"Tests have failed!\", channel: \"Room or @username\", success: false) end The above example uses Hipchat, but fastlane supports many other services out there .","title":"Running Tests"},{"location":"getting-started/ios/running-tests/#running-ios-tests-using-fastlane","text":"To run your unit tests or UI tests using fastlane, add the following to your Fastfile lane :tests do run_tests(scheme: \"MyAppTests\") end Additionally you can specify more options for building and testing your app, for example lane :tests do run_tests(workspace: \"Example.xcworkspace\", devices: [\"iPhone 6s\", \"iPad Air\"], scheme: \"MyAppTests\") end Check out the list of all available parameters To use the newly created lane, just run fastlane tests","title":"Running iOS tests using fastlane"},{"location":"getting-started/ios/screenshots/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 screenshots for iOS and tvOS Your App Store screenshots are probably the most important thing when it comes to convincing potential users to download or purchase your app. Unfortunately, many apps don't do screenshots well. This is often because taking screenshots of your app and then preparing them for display is time consuming, and it's hard to get everything right and consistent! For example: Are the screenshots in the App Store inconsistent with your latest app design? Is your app localized into many languages that require different screenshots for each? Have you made sure that no loading indicators are showing? Is the same content displayed for each of your size variations? fastlane tools can automate this process making it fast, and consistent while giving you beautiful results! Alternatives For the full story about the many ways that developers can capture and beautify screenshots check out this article . Manually Capturing Screenshots Manually taking screenshots takes too much time, which also decreases the quality of the screenshots. Since it is not automated, the screenshots will show slightly different content on the various devices and languages. Many companies choose to create screenshots in one language and use them for all languages. While this might seem okay to us developers, there are many potential users out there that cannot read the text on your app screenshots if they are not localised. Have you ever looked at a screenshot with content in a language you don't know? It won't convince you to download the app. However, the biggest disadvantage of this method is what happens when you need to repeat the process. If you notice a spelling mistake in the screenshots, if you release an update with a new design, or if you just want to show more up to date content, you'll have to create new screenshots for all languages and devices... manually. The positive side of this approach is that your screenshots will all be crisp and correctly sized, with readable text. Scaled Screenshots via App Store Connect App Store Connect allows you to use one set of screenshots per device type, which will then be scaled to the appropriate size when viewed in the App Store on a user's device. While this is convenient, this approach has the same problems as the device frame approach: The screenshots don't actually show how the app looks on the user's device. It's a valid way to start though, since you can gradually overwrite screenshots for specific languages and devices. Capture Screenshots Automatically snapshot works with fastlane to automate the process of capturing screenshots of your app. It allows you to: Capture hundreds of screenshots in multiple languages on all simulators Take screenshots in multiple device simulators concurrently to cut down execution time Do something else while the computer takes the screenshots for you Configure it once, and store the configuration so anyone on the team can run it Generate a beautiful web page showing all screenshots on all devices. This is perfect to send to Q&A, marketing, or translators for verification Avoid having loading indicators in your App Store screenshots by intelligently waiting for network requests to be finished Get a summary of how your app looks like across all supported devices and languages After snapshot successfully captures all the screenshots, it will show you a beautiful HTML page to summarize all the screens that were captured: Getting Started Using UI Tests snapshot uses the capabilities of Apple's UI Tests to drive interactions with your app. To get familiar with writing UI Tests, check out the following introductions: WWDC 2015 Introduction to UI Tests A first look into UI Tests UI Testing in Xcode 7 HSTestingBackchannel : \u2018Cheat\u2019 by communicating directly with your app Automating App Store screenshots using fastlane snapshot and frameit To jump-start your UI tests, you can use the UI Test recorder, which you can start by clicking the red record button on the bottom of the window. By interacting with your app through the simulator while using it, Xcode will generate UI Test code for you. To learn more, check out this this blog post ! Setting Up snapshot Create a new UI Test target in your Xcode project (See the top part of this article ) Run fastlane snapshot init in your project folder Add the ./SnapshotHelper.swift file to your UI Test target (You can move the file anywhere you want) Add a new Xcode scheme for the newly created UI Test target Edit the scheme In the list on the left click \"Build\", and enable the checkbox under the \"Run\" column for your target. Enable the Shared box of the newly created scheme (Objective C only) Add the bridging header to your test class. #import \"MYUITests-Swift.h\" The bridging header is named after your test target with -Swift.h appended. In your UI Test class, click the Record button on the bottom left and record your interaction To take a screenshot, call the following between interactions Swift: snapshot(\"01LoginScreen\") Objective C: [Snapshot snapshot:@\"01LoginScreen\" timeWaitingForIdle:10]; Add the following code to your setUp() method: Swift: let app = XCUIApplication() setupSnapshot(app) app.launch() Objective C: XCUIApplication *app = [[XCUIApplication alloc] init]; [Snapshot setupSnapshot:app waitForAnimations:NO]; [app launch]; 12. In the terminal run fastlane snapshot . WARNING: Running the test in Xcode does not create the snapshots and will not generate the correct results - although no tests will fail. The command line program creates the necessary subdirectories, renames the files as appropriate, and generates the overview html page. The setup process will also generate a Snapfile , looking similar to # A list of devices you want to take the screenshots from # devices([ # \"iPad (7th generation)\", # \"iPad Air (3rd generation)\", # \"iPad Pro (11-inch)\", # \"iPad Pro (12.9-inch) (3rd generation)\", # \"iPad Pro (9.7-inch)\", # \"iPhone 11\", # \"iPhone 11 Pro\", # \"iPhone 11 Pro Max\", # \"iPhone 8\", # \"iPhone 8 Plus\" # ]) languages([ \"en-US\", \"de-DE\" ]) # The name of the scheme which contains the UI Tests # scheme \"SchemeName\" # Where should the resulting screenshots be stored? # output_directory \"./screenshots\" # clear_previous_screenshots true # remove the '#' to clear all previously generated screenshots before creating new ones # Choose which project/workspace to use # project \"./Project.xcodeproj\" # workspace \"./Project.xcworkspace\" # For more information about all available options run # fastlane action snapshot You can adapt this file to fit your project. Every time you run fastlane snapshot the file will be loaded automatically. For a list of all available parameters that can be used in the Snapfile run fastlane action snapshot . If you have fastlane installed, it's easy to give snapshot a try. First clone the fastlane repo, head over to the snapshot example project, and then run fastlane snapshot git clone https://github.com/fastlane/fastlane # Clone the fastlane repo cd fastlane/snapshot/example # Navigate to the example project fastlane snapshot # Generate screenshots for the sample app Upload Screenshots to the App Store After generating your screenshots using fastlane snapshot , you usually want to upload them to App Store Connect. If you followed the setup guide, you already ran fastlane init before, so you should have your existing screenshots and metadata inside the fastlane/screenshots and fastlane/metadata directory. Running fastlane snapshot will store the screenshots in the fastlane/screenshots directory by default. To upload the screenshots stored in fastlane/screenshots , just run fastlane deliver This will also show you a metadata summary, before actually uploading the screenshots, as this will overwrite the metadata and screenshots you already have on App Store Connect. Use in Fastfile To put all of this together so that anyone on your team could trigger generating and uploading new screenshots, you can define a fastlane lane called screenshots . It would be responsible for: Running your app through snapshot to automatically capture your screenshots Having deliver send your final screenshots to App Store Connect for use in the App Store Add the following code to your fastlane/Fastfile : lane :screenshots do capture_screenshots upload_to_app_store end To get a list of all available options for each of the steps, run fastlane action capture_screenshots fastlane action upload_to_app_store Put Your Screenshots Into Device Frames frameit helps you beautify your screenshots with device frames and text by running one simple command. It provides support for: Multiple device types Portrait and landscape orientations Black and silver devices Setting a background color and decorating the image with text Usage To automatically add device frames around all screenshots in the current directory and its subdirectories, just run: fastlane frameit This will only add a device frame around the screenshots, not the background and title. Those images can be used for your website, email newsletter and similar. If you want to implement the custom titles and background, you'll have to setup a Framefile.json , more information can be found here . If you want to upload the screenshots to the App Store, you have to provide a Framefile.json , with titles and background, otherwise the resolution of the framed screenshots doesn't match the requirements of App Store Connect. Dependencies Installing ImageMagick To perform image manipulation, frameit depends on a tool called imagemagick . The easiest way to install it is through homebrew : brew install libpng jpeg imagemagick Troubleshooting ImageMagick If you have installed imagemagick but are seeing error messages like: mogrify: no decode delegate for this image format `PNG' You may need to reinstall and build from source. Run: brew uninstall imagemagick; brew install libpng jpeg; brew install imagemagick --build-from-source Setting Up Device Frames To download the latest device frames, you can run fastlane frameit setup This usually happens automatically when you use frameit for the first time on a new machine To add the framing to your deployment process, use the following code in your Fastfile : lane :screenshots do capture_screenshots frame_screenshots(white: true) upload_to_app_store end To get a list of all available options for frame_screenshots (which calls into frameit ) fastlane action frame_screenshots Advanced snapshot Sample uses lane :screenshots do capture_screenshots end Your screenshots will be stored in the ./screenshots/ folder by default (or ./fastlane/screenshots if you're using fastlane ) If any error occurs while running the snapshot script on a device, that device will not have any screenshots, and snapshot will continue with the next device or language. To stop the flow after the first error, run capture_screenshots(stop_after_first_error: true) Also by default, snapshot will open the HTML after all is done. This can be skipped with the following command capture_screenshots(skip_open_summary: true) There are a lot of options available that define how to build your app, for example capture_screenshots(scheme: \"UITests\", configuration: \"Release\", sdk: \"iphonesimulator\") Reinstall the app before running snapshot capture_screenshots(reinstall_app: true, app_identifier: \"tools.fastlane.app\") By default snapshot automatically retries running UI Tests if they fail. This is due to randomly failing UI Tests (e.g. #372 ). You can adapt this number using capture_screenshots(number_of_retries: 3) Add photos and/or videos to the simulator before running snapshot capture_screenshots(add_photos: \"MyTestApp/demo.jpg\", add_videos: \"MyTestApp/demo.mp4\") For a list for all available options run fastlane action capture_screenshots Reset Xcode simulators You can run this command in the terminal to delete and re-create all iOS simulators. This is useful when Xcode duplicated your local simulators. fastlane snapshot reset_simulators Launch Arguments You can provide additional arguments to your app on launch. These strings will be available in your app (eg. not in the testing target) through ProcessInfo.processInfo.arguments . Alternatively, use user-default syntax ( -key value ) and they will be available as key-value pairs in UserDefaults.standard . launch_arguments([ \"-firstName Felix -lastName Krause\" ]) name.text = UserDefaults.standard.string(forKey: \"firstName\") // name.text = \"Felix\" snapshot includes -FASTLANE_SNAPSHOT YES , which will set a temporary user default for the key FASTLANE_SNAPSHOT , you may use this to detect when the app is run by snapshot . if UserDefaults.standard.bool(forKey: \"FASTLANE_SNAPSHOT\") { // runtime check that we are in snapshot mode } Specify multiple argument strings and snapshot will generate screenshots for each combination of arguments, devices, and languages. This is useful for comparing the same screenshots with different feature flags, dynamic text sizes, and different data sets. # Snapfile for A/B Test Comparison launch_arguments([ \"-secretFeatureEnabled YES\", \"-secretFeatureEnabled NO\" ]) Update snapshot helpers Some updates require the helper files to be updated. snapshot will automatically warn you and tell you how to update. Basically you can run fastlane snapshot update to update your SnapshotHelper.swift files. In case you modified your SnapshotHelper.swift and want to manually update the file, check out SnapshotHelper.swift . Clean status bar To clean the status bar (9:41, full battery and full signal), use the override_status_bar parameter . How does snapshot work? The easiest solution would be to just render the UIWindow into a file. That's not possible because UI Tests don't run on a main thread. So snapshot uses a different approach: When you run unit tests in Xcode, the reporter generates a plist file, documenting all events that occurred during the tests ( More Information ). Additionally, Xcode generates screenshots before, during and after each of these events. There is no way to manually trigger a screenshot event. The screenshots and the plist files are stored in the DerivedData directory, which snapshot stores in a temporary folder. When the user calls snapshot(...) in the UI Tests (Swift or Objective C) the script actually does a rotation to .Unknown which doesn't have any effect on the actual app, but is enough to trigger a screenshot. It has no effect to the application and is not something you would do in your tests. The goal was to find some event that a user would never trigger, so that we know it's from snapshot . On tvOS, there is no orientation so we ask for a count of app views with type \"Browser\" (which should never exist on tvOS). snapshot then iterates through all test events and check where we either did this weird rotation (on iOS) or searched for browsers (on tvOS). Once snapshot has all events triggered by snapshot it collects a ordered list of all the file names of the actual screenshots of the application. In the test output, the Swift snapshot function will print out something like this snapshot: [some random text here] snapshot finds all these entries using a regex. The number of snapshot outputs in the terminal and the number of snapshot events in the plist file should be the same. Knowing that, snapshot automatically matches these 2 lists to identify the name of each of these screenshots. They are then copied over to the output directory and separated by language and device. Two things have to be passed on from snapshot to the xcodebuild command line tool: The device type is passed via the destination parameter of the xcodebuild parameter The language is passed via a temporary file which is written by snapshot before running the tests and read by the UI Tests when launching the application If you find a better way to do any of this, please submit an issue on GitHub or even a pull request :+1: Also, feel free to duplicate radar 23062925 .","title":"Screenshots"},{"location":"getting-started/ios/screenshots/#fastlane-screenshots-for-ios-and-tvos","text":"Your App Store screenshots are probably the most important thing when it comes to convincing potential users to download or purchase your app. Unfortunately, many apps don't do screenshots well. This is often because taking screenshots of your app and then preparing them for display is time consuming, and it's hard to get everything right and consistent! For example: Are the screenshots in the App Store inconsistent with your latest app design? Is your app localized into many languages that require different screenshots for each? Have you made sure that no loading indicators are showing? Is the same content displayed for each of your size variations? fastlane tools can automate this process making it fast, and consistent while giving you beautiful results!","title":"fastlane screenshots for iOS and tvOS"},{"location":"getting-started/ios/screenshots/#capture-screenshots-automatically","text":"snapshot works with fastlane to automate the process of capturing screenshots of your app. It allows you to: Capture hundreds of screenshots in multiple languages on all simulators Take screenshots in multiple device simulators concurrently to cut down execution time Do something else while the computer takes the screenshots for you Configure it once, and store the configuration so anyone on the team can run it Generate a beautiful web page showing all screenshots on all devices. This is perfect to send to Q&A, marketing, or translators for verification Avoid having loading indicators in your App Store screenshots by intelligently waiting for network requests to be finished Get a summary of how your app looks like across all supported devices and languages After snapshot successfully captures all the screenshots, it will show you a beautiful HTML page to summarize all the screens that were captured:","title":"Capture Screenshots Automatically"},{"location":"getting-started/ios/screenshots/#upload-screenshots-to-the-app-store","text":"After generating your screenshots using fastlane snapshot , you usually want to upload them to App Store Connect. If you followed the setup guide, you already ran fastlane init before, so you should have your existing screenshots and metadata inside the fastlane/screenshots and fastlane/metadata directory. Running fastlane snapshot will store the screenshots in the fastlane/screenshots directory by default. To upload the screenshots stored in fastlane/screenshots , just run fastlane deliver This will also show you a metadata summary, before actually uploading the screenshots, as this will overwrite the metadata and screenshots you already have on App Store Connect.","title":"Upload Screenshots to the App Store"},{"location":"getting-started/ios/screenshots/#use-in-fastfile","text":"To put all of this together so that anyone on your team could trigger generating and uploading new screenshots, you can define a fastlane lane called screenshots . It would be responsible for: Running your app through snapshot to automatically capture your screenshots Having deliver send your final screenshots to App Store Connect for use in the App Store Add the following code to your fastlane/Fastfile : lane :screenshots do capture_screenshots upload_to_app_store end To get a list of all available options for each of the steps, run fastlane action capture_screenshots fastlane action upload_to_app_store","title":"Use in Fastfile"},{"location":"getting-started/ios/screenshots/#put-your-screenshots-into-device-frames","text":"frameit helps you beautify your screenshots with device frames and text by running one simple command. It provides support for: Multiple device types Portrait and landscape orientations Black and silver devices Setting a background color and decorating the image with text","title":"Put Your Screenshots Into Device Frames"},{"location":"getting-started/ios/screenshots/#advanced-snapshot","text":"Sample uses lane :screenshots do capture_screenshots end Your screenshots will be stored in the ./screenshots/ folder by default (or ./fastlane/screenshots if you're using fastlane ) If any error occurs while running the snapshot script on a device, that device will not have any screenshots, and snapshot will continue with the next device or language. To stop the flow after the first error, run capture_screenshots(stop_after_first_error: true) Also by default, snapshot will open the HTML after all is done. This can be skipped with the following command capture_screenshots(skip_open_summary: true) There are a lot of options available that define how to build your app, for example capture_screenshots(scheme: \"UITests\", configuration: \"Release\", sdk: \"iphonesimulator\") Reinstall the app before running snapshot capture_screenshots(reinstall_app: true, app_identifier: \"tools.fastlane.app\") By default snapshot automatically retries running UI Tests if they fail. This is due to randomly failing UI Tests (e.g. #372 ). You can adapt this number using capture_screenshots(number_of_retries: 3) Add photos and/or videos to the simulator before running snapshot capture_screenshots(add_photos: \"MyTestApp/demo.jpg\", add_videos: \"MyTestApp/demo.mp4\") For a list for all available options run fastlane action capture_screenshots Reset Xcode simulators You can run this command in the terminal to delete and re-create all iOS simulators. This is useful when Xcode duplicated your local simulators. fastlane snapshot reset_simulators Launch Arguments You can provide additional arguments to your app on launch. These strings will be available in your app (eg. not in the testing target) through ProcessInfo.processInfo.arguments . Alternatively, use user-default syntax ( -key value ) and they will be available as key-value pairs in UserDefaults.standard . launch_arguments([ \"-firstName Felix -lastName Krause\" ]) name.text = UserDefaults.standard.string(forKey: \"firstName\") // name.text = \"Felix\" snapshot includes -FASTLANE_SNAPSHOT YES , which will set a temporary user default for the key FASTLANE_SNAPSHOT , you may use this to detect when the app is run by snapshot . if UserDefaults.standard.bool(forKey: \"FASTLANE_SNAPSHOT\") { // runtime check that we are in snapshot mode } Specify multiple argument strings and snapshot will generate screenshots for each combination of arguments, devices, and languages. This is useful for comparing the same screenshots with different feature flags, dynamic text sizes, and different data sets. # Snapfile for A/B Test Comparison launch_arguments([ \"-secretFeatureEnabled YES\", \"-secretFeatureEnabled NO\" ]) Update snapshot helpers Some updates require the helper files to be updated. snapshot will automatically warn you and tell you how to update. Basically you can run fastlane snapshot update to update your SnapshotHelper.swift files. In case you modified your SnapshotHelper.swift and want to manually update the file, check out SnapshotHelper.swift . Clean status bar To clean the status bar (9:41, full battery and full signal), use the override_status_bar parameter . How does snapshot work? The easiest solution would be to just render the UIWindow into a file. That's not possible because UI Tests don't run on a main thread. So snapshot uses a different approach: When you run unit tests in Xcode, the reporter generates a plist file, documenting all events that occurred during the tests ( More Information ). Additionally, Xcode generates screenshots before, during and after each of these events. There is no way to manually trigger a screenshot event. The screenshots and the plist files are stored in the DerivedData directory, which snapshot stores in a temporary folder. When the user calls snapshot(...) in the UI Tests (Swift or Objective C) the script actually does a rotation to .Unknown which doesn't have any effect on the actual app, but is enough to trigger a screenshot. It has no effect to the application and is not something you would do in your tests. The goal was to find some event that a user would never trigger, so that we know it's from snapshot . On tvOS, there is no orientation so we ask for a count of app views with type \"Browser\" (which should never exist on tvOS). snapshot then iterates through all test events and check where we either did this weird rotation (on iOS) or searched for browsers (on tvOS). Once snapshot has all events triggered by snapshot it collects a ordered list of all the file names of the actual screenshots of the application. In the test output, the Swift snapshot function will print out something like this snapshot: [some random text here] snapshot finds all these entries using a regex. The number of snapshot outputs in the terminal and the number of snapshot events in the plist file should be the same. Knowing that, snapshot automatically matches these 2 lists to identify the name of each of these screenshots. They are then copied over to the output directory and separated by language and device. Two things have to be passed on from snapshot to the xcodebuild command line tool: The device type is passed via the destination parameter of the xcodebuild parameter The language is passed via a temporary file which is written by snapshot before running the tests and read by the UI Tests when launching the application If you find a better way to do any of this, please submit an issue on GitHub or even a pull request :+1: Also, feel free to duplicate radar 23062925 .","title":"Advanced snapshot"},{"location":"getting-started/ios/setup/","text":"Getting started with fastlane for iOS Setup Xcode for fastlane Xcode command line tools (macOS) xcode-select --install Installing fastlane fastlane can be installed in multiple ways. The preferred method is with Bundler . fastlane can also be installed directly through Homebrew (if on macOS). It is possible to use macOS's system Ruby, but it's not recommended, as it can be hard to manage dependencies and cause conflicts. Managed Ruby environment + Bundler (macOS/Linux/Windows) Ruby If you use macOS, system Ruby is not recommended. There are a variety of ways to install Ruby without having to modify your system environment . For macOS and Linux, rbenv is one of the most popular ways to manage your Ruby environment. fastlane supports Ruby versions 2.5 or newer. Verify which Ruby version you're using: $ ruby --version ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-darwin19] Bundler It is recommended that you use Bundler and Gemfile to define your dependency on fastlane . This will clearly define the fastlane version to be used and its dependencies, and will also speed up fastlane execution. Install Bundler by running gem install bundler Create a ./Gemfile in the root directory of your project with the content source \"https://rubygems.org\" gem \"fastlane\" Run bundle update and add both the ./Gemfile and the ./Gemfile.lock to version control Every time you run fastlane , use bundle exec fastlane [lane] On your CI, add bundle install as your first build step To update fastlane , just run bundle update fastlane Homebrew (macOS) This way, you don't have to install Ruby separately, and instead homebrew installs the adequate Ruby version for fastlane . See this page for details. brew install fastlane System Ruby + RubyGems (macOS/Linux/Windows) This is not recommended for your local environment, but you can still install fastlane to system Ruby's environment. Using sudo often occurs unwanted results later due to file permission and makes managing your environment harder. sudo gem install fastlane Setting up fastlane Navigate your terminal to your project's directory and run fastlane init Note that if you want to create your first app on your App Store Connect account, you need to set the developer name ( company_name ) with PRODUCE_COMPANY_NAME environment variable: PRODUCE_COMPANY_NAME=\"YOUR COMPANY NAME\" fastlane init To get more information check company_name description in the Create app documentation . To have your Fastfile configuration written in Swift (Beta) fastlane init swift Swift setup is still in beta. See Fastlane.swift docs for more information. Depending on what kind of setup you choose, different files will be set up for you. If you chose to download the existing app metadata, you'll end up with new folders that look like this: The most interesting file is fastlane/Fastfile , which contains all the information that is needed to distribute your app. What's next? fastlane created all the required files for you. Now you can go ahead and customise fastlane to generate screenshots, or automatically distribute new builds, and much, much more. Here're some examples: Generate localized iOS screenshots for the App Store Automatic iOS Beta deployment Automatic iOS App Store deployment Discover all fastlane actions Do note that if the automation you're building requires connectivity with Apple's servers, such as for code signing when building your app, or uploading your app to the App Store Connect, and so on, you will need to authenticate. Check out Authenticating with Apple services to learn the best ways to authenticate, catered for your specific use case. Set up environment variables fastlane requires some environment variables set up to run correctly. In particular, having your locale not set to a UTF-8 locale will cause issues with building and uploading your build. In your shell profile add the following lines: export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8 You can find your shell profile at ~/.bashrc , ~/.bash_profile , ~/.profile or ~/.zshrc depending on your system. Use a Gemfile It is recommended that you use a Gemfile to define your dependency on fastlane . This will clearly define the used fastlane version, and its dependencies, and will also speed up using fastlane . Create a ./Gemfile in the root directory of your project with the content source \"https://rubygems.org\" gem \"fastlane\" Run [sudo] bundle update and add both the ./Gemfile and the ./Gemfile.lock to version control Every time you run fastlane , use bundle exec fastlane [lane] On your CI, add [sudo] bundle install as your first build step To update fastlane , just run [sudo] bundle update fastlane","title":"Setup"},{"location":"getting-started/ios/setup/#getting-started-with-fastlane-for-ios","text":"","title":"Getting started with fastlane for iOS"},{"location":"includes/google-credentials/","text":"Tip: If you see Google Play Console or Google Developer Console in your local language, add &hl=en at the end of the URL (before any #... ) to switch to English. All the links below already have this to make it easier to find the correct buttons. Note: if you face issues when following these instructions, you might want to refer to the official documentation by Google . Open the Google Play Console Click Account Details , and note the Developer Account ID listed there Enable the Google Play Developer API by selecting an existing Google Cloud Project that fits your needs and pushing ENABLE If you don't have an existing project or prefer to have a dedicated one for fastlane , create a new one here and follow the instructions Open Service Accounts on Google Cloud and select the project you'd like to use Click the CREATE SERVICE ACCOUNT button at the top of the Google Cloud Platform Console page Verify that you are on the correct Google Cloud Platform Project by looking for the Developer Account ID from earlier within the light gray text in the second input, preceding .iam.gserviceaccount.com , or by checking the project name in the navigaton bar. If not, open the picker in the top navigation bar, and find the right one. Provide a Service account name (e.g. fastlane-supply) Copy the generated email address that is noted below the Service account-ID field for later use Click DONE (don't click CREATE AND CONTINUE as the optional steps such as granting access are not needed): Click on the Actions vertical three-dot icon of the service account you just created Select Manage keys on the menu Click ADD KEY \u2192 Create New Key Make sure JSON is selected as the Key type , and click CREATE Save the file on your computer when prompted and remember where it was saved at Open the Google Play Console and select Users and Permissions Click Invite new users Paste the email address you saved for later use into the email address field Click on Account Permissions Choose the permissions you'd like this account to have. We recommend Admin (all permissions) , but you may want to manually select all checkboxes and leave out some of the Releases permissions such as Release to production, exclude devices, and use Play App Signing Click on Invite User You can use fastlane run validate_play_store_json_key json_key:/path/to/your/downloaded/file.json to test the connection to Google Play Store with the downloaded private key. Once that works, add the path to the JSON file to your Appfile : json_key_file(\"path/to/your/play-store-credentials.json\") package_name(\"my.package.name\") The path is relative to where you normally run fastlane .","title":"Google credentials"},{"location":"includes/installing-fastlane-ios/","text":"Xcode command line tools (macOS) xcode-select --install","title":"Installing fastlane ios"},{"location":"includes/installing-fastlane/","text":"fastlane can be installed in multiple ways. The preferred method is with Bundler . fastlane can also be installed directly through Homebrew (if on macOS). It is possible to use macOS's system Ruby, but it's not recommended, as it can be hard to manage dependencies and cause conflicts. Managed Ruby environment + Bundler (macOS/Linux/Windows) Ruby If you use macOS, system Ruby is not recommended. There are a variety of ways to install Ruby without having to modify your system environment . For macOS and Linux, rbenv is one of the most popular ways to manage your Ruby environment. fastlane supports Ruby versions 2.5 or newer. Verify which Ruby version you're using: $ ruby --version ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-darwin19] Bundler It is recommended that you use Bundler and Gemfile to define your dependency on fastlane . This will clearly define the fastlane version to be used and its dependencies, and will also speed up fastlane execution. Install Bundler by running gem install bundler Create a ./Gemfile in the root directory of your project with the content source \"https://rubygems.org\" gem \"fastlane\" Run bundle update and add both the ./Gemfile and the ./Gemfile.lock to version control Every time you run fastlane , use bundle exec fastlane [lane] On your CI, add bundle install as your first build step To update fastlane , just run bundle update fastlane Homebrew (macOS) This way, you don't have to install Ruby separately, and instead homebrew installs the adequate Ruby version for fastlane . See this page for details. brew install fastlane System Ruby + RubyGems (macOS/Linux/Windows) This is not recommended for your local environment, but you can still install fastlane to system Ruby's environment. Using sudo often occurs unwanted results later due to file permission and makes managing your environment harder. sudo gem install fastlane","title":"Installing fastlane"},{"location":"includes/setup-fastlane-header/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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","title":"Setup fastlane header"},{"location":"plugins/available-plugins/","text":".fastlane-setup { border-left: .4rem solid #00b0ff; border-bottom: .1rem solid rgba(0,176,255,.1); background-color: rgba(0,176,255,.1); padding: 15px; margin-bottom: 20px; font-weight: 200; } .fastlane-setup-wrapper { background-color: rgba(0,176,255,.05); } .fastlane-setup-wrapper[open] { padding-bottom: 1px; } .fastlane-setup-header { font-size: 20px; font-weight: 500; } .fastlane-setup-more-details { font-size: 18px; font-weight: 350; } 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 Available Plugins 24830 appcenter via Microsoft Corporation Fastlane plugin for App Center Provided actions Name Category Description appcenter_fetch_version_number - Fetches the latest version number of an app or the last build number of a version from App Center appcenter_fetch_devices - Fetches a list of devices from App Center to distribute an iOS app to appcenter_upload - Distribute new release to App Center Score details Metric Points Description contributors 246 The more contributors a project has, the more likely it is it stays alive subscribers 51 More subscribers = more popular project stars 404 More stars = more popular project forks 515 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -49 Lots of open issues are not a good sign usually, unless the project is really popular downloads 23457 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 23982 firebase_app_distribution via Stefan Natchev, Manny Jimenez, Alonso Salas Infante Release your beta builds to Firebase App Distribution. https://firebase.google.com/docs/app-distribution Provided actions Name Category Description firebase_app_distribution_login - Authenticate with Firebase App Distribution using a Google account. firebase_app_distribution_add_testers - Create testers in bulk from a comma-separated list or a file firebase_app_distribution_get_udids - Download the UDIDs of your Firebase App Distribution testers firebase_app_distribution - Release your beta builds with Firebase App Distribution firebase_app_distribution_remove_testers - Delete testers in bulk from a comma-separated list or a file Score details Metric Points Description contributors 84 The more contributors a project has, the more likely it is it stays alive subscribers 36 More subscribers = more popular project stars 97 More stars = more popular project forks 60 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -13 Lots of open issues are not a good sign usually, unless the project is really popular downloads 23556 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 12769 badge via Daniel Griesser Add a badge overlay to your app icon Provided actions Name Category Description add_badge - Automatically add a badge to your app icon Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 175 More stars = more popular project forks 75 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12374 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 12537 versioning via Siarhei Fiedartsou, John Douglas Allows to set/get app version and build number directly to/from Info.plist Provided actions Name Category Description get_version_number_from_git_branch - Extract version number from git branch name increment_build_number_in_xcodeproj - Increment build number in xcodeproj get_version_number_from_plist - Get the version number of your project get_build_number_from_plist - Get the build number of your project ci_build_number building Detects current build number defined by CI system get_version_number_from_xcodeproj - Get the version number of your project increment_version_number_in_xcodeproj - Increment build number in xcodeproj increment_version_number_in_plist - Increment the version number of your project get_app_store_version_number - Get the version number of your app in the App Store get_info_plist_path - Get the version number of your project get_build_number_from_xcodeproj - Get the build number of your project increment_build_number_in_plist - Increment the build number of your project Score details Metric Points Description contributors 90 The more contributors a project has, the more likely it is it stays alive subscribers 18 More subscribers = more popular project stars 381 More stars = more popular project forks 220 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -8 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11655 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 7280 sentry via Sentry Upload symbols to Sentry Provided actions Name Category Description sentry_upload_dsym - Upload dSYM symbolication files to Sentry sentry_set_commits - Set commits of a release sentry_upload_sourcemap - Upload a sourcemap to a release of a project on Sentry sentry_finalize_release - Finalize a release for a project on Sentry sentry_upload_file - Upload files to a release of a project on Sentry sentry_create_deploy - Creates a new release deployment for a project on Sentry sentry_upload_proguard - Upload mapping to a project on Sentry sentry_create_release - Create new releases for a project on Sentry sentry_check_cli_installed - Checks that sentry-cli with the correct version is installed sentry_upload_dif - Upload debugging information files. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 51 More subscribers = more popular project stars 85 More stars = more popular project forks 210 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -17 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6740 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 6980 bugsnag via Delisa Mason Uploads dSYM files to Bugsnag Provided actions Name Category Description upload_symbols_to_bugsnag - Uploads dSYM debug symbol files to Bugsnag send_build_to_bugsnag building Notifies Bugsnag of a build dsym_magic - Sets the dsym path Score details Metric Points Description contributors 96 The more contributors a project has, the more likely it is it stays alive subscribers 63 More subscribers = more popular project stars 30 More stars = more popular project forks 40 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6625 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 6625 aws_s3 via Josh Holtz Upload IPA and APK to S3 Provided actions Name Category Description aws_s3 - Generates a plist file and uploads all to AWS S3 Score details Metric Points Description contributors 150 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 118 More stars = more popular project forks 275 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -17 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5944 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 6513 test_center via Lyndsey Ferguson \ud83c\udfaf Understand, tame, and train your iOS & Mac tests \ud83c\udf89 Provided actions Name Category Description suppressed_tests testing \ud83d\udddc Retrieves a list of tests that are suppressed in a specific or all Xcode Schemes in a project suppress_tests testing \ud83d\udddc Suppresses specific tests in a specific or all Xcode Schemes in a given project tests_from_xcresult testing \u2611\ufe0f Retrieves the failing, passing, and skipped tests as reported in a xcresult bundle suppress_tests_from_junit testing \ud83d\udddc Uses a junit xml report file to suppress either passing or failing tests in an Xcode Scheme tests_from_xctestrun testing \ufe0f\ufe0f\u2611\ufe0f Retrieves all of the tests from xctest bundles referenced by the xctestrun file quit_core_simulator_service testing \ud83d\udcf2 Force-quits the com.apple.CoreSimulator.CoreSimulatorService to fix mysterious iOS Simulator issues. collate_test_result_bundles testing \ud83d\udd38 Combines multiple test_result bundles into one test_result bundle tests_from_junit testing \u2611\ufe0f Retrieves the failing and passing tests as reported in a junit xml file multi_scan testing \u267b\ufe0f Uses scan to run Xcode tests a given number of times, with the option of batching and/or parallelizing them, only re-testing failing tests. test_options_from_testplan testing \u2611\ufe0f Gets test info from a given test plan collate_html_reports testing \ud83d\udd36 Combines multiple html report files into one html report file collate_junit_reports testing \ud83d\udd37 Combines multiple junit report files into one junit report file collate_json_reports testing \ud83d\udd39 Combines multiple json report files into one json report file testplans_from_scheme testing \u2611\ufe0fGets all the testplans that a Scheme references collate_xcresults - \ud83d\udd38 Combines multiple xcresult bundles into one xcresult bundle Score details Metric Points Description contributors 66 The more contributors a project has, the more likely it is it stays alive subscribers 33 More subscribers = more popular project stars 208 More stars = more popular project forks 195 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -14 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5822 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 6086 increment_version_code via Jems Increment the version code of your android project. Provided actions Name Category Description increment_version_code - Increment the version code of your android project. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 40 More stars = more popular project forks 35 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5916 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 5789 trainer via KrauseFx Convert xcodebuild plist files to JUnit reports Provided actions Name Category Description trainer - Convert the Xcode plist log to a JUnit report. This will raise an exception if the tests failed Score details Metric Points Description contributors 42 The more contributors a project has, the more likely it is it stays alive subscribers 18 More subscribers = more popular project stars 132 More stars = more popular project forks 110 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -8 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5370 More downloads = more users have been using the plugin for a while tests 24 The more tests a plugin has, the better Open on GitHub 4025 versioning_android via Igor Lamos Android Versioning Plugin for Fastlane Provided actions Name Category Description android_get_version_name - Get the Version Name of your Android project android_set_version_code - Set the Version Code of your Android project android_set_version_name - Set the Version Name of your Android project android_get_version_code - Get the Version Code of your Android project Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3911 More downloads = more users have been using the plugin for a while tests 36 The more tests a plugin has, the better Open on GitHub 3595 changelog via Pavel Prochazka Automate changes to your project CHANGELOG.md Provided actions Name Category Description read_changelog - Reads content of a section from your project CHANGELOG.md file update_changelog - Updates content of a section of your project CHANGELOG.md file emojify_changelog - Emojifies the output of read_changelog action stamp_changelog - Stamps the [Unreleased] section with provided identifier in your project CHANGELOG.md file Score details Metric Points Description contributors 60 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 176 More stars = more popular project forks 225 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2952 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 3291 appicon via Boris Bu\u0308gling, Felix Krause Generate required icon sizes and iconset from a master application icon. Provided actions Name Category Description android_appicon - Generate required icon sizes from a master application icon appicon - Generate required icon sizes and iconset from a master application icon Score details Metric Points Description contributors 120 The more contributors a project has, the more likely it is it stays alive subscribers 27 More subscribers = more popular project stars 295 More stars = more popular project forks 205 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -19 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2562 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 2572 load_json via Felix Krause Loads a local JSON file and parses it Provided actions Name Category Description load_json - Loads a local JSON file and parses it Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2489 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 2420 get_version_name via Jems Get the version name of an Android project. Provided actions Name Category Description get_version_name - Get the version name of an Android project. This action will return the version name of your project according to the one set in your build.gradle file Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 4 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2313 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 2197 yarn via Josh Lesch Execute Yarn commands from your Fastfile Provided actions Name Category Description yarn - Execute Yarn commands from your Fastfile Score details Metric Points Description contributors 24 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 16 More stars = more popular project forks 30 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1972 More downloads = more users have been using the plugin for a while tests 21 The more tests a plugin has, the better Open on GitHub 2038 browserstack via BrowserStack Uploads IPA and APK files to BrowserStack for automation and manual testing. Provided actions Name Category Description upload_to_browserstack_app_automate - Uploads IPA and APK files to BrowserStack AppAutomate for running automated tests. upload_to_browserstack_app_live - Uploads IPA and APK files to BrowserStack AppLive for running manual tests. Score details Metric Points Description contributors 24 The more contributors a project has, the more likely it is it stays alive subscribers 27 More subscribers = more popular project stars 10 More stars = more popular project forks 35 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 19 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1804 More downloads = more users have been using the plugin for a while tests 51 The more tests a plugin has, the better Open on GitHub 2022 xcconfig via Sergii Ovcharenko Adds 2 actions to fastlane to read and update xcconfig files. Provided actions Name Category Description update_xcconfig_value - Updates value of a setting in xcconfig file. set_xcconfig_value - Sets the value of a setting in xcconfig file. get_xcconfig_value - Reads a value of a setting from xcconfig file. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 6 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1847 More downloads = more users have been using the plugin for a while tests 30 The more tests a plugin has, the better Open on GitHub 1804 get_version_code via Jems Get the version code of anAndroid project. This action will return the version code of your project according to the one set in your build.gradle file Provided actions Name Category Description get_version_code - Get the version code of an Android project. This action will return the version code of your project according to the one set in your build.gradle file Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1697 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 1779 android_versioning via Manabu OHTAKE Allows to set/get app version name and version code directly to/from build.gradle Provided actions Name Category Description get_value_from_build - - increment_version_code - Increment the version code of your project set_value_in_build - Set the value of your project get_version_name - Get the version name of your project increment_version_name - Increment the version name of your project get_version_code - Get the version code of your project Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 41 More stars = more popular project forks 60 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1531 More downloads = more users have been using the plugin for a while tests 66 The more tests a plugin has, the better Open on GitHub 1760 slack_upload via Dawid Cieslak Uploads specified file to Slack Provided actions Name Category Description slack_upload - Uploads given file to Slack Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 19 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1668 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 1633 rome via Fran\u00e7ois Benaiteau, Tommaso Piazza A cache tool for Carthage Provided actions Name Category Description rome - An S3 cache tool for Carthage Score details Metric Points Description contributors 30 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 14 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1466 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 1552 semantic_release via Jir\u030ci\u0301 Ota\u0301hal Automated version managment and generator of release notes. Provided actions Name Category Description conventional_changelog - Uses conventional commits. It groups commits by their types and generates release notes in markdown or slack format. analyze_commits - Finds a tag of last release and determinates version of next release Score details Metric Points Description contributors 36 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 108 More stars = more popular project forks 130 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1081 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 1532 dropbox via Dominik Kapusta Uploads files to Dropbox Provided actions Name Category Description dropbox - Uploads files to Dropbox Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 3 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1369 More downloads = more users have been using the plugin for a while tests 30 The more tests a plugin has, the better Open on GitHub 1453 aws_device_farm via Helmut Januschka Run UI Tests on AWS Devicefarm Provided actions Name Category Description aws_device_farm - Upload the application to the AWS device farm aws_device_farm_package - Packages .app from deriveddata to an aws-compatible ipa Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 80 More stars = more popular project forks 170 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -5 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1091 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 1384 bundletool via Martin Gonzalez Extracts a universal apk from an .aab file Provided actions Name Category Description bundletool - Extracts an universal apk from an .aab file Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 14 More stars = more popular project forks 20 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1207 More downloads = more users have been using the plugin for a while tests 12 The more tests a plugin has, the better Open on GitHub 1380 update_provisioning_profile_specifier via Jordan Bondo Update the provisioning profile in the Xcode Project file for a specified target Provided actions Name Category Description update_provisioning_profile_specifier - Update the provisioning profile in the Xcode Project file for a specified target Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 20 More stars = more popular project forks 30 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1216 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 1332 cordova via Almouro Build your Cordova app Provided actions Name Category Description cordova building Build your Cordova app Score details Metric Points Description contributors 78 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 108 More stars = more popular project forks 160 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -19 Lots of open issues are not a good sign usually, unless the project is really popular downloads 856 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 1313 xchtmlreport via Titouan Van Belle Plugin for XCHTMLReport Provided actions Name Category Description xchtmlreport - Xcode-like HTML report for Unit and UI Tests Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1219 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 1311 automated_test_emulator_run via Kamil Krzyk Starts n AVDs based on JSON file config. AVDs are created and configured according to user liking before instrumentation test process (started either via shell command or gradle) and killed/deleted after test process finishes. Provided actions Name Category Description automated_test_emulator_run - Starts AVD, based on AVD_setup.json file, before test launch and kills it after testing is done. Score details Metric Points Description contributors 30 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 75 More stars = more popular project forks 85 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -5 Lots of open issues are not a good sign usually, unless the project is really popular downloads 983 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 1225 increment_version_name via fierysolid Increment the version name of your android project. Provided actions Name Category Description increment_version_name project Increment the version name of your android project. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1143 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 1217 commit_android_version_bump via jems This Android plugins allow you to commit every modification done in your build.gradle file during the execution of a lane. In fast, it do the same as the commit_version_bump action, but for Android Provided actions Name Category Description commit_android_version_bump - This Android plugins allow you to commit every modification done in your build.gradle file during the execution of a lane. In fast, it do the same as the commit_version_bump action, but for Android Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 20 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1103 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 1205 update_android_strings via bang Update Android res strings.xml Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1185 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 1174 synx via Afonso Gra\u00e7a Organise your Xcode project folder to match your Xcode groups. Provided actions Name Category Description synx - Organise your Xcode project folder to match your Xcode groups. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 26 More stars = more popular project forks 20 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1043 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 1170 lizard via Moses Liao Run swift code complexity analytics using Lizard Provided actions Name Category Description lizard - Run lizard code cyclomatic complexity analysis. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 19 More stars = more popular project forks 55 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 882 More downloads = more users have been using the plugin for a while tests 72 The more tests a plugin has, the better Open on GitHub 1142 tpa via The Perfect App TPA gives you advanced user behaviour analytics, app distribution, crash analytics and more Provided actions Name Category Description upload_to_tpa beta Upload app builds to The Perfect App (tpa.io) upload_symbols_to_tpa misc Upload dsym files downloaded from App Store Connect directly to TPA Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 9 More stars = more popular project forks 35 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 876 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 1099 xcake via James Campbell Create your Xcode projects automatically using a stupid simple DSL. Provided actions Name Category Description xcake - Runs `xcake` for the project Score details Metric Points Description contributors 114 The more contributors a project has, the more likely it is it stays alive subscribers 48 More subscribers = more popular project stars 464 More stars = more popular project forks 190 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 35 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -5 Lots of open issues are not a good sign usually, unless the project is really popular downloads 103 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 1059 teams via Morten B\u00f8gh Send a success/error message to your Microsoft Teams channel Provided actions Name Category Description teams notifications Send a message to your Microsoft Teams channel via the webhook connector Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 6 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 943 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 990 brew via Michael Ruhl Run Homebrew/Linuxbrew command Provided actions Name Category Description brew - Run Homebrew/Linuxbrew command Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 36 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 847 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 951 update_xcodeproj via Fumiya Nakamura Update Xcode projects Provided actions Name Category Description update_xcodeproj - Update Xcode projects Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 6 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 778 More downloads = more users have been using the plugin for a while tests 12 The more tests a plugin has, the better Open on GitHub 941 firebase_test_lab via Shihua Zheng Test your app with Firebase Test Lab with ease using fastlane Provided actions Name Category Description firebase_test_lab_ios_xctest - Submit an iOS XCTest job to Firebase Test Lab Score details Metric Points Description contributors 42 The more contributors a project has, the more likely it is it stays alive subscribers 39 More subscribers = more popular project stars 54 More stars = more popular project forks 105 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -8 Lots of open issues are not a good sign usually, unless the project is really popular downloads 591 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 941 download_github_release_asset via Anton Domashnev This action downloads a GitHub release's asset using the GitHub API and puts it in a destination path.\\nIf the file has been previously downloaded, it will be overrided. Provided actions Name Category Description download_github_release_asset - Downloads a GitHub release's asset Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 795 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 875 run_tests_firebase_testlab via Bruno Correia Runs Android tests in Firebase Test Lab. Provided actions Name Category Description run_tests_firebase_testlab - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 25 More stars = more popular project forks 40 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 633 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 862 carthage_cache via Thi Doan A Fastlane plugin that allows to cache Carthage/Build folder in Amazon S3. Provided actions Name Category Description carthage_cache_install - Download Carthage cache from Amazon S3 carthage_cache_publish - Upload Carthage cache to Amazon S3 carthage_cache_exist - Check if Carthage cache exists for Cartfile.resolved in Amazon S3 Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 10 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 736 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 856 xcodegen via Michael Ruhl Run xcodegen for the project Provided actions Name Category Description xcodegen - Runs `xcodegen` for the project Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 17 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 629 More downloads = more users have been using the plugin for a while tests 36 The more tests a plugin has, the better Open on GitHub 830 setup_fragile_tests_for_rescan via Lyndsey Ferguson Suppress stabile tests so that 'scan' can run the fragile tests again Provided actions Name Category Description setup_fragile_tests_for_rescan deprecated Suppress stabile tests so that 'scan' can run the fragile tests again Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 6 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 654 More downloads = more users have been using the plugin for a while tests 36 The more tests a plugin has, the better Open on GitHub 799 properties via Pavlo Pakholka Adds 4 actions to fastlane to read and update properties files. Provided actions Name Category Description increment_version_name_in_properties_file - Sets a value of a setting in .properties file. set_properties_value - Sets a value of a setting in .properties file. get_properties_value - Reads a value of a setting from .properties file. write_properties_file - Write any Hash-like structure as a properties file. This action won't create a new file. parse_properties_file - Load .properties file and returns it as a ruby hash-map. increment_version_code_in_properties_file - Increase version code inside .properties file. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 667 More downloads = more users have been using the plugin for a while tests 15 The more tests a plugin has, the better Open on GitHub 786 huawei_appgallery_connect via Shreejan Shrestha Huawei AppGallery Connect Plugin Provided actions Name Category Description huawei_appgallery_connect_submit_for_review - Huawei AppGallery Connect Plugin huawei_appgallery_connect - Huawei AppGallery Connect Plugin huawei_appgallery_connect_get_app_info - Huawei AppGallery Connect Plugin Score details Metric Points Description contributors 36 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 34 More stars = more popular project forks 50 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 549 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 786 android_change_package_identifier via MaximusMcCann Change the package identifier in the AndroidManifest.xml file. Can revert as well. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 766 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 760 settings_bundle via Jimmy Dee Fastlane plugin to update static settings in an iOS settings bundle Provided actions Name Category Description update_settings_bundle project actions. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 20 More stars = more popular project forks 40 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 486 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 734 property_file_read via United Classifieds Reads property file into dictionary Provided actions Name Category Description property_file_read - Reads property file into dictionary Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 625 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 708 prepare_build_resources via Jakob Jensen Prepares certificates and provisioning profiles for building and removes them afterwards. Provided actions Name Category Description prepare_build_resources - Prepares certificates and provisioning profiles for building and removes them afterwards. Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 6 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license -50 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 601 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 681 diawi via pacification Upload .ipa or .apk file to diawi.com Provided actions Name Category Description diawi - Upload .ipa/.apk file to diawi.com Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 32 More stars = more popular project forks 25 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 489 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 662 act via Richard Szalay Applies changes to plists and app icons inside a compiled IPA or xcarchive Provided actions Name Category Description act - Reconfigures .plists and icons inside a compiled IPA Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 20 More stars = more popular project forks 30 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 402 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 661 merge_junit_report via Derek Yang Merges multiple junit reports into one Provided actions Name Category Description merge_junit_report - Provides the ability to merge multiple junit reports into one Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 516 More downloads = more users have been using the plugin for a while tests 30 The more tests a plugin has, the better Open on GitHub 659 json via Martin Gonzalez actions related to json files Provided actions Name Category Description write_json - Write a json file from a hash at the provided path download_json - Downloads a json file and expose a hash with symbolized names as result merge_jsons - Merge a group of jsons files and expose a hash with symbolized names as result. Last json predominate over the rest read_json - Read a json file and expose a hash with symbolized names as result Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 504 More downloads = more users have been using the plugin for a while tests 45 The more tests a plugin has, the better Open on GitHub 658 google_drive via Bumsoo Kim Upload files to Google Drive Provided actions Name Category Description update_google_drive_file - Update a Google Drive file upload_to_google_drive - Upload files to Google Drive create_google_drive_folder - Create new folder on Google Drive Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 42 More stars = more popular project forks 50 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 399 More downloads = more users have been using the plugin for a while tests 57 The more tests a plugin has, the better Open on GitHub 604 codecov_reporter via BinaryBeard Uploads coverage report to Codecov.io Provided actions Name Category Description codecov_reporter - Uploads coverage report to Codecov.io Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 5 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 472 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 603 ionic via Jan Piotrowski Build your Ionic app Provided actions Name Category Description ionic building Build your Ionic app Score details Metric Points Description contributors 72 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 41 More stars = more popular project forks 55 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -23 Lots of open issues are not a good sign usually, unless the project is really popular downloads 345 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 602 upload_symbols_to_new_relic via Helmut Januschka Uploads dSym to New Relic Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 582 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 588 mango via Serghei Moret, Daniel Hartwich This plugin orchtestrates Android tasks on docker images Provided actions Name Category Description run_dockerized_task - Action that runs Android tasks on a specified Docker image Score details Metric Points Description contributors 30 The more contributors a project has, the more likely it is it stays alive subscribers 69 More subscribers = more popular project stars 48 More stars = more popular project forks 35 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 208 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 581 download_file via Massimo Oliviero This action downloads a file from an HTTP/HTTPS url (e.g. ZIP file) and puts it in a destination path Provided actions Name Category Description download_file - - Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 430 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 580 git_tags via Fernando Saragoca List git tags sorted by taggerdate Provided actions Name Category Description git_tags source_control List git tags Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 467 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 574 unzip via Massimo Oliviero Extract compressed files in a ZIP Provided actions Name Category Description unzip - Extract compressed files in a ZIP Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 429 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 565 simctl via Renzo Crisostomo Fastlane plugin to interact with xcrun simctl Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 545 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 560 danger-device_grid via Felix Krause, Boris Bu\u0308gling Danger plugin for the fastlane device grid. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 5 More stars = more popular project forks 20 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 407 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 545 semantic_release2 via William Lauze Fork for: Automated version managment and generator of release notes. Provided actions Name Category Description conventional_changelog - Uses conventional commits. It groups commits by their types and generates release notes in markdown or slack format. analyze_commits - Finds a tag of last release and determinates version of next release Score details Metric Points Description contributors 30 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 83 More stars = more popular project forks 120 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 113 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 529 mobile_center via Microsoft Corporation Fastlane plugin for Mobile Center Provided actions Name Category Description appcenter_upload - Distribute new release to App Center Score details Metric Points Description contributors 42 The more contributors a project has, the more likely it is it stays alive subscribers 33 More subscribers = more popular project stars 47 More stars = more popular project forks 45 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -11 Lots of open issues are not a good sign usually, unless the project is really popular downloads 197 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 483 remove_provisioning_profile via Anton Domashnev Remove provision profile from your local machine Provided actions Name Category Description remove_provisioning_profile - Remove the provisioning profile for the given app_identifier and type from local machine Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 7 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 258 More downloads = more users have been using the plugin for a while tests 60 The more tests a plugin has, the better Open on GitHub 467 jira_release_notes via Alexander Ignition Release notes from JIRA for version Provided actions Name Category Description jira_release_notes - Jira release notes Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 12 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 299 More downloads = more users have been using the plugin for a while tests 36 The more tests a plugin has, the better Open on GitHub 463 ruby via Felix Krause Useful fastlane actions for Ruby projects Provided actions Name Category Description rubocop - Runs the code style checks rspec - Run tests using rspec Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 4 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 32 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 335 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 463 gradle_properties via Ryo Sakaguchi Read properties in your Fastfile easily Provided actions Name Category Description gradle_properties - Read properties in your Fastfile easily Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 395 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 459 android_emulator via Michael Ruhl Creates and starts an Android Emulator (AVD) Provided actions Name Category Description android_emulator - Creates and starts an Android Emulator (AVD) Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 7 More stars = more popular project forks 60 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 240 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 456 flutter via Artem Sheremet Flutter actions plugin for Fastlane Provided actions Name Category Description flutter_bootstrap - Flutter SDK installation, upgrade and application bootstrap flutter - Run \"flutter\" binary with the specified arguments flutter_build building Run \"flutter build\" to build a Flutter application flutter_generate - (1) Run `flutter packages get`; (2) Run `build_runner build` if build_runner is in dev_dependencies; (3) According to `package:intl`, take `$strings_file` and generate `${strings_file.dirname}/arb/intl_messages.arb`, then take all files matching `${strings_file.dirname}/intl_*.arb`, fix them and generate .dart files from them. (4) Generate an empty test importing all files, which would be used to calculate correct full coverage numbers. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 20 More stars = more popular project forks 25 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 268 More downloads = more users have been using the plugin for a while tests 42 The more tests a plugin has, the better Open on GitHub 454 firebase_test_lab_android via wasabeef Test your app with Firebase Test Lab with ease using fastlane Provided actions Name Category Description firebase_test_lab_android - Runs Android tests in Firebase Test Lab. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 51 More subscribers = more popular project stars 25 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 247 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 451 google_cloud_storage via Fernando Saragoca Google Cloud Storage Provided actions Name Category Description google_cloud_storage_check_file - Check if file exists in Google Cloud Storage google_cloud_storage_download - Download a file from Google Cloud Storage google_cloud_storage_upload - Upload a file to Google Cloud Storage Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 348 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 445 upgrade_super_old_xcode_project via Jan Piotrowski Upgrades super old Xcode projects to Xcode 8 Provided actions Name Category Description upgrade_super_old_xcode_project - Upgrades super old Xcode projects to Xcode 8 Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 328 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 444 clean_testflight_testers via Felix Krause Automatically remove TestFlight testers that are not actually testing your app Provided actions Name Category Description clean_testflight_testers - Automatically remove TestFlight testers that are not actually testing your app Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 26 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 287 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 435 pgyer via rexshi distribute app to pgyer beta testing service Provided actions Name Category Description pgyer - distribute app to pgyer beta testing service Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 22 More stars = more popular project forks 35 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 274 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 433 cryptex via Helmut Januschka fastlane Crypt Store Git repo Provided actions Name Category Description cryptex - Secure Git-Backed Storage cryptex_generate_keystore - Generate a new Android Keystore Score details Metric Points Description contributors 36 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 26 More stars = more popular project forks 55 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 206 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 417 instabug_official via Instabug Plugin to upload DSYMs to Instabug Dashboard. Provided actions Name Category Description instabug_official - - Score details Metric Points Description contributors 48 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 4 More stars = more popular project forks 25 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 235 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 408 notarize via Zeplin, Inc. fastlane plugin to notarize a macOS app Provided actions Name Category Description notarize deprecated Notarizes a macOS app Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 60 More subscribers = more popular project stars 64 More stars = more popular project forks 35 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 136 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 404 icon_versioning via Iulian Onofrei Overlay build information on top of your app icon Provided actions Name Category Description version_icon - Overlay build information on top of your app icon. Based on original work by Krzysztof Zab\u0142ocki (https://github.com/krzysztofzablocki/Bootstrap). Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 48 More stars = more popular project forks 20 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 115 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 394 onesky via Daniel Kiedrowski Helps to update the translations of your app using the OneSky service. Provided actions Name Category Description onesky_upload - Upload a strings file to OneSky onesky_download - Download a translation file from OneSky Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 15 More stars = more popular project forks 65 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 201 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 385 code_push via Manuel Koch CodePush functionality for fastlane Provided actions Name Category Description code_push_promote - CodePush promote code_push_login - CodePush login with accessKey code_push_release_react - CodePush release-react functionality for fastlane code_push_release_cordova - CodePush release-cordova functionality for fastlane Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 23 More stars = more popular project forks 25 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 217 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 384 jira_versions via Sandy Chapman Manage your JIRA project's releases/versions with this plugin. Provided actions Name Category Description release_jira_version - Releases a version in your JIRA project create_jira_version - Creates a new version in your JIRA project get_jira_versions - Gets a list of all versions for a JIRA project Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 14 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 240 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 380 flutter_version via tianhaoz95 A plugin to retrieve versioning information for Flutter projects. Provided actions Name Category Description flutter_version - A plugin to retrieve versioning information for Flutter projects. Score details Metric Points Description contributors 36 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 44 More stars = more popular project forks 65 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 86 More downloads = more users have been using the plugin for a while tests 39 The more tests a plugin has, the better Open on GitHub 368 retry via gmgchow Retries failed XCUITest test cases Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 318 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 365 tunes via Boris Bu\u0308gling Play music using fastlane, because you can. Provided actions Name Category Description tunes - Play music using fastlane, because you can Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 8 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 229 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 355 s3_actions via Fernando Saragoca Download and upload files to AWS S3 Provided actions Name Category Description s3_download - Download a file from AWS S3 s3_check_file - Check if file exists in AWS S3 s3_upload - Upload a file to AWS S3 Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 241 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 351 dynatrace via Dynatrace LLC This action processes and uploads your symbol files to Dynatrace Provided actions Name Category Description dynatrace_process_symbols - This action processes and uploads your symbol files to Dynatrace. Score details Metric Points Description contributors 30 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 9 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 93 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 350 gs_deliver via \u0421\u0435\u0440\u0433\u0435\u0438\u0306 \u0412\u0435\u0441\u0435\u043b\u043e\u0432\u0441\u043a\u0438\u0438\u0306 Gradoservice plugin to rule apps releases Provided actions Name Category Description gs_move_to_ready_for_sale - Gradoservice plugin to rule apps releases gs_remove_from_testflight_review - Gradoservice plugin to rule apps releases gs_get_release_notes - Gradoservice plugin to rule apps releases gs_get_app_status - Gradoservice plugin to rule apps releases gs_move_rc_to_beta_review - Gradoservice plugin to rule apps releases gs_start_external_testing - Gradoservice plugin to rule apps releases gs_reject_latest_version - Gradoservice plugin to rule apps releases gs_execute_command - Gradoservice plugin to rule apps releases Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 270 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 348 rocket_chat via Thiago Felix Send message to Rocket.Chat right from fastlane Provided actions Name Category Description rocket_chat - Send a success/error message to your RocketChat group Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 6 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 234 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 346 wpmreleasetoolkit via Lorenzo Mattei GitHub helper functions Score details Metric Points Description contributors 54 The more contributors a project has, the more likely it is it stays alive subscribers 54 More subscribers = more popular project stars 21 More stars = more popular project forks 30 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 19 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -28 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 343 patch via Jimmy Dee Apply and revert pattern-based patches to any text file. Provided actions Name Category Description apply_patch deprecated Apply pattern-based patches to any text file. revert_patch deprecated Revert the action of apply_patch patch project Apply pattern-based patches to any text file. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 25 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 173 More downloads = more users have been using the plugin for a while tests 60 The more tests a plugin has, the better Open on GitHub 335 lokalise via Abbas Jaffery Sync metadata with Lokalise Provided actions Name Category Description add_keys_to_lokalise - Add keys to lokalise lokalise - Download Lokalise localization lokalise_metadata - Upload metadata to lokalise. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 213 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 331 android_change_string_app_name via MaximusMcCann Change the app_name in the strings.xml file & revert method Provided actions Name Category Description android_change_string_app_name - Change the app_name in the strings.xml file & revert method android_change_string_app_name_revert - Revert strings.xml app_name using ANDROID_CHANGE_STRING_APP_NAME_ORIGINAL_NAME Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 234 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 329 xcode_log_parser via KrauseFx Convert the Xcode plist log to a JUnit report Provided actions Name Category Description trainer - Convert the Xcode plist log to a JUnit report. This will raise an exception if the tests failed Score details Metric Points Description contributors 30 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 102 More stars = more popular project forks 60 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -5 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 24 The more tests a plugin has, the better Open on GitHub 327 waldo via J. G. Pusey Upload build to Waldo Provided actions Name Category Description waldo testing Upload a new build to [Waldo](https://www.waldo.io) Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 5 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 157 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 325 pretty_junit via GaryJohnson Pretty JUnit test results for your Android projects. Provided actions Name Category Description pretty_junit - Pretty JUnit test results for your Android projects. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 219 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 305 get_product_bundle_id via Lyndsey Ferguson Gets PRODUCT_BUNDLE_IDENTIFIER from the first buildable target in a given scheme Provided actions Name Category Description get_product_bundle_id - Gets PRODUCT_BUNDLE_IDENTIFIER from a buildable target in an Xcode project using a provided scheme Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 6 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 176 More downloads = more users have been using the plugin for a while tests 27 The more tests a plugin has, the better Open on GitHub 304 gmail via Alexander Ignition send mail from gmail Provided actions Name Category Description gmail - A short description with < = 80 characters of what this action does Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 7 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 166 More downloads = more users have been using the plugin for a while tests 18 The more tests a plugin has, the better Open on GitHub 303 clubmate via KrauseFx Print the Club Mate logo in your build output Provided actions Name Category Description clubmate - Print a Club Mate in your build output Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 8 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 32 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 166 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 300 latest_hockeyapp_version_number via Travis Palmer Easily fetch the most recent HockeyApp version number for your app Provided actions Name Category Description latest_hockeyapp_version_number - Easily fetch the most recent HockeyApp version number for your app Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 6 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 172 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 298 jira_set_fix_version via Tommy Sadiq Hinrichsen Tags all Jira issues mentioned in git changelog with with a fix version from parameter :name Provided actions Name Category Description jira_set_fix_version - Tags all Jira issues mentioned in git changelog with with a fix version from parameter :name Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 3 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 152 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 297 cerberus via Harry Singh Cerberus is a fastlane plugin for extracting Jira issues from commit messages and sharing information on its respective Jenkins job and HockeyApp upload. Provided actions Name Category Description find_commits - Extracts additional issues from the log jira_comment - This action adds comments on Jira issues with the current build number and url of that build find_tickets - Extracts the Jira issue keys between commits release_notes - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 57 More subscribers = more popular project stars 6 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 101 More downloads = more users have been using the plugin for a while tests 30 The more tests a plugin has, the better Open on GitHub 297 ci_changelog via icyleaf Automate generate changelog between previous build failed and the latest commit of scm in CI Provided actions Name Category Description ci_changelog - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 6 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 100 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 297 google_sheet_localize via Mario Hahn Creates .strings files for iOS and strings.xml files for Android Provided actions Name Category Description google_sheet_localize - Creates .strings files for iOS and strings.xml files for Android Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 16 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -5 Lots of open issues are not a good sign usually, unless the project is really popular downloads 168 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 296 applivery via Alejandro Jimenez Upload new build to Applivery Provided actions Name Category Description applivery beta Upload new iOS or Android build to Applivery Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 12 More stars = more popular project forks 20 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 121 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 296 gs_project_flow_ios via \u0421\u0435\u0440\u0433\u0435\u0438\u0306 \u0412\u0435\u0441\u0435\u043b\u043e\u0432\u0441\u043a\u0438\u0438\u0306 Plugin contains project flow code for code sharing between projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 276 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 294 cosigner via Andr\u00e9 Pacheco Neves, Lu\u00eds Portela Afonso A fastlane plugin to help you sign your iOS builds Provided actions Name Category Description cosigner - A fastlane plugin to help you sign your iOS builds Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 39 More subscribers = more popular project stars 21 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 90 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 289 versioning_ios via Igor Lamo\u0161 iOS Versioning Plugin for Fastlane Provided actions Name Category Description ios_set_build_number - Set the Build Number of your iOS project ios_get_build_number - Get the Build Number of your iOS project ios_set_version - Set the Version of your iOS project ios_get_version - Get the Version of your iOS project Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 158 More downloads = more users have been using the plugin for a while tests 51 The more tests a plugin has, the better Open on GitHub 280 uninow-sentry via Tom Krusch Upload symbols to Sentry Provided actions Name Category Description sentry_upload_sourcemap - Upload a sourcemap to a release of a project on Sentry sentry_finalize_release - Finalize a release for a project on Sentry sentry_create_release - Create new releases for a project on Sentry sentry_upload_file - Upload files to a release of a project on Sentry sentry_upload_dsym - Upload dSYM symbolication files to Sentry sentry_set_commits - Set commits of a release sentry_upload_proguard - Upload mapping to a project on Sentry Score details Metric Points Description contributors 66 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 279 framer via DrAL3X Create images combining app screenshots with templates to make nice pictures for the App Store Provided actions Name Category Description framer - Create images combining app screenshots to templates to make a nice \\'screenshot\\' to upload in App Store and Google Play Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 31 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 51 The more tests a plugin has, the better Open on GitHub 279 changelog_generator via Fernando Saragoca Changelog generation based on merged pull requests & tags Provided actions Name Category Description generate_changelog - Changelog generation based on merged pull requests & tags generate_release_changelog - Changelog generation based on merged pull requests & tags, filtered by one or two tags Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 8 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 158 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 278 branch via Branch, Jimmy Dee Adds Branch keys, custom URI schemes and domains to iOS and Android projects. Validates the Universal Link configuration for any Xcode project. Provided actions Name Category Description update_action_docs - Generate a standard action page for each action update_readme - Update the contents of the README in this repo branch_report project Generate a brief summary or a full build report for your project. setup_branch project configuration for Xcode projects. validate_universal_links project Validates Universal Link configuration for an Xcode project. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 24 More subscribers = more popular project stars 8 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 59 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 272 get_unprovisioned_devices_from_hockey via GaryJohnson Retrieves a list of unprovisioned devices from Hockey which can be passed directly into register_devices. Provided actions Name Category Description get_unprovisioned_devices_from_hockey - Retrieves a list of unprovisioned devices from Hockey which can be passed directly into register_devices. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 24 More subscribers = more popular project stars 6 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 117 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 272 airwatch_workspaceone via Ram Awadhesh Sharan The main purpose of this plugin is to upload an IPA or an APK file to an AirWatch or Workspace ONE enterprise instance/console. Provided actions Name Category Description add_or_update_assignments - The main purpose of this action is to add a new smart group assignment to an application or to update an existing smart group assignment of an application with a given dictionary of deployment/assignment parameters. If a smart group name is provided which does not exist yet on Console, assignment for that smart group is ignored. unretire_specific_version - The main purpose of this action is to unretire a specific version of an application. This action takes a string parameter where you can specify the version number to unretire. retire_previous_versions - The main purpose of this action is to retire previous active versions of an application. This action takes a string parameter where you can specify the number of latest versions to keep if you do not want to retire all the previous active versions. delete_specific_version - The main purpose of this action is to delete a specific version of an application. This action takes a string parameter where you can specify the version number to delete. latest_version - The main purpose of this action is to find the version number of the latest version of the app on the console and output the same. It also finds and outputs arrays of active app version numbers and retired app version numbers of the app. deploy_build - The main purpose of this action is to upload an IPA or an APK file to an AirWatch or Workspace ONE enterprise console. delete_previous_versions - The main purpose of this action is to delete versions of an application. This action takes a string parameter where you can specify the number of latest versions to keep if you do not want to delete all the versions. retire_specific_version - The main purpose of this action is to retire a specific version of an application. This action takes a string parameter where you can specify the version number to retire. unretire_all_versions - The main purpose of this action is to unretire all retired versions of an application. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 6 More stars = more popular project forks 25 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 13 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 119 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 267 latest_hockey_build_number via Sergii Stotskyi, Kirill Pahnev Gets latest version number of the app with the bundle id from HockeyApp Provided actions Name Category Description latest_hockey_build_number - Gets latest version number of the app with the bundle id from HockeyApp Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 146 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 266 android_sdk_update via Philipp Burgk, Michael Ruhl Install required Android-SDK packages Provided actions Name Category Description android_sdk_update - Install and update required Android-SDK packages Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 33 More subscribers = more popular project stars 10 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 74 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 264 telegram via sergpetrov Allows post messages to telegram channel Provided actions Name Category Description telegram - Allows post messages to telegram channel Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 10 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 167 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 262 swiftlint_codequality via Mads B\u00f8geskov Converts SwiftLint reports into GitLab support CodeQuality reports Provided actions Name Category Description swiftlint_codequality - Converts SwiftLint reports into GitLab support CodeQuality reports Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 144 More downloads = more users have been using the plugin for a while tests 24 The more tests a plugin has, the better Open on GitHub 257 sharethemeal via Helmut Januschka ShareTheMeal Provided actions Name Category Description sharethemeal - Donate food via ShareTheMeal Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 7 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 116 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 252 github_job_status via Justin Singer Post the status of your test jobs to your pull requests Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 220 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 250 polidea via Piotrek Dubiel Polidea's fastlane action Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 200 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 249 icon_banner via E\u0301mile Be\u0301lair IconBanner adds custom nice-looking banners over your mobile app icons Provided actions Name Category Description icon_banner_restore - Restores the original app icons (can be used after build to clean up the repository) icon_banner - Adds custom nice-looking banners over your mobile app icons Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 155 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 248 souyuz via Felix Rudat A fastlane component to make Xamarin builds a breeze Provided actions Name Category Description app_version - Easily set or print app version with `app_version` souyuz - Easily build and sign your app using `souyuz` Score details Metric Points Description contributors 24 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 32 More stars = more popular project forks 35 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 32 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 74 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 247 semaphore via Dmitry Bespalov Semaphore CI integration Provided actions Name Category Description setup_semaphore - Semaphore CI integration Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 132 More downloads = more users have been using the plugin for a while tests 21 The more tests a plugin has, the better Open on GitHub 245 ftp via Allan Vialatte Simple ftp upload and download for Fastlane Provided actions Name Category Description ftp - Upload and Download files via FTP Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 27 More stars = more popular project forks 50 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 61 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 243 firebase_management via Ackee Unofficial tool to access Firebase project settings Provided actions Name Category Description firebase_management_add_app - Add new app to Firebase project firebase_management_list - List all Firebase projects and their apps firebase_management_download_config - Download configuration file for Firebase app Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 8 More stars = more popular project forks 25 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 66 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 243 slack_train via Felix Krause Show a train of the fastlane progress Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 223 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 241 giffy via SiarheiFiedartsou Fastlane plugin for Giffy.com API Provided actions Name Category Description giffy_random_sticker_url - Allows to obtain URL to some random GIF sticker from Giffy.com giffy_random_gif_url - Allows to obtain URL to some random funny GIF from Giffy.com Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 5 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 104 More downloads = more users have been using the plugin for a while tests 12 The more tests a plugin has, the better Open on GitHub 240 create_xcframework via Boris Bielik, Alexey Alter-Pesotskiy Fastlane plugin that creates xcframework for given list of destinations. Provided actions Name Category Description create_xcframework building Fastlane plugin that creates xcframework for given list of destinations. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 11 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 109 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 239 fir_cli via atpking upload ipa or apk to fir.im Provided actions Name Category Description fir_cli - invoke fir-cli from fastlane plugin directly. \\nfir-cli: https://github.com/FIRHQ/fir-cli Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 27 More stars = more popular project forks 20 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 73 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 238 slack_bot via Manish Rathi A fastlane plugin to post slack message using bot api token. \ud83d\ude80 Provided actions Name Category Description file_upload_to_slack - Upload a file to slack channel post_to_slack - Post a slack message fetch_files_slack - List files of any #channel using Slack bot `files.list` api. update_slack_message - Update a slack message using time-stamp(ts) value Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 7 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 108 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 238 bugsee via Dmitry Fink Bugsee symbols uploader Provided actions Name Category Description upload_symbols_to_bugsee - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 103 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 237 automated_test_emulator_run_xing via Daniel Hartwich Starts n AVDs based on JSON file config. AVDs are created and configured according to user liking before instrumentation test process (started either via shell command or gradle) and killed/deleted after test process finishes. Provided actions Name Category Description automated_test_emulator_run_xing - Starts AVD, based on AVD_setup.json file, before test launch and kills it after testing is done. Score details Metric Points Description contributors 36 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 0 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 59 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 237 upload_folder_to_s3 via teriiehina Upload a folder to S3 Provided actions Name Category Description upload_folder_to_s3 - Upload a folder to S3 Score details Metric Points Description contributors 30 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 7 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 32 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 67 More downloads = more users have been using the plugin for a while tests 18 The more tests a plugin has, the better Open on GitHub 233 instrumented_tests via Silviu Paragina New action to run instrumented tests for android. This plugin creates and boots an emulator before running a gradle command so that you can run instrumented tests against that emulator. After the gradle command is executed, the avd gets shut down and deleted. This is really helpful on CI services, keeping them clean and always having a fresh avd for testing. Provided actions Name Category Description instrumented_tests - Run android instrumented tests via a gradle command againts a newly created avd Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 14 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 95 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 233 xcconfig_actions via Maksym Grebenets Adds actions to fastlane to work with xcconfig files Provided actions Name Category Description build_settings_to_flags building Map xcconfig build settings to compiler and linker build flags read_xcconfig building Read and resolve contents of xcconfig file and return as JSON validate_xcconfig linting Validate xcconfig file Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 6 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 232 jira_transition via Valerio Mazzeo Apply a JIRA transition to issues mentioned in the changelog Provided actions Name Category Description jira_transition - Apply a JIRA transition to issues mentioned in the changelog Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 12 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 129 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 228 forsis via Azadeh Bagheri This plugin produces generic test execution reports supported by SonarQube from JUnit test reports generated by fastlane. Provided actions Name Category Description forsis - This plugin produces generic test execution reports supported by SonarQube from JUnit test reports generated by fastlane Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 11 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 85 More downloads = more users have been using the plugin for a while tests 24 The more tests a plugin has, the better Open on GitHub 228 blackberry_mam via Lyndsey Ferguson A fastlane plugin that works with Blackberry Dynamics (formerly Good Dynamics) provides Mobile Application Management Provided actions Name Category Description update_info_plist_for_blackberry_mam - updates the plist so that the built application can be deployed and managed within BlackBerry's Good Dynamics Control Center for Enterprise Mobility Management. blackberry_mam_network_check - Checks to see if the required network ports for BlackBerry Dynamics are open on the network blackberry_mam_version - Checks the version of the installed Good framework Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 227 latest_appcenter_build_number via Jack Spargo Use AppCenter API to get the latest version and build number for an App Center app Provided actions Name Category Description latest_appcenter_build_number - Gets latest version number of the app from AppCenter Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 48 More downloads = more users have been using the plugin for a while tests 48 The more tests a plugin has, the better Open on GitHub 224 uninow_sentry via Tom Krusch Upload symbols to Sentry Provided actions Name Category Description sentry_upload_sourcemap - Upload a sourcemap to a release of a project on Sentry sentry_finalize_release - Finalize a release for a project on Sentry sentry_create_release - Create new releases for a project on Sentry sentry_upload_file - Upload files to a release of a project on Sentry sentry_upload_dsym - Upload dSYM symbolication files to Sentry sentry_set_commits - Set commits of a release sentry_upload_proguard - Upload mapping to a project on Sentry Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 223 hours via Rishabh Tayal Record total time saved by fastlane Provided actions Name Category Description hours - Record total time saved by fastlane Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 85 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 220 jira_issue_details via Zaim Ramlan Get the details for the given jira issue key(s) Provided actions Name Category Description get_jira_issue - Get the details for the given jira issue key(s). Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 110 More downloads = more users have been using the plugin for a while tests 21 The more tests a plugin has, the better Open on GitHub 220 sftp via Oliver Limberg Plugin to upload files via SFTP Provided actions Name Category Description sftp_download misc download files from a remote Server via SFTP sftp_upload misc upload files to a remote Server via SFTP Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 63 The more tests a plugin has, the better Open on GitHub 220 app_info via icyleaf Teardown tool for mobile app(ipa/apk), analysis metedata like version, name, icon etc. Provided actions Name Category Description app_info - Parse and dump mobile app(ipa/apk) metedata. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 68 More downloads = more users have been using the plugin for a while tests 39 The more tests a plugin has, the better Open on GitHub 220 git_info_extract via alexander sun Extract JIRA information from git merge Provided actions Name Category Description git_info_extract - Extract JIRA information from git merge Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 144 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 220 altool via Shashikant Jagtap Upload IPA to iTunes Connect using altool Provided actions Name Category Description altool - Upload IPA to iTunes Connect using altool Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 12 More stars = more popular project forks 30 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 48 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 219 codepush via Pranit Harekar Fastlane plugin for App Center CodePush actions \ud83d\ude80 Provided actions Name Category Description codepush_exists_deployment - CodePush check if deployment exists codepush_release_react - CodePush release-react action codepush_login - CodePush login action codepush_get_deployment_key - CodePush get deployment key given deployment name codepush_list_deployment - CodePush list deployment action codepush_remove_deployment - CodePush remove deployment action codepush_logout - CodePush logout action codepush_rename_deployment - CodePush rename deployment action codepush_add_deployment - CodePush add deployment action codepush_promote - CodePush promote action Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 10 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 100 More downloads = more users have been using the plugin for a while tests 18 The more tests a plugin has, the better Open on GitHub 219 localization via Viktor Malyi Export/import app localizations with help of xcodebuild -exportLocalizations/-importLocalizations tool Provided actions Name Category Description import_localizations - Import app localizations with help of xcodebuild -importLocalizations tool export_localizations - Export app localizations with help of xcodebuild -exportLocalizations tool Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 9 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 86 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 218 setup_app_feedback_sdk via Yahoo Japan Corporation Setup the Info.plist for App Feedback SDK Provided actions Name Category Description setup_app_feedback_sdk - Setup the Info.plist for App Feedback SDK Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 101 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 217 demo_mode via Florian Rauscha Sets your connected android devices to demo mode Provided actions Name Category Description demo_mode - Sets your device to demo mode Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 64 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 216 facelift via Richard Szalay Deprecated in favor of 'fastlane-plugin-act' Provided actions Name Category Description act - Reconfigures .plists and icons inside a compiled IPA Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 17 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 72 The more tests a plugin has, the better Open on GitHub 216 xamarin_build via punksta Build xamarin android\\ios projects Provided actions Name Category Description extract_certificate - Extract certificate public key from provision profile xamarin_update_configuration - Set properties of specific build configuration in Xamarin configuration file xamarin_build - Build xamarin android and ios projects Score details Metric Points Description contributors 24 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 7 More stars = more popular project forks 40 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 33 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 215 ciutils via Nicolae Ghimbovschi Various utilities for iOS CI Provided actions Name Category Description en_build_number - Get the value for build number from environment en_install_provisioning_profiles - Copies recursively all provisioning profiles from current folder to system Provisioning Profiles en_profile_name - A short description with < = 80 characters of what this action does en_remove_keychain - Removes the keychain setup by en_setup_keychain en_ci_utils_init - Sets env variables for gym, scan, swiftlint and lizard actions en_setup_project - Updates Xcode project, plist and entitlements file if config file is provided en_setup_keychain - Creates the keychain, and imports the provided certificate en_git_changelog - Creates a change log from git commits by filtering commits by a pattern (e.g. JIRA task prefix) en_close_simulator - Closes all simulator instances en_create_sonar_reports - Creates swiftlint, lizard and oclint reports and adjusts junit reports for sonarqube (with the open source swift/objc plugin) Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 5 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 102 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 213 msbuild via Jeff Ward Build a Xamarin.iOS or Xamarin.Android project using msbuild Provided actions Name Category Description msbuild - Build a Xamarin.iOS or Xamarin.Android project using msbuild assembly_info_poke_version - Set the version in an AssemblyInfo.cs file. Optionally only set the revision number nuget_pack - Package a nuspec nuspec_poke_version - Set the version in a Nuspec file. Optionally only set the revision number Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 27 More subscribers = more popular project stars 4 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 101 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 213 huawei_appgallery via Arne Kaiser Plugin to deploy an app to the Huawei AppGallery Provided actions Name Category Description huawei_appgallery - Plugin to deploy an app to the Huawei AppGallery Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 21 More stars = more popular project forks 55 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 211 android_version_manager via Jonathan Cardoso Machado Android's App Version Managment Provided actions Name Category Description android_base - - Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 3 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 26 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 211 git_status via Bruno Coelho Show the status of one or multiple files/directories Provided actions Name Category Description git_status - Show the status of one or multiple files/directories Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 95 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 211 find_replace_string via Jonathan Ritchie Find a string in a file and replace it with a new one. Provided actions Name Category Description find_replace_string - Find and replace a string in a project file Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 125 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 210 semantic_convention_release via Jir\u030ci\u0301 Ota\u0301hal, Sergio Fierro Automated version managment and generator of release notes. Provided actions Name Category Description conventional_changelog - Uses conventional commits. It groups commits by their types and generates release notes in markdown or slack format. analyze_commits - Finds a tag of last release and determinates version of next release Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 210 secret_keeper via Daniel Jankowski secret_keeper is a wrapped on keychain access. Provided actions Name Category Description remove_item_from_keychain - Removes the credentials from the keychain on behalf of the user add_item_to_keychain - Adds the credentials to the keychain on behalf of the user read_item_from_keychain - Reads the password from the keychain for a given item Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 87 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 207 ensure_xcode_build_version via Fumiya Nakamura Ensure Xcode Build Version for working with Beta, GM and Release Provided actions Name Category Description ensure_xcode_build_version - Ensure the selected Xcode Build version with xcode-select matches a value Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 51 More downloads = more users have been using the plugin for a while tests 15 The more tests a plugin has, the better Open on GitHub 206 aws_sns via Josh Holtz Creates AWS SNS platform applications Provided actions Name Category Description aws_sns - Creates AWS SNS platform applications Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 10 More stars = more popular project forks 35 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 80 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 206 semantic_release_workflow via Phong Nguyen Automated version managment, generator of release notes, create gitlab release then notify Provided actions Name Category Description conventional_changelog - Uses conventional commits. It groups commits by their types and generates release notes in markdown or slack format. create_release - Create Gitlab release analyze_commits - Finds a tag of last release and determinates version of next release Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 206 set_jira_fix_version via yuriy-tolstoguzov Adds fix version to specified JIRA issues. Creates version if needed Provided actions Name Category Description set_jira_fix_version misc Adds fix version to specified JIRA issues. Creates version if needed jira_issue_keys_from_changelog misc Gets list of JIRA issues kyes from git log starting from specified tag Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 86 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 206 instabug via Siarhei Fiedartsou Uploads dSYM to Instabug Provided actions Name Category Description instabug - - Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 64 More downloads = more users have been using the plugin for a while tests 21 The more tests a plugin has, the better Open on GitHub 205 jira_util via %q{Alexey Martynov} %q{Create JIRA issues and manage versions with this plugin} Provided actions Name Category Description release_jira_version - Releases a version in your JIRA project get_jira_release_report_link - Return link to JIRA release report. create_jira_issue - Creates a new issue in your JIRA project update_jira_version - Creates a new version in your JIRA project create_jira_version - Creates a new version in your JIRA project get_jira_version - Finds project version in your JIRA project by id or by name Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 99 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 204 google_chat via Narlei Am\u00e9rico Moreira Send messages to Google Chat Provided actions Name Category Description google_chat - Send messages to Google Chat Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 13 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 112 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 204 code_static_analyzer via Olga Kniazska Runs different Static Analyzers and generate report Provided actions Name Category Description ruby_analyzer - This analyzer detect warnings, errors and check syntax in ruby files. This is based on rubocop cpd_analyzer - This analyzer detect copy paste code (it uses PMD CPD) clang_analyzer - A short description with < = 80 characters of what this action does warning_analyzer - This analyzer detect warnings in Xcode projects. code_static_analyzer - - Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 5 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 89 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 202 android_versioning_kts via zmunm android versioning for gradle kotlin DSL Provided actions Name Category Description get_value_from_build - - increment_version_code - Increment the version code of your project set_value_in_build - Set the value of your project get_version_name - Get the version name of your project increment_version_name - Increment the version name of your project get_version_code - Get the version code of your project Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 57 More downloads = more users have been using the plugin for a while tests 66 The more tests a plugin has, the better Open on GitHub 201 simple_loco via Yves Delcoigne A simple implementation for exporting translations from Loco. Provided actions Name Category Description simple_loco - A simple implementation for exporting translations from Loco. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 70 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 199 xcov_report via Gianfranco Manganiello Generate custom HTML for coverage Provided actions Name Category Description xcov_report - Generate custom HTML for coverage Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 45 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 199 trigger_bitrise_build via Nick Hammond Trigger a Bitrise build from Fastlane Provided actions Name Category Description trigger_bitrise_build - Trigger a Bitrise build from Fastlane Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 53 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 198 get_android_version via MaximusMcCann gets the android versionName and versionCode from the AndroidManifest.xml file located in the provided apk Provided actions Name Category Description get_android_version - Gets the android versionName, versionCode and parsed appName (label) from AndroidManifest.xml file in provided apk Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 109 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 197 bitrise_automation via Mario Cecchi Trigger builds on Bitrise, check their status and download artifacts using Fastlane Provided actions Name Category Description bitrise_build_artifacts - Get the list or full contents of the artifacts produced by a build on Bitrise trigger_bitrise_workflow - Trigger a Bitrise workflow with the specified parameters, synchronously or asynchronously bitrise_build_status - Get the status of the Bitrise build Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 36 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license -50 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 74 More downloads = more users have been using the plugin for a while tests 80 The more tests a plugin has, the better Open on GitHub 196 automated_test_emulator_run_mik via Kamil Krzyk Starts n AVDs based on JSON file config. AVDs are created and configured according to user liking before instrumentation test process (started either via shell command or gradle) and killed/deleted after test process finishes. Provided actions Name Category Description automated_test_emulator_run - Starts AVD, based on AVD_setup.json file, before test launch and kills it after testing is done. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 59 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 196 transporter via Maksym Grebenets Manage Apple iTMSTransporter installation Provided actions Name Category Description configure_transporter - Configure Apple iTMSTransporter installation update_transporter_path - Configure Fastlane to use custom Transporter installation install_transporter - Install Apple iTMSTransporter Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 18 More downloads = more users have been using the plugin for a while tests 60 The more tests a plugin has, the better Open on GitHub 196 snapshot_test via Moyuru Aizawa Compare snapshots Provided actions Name Category Description take_screenshot - Take screenshots Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 60 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 38 More downloads = more users have been using the plugin for a while tests 12 The more tests a plugin has, the better Open on GitHub 193 poeditor_export via James Campbell Exports translations from POEditor.com Provided actions Name Category Description poeditor_export - Exports translations from POEditor.com Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 8 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 64 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 192 store_sizer via Marcelo Oliveira Estimates download and install sizes for your app, also checks if sizes fit the requirements Provided actions Name Category Description store_size_xcarchive_check - Checks if the size report fits the requirements store_size_xcarchive - Estimates download and install sizes for your app Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 11 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 25 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 32 More downloads = more users have been using the plugin for a while tests 39 The more tests a plugin has, the better Open on GitHub 192 perfecto via Perfecto This plugin allows you to automatically upload ipa/apk files to Perfecto for manual/automation testing Provided actions Name Category Description perfecto - This plugin allows you to automatically upload ipa/apk files to Perfecto for manual/automation testing Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 49 More downloads = more users have been using the plugin for a while tests 42 The more tests a plugin has, the better Open on GitHub 190 twine via Jonas Rottmann A fastlane plugin providing actions related to twine Provided actions Name Category Description twine_generate building Generates all localization files specified by the configuration file twine_check building Checks the source twine file against the localization file to make sure they are in sync twine_validate building Validates all twine files mentioned in the config file Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 36 The more tests a plugin has, the better Open on GitHub 189 humanable_build_number via icyleaf Automatic generate app build number unque and human readable friendly, like yymmHHMM. both support iOS and Android. Provided actions Name Category Description humanable_build_number - Automatic generate app build number unque and human readable friendly, like yymmHHMM. both support iOS and Android. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 75 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 188 download_circleci_artifacts via Manabu OHTAKE Downloads a Circle CI artifact's Provided actions Name Category Description show_builds - This action show recent builds a Circle CI artifact's using the Circle CI API get_recent_builds - This action recent builds a Circle CI artifact's using the Circle CI API download_circleci_artifacts - This action downloads a Circle CI artifact's using the Circle CI API and puts it in a destination path. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 107 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 184 github_status via Michael Furtak Provides the ability to display and act upon GitHub server status as part of your build Provided actions Name Category Description github_status - Provides the ability to check on GitHub server status as part of your build Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 8 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 21 More downloads = more users have been using the plugin for a while tests 48 The more tests a plugin has, the better Open on GitHub 181 file_manager via Jason Nam Copy and remove files Provided actions Name Category Description remove_files - Remove files copy_files - Copy files Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 87 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 180 xml_editor via Jonathan Ritchie Generic xml editor for iOS and Android projects. Provided actions Name Category Description xml_editor - Generic XML file editor xml_add - Generic XML file add content using XPath xml_remove - Generic XML file remover using XPath xml_set_attribute - Add XML attribute using XPath Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 90 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 180 upload_to_server via Maxim Toyberman Upload IPA and APK to your own server Provided actions Name Category Description upload_to_server - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 19 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 69 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 177 build_log_info via tarappo show build log info Provided actions Name Category Description build_log_info - build log information Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 82 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 176 xcodebuild_analyze via Meniga Run code analyzer using xcodebuild Provided actions Name Category Description xcodebuild_analyze building Run code analyzer using xcodebuild xcodebuild_analyze_and_ensure_no_results building Run code analyzer using xcodebuild and fail if any vulnerability is found ensure_no_results_from_xcodebuild_analyze building Check if the are any vulnerabilities under provided analyzer output path Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 45 The more tests a plugin has, the better Open on GitHub 174 jira_issue_link via Aleksey Novikov Plugin to add remote link to jira issue Provided actions Name Category Description jira_issue_link - Plugin to add remote link to jira issue Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 4 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 94 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 174 appbox via Vineet Choudhary Deploy Development, Ad-Hoc and In-house (Enterprise) iOS applications directly to the devices from your Dropbox account. Provided actions Name Category Description appbox - Deploy Development, Ad-Hoc and In-house (Enterprise) iOS applications directly to the devices from your Dropbox account. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 7 More stars = more popular project forks 25 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 174 replace_file via Jonathan Ritchie Replace any file in your mobile project. Provided actions Name Category Description replace_file - Replace any file in your mobile project Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 93 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 174 ionic_integration via Adrian Regan Integrating Fastlane with Ionic Generated Projects Provided actions Name Category Description ionic_ios_config_snapshot - Create a Sample iOS UI Unit Test to get started with in a generated Ionic/Cordova project ionic_ios_snapshot - Bridge between Ionic/Cordova Projects and Fastlane for Automated Snapshot Generation for iOS Projects Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 22 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 17 More downloads = more users have been using the plugin for a while tests 15 The more tests a plugin has, the better Open on GitHub 173 verify_ipa via Derek Yang Verify various aspects of iOS ipa file Provided actions Name Category Description verify_ipa_files - Verify files in ipa file verify_ipa_entitlements - Verify ipa entitlements Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 51 The more tests a plugin has, the better Open on GitHub 173 xcpretty_report via Fernando Saragoca Generate xcodebuild reports using xcpretty Provided actions Name Category Description xcpretty_report - xcpretty Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 63 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 170 menigit via Meniga Missing git actions Provided actions Name Category Description add_git_remote source_control This will add a remote repository remove_git_remote source_control This will remove a remote repository ensure_no_changes source_control Raises an exception if there are uncommitted git changes at path ensure_tag_not_exists source_control Checks if the git tag with the given name not exists in the current repo set_git_config_user source_control This will set git config user Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 33 The more tests a plugin has, the better Open on GitHub 170 upload_dsym_to_bugly via liubo upload_dsym_to_bugly Provided actions Name Category Description upload_dsym_to_bugly - upload_dsym_to_bugly Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 15 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 169 clang_format via Meniga Format your C/C++/Java/JavaScript/Objective-C/Protobuf/C code with clang-format Provided actions Name Category Description clang_format - A tool to format C/C++/Java/JavaScript/Objective-C/Protobuf/C run_clang_format - Run clang format python script: https://github.com/Sarcasm/run-clang-format Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 42 The more tests a plugin has, the better Open on GitHub 169 flurry via Akash Duseja Upload dSYM symbolication files to Flurry Provided actions Name Category Description flurry_upload_dsym misc Upload dSYM symbolication files to Flurry Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 30 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 21 More downloads = more users have been using the plugin for a while tests 12 The more tests a plugin has, the better Open on GitHub 169 android_keystore via Josh Holtz Generate an Android keystore file Provided actions Name Category Description android_keystore - Generate an Android keystore file Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 63 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 168 bugsnag_sourcemaps_upload via Evgrafov Denis Helps to upload sourcemaps to Bugsnag Provided actions Name Category Description bugsnag_sourcemaps_upload - - Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 4 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 53 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 167 compilation_time_report via Tinkoff.ru Generate custom HTML report compilation time of each Swift func Provided actions Name Category Description compilation_time_report - Generate custom HTML report compilation time of each Swift func Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 24 More subscribers = more popular project stars 5 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 167 create_merge_request via masashi mizuno This will create a new merge request on GitLab. Provided actions Name Category Description create_merge_request source_control This will create a new marge request on GitLab Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 1 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 50 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 167 bluepill via tbrand Fastlane plugin to use bluepill in fastlane Provided actions Name Category Description bluepill - Plugin to use bluepill in fastlane Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 13 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 167 release_helper via Artem Ivanov release heper Provided actions Name Category Description release_helper - release heper Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 13 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 94 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 167 remove_setting via Colin Harris Fastlane plugin to remove settings from an iOS settings bundle Provided actions Name Category Description remove_setting project Fastlane plugin action to remove settings in an iOS settings bundle Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 60 The more tests a plugin has, the better Open on GitHub 166 analyze_apk via kochavi-daniel Analyzes an apk to fetch: versionCode, versionName, apk size, etc. Provided actions Name Category Description analyze_apk - Analyzes an apk to fetch: versionCode, versionName, apk size, permissions, etc. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 5 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 25 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 61 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 165 install_provisioning_profiles via Dylan Gyesbreghs Install all the provisioning profiles located in you're project. Provided actions Name Category Description install_provisioning_profiles - Install all the provisioning profiles located in you're project. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 60 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 165 validate_app via Thi Validate your build before uploading to iTunes Connect Provided actions Name Category Description validate_app - Validate your ipa file Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 11 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 54 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 165 git_switch_branch via zhangqi switch to branch Provided actions Name Category Description git_switch_branch - switch to branch Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 25 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 82 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 163 raven via Marten Klitzke Plugin to manage Releases and upload JS Sourcemaps Provided actions Name Category Description raven - Create new Sentry/Raven Release and Upload Sourcemaps Score details Metric Points Description contributors 18 The more contributors a project has, the more likely it is it stays alive subscribers 30 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 35 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 163 translation via Jakob Jensen Handling translations from Google sheet. Provided actions Name Category Description create_translation - Create sheet for translations in Google sheets. translation - Output translations from Google sheet into templates. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 3 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 38 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 163 try_scan via Alexey Alter-Pesotskiy The easiest way to retry your fastlane scan action Provided actions Name Category Description try_scan testing Simple way to retry your scan action Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 7 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 43 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 161 clang_analyzer via Siarhei Fiedartsou Runs Clang Static Analyzer(http://clang-analyzer.llvm.org/) and generates report Provided actions Name Category Description clang_analyzer - Runs Clang Static Analyzer(http://clang-analyzer.llvm.org/) and generates report Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 5 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 26 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 161 wait_xcrun via Maksym Grebenets Wait for Xcode toolchain to come back online after switching Xcode versions. Provided actions Name Category Description wait_xcrun - Wait for Xcode toolchain to come back online after switching Xcode versions. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 21 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 159 delete_files via GaryJohnson Deletes a file, folder or multiple files using shell glob pattern. Provided actions Name Category Description delete_files - Deletes a file, folder or multiple files using shell glob pattern. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 54 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 159 docker via Manu Wallner fastlane Actions to support building images, logging into Docker Hub, and pushing those images to the Hub Provided actions Name Category Description docker_build - Build docker images in the current directory docker_login - Login to Docker Hub ensure_docker_machine_available - Makes sure a docker machine is created and available for us to use docker_compose - Define and run multi-container applications with Docker docker_push - Push a docker image to its' repository Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 6 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 27 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 157 repack_ios via Omer Duzyol Enables your build pipeline to repack your pre-built ipa with new assets without rebuilding the native code. Provided actions Name Category Description repack_ios - Enables your build pipeline to repack your pre-built ipa with new assets without rebuilding the native code. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 10 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 157 swiftformat via Felix Mau Run swift code formatting using SwiftFormat Provided actions Name Category Description swiftformat testing Run swift code formatting using SwiftFormat Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 39 More downloads = more users have been using the plugin for a while tests 30 The more tests a plugin has, the better Open on GitHub 157 coveralls via Atsushi Nagase Send coverage information to Coveralls Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 107 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 157 create_github_issue via Ryo Sakaguchi Create GitHub issue Provided actions Name Category Description create_github_issue - Create GitHub issue Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 92 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 157 resetsims via Lui\u0301s Esteves Makes an reset on xcode simulators Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 137 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 156 branding via Stefan Natchev Add some branding to your fastlane output Provided actions Name Category Description branding - Add some branding to your fastlane output Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 11 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 26 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 156 branding via Stefan Natchev Add some branding to your fastlane output Provided actions Name Category Description branding - Add some branding to your fastlane output Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 11 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 26 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 155 xcresult_to_junit via Shane Birdsall Produces junit xml files from Xcode 11+ xcresult files Provided actions Name Category Description xcresult_to_junit - Produces junit xml files from Xcode 11+ xcresult files Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 7 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 47 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 154 firebase via Tomas Kohout Unofficial tool to access Firebase project settings Provided actions Name Category Description firebase_delete_client - An unofficial tool to access Firebase firebase_add_client - An unofficial tool to access Firebase firebase_list - An unofficial tool to access Firebase firebase_download_config - An unofficial tool to access Firebase firebase_upload_certificate - An unofficial tool to access Firebase Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 23 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 154 number_of_swift_lines via Dennis Charmington Outputs the total number of swift lines and other useful statistics Provided actions Name Category Description number_of_swift_lines - Outputs the total number of lines of swift code, number of swift files, and a list of the largest swift files, and some other useful statistics Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 75 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 154 dmg via Alexey Dvoryanskiy Easily create dmg for your Mac app Provided actions Name Category Description dmg misc Create DMG for your Mac app Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 23 More downloads = more users have been using the plugin for a while tests 27 The more tests a plugin has, the better Open on GitHub 154 mackerel_api via yutailang0119 Call a Mackerel API endpoint and get the resulting JSON response Provided actions Name Category Description mackerel_api source_control Call a Mackerel API endpoint and get the resulting JSON response Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 33 More downloads = more users have been using the plugin for a while tests 39 The more tests a plugin has, the better Open on GitHub 151 apprepo via Matej Sychra Fastlane plugin SFTP/AppRepo uploader Provided actions Name Category Description download_manifest - Runs the Apprepo plugin apprepo - - init - Initializes Repofile run - Runs the default Apprepo action submit - Submits IPA to Apprepo Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 32 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 68 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 151 android_emulator_kami via Michael Ruhl Creates and starts an Android Emulator (AVD) Provided actions Name Category Description android_emulator_kami - Creates and starts an Android Emulator (AVD) Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 21 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 149 xcode_test_reporter via Taisuke Hori Generates JUnit or HTML report from Xcode plist test report files. Provided actions Name Category Description xcode_test_reporter - Generates JUnit or HTML report from Xcode `plist` test report files Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 23 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 149 provisioning via Pawel Jankowski Helps provision your app in the CI environment Provided actions Name Category Description set_key_partition_list - Sets key partition list (required by macOS Sierra) install_profiles - Install profiles from specified directory Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 148 ipa_info via tarappo show ipa info Provided actions Name Category Description ipa_info - Show information of an ipa file. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 19 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 46 More downloads = more users have been using the plugin for a while tests 12 The more tests a plugin has, the better Open on GitHub 147 napp_distribution via Mads M\u00f8ller Upload IPA AND APK builds to Napp Distribution Provided actions Name Category Description napp_distribution - Upload builds to Napp Distribution Center Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 146 android_emulator-kami via Michael Ruhl Creates and starts an Android Emulator (AVD) Provided actions Name Category Description android_emulator_kami - Creates and starts an Android Emulator (AVD) Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 146 accessibility_test via Takeshi Tsukamoto Accessibility test with Firebase Test Lab for Android. Provided actions Name Category Description accessibility_test - Accessibility test with Firebase Test Lab for Android. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 5 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 63 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 146 ascii_art via Boris Bu\u0308gling Add some fun to your fastlane output. Provided actions Name Category Description ascii_art - Add some fun to your fastlane output. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 20 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 32 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 145 teak via Pat Wilson Fastlane plugins for the Teak SDK Provided actions Name Category Description teak_extensions - Add App Extension teak_sdk - Download the Teak SDK teak - Fastlane plugins for the Teak SDK Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 38 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 144 gitlab_release via Andrea Del Fante Fastlane wrapper of gitlab-release-tools Provided actions Name Category Description gitlab_release_changelog - - gitlab_release_close - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 56 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 144 elux_actions via Dennis Granath Plugin including actions for releasing the android SDK Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 94 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 143 moronepo via Meniga Run dart pub moronepo with fastlane! Provided actions Name Category Description moronepo_update_flutter_sdk building Runs command for all subprojects or a specified project moronepo_run building Runs command for all subprojects or a specified project moronepo_activate building Run flutter pub global activate moronepo Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 21 The more tests a plugin has, the better Open on GitHub 142 retry_tests via Gloria Chow This fastlane plugin includes the following actions: 1) multi_scan: uses scan to run Xcode tests, optionally in batches, a given number of times: only re-testing failing tests. 2) suppress_tests_from_junit: uses a junit xml report file to suppress either passing or failing tests in an Xcode Scheme. 3) suppress_tests: suppresses specific tests in a specific or all Xcode Schemes in a given project. 4) suppressed_tests: retrieves a list of tests that are suppressed in a specific or all Xcode Schemes in a project. 5) tests_from_junit: retrieves the failing and passing tests as reported in a junit xml file. 6) tests_from_xctestrun: retrieves all of the tests from xctest bundles referenced by the xctestrun file 7) collate_junit_reports: collects and correctly organizes junit reports from multiple test passes. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 80 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 141 no_u via Boris Bu\u0308gling no u Provided actions Name Category Description no_u - no u Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 5 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 17 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 141 discord_notifier via Nikos Theodosis Discord Notifier Provided actions Name Category Description discord_notifier - Discord Webhook Notifier Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 8 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 50 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 141 taiwan_number_one via andrew54068 approve or reject first if status is Pending Developer Release. Provided actions Name Category Description taiwan_number_one - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 8 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 24 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 141 emerge via Emerge Tools, Inc Fastlane plugin for Emerge Provided actions Name Category Description emerge - Fastlane plugin for Emerge Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 4 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 54 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 141 testdroid_runner via josepmc Allows to run BitBar tests on fastlane Provided actions Name Category Description testdroid_runner - BitBar Test Runner upload_testdroid - Uploads a file to bitbar Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 140 remove_git_tag via Marker Digital This will remove a specific tag from your remote branch Provided actions Name Category Description remove_git_tag source_control This will remove a tag from the remote repository Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 59 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 138 influxdb via giginet Post values to InfluxDB Provided actions Name Category Description influxdb - Post values to IndluxDB Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 137 auth0_shipper via Hernan Zalazar OSS libraries release process for Auth0 Provided actions Name Category Description perform_release - Performs the release for an Auth0 OSS library publish_release - Performs a pending release represented by the latest tag prepare_release - Prepares the release for an Auth0 OSS library Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 52 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 137 set_sonar_properties via Paldom Load and edit sonar-project.properties files Provided actions Name Category Description set_sonar_properties - Load and edit sonar properties file Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 12 The more tests a plugin has, the better Open on GitHub 136 ad_licenselint via Pierre Felgines Lint the licenses for iOS projects Provided actions Name Category Description ad_licenselint - Lint the licenses for iOS projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 21 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 136 hockey_devices via Viktoras Laukevi\u010dius Retrieves a list of devices from Hockey which can then be used with Match Provided actions Name Category Description hockey_devices - Retrieves a list of devices from Hockey which can then be used with Match Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 21 The more tests a plugin has, the better Open on GitHub 135 get_application_id_flavor via Helder Pinhal Get the applicationId of an Android project. Provided actions Name Category Description get_application_id_flavor - Get the applicationId of an Android project. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 49 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 134 property_file_write via Jan Meier writes property files Provided actions Name Category Description property_file_write - Writes value into properties file Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 29 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 134 upload_symbols_to_hockey via Justin Williams Upload dSYM symbolication files to Hockey Provided actions Name Category Description upload_symbols_to_hockey - Upload dSYM symbolication files to Hockey Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 134 ya_tu_sabes via Boris Bu\u0308gling Ya tu sabes. Provided actions Name Category Description ya_tu_sabes - Ya tu sabes. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 8 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 133 device_image_selector via Mario Zimmermann Takes the screenshots from devices which match the specified names and puts them in a new directory for frameit to process. The screenshot files can then be cleaned up after the device images are created. Provided actions Name Category Description device_image_selector - Selects screenshots with specified names for processing with frameit device_image_selector_cleanup - Cleanup screenshot files after frameit Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 133 ti_build_app via Adam Armstrong Build Axway Appcelerator Mobile Applications from within fastlane Provided actions Name Category Description ti_build_app - Build Axway Appcelerator Mobile Applications from within fastlane Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 6 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 132 napp_notifications via Mads M\u00f8ller Napp Notifications Provided actions Name Category Description napp_notifications push Napp Notifications Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 132 oclint_json_compilation_database via Meniga Run OCLint validation with oclint-json-compilation-database and fastlane :dart: :rocket: Provided actions Name Category Description oclint_json_compilation_database testing - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 39 The more tests a plugin has, the better Open on GitHub 132 certificate_expirydate via Lyndsey Ferguson Retrieves the expiry date of the given p12 certificate file Provided actions Name Category Description certificate_expirydate - Retrieves the expiry date of the given p12 certificate file Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 12 The more tests a plugin has, the better Open on GitHub 132 wechat via xiongzenghui this is a wechat api wrapper Provided actions Name Category Description wechat - this is a wechat api wrapper Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 39 The more tests a plugin has, the better Open on GitHub 131 shuttle via Shuttle Project Publish your builds on Shuttle.tools Provided actions Name Category Description shuttle - Publish your builds on [Shuttle.tools](https://www.shuttle.tools) Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 24 More subscribers = more popular project stars 6 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 19 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 131 unity_exporter via ar:met Plugin for 'fastlane' that defines an action to export iOS and Android projects via Unity3d. This allows Unity3d to more easily integrate with 'fastlane'. Provided actions Name Category Description unity_commit_version_bump - Commits a version bump, if there is any. unity_export - Exports a Unity project. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 27 The more tests a plugin has, the better Open on GitHub 131 connected via Abgier Avraha Fastlane plugin that allows you to use your App Store Connect API key to download certificates and upload apps to TestFlight Provided actions Name Category Description connected_certs - App Store Connect API Certificates Module connected_upload - App Store Connect API Uploader Module connected_auth - App Store Connect API Authentication Module Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 19 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 130 unity via safu9 Fastlane plugin for Unity Provided actions Name Category Description unity - Fastlane plugin for Unity Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 5 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 130 swift_doc via Joshua Kaplan Generate documentation, documentation coverage, or a class diagram using SwiftDoc Provided actions Name Category Description swift_doc documentation Generate documentation, documentation coverage, or a class diagram using SwiftDoc Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 2 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 42 The more tests a plugin has, the better Open on GitHub 130 match_keystore via Christopher NEY Easily sync your Android keystores across your team Provided actions Name Category Description match_keystore - Easily sync your Android keystores across your team Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 20 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -5 Lots of open issues are not a good sign usually, unless the project is really popular downloads 40 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 130 appmetrica via Yandex, LLC Upload dSYM symbolication files to AppMetrica Provided actions Name Category Description upload_symbols_to_appmetrica - Upload dSYM symbolication files to AppMetrica Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 27 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license -50 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 86 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 129 verify_two_step_session via Takashi Hasegawa Verifies the session cookie for 'Two-Step verification for Apple ID' Provided actions Name Category Description verify_two_step_session misc Verifies the session cookie for 'Two-Factor authentication/Two-Step verification for Apple ID' Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 21 The more tests a plugin has, the better Open on GitHub 129 create_bitbucket_pull_request via Issarapong Poesua This lane creates create bitbucket pull request Provided actions Name Category Description create_bitbucket_pull_request - This lane creates create bitbucket pull request Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 38 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 129 github_action via Josh Holtz Helper to setup GitHub actions for fastlane and match Provided actions Name Category Description github_action - Helper to setup GitHub actions for fastlane and match Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 129 bitbucket_auth via rlestesr Generate a OAuth Token for Bitbucket API Access. Provided actions Name Category Description bitbucket_auth - Generate a OAuth Token for Bitbucket API Access. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 15 The more tests a plugin has, the better Open on GitHub 128 firim via whlsxl firim Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 96 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 127 killsimulator via Lui\u0301s Esteves Kill all the open simulatores Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 107 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 126 build_cache via Fernando Saragoca Helper for caching builds when using 'build for testing' & 'test without building' Provided actions Name Category Description clean_build_cache_workspace - Cleans workspace by removing old builds, using last access time for comparison archive_derived_data - Archives derived data folder in a zip file for later use check_build_cache_workspace - Check if cache for current build is avaiable unarchive_derived_data - Unarchives derived data folder from a zip file Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 18 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 126 appdynamics via Artur Rybak Upload dSYM files to AppDynamics Provided actions Name Category Description appdynamics - Upload dSYM symbolication files to AppDynamics Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 1 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 35 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 125 dependency_check_ios_analyzer via Alexey Alter-Pesotskiy Fastlane wrapper around the OWASP dependency-check iOS analyzers (Swift Package Manager and CocoaPods). Provided actions Name Category Description dependency_check_ios_analyzer testing Fastlane wrapper around the OWASP dependency-check iOS analyzers (Swift Package Manager and CocoaPods). Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 2 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 17 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 125 bearychat via dvlprliu send messages to a bearychat channal Provided actions Name Category Description bearychat - send messages to a bearychat channal Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 124 find_firebase_app_id via Tigran Hambardzumyan Helper plugin which will allow to find Firebase App ID from GoogleService-Info.plist [iOS] or google-services.json [Android]. Provided actions Name Category Description find_firebase_app_id - Helper plugin which will allow to find Firebase App ID from GoogleService-Info.plist [iOS] or google-services.json [Android]. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 12 The more tests a plugin has, the better Open on GitHub 124 cordova_screenshots via Jan Piotrowski Take screenshots of your Cordova/Ionic app with fastlane Provided actions Name Category Description init_cordova_screenshots_ios - Creates an iOS UI Unit Tests in '#{CordovaScreenshots::CORDOVA_SCREENSHOTS_IOS_CONFIG_PATH}' retrofit_cordova_screenshots_android - Retrofit test into Android project retrofit_cordova_screenshots_ios - Retrofit test into iOS Xcode project init_cordova_screenshots_android - Creates an Android UI test in '#{CordovaScreenshots::CORDOVA_SCREENSHOTS_ANDROID_CONFIG_PATH}' Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 1 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -10 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 15 The more tests a plugin has, the better Open on GitHub 123 flutter_version_manager via Davor Maric Manages app versioning of Flutter project Provided actions Name Category Description flutter_version_manager - Manages app versioning of a Flutter project. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 123 msi via Paul Niezborala Create Windows Installer Provided actions Name Category Description msi - Create Windows Installer Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 123 fir via dongorigin Upload a new build to fir.im Provided actions Name Category Description fir beta Upload a new build to fir.im Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 123 localize via Wolfgang Lutz Searches the code for extractable strings and allows interactive extraction to .strings file. Provided actions Name Category Description localize - Searches the code for extractable strings and allows interactive extraction to .strings file. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 4 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 123 plural_converter via Benoit Deldicque Convert Android plural XML resource file to iOS stringsdict file. Provided actions Name Category Description plural_converter - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 30 The more tests a plugin has, the better Open on GitHub 123 queue via Josh Holtz Queue up fastlane jobs Provided actions Name Category Description queue_stop - Stops web server and worker for queueing fastlane jobs queue_start - Starts web server and worker for queueing fastlane jobs queue - Adds fastlane jobs to a queue Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 8 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 122 update_jenkins_build via icyleaf Update Description of Build Provided actions Name Category Description update_jenkins_build - Update build's description of jenkins Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 18 The more tests a plugin has, the better Open on GitHub 122 static_assets via Jakob Jensen Generate code for buildtime-safe assignments of assets. Provided actions Name Category Description unused_images - - static_images - Generate code for buildtime-safe assignments of images. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 122 supply_aptoide via wschurman Upload metadata, screenshots and binaries to Aptoide Provided actions Name Category Description supply_aptoide - Upload metadata, screenshots and binaries to Aptoide. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 122 ios_dependency_parser via kochavi-daniel Analyzes results of 'pod outdated' in a structured manner Provided actions Name Category Description parse_pod_dependencies - Analyzes 'pod outdated' results and structures it for further usage. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 121 analyze_ios_linkmap via xiongzenghui iOS parse linkmap.txt to ruby Hash Provided actions Name Category Description analyze_ios_linkmap - iOS parse linkmap.txt to ruby Hash or JSON Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 45 The more tests a plugin has, the better Open on GitHub 119 teams_bot via Hugo EXTRAT Easily alert a Microsoft Teams channel Provided actions Name Category Description teams_bot - Easily send a message to a Microsoft Teams channel through the Webhook connector Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 119 sparkplugg via Boris Bu\u0308gling Quickly try out fastlane plugins. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 32 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 119 updateplistfromstrings via Jonas Schmid Allow to take values from the localization.strings and put them into Info.plist Provided actions Name Category Description updateplistfromstrings - Update InfoPlist.strings from translation file Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 118 imessage via Alexander Ignition send imessage Provided actions Name Category Description imessage notifications send imessage Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 18 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 118 rollbar via Evgrafov Denis Helps to upload sourcemaps/dsyms/proguard mapping/deploy report to Rollbar Provided actions Name Category Description rollbar_proguard_upload - Helps to upload Proguard mappings to Rollbar rollbar_dsym_upload - Helps to upload Dsym to Rollbar rollbar_report_deploy - Helps to report deploy to Rollbar rollbar_sourcemaps_upload - Helps to upload sourcemaps to Rollbar Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 6 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 28 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 117 trello via Oscar De Moya Fastlane plugin for moving a trello card to a given list Provided actions Name Category Description trello_comment - Adds a comment to a given Trello card trello_move_card - Moves a Trello card to a given list Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 117 farol via Felipe Plets Enable your app to use Farol Platform services Provided actions Name Category Description farol_api - Integrate your app with the Farol Platform using services like push notifications farol_get_version - Enable your app to use Farol Platform services farol - Enable your app to use Farol Platform services farol_set_version - Integrate your app with the Farol Platform using services like push notifications Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 31 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 116 xcresult_actions via yutailang0119 fastlane actions for .xcresult Provided actions Name Category Description summarize_xcresult_report - Summarize about test coverage rate from `.xcresult` file Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 27 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 116 androidmanifest_editor via \u4efb\u798f\u65b0 edit meta-data in AndroidManifest.xml Provided actions Name Category Description modify_meta_data - edit meta-data in AndroidManifest.xml modify_intent_scheme - edit scheme data of intent-filter in AndroidManifest.xml androidmanifest_editor - edit meta-data in AndroidManifest.xml Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 49 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 116 analyze_ios_ipa via xiongzenghui analysis iOS app/ipa multiple data. eg: 1) ipa basic info 2) Size occupied by each component = code + resource Provided actions Name Category Description analyze_ios_ipa - analysis iOS app/ipa multiple data. eg: 1) ipa basic info 2) Size occupied by each component = code + resource Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 116 ios_readme_generate via Erik Flores Create readme for ios projects Provided actions Name Category Description ios_readme_generate - Create readme for ios projects :D Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 116 gradle_manager via Helder Pinhal Exposes some Android configurations from the gradle file. Provided actions Name Category Description get_version_name - Get the parsed Gradle file of an Android project. get_version_code - Get the parsed Gradle file of an Android project. get_gradle_data - Get the parsed Gradle file of an Android project. get_application_id - Get the parsed Gradle file of an Android project. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 115 google_analytics via Helmut Januschka Fire universal Analytics Provided actions Name Category Description google_analytics - Fire universal Analytics Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 115 xclogparser via Josh Lesch Parse Xcode or xcodebuild build and test logs with XCLogParser Provided actions Name Category Description xclogparser - Parse Xcode or xcodebuild build and test logs with XCLogParser Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 30 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 115 jira_transitions via Ostap Taran Runs transitions for specified JIRA tickets Provided actions Name Category Description jira_transitions - Runs transitions for specified JIRA tickets Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 22 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 115 bitrise via Robin AUTHIAT Fastlane plugin to trigger a bitrise build with some options Provided actions Name Category Description bitrise - Trigger a bitrise build Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 115 write_changelog_from_commits via Lewis Bright Writes a changelog by pattern matching on git commits since the last tag. Organises these into sections and creates a changelog with the same name as the current version code Provided actions Name Category Description write_changelog_from_commits - Writes a changelog file by pattern matching on git commits since the last tag. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 4 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 21 The more tests a plugin has, the better Open on GitHub 115 csv_translation via Manish Rathi A fastlane plugin to manage translation using a CSV file under git repository. \ud83d\ude80 Provided actions Name Category Description create_csv_feature_branch - Create a csv feature branch. delete_csv_translation_request - Delete a translation request based on identifier value. fetch_csv_branch - Fetch a csv file branch. create_csv_translation_request - Create a csv translation request. rebase_csv_translation_request - Rebase a translation request based on identifier value. get_csv_translation_requests - Get CSV translation requests info Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 115 yafirim via wd Yet another fastlane fir.im plugin Provided actions Name Category Description yafirim - Yet another fastlane fir.im plugin Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 114 android_version_manage via futabooo Manage Android App Versioning Provided actions Name Category Description android_set_version_code - Set the Version Code of your Android project android_commit_version_bump - This action is like a commit_version_bump action for Android android_set_version_name - Set the Version Name of your Android project Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 29 More downloads = more users have been using the plugin for a while tests 27 The more tests a plugin has, the better Open on GitHub 114 test_report via Naylin Medina customized template for iOS test reports\u001b Provided actions Name Category Description test_report - Create customized HTML template for test reports Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -4 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 113 zealot via icyleaf Upload IPA/APK/dSYM/Proguard files to Zealot which it provides a self-host Over The Air Server for deployment of Android and iOS apps. Provided actions Name Category Description zealot_version_check - Check app version exists from Zealot zealot_sync_devices - Check app version exists from Zealot zealot_debug_file - Upload dSYM/Proguard files to Zealot which it provides a self-host Over The Air Server for deployment of Android and iOS apps. zealot - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 113 mattermost via cpfriend1721994 Fastlane plugin for push messages to Mattermost Provided actions Name Category Description mattermost - Fastlane plugin for push messages to Mattermost Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 19 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 113 testfairy via Josh Holtz Upload IPA to TestFairy Provided actions Name Category Description testfairy - Upload an IPA to TestFairy Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 112 souyuz-ventaapps via Felix Rudat A fastlane component to make Xamarin builds a breeze Provided actions Name Category Description app_version - Easily set or print app version with `app_version` souyuz - Easily build and sign your app using `souyuz` Score details Metric Points Description contributors 30 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 32 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 112 upload_to_onesky via joshrlesch Upload a strings file to OneSky Provided actions Name Category Description upload_to_onesky - Upload a strings file to OneSky Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 31 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 112 twitter via rb_de0 A simple twitter plugin Provided actions Name Category Description tweet - Tweet a message specified in the parameter Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 112 podspec_dependency_versioning via Cole Dunsby Edit the versions of your podspec dependencies Provided actions Name Category Description change_podspec_dependency_version - This action will modify the version of a dependency in your podspec. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 19 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 17 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 112 download_hockey_ipa via horimislime A fastlane plugin that helps downloading .ipa from HockeyApp Provided actions Name Category Description download_hockey_ipa - A fastlane plugin that helps downloading .ipa from HockeyApp Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 25 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 111 dingtalk_robot via InfiniteReverse webhook for dingtalk robot Provided actions Name Category Description dingtalk_robot - webhook for dingtalk robot Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 111 alioss via woodwu upload ipa/apk to aliyun oos server, and scan QRcode to install app on mobile phone. Provided actions Name Category Description alioss - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 15 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -6 Lots of open issues are not a good sign usually, unless the project is really popular downloads 37 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 110 try_adb_test via Alexey Alter-Pesotskiy The easiest way to retry your Android Instrumented Tests Provided actions Name Category Description try_adb_test - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 2 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 110 version via Jason Nam Set version Provided actions Name Category Description set_version - Set version Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 110 git_commit_changelog_to_markdown via Fernando Berrios This plugin will take the output of the changelog_from_git_commits plugin and convert it into markdown Provided actions Name Category Description git_commit_changelog_to_markdown - This plugin will take the output of the 'changelog_from_git_commits' plugin and convert it into markdown Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 33 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 109 jira_build_number via Tom Elrod Insert build number into related jira issues Provided actions Name Category Description jira_build_number - Adds build number from CI as comment to associated jira issue. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 109 android_change_app_name via MaximusMcCann Changes the manifest's label attribute (appName). Stores the original name for revertinng. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 89 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 108 update_team_identifier via Jordan Bondo Updates the Team Identifier for a given target Provided actions Name Category Description update_team_identifier - Updates the Team Identifier for a given target Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 108 app_store_build_info via Rishabh Tayal Get build info from App Store Connect Provided actions Name Category Description app_store_build_info - Get build info from App Store Connect Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 22 More downloads = more users have been using the plugin for a while tests 18 The more tests a plugin has, the better Open on GitHub 108 submit_to_beta_app_review via Dan Loewenherz Submits an already processed build to Beta App Review. Provided actions Name Category Description submit_to_beta_app_review - Submits an already processed build to Beta App Review. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 108 jira_issues_release_notes via Erick Martins It generates a release note based on the issues keys and descriptions found in the commits Provided actions Name Category Description jira_release_changelog - It generates a release note based on the issues keys and descriptions found in the commits jira_comment - It generates a release note based on the issues keys found in branch name and descriptions found in the commits jira_versions - It generates a release note based on the issues keys found in branch name and descriptions found in the commits jira_issues_keys_from_commits - It generates a release note based on the issues keys found in branch name and descriptions found in the commits jira_feature_validation - It generates a release note based on the issues keys found in branch name and descriptions found in the commits jira_release_validation - It generates a release note based on the issues keys and descriptions found in the commits Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 107 run_lane via Jonathan Ritchie Run a specified fastlane lane in your project. Provided actions Name Category Description run_lane - Run a specified fastlane lane in your project Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 26 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 106 ixguard via Evgeniy Kubyshin ixguard plugin Provided actions Name Category Description ixguard - iXGuard build plugin Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 32 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 106 mocha_run_tests via Adam T Armstrong Run Mocha Tests from within fastlane Provided actions Name Category Description mocha_run_tests - Run Mocha Tests from within fastlane Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 106 git_build_versioning via Mikko Va\u0308lima\u0308ki Store build numbers in git tags for distributed sequential builds Provided actions Name Category Description reserve_git_build_number - Use git for tagging your builds for unique distributed sequential build numbers get_git_build_number - Use git for tagging your builds for unique distributed sequential build numbers Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 23 More downloads = more users have been using the plugin for a while tests 18 The more tests a plugin has, the better Open on GitHub 105 droidicon via @chrhsmt Generate required icon sizes and iconset from a master application icon Provided actions Name Category Description droidicon - Generate required icon sizes and iconset from a master application icon Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 104 update_provisioning_profile via Duy Nguyen This action will update xcodeproj with values extracted from your provisioning profile. Provided actions Name Category Description update_provisioning_profile - This action will update xcodeproj with values extracted from your provisioning profile. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 104 deploy_file_provider via Kamil Krzyk, Przemys\u0142aw Wo\u015bko Prepares metadata files with structure ready for AppStore, PlayStore deploy Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 84 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 104 au_auto_close_upload via Emil Upload artifacts to AppUnite's auto-close service Provided actions Name Category Description au_auto_close_upload - Upload artifacts to AppUnite's auto-close service Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 104 ding_talk via gaoxiang Auto send the pgyer app qr code to the ding talk. Provided actions Name Category Description ding_talk - Send the packaging information to the ding talk. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 104 react_native_release via Chris Ball Simplify releases for React Native apps. Provided actions Name Category Description create_fastlane_session - Simplify 2FA authentication for App Store Connect react_native_release - Simplify releases for React Native apps encrypt_fastlane_vars - Encrypt fastlane vars for CI decrypt_google_play_credentials - Decrypts app env vars and sets the values in the root .env file read_fastlane_session - Simplify 2FA authentication for App Store Connect create_changelog - Determines if a release should happen based on conventional commits. generate_android_keystore - Decrypts app env vars and sets the values in the root .env file accept_android_sdk_licenses - Accepts Android sdk licenses add_fastlane_var - Adds a single ENV var for fastlane to the encrypted repository encrypt_google_play_credentials - Encrypts credentials from Google Play and stores in the context repo. tag_release - Tags a release based on a prefix, version, and build numbers encrypt_app_vars - Encrypts app env vars and stores them in the context repo. determine_release_from_commits - Determines if a release should happen based on conventional commits. decrypt_android_keystore - Decrypts app env vars and sets the values in the root .env file decrypt_fastlane_vars - Decrypts fastlane ENV vars from the encrypted repo. Optionally sets them in ENV. add_app_var - Adds a single ENV var to the encrypted repository decrypt_app_vars - Decrypts app env vars and sets the values in the root .env file Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 21 More subscribers = more popular project stars 6 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -13 Lots of open issues are not a good sign usually, unless the project is really popular downloads 26 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 103 transifex via junjie basic transifex wrapper Provided actions Name Category Description transifex - basic transifex wrapper Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 25 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 17 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 103 release via Cole Dunsby Automates the steps to create a new release for a project. Provided actions Name Category Description make_release - Automates the steps to create a new release for a framework. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 19 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 103 send_e_mail via huangj a tool to sendmail Provided actions Name Category Description send_e_mail - a tool to sendmail Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 103 apphoster via JerryFans A simple plugin to upload your ipa file to AppHost Server in fastlane. Provided actions Name Category Description apphoster - A simple plugin to upload your ipa file to AppHost Server in fastlane. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 102 phraseapp via Issarapong Poesua a phraseapp-cli tool wrapper Provided actions Name Category Description phraseapp - a phraseapp-cli tool wrapper Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 102 xliff_en_gen via alexander sun gen Localizable.strings file from xliff Provided actions Name Category Description export_xliff - export xliff for an xcode project xliff_en_gen - Overwrite project Localizable.strings file from English version xliff Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 26 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 102 ipa_install_plist_generate via xiongzenghui iOS ipa enterprise install plist generate plugn Provided actions Name Category Description ipa_install_plist_generate - iOS ipa enterprise install plist generate plugn Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 101 gitlab_changelog via Z\u030cilvinas Sebeika Get changelog using GitLab API Provided actions Name Category Description gitlab_changelog - - Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 101 buildnumber via Nick Griffith Generates unique build numbers for iOS projects. Provided actions Name Category Description buildnumber - Generates unique build numbers for iOS projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 30 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 101 kuhverij via Morten B\u00f8gh Simplified Code Coverage Provided actions Name Category Description kuhverij testing Simplified Code Coverage Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 13 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -3 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 33 The more tests a plugin has, the better Open on GitHub 100 mobileiron via Roman Ivannikov Release your builds to Mobileiron In-Hause instance. https://www.mobileiron.com Provided actions Name Category Description mobileiron - Release your app with Mobileiron Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 21 The more tests a plugin has, the better Open on GitHub 100 summonbin via Jason Nam Execute command with summonbin Provided actions Name Category Description summonbin - Execute command with summonbin Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 100 update_build_settings_key via ungacy Updated code signing settings from 'Automatic' to a specific profile Provided actions Name Category Description update_build_settings_key - Updates build settings key to a new value Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 28 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 17 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 99 unsetinfoplistvalue via David Cordero Unsets value to Info.plist of your project as native Ruby data structures Provided actions Name Category Description unset_info_plist_value project Unsets value to Info.plist of your project as native Ruby data structures Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 12 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 99 line_notify via AKKHARAWAT CHAYAPIWAT To be able to send message to Line Notify Provided actions Name Category Description line_notify - You can use this action to send message via Line Notify Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 19 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 29 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 99 android_change_package_name via yeppao Change the package name in the AndroidManifest.xml file Provided actions Name Category Description android_change_package_name - Change the package identifier in the AndroidManifest.xml file Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 31 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 99 redmine_upload via Mattia Salvetti A fastlane plugin to upload file contents to Redmine Provided actions Name Category Description redmine_file_post - Uploads a file in a Redmine Files section of a given Redmine project redmine_upload - A fastlane plugin to upload file contents to Redmine Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 98 coreos via Oliver Letterer Deploy docker services to CoreOS hosts Provided actions Name Category Description coreos_deploy - Deploy docker services to CoreOS hosts Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 30 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 17 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 98 unity3d via fuzhongqing fastlane for unity3d engine Provided actions Name Category Description unity3d building fastlane plugin for unity3d engine Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 4 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 17 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 98 analyze_ios_framework via xiongzenghui analysis ios framework in buildout or pods dir Provided actions Name Category Description analyze_ios_framework - analysis ios framework in buildout or pods dir Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 17 More downloads = more users have been using the plugin for a while tests 15 The more tests a plugin has, the better Open on GitHub 97 last_fabric_version_code via Andr\u00e9s Hern\u00e1ndez Get the last Fabric version code for your Android app Provided actions Name Category Description last_fabric_version_code - Get the last Fabric version code for your Android app Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 97 debug_file via icyleaf Compress iOS/macApp dSYM or Android Proguard(mapping/R/AndroidManifest) to zip file Provided actions Name Category Description list_dsym misc Find and generate iOS/MacOS dSYM file(s) to zip file proguard misc Find and generate Android proguard file(s) to zip file dsym misc Find and generate iOS/MacOS dSYM file(s) to zip file Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 96 clear_archived_data via Onur Y\u0131ld\u0131r\u0131m Deletes the archive file located at SharedValues::XCODEBUILD_ARCHIVE. Provided actions Name Category Description clear_archived_data - Deletes the archive file located at SharedValues::XCODEBUILD_ARCHIVE. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 96 copy via Jason Nam Copy file Provided actions Name Category Description copy - Copy file Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 96 bomb_emoji via Josh Holtz \ud83d\udca3\ud83d\udca5 No more emojis Provided actions Name Category Description bomb_emoji - No more emojis Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 96 get_last_circleci_build_number via Dawid van der Hoven fetches the last build number from circleci. Provided actions Name Category Description get_last_circleci_build_number - fetches the last build number from circleci. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 96 buddybuild via Jorge Revuelta This plugin allows the communication with the Buddybuild API. Provided actions Name Category Description buddybuild_list_apps - Retrieves all the applications for a given account in Buddybuild. buddybuild_get_latest_build_number - Retrieves the latest build number for a given Application Identifier. buddybuild_show_latest_build - Retrieves the latest build for a given Application Identifier. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 95 match_import via Serhii Batsevych Match repository custom import Provided actions Name Category Description match_export_apns - Match repository apns certs export match_export - Match repository custom export match_import - Match repository custom import match_import_apns - Match repository apns certs import match_remove_invalid_apns - Match repository apns certs remove invalid match_remove - Match repository custom export Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 95 get_application_id via Helder Pinhal Get the applicationId of an Android project. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 63 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 95 lastpass via Antoine Lamy Easily sync your Apple ID credentials stored in LastPass with your keychain using CredentialManager Provided actions Name Category Description lastpass - Easily sync your Apple ID credentials stored in LastPass with your keychain using CredentialManager Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 19 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 95 transifex_tool via maydin Transifex tool that pulls translations using transifex rest api Provided actions Name Category Description rest_pull - Transifex plugin for pull and push translations cli_pull - Transifex tool that pulls translations using transifex cli client cli_push - Transifex tool that push translations using transifex cli client Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 94 sous via Jonathan Nogueira A tool to help create and sync keystores, as well as sign apks and aabs for the play store Provided actions Name Category Description plate - This action signs apks using an existing keystore pass - This action retrieves existing keystores for the android build system Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 94 dingtalk via Kim Huang a fastlane plugin for dingtalk robot Provided actions Name Category Description dingtalk - a fastlane plugin for dingtalk. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 94 fabric_beta_unregistered_devices via Slava Kornienko SHORT Provided actions Name Category Description fabric_beta_unregistered_devices - Get unregistered devices from Fabric Beta. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 94 promo_code via marumemomo promo_code Provided actions Name Category Description promo_code - promo_code Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 93 aws_device_farm_upload via Takuma Homma Uploads specified file to AWS Device Farm project Provided actions Name Category Description aws_device_farm_upload - Uploads specified file to AWS Device Farm project Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 93 xbluepill via UladzimirKisialiou It is a fastlane plugin that allows to use bluepill (linkedin library) as a fastlane command Provided actions Name Category Description xbluepill - Fastlane plugin that allows to use bluepill (linkedin library) as a fastlane command Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 5 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 93 source_env_from_file via xiongzenghui set ENV[\"key\"]=value from file like key=value Provided actions Name Category Description source_env_from_file - set ENV['key']=value from file like key=value Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 93 check_good_version via Lyndsey Ferguson Checks the version of the installed Good framework Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 31 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 93 flint via Jyrno Ader Easily sync your keystores across your team using git Provided actions Name Category Description flint - DESCRIPTION Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 93 react_native_util via Jimmy Dee Community utilities for React Native projects Provided actions Name Category Description react_pod - Community utilities for React Native projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 93 increment_version_code_android via SimoneCorsini Increment the version code of your android project, supporting different product flavors. Provided actions Name Category Description increment_version_code_android - Increment the version code of your android project, supporting different flavors. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 92 poesie via Patrik Potoc\u030cek Exports translations from POEditor using poesie tool. Provided actions Name Category Description poesie - Exports translations from POEditor using poesie tool. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 4 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 28 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 92 apperian via Tomi Blank Allows to upload your IPA file to Apperian Provided actions Name Category Description apperian - Allows to upload your app file to Apperian Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 29 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 91 wexlane via Chris River Common tools for CI Provided actions Name Category Description android_get_version - Common tools for CI ios_get_version - Common tools for CI Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 91 xamarin via Thomas Charriere Build Xamarin Android + iOS projects Provided actions Name Category Description msbuild - Build Solutions with msbuild nuget_restore - Nuget xamarin_android - Build Xamarin Android + iOS projects xamarin_ios - Build Xamarin Android + iOS projects nuget_install - Nuget clean - Clean artifacts Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 23 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 91 android_update_package_identifier via Jonathan Nogueira Changes the applicationId inside of your build.gradle file Provided actions Name Category Description android_update_package_identifier - Changes the applicationId inside of your build.gradle file. Does not change the AndroidManifest Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 90 sunny_project via ericmartineau Sunny flutter projects Provided actions Name Category Description rename_assets - Renames assets, generates an assets.dart file to reference them. pubspec_doctor - Modify pubspec for local or git development sunny_release - - increase_version - Increment version number in pubspec.yaml file sunny_build_runner - Cleans and runs flutter build_runner sunny_build_web - Builds a web project local_packages - Checks out local dart packages finalize_version - Commit version tags release_notes - Get or retrieve release notes from git generate_icons - Generates a flutter icon set as a font dart_package_status - - curr_semver - Gets the current version from the project's pubspec.yaml file pub_release - Releases a dart package pub_publish - Executes pub publish command Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 31 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 90 copy_screenshots via yosshi4486 Copy screenshots with a specified device name. Provided actions Name Category Description copy_screenshots screenshots Copy screenshots with a specified device name. This action should be executed after `capture_ios_screenshots` action. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 2 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 90 update_app_associated_domains via Nicolas TRUTET [iOS] Replace associated domains array for the key in the entitlement file. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 58 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 89 git_authors via Viktor Rutberg List authors of a Git repository Provided actions Name Category Description git_authors - List all authors of a Git repository Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 89 google_chat_message via Douglas Garcia Send simple text messages to Google Chat Provided actions Name Category Description google_chat_message - Send simple text messages to Google Chat Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 89 aws_sns_topic via Levi Bostian Fastlane plugin to public message to SNS topic. Provided actions Name Category Description aws_sns_topic - Public a message to a AWS SNS topic. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 88 docc via Kukurijek Automate docc - documentation for swift frameworks and packages Provided actions Name Category Description docc - Automate docc - documentation for swift frameworks and packages Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 1 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 88 poeditor via Kostia Myts Upload strings to POEditor Provided actions Name Category Description upload_strings_to_poeditor - Upload strings to POEditor Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 88 goodify_info_plist via Lyndsey Ferguson This plugin will update the plist so that the built application can be deployed and managed within BlackBerry's Good Dynamics Control Center for Enterprise Mobility Management. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 56 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 88 unreleased_changelog via Manish Rathi A fastlane plugin to manage unreleased changelog using a YAML file. \ud83d\ude80 Provided actions Name Category Description get_unreleased_changelog - Get the unreleased changelog add_unreleased_changelog - Add a new entry in unreleased changelog delete_unreleased_changelog - Delete changelog entry from unreleased changelog stamp_unreleased_changelog - Stamp unreleased changelog ensure_unreleased_changelog - - Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 88 verify_ipa_with_app_store_connect via Onno Bergob Uses iTMSTransporter to verify an ipa with App Store Connect. Provided actions Name Category Description verify_ipa_with_app_store_connect - Uses the command line tool iTMSTransporter provided with Xcode to verify the ipa. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 1 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 30 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 88 svn_commit via cleexiang svn plugin with fastlane Provided actions Name Category Description svn_commit - Commit to svn repos with fastlane Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 88 postmark via Levi Bostian Fastlane plugin to public message to SNS topic. Provided actions Name Category Description postmark - Send emails via Postmark in fastlane! Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 88 danger_result via marumemomo Get danger data plugin. Provided actions Name Category Description danger_result - Get danger data plugin. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 20 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 87 android_reporter via Yazan Tarifi Open Android Emeulators Then Generate Report File From Tests then Upload the File To Slack Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 55 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 87 hello_test via Gianfranco Manganiello test Provided actions Name Category Description hello_test - test Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 87 ios_flavors via Zachary Davison Create multiple build flavors of an iOS .ipa file using a directory of .plist files. Provided actions Name Category Description create_ipa_flavors - Create multiple build flavors of an iOS .ipa file using a directory of .plist files create_sim_flavors - Create multiple build flavors of an iOS .app (for the simulator) using a directory of .plist files Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 87 maintenance via Jimmy Dee Maintenance actions for plugin repos. Provided actions Name Category Description rake - General-purpose rake action to invoke tasks from a Rakefile or elsewhere. update_rubocop - Automatically updates RuboCop to the latest version. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 87 fetch_version_code via CoorpAcademy Fetch (and increment) version code for given platform Provided actions Name Category Description fetch_version_code - Fetch (and increment) version code for given platform Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 18 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license -50 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 51 The more tests a plugin has, the better Open on GitHub 87 xcode_tools_select via Vincent HO-SUNE Sets the DEVELOPER_DIR environment, used by fastlane to run Xcode command line tools, to a specific Xcode version found on the current system. Provided actions Name Category Description xcode_tools_select building Set the [version] of the default Xcode Command Line Tools path to use. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 86 simulator_add_root_cert via Nico Richard Add a root cert to your simulators with Fastlane Provided actions Name Category Description simulator_add_root_cert - Easily add a root cert to your simulators with Fastlane Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 2 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 86 user_default_get via zhangqi get value like ios userDefault Provided actions Name Category Description user_default_get - get value like ios userDefault Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 25 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 86 git_status_clean via zhangqi clean git status Provided actions Name Category Description git_status_clean - clean git status Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 25 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 86 flutter_build via viniciusmo Build your flutter project directly from your lane. Provided actions Name Category Description flutter_build - Build our project directly from your lane. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 18 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 86 download_hocky_build via Anton Morozov Download newest build from HockeyApp (iOS & Android) Provided actions Name Category Description download_hocky_build - Download newest build from HockeyApp (iOS & Android) Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 86 allure_zephyr via Nikita Ianenko Publish Allure results to Zephyr Provided actions Name Category Description allure_zephyr - Publish Allure results to Zephyr Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 1 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 86 user_default_set via zhangqi fastlane save user default like ios userDefault Provided actions Name Category Description user_default_set - fastlane save user default like ios userDefault Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 25 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 85 buggly via zhuyunlong \u4e0a\u4f20Bugly Provided actions Name Category Description buggly - Upload the dSYM file to Buggly crash analyze system. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 27 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 85 discord via Matheus Gambati Discord integration with Fastlane Provided actions Name Category Description discord - Discord integration with Fastlane Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 85 pgyer_v2 via nice2m pgyer for v2 suppor Provided actions Name Category Description pgyer - distribute app to pgyer beta testing service Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 85 simplemdm via Shannon Hicks Fastlane plugin for uploading iOS builds to SimpleMDM Provided actions Name Category Description upload_to_simplemdm - Upload IPA to Simple MDM Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 0 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 84 xamversion via Jake Barnby Read and manipulate Android and iOS app versions. Provided actions Name Category Description xamversion - Read and manipulate Android and iOS app versions. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 4 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 84 generate_xliff via Kostia Myts Generates XLIFF file Provided actions Name Category Description generate_xliff - Generates XLIFF file remove_xliff_artifacts - Generates XLIFF file Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 23 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 84 schedule via marumemomo Run lane from current time Provided actions Name Category Description get_lane - Run lane from current time Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 84 testbm via Bemobile A Test plugin Provided actions Name Category Description testbm - A Test plugin bmversion - TODO bmdistribution - Distributes an app version via firebase, testflight, browsertack or the play store. bmbuild - TODO salutation - Returns hello world bminfo - TODO bmslack - Sends a message to a Slack chat specified in the SLACK_URL environment variable Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 30 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 83 flutter_dart_version_manager via Marvin Moeltgen A version manager for flutter Provided actions Name Category Description flutter_dart_version_manager - A version manager for flutter flutter_set_version - A version manager for flutter Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 83 enumerated_translations via Mads B\u00f8geskov Converts a strings file to an enum, to make it more safe to access translations. Provided actions Name Category Description enumerated_translations - Converts a strings file to an enum, to make it more safe to access translations. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 82 dependency_manager_outdated via matsuda Fastlane plugin to check project's outdated dependencies Provided actions Name Category Description cocoapods_outdated - Check outdated CocoaPods dependencies dependency_manager_outdated - Fastlane plugin to check project's outdated dependencies carthage_outdated - Check outdated Carthage dependencies Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 82 creator via David Ackerman Mobile build framework for rust-lang Provided actions Name Category Description creator_build_android - Builds apk file from rust project creator_build_ios - Builds ipa file from rust project Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 82 gitlab_tag_release via Erick Martins Simple plugin to manage gitlab releases Provided actions Name Category Description gitlab_get_release - - gitlab_create_release - - gitlab_collect_release_evidence - - gitlab_list_releases - - gitlab_delete_tag - - gitlab_update_release - - gitlab_delete_release - - Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 0 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 82 lock_keychain via Alex Antonyuk Plugin for locking unlocked keychain Provided actions Name Category Description lock_keychain - Plugin for locking unlocked keychain Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 24 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 82 xambuild via Jake Barnby Fastlane plugin to make Xamarin builds easy Provided actions Name Category Description xambuild - Easily build and sign your Xamarin iOS or Android app using `xambuild` Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 4 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 81 managed_google_play via Jan Piotrowski Create Managed Google Play Apps Provided actions Name Category Description get_managed_play_store_publishing_rights - Obtain publishing rights for custom apps on Managed Google Play Store managed_google_play - Create Managed Google Play Apps create_app_on_managed_play_store - Create Managed Google Play Apps Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -5 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 81 publish_dropbox via Tommyvanvliet This plugin publishes artifacts over to Dropbox via a generated api token from Dropbox Developer API. Provided actions Name Category Description publish_dropbox - This plugin publishes artifacts over to Dropbox via a generated api token from Dropbox Developer API. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 81 bitrise_bcsymbolmaps via Oleksandr Skrypnyk Download BCSymbolMaps from Bitrise Provided actions Name Category Description bitrise_download_bcsymbolmaps - Downloads BCSymbolMaps from Bitrise before uploading them to a crash reporting tool. bitrise_clean_bcsymbolmaps - Cleans up downloaded artifacts. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 81 upload_dsym via xiongzenghui upload dsym to your specify server Provided actions Name Category Description upload_dsym - upload dsym to your specify server Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 13 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 19 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 80 line_message via Wasith Theerapattrathamrong Use to send message to Line chat Provided actions Name Category Description line_message notifications Use to send message to Line chat Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 80 periphery via Liam Nichols Identifies unused code in Swift projects using Periphery Provided actions Name Category Description periphery - - Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 24 The more tests a plugin has, the better Open on GitHub 80 gitlab_get_max_version_branch via xiongzenghui get a max version branch from a gitlab project, like: master_5.11.9 Provided actions Name Category Description gitlab_get_max_version_branch - get a max version branch from a gitlab project, like: master_5.11.9 Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 6 The more tests a plugin has, the better Open on GitHub 80 depman via Andrey Shapovalov Invokes depman-scanner to programmatically run Depman analysis Provided actions Name Category Description depman testing Arcsinus Dependency manager Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 1 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 80 git_clone via xiongzenghui a wrapper for git clone command Provided actions Name Category Description git_clone source_control this is a wrapper for git clone command Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 3 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 13 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 16 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 79 build_app_for_simulator via Alexey Alter-Pesotskiy This plugin builds apps exclusively for iOS, tvOS or watchOS Simulators. Provided actions Name Category Description build_app_for_simulator building This plugin builds apps exclusively for iOS, tvOS or watchOS Simulators. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 1 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 78 download_object_from_s3 via aomathwift Download objects from AWS S3 Provided actions Name Category Description download_object_from_s3 - Download objects from AWS S3 Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 15 The more tests a plugin has, the better Open on GitHub 78 ding_talk_msg_push via asynclog dingTalk robot msg push tool Provided actions Name Category Description ding_talk_msg_push - dingTalk robot msg push tool Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 77 git_pull_branch via Bhuvanesh BS pull code from different branch Provided actions Name Category Description git_pull_branch - pull code from different branch Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 76 rename_android_package via Josh Holtz Renames Android package Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 56 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 76 release_version via Leon Keijzer This plugin makes it possible to release an already approved version in AppStore Connect Provided actions Name Category Description reject_version - This action makes it possible to reject a binary in AppStore Connect release_version - This plugin makes it possible to release an already approved version in AppStore Connect Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 76 fivethree_ionic via Marc Stammerjohann Fastlane plugin for Ionic v4 Projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 56 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 76 dropbox_upload via jason upload files to dropbox Provided actions Name Category Description dropbox_upload - upload files to dropbox Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 75 git_add_tag via xiongzenghui git add tag wrapper Provided actions Name Category Description git_add_tag source_control git add tag wrapper Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 75 sequenia_gitflow via Semen Kologrivov Script for communicating with sequenia's git repos Provided actions Name Category Description fetch_merged_tasks - Fetch merged into current branch feature tasks after last release tag Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 18 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 75 secrets via Cyril Cermak, Jo\u0308rg Nestele Securely store secrets in source code. Provided actions Name Category Description decrypt_secrets - Securely store secrets in source code encrypt_secrets - Securely store secrets in source code Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 75 import_from_url via Doruk Kangal Import another Fastfile from given url to use its lanes Provided actions Name Category Description import_from_url - Import another Fastfile from given url to use its lanes Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 75 bitwarden via Ilija Boshkov Bitwarden CLI warpper plugin Provided actions Name Category Description bitwarden_login - You can use this action to login to BitWarden and unlock the vault. bitwarden_unlock_vault - You can use this action to download an item's attachment from BitWarden. bitwarden_get_object - You can use this action to download an item's attachment from BitWarden. bitwarden_download_attachment - You can use this action to download an item's attachment from BitWarden. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 15 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 74 logme via Lui\u0301s Esteves Provides a simple way to get logs from two delta commits Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 54 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 74 gitlab_branch_diff via xiongzenghui gitlab compare two branch to get diffs Provided actions Name Category Description gitlab_branch_diff - gitlab compare two branch to get diffs Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 73 speculid via Leo Dion Use speculid to easily manage graphics in Xcode projects Provided actions Name Category Description speculid - Use speculid to Easily Manage Graphics in Xcode Projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 73 gsheet_metadata via Kevin Morais Generate metadata from Google Spreadsheet Provided actions Name Category Description gsheet_metadata - Generate metadata from Google Spreadsheet Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 73 make via xiongzenghui Linux GNU Makefile make wrapper Provided actions Name Category Description make building Linux GNU Makefile make wrapper Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 73 pgyer_jvtd via \u9648\u78ca\u7684MacBook Pro \u84b2\u516c\u82f1\u805a\u901a\u8fbe\u63d2\u4ef6 Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 53 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 73 jira_set_feature_build via Tommy Sadiq Hinrichsen Tags passed in Jira issue with a feature build url from parameter :url Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 73 resize_screenshots via Levi Bostian Resize screenshots taken from your simulator to use for Frameit. Provided actions Name Category Description resize_screenshots - Resize screenshots taken from your simulator to use for Frameit. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 21 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -2 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 73 android_channels via icyleaf Package unsign apk with channels Provided actions Name Category Description android_channels building Package apk file with channels Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 72 bugtags via wliu6 Upload symbols to Bugtags Provided actions Name Category Description bugtags - Upload symbols to Bugtags Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 17 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 72 deploy_aws_s3_cloudfront via Hector Deploy local directory to AWS S3 bucket and invalidate CloudFront Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 22 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 72 report via Bruno Migue\u0302ns After an action, like scan for instance, you're able to generate a report file. This fastlane plugin gives you a way to upload and share your report using Slack. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 40 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 72 acknowledgements via Simon Rice, Christophe Knage Use Fastlane to give credit where it's rightfully due Provided actions Name Category Description acknowledgements - Use Fastlane to give credit where it's rightfully due. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license -50 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 26 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 72 goyuyun via vincentwu08 \u4e00\u952e\u53d1\u5e03\u81f3\u4e70\u597d\u4e91 Provided actions Name Category Description goyuyun - \u4e00\u952e\u53d1\u5e03\u81f3\u4e70\u597d\u4e91 Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 11 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 72 sns_http_subscribe via mnk98 Subscribe to sns topic using http/https endpoint Provided actions Name Category Description sns_http_subscribe - - Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 71 mailjet via thibaut noah plugin to send mail notifications for build release Provided actions Name Category Description mailjet - Send a custom message to an email group with mailjet Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 13 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 71 rm_derived_data via xiongzenghui de Provided actions Name Category Description rm_derived_data building after build finish remove xx.xcworkspace/xx.xcodeproj specify DerivedDatagst/* Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 70 upload_symbols_to_shake via Shake Team Upload dSYM to Shake Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 70 app_previews via Fausto Upload app previews to the App Store Connect Provided actions Name Category Description upload_app_previews - Upload app previews to the App Store Connect Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 9 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 70 s3_cert via Josh Lesch Store and install encrypted Certs from s3 Provided actions Name Category Description s3_upload_certs - Upload encrypted certs to s3 s3_cert - Pull Certs from s3 and install them into keychain. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 70 appsigner via Valeriy Makarshin AppSigner Provided actions Name Category Description appsigner - AppSigner Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 69 get_derived_data_path via Rajiv Shah Retrieves the path of a workspace in DerivedData Provided actions Name Category Description get_derived_data_path - Retrieves the path of a workspace in DerivedData Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 16 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 69 checkbuild via Johannes Steudle This plugin will check any binary library for unwanted symbols and architectures Provided actions Name Category Description checkbuild - This plugin will check any binary library for unwanted symbols and architectures. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 69 ci_apps via JiaqiangSong Config multiple apps of CI Provided actions Name Category Description get_extensions - A short description with < = 80 characters of what this action does ci_apps - Config multiple apps of CI get_ci_apps - A short description with < = 80 characters of what this action does get_ci_app_value - A short description with < = 80 characters of what this action does get_ci_app - A short description with < = 80 characters of what this action does get_emtitlements_plist_file_path - A short description with < = 80 characters of what this action does get_target_type - A short description with < = 80 characters of what this action does get_info_plist_file_path - A short description with < = 80 characters of what this action does Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 15 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 69 appcenter_get_recent_release_version via Kitti Pariyaakkarakul Get recent release version from appcenter Provided actions Name Category Description appcenter_get_recent_release_version - Get recent release version from appcenter Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 68 gitlab_merge_request_add_note via xiongzenghui add merge request note for gitlab server api Provided actions Name Category Description gitlab_merge_request_add_note - add merge request note for gitlab server api Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 68 gitlab_merge_request_participants via xiongzenghui Get a list of merge request participants Provided actions Name Category Description gitlab_merge_request_participants - Get a list of merge request participants Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 68 redpill via omniprojects Fastlane plugin to use bluepill in fastlane Provided actions Name Category Description redpill - Plugin to use bluepill in fastlane Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 3 More stars = more popular project forks 10 More forks = more people seem to use/modify this project has_mit_license -50 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues -1 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 68 avd_emulator via Guillaume Elloy This plugin is listing available android avd emulators, allowing you to start the selected one. Provided actions Name Category Description start_avd_emulator - This plugin is listing available android avd emulators, allowing you to start the selected one. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 13 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 68 cuttly_api via Yalan fastlane plugin for cuttly. Provided actions Name Category Description cuttly_api - fastlane plugin for cuttly. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 68 load_erb_config via Joaomon7eiro Fastlane plugin to read erb configuration file Provided actions Name Category Description load_erb_config - Fastlane plugin to load configuration object from yml file Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 8 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 68 git_remove_tag via xiongzenghui remove git origin and remote repo tag Provided actions Name Category Description git_remove_tag source_control remove git origin and remote repo tag Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 67 fetch_metadata_from_google_sheets via kurarararara Get App Store metadata from Google Sheets. Provided actions Name Category Description fetch_metadata_from_google_sheets - Get App Store metadata from Google Sheets. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 67 bugly via chaosky Upload dSYM to bugly. Provided actions Name Category Description bugly - Upload dSYM to bugly. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 13 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 67 bowl via Benjamin Wulff Handles uploads to BOWL backend Provided actions Name Category Description bowl - Handles uploads to BOWL backend get_gradle_property - - set_gradle_property - Set the value of your project Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 67 work_wechat via DevZhang work wecaht webhook Provided actions Name Category Description work_wechat - work wecaht webhook Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 9 The more tests a plugin has, the better Open on GitHub 66 microsft_teams_message_card via Dorian Cheignon Send a message card to your Microsoft teams channel Provided actions Name Category Description microsft_teams_message_card notifications Send a message card to your Microsoft teams channel Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 65 u3d via Jerome Lacoste Fastgame's u3d (a Unity3d CLI) integration Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 33 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 65 gitlab_increate_line_notes via xiongzenghui filter gitlab merge request changes files & swiftlint json, last add line code with gitlab discussion Provided actions Name Category Description gitlab_increate_line_notes - filter gitlab merge request changes files & swiftlint json, last add line code with gitlab discussion Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 12 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 65 circle_ci via Manish Rathi A fastlane plugin for Circle CI. \ud83d\ude80 Provided actions Name Category Description download_circle_ci_artifact - Download the CircleCI artifact file. trigger_circle_ci_job - Triggers a new CircleCI Job get_circle_ci_build_status - CircleCI build status get_circle_ci_artifacts - List the CircleCI artifacts. Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 65 deploy_module_bintray via Bruno Oliveira Gradle action to deploy a Module from an Android project Provided actions Name Category Description deploy_module_bintray - Gradle actions to deploy a module from an Android project Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 22 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 14 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 65 gitter via Andrew Havens A Fastlane plugin for sending a message to a Gitter room. Provided actions Name Category Description gitter - Send a message to a Gitter room. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 10 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 64 google_chat_v2 via \u201cmao-karrostech\u201d google chat v2 Provided actions Name Category Description google_chat_v2 - Send message to google chat v2 Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 64 moss via Shaggon du Moss is a tool that allows developers on Apple platforms to use any frameworks as a shared cache for frameworks built with Carthage. Provided actions Name Category Description moss - moss is a tool that allows developers on Apple platforms to use any frameworks as a shared cache for frameworks built with Carthage. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 14 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 64 azuredevops_envvars via Star Leasing Company A Fastlane plugin that provides passthrough access to AzureDevOps environment variables Provided actions Name Category Description azuredevops_envvars - A Fastlane plugin that provides passthrough access to AzureDevOps environment variables Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 62 jira_ticket via Dorian Cheignon get ticket in jira board Provided actions Name Category Description jira_ticket - get ticket in jira board Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 62 jira_link via David Brooks This plugin allows you to link two tickets together in JIRA Provided actions Name Category Description jira_link misc This plugin allows you to link two tickets together in JIRA Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 62 codemagic via Mikhail Matsera Fastlane plugin to trigger a Codemagic build with some options Provided actions Name Category Description codemagic - Fastlane plugin to trigger a Codemagic build with some options Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 62 appcenter_get_version via Markus Kramm get the latest build version from the app center Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 42 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 61 retrieve_devices via Lachlan Young, BuiltByProxy retrieve all devices registered to your apple certrificate Provided actions Name Category Description retrieve_devices misc This action will retrieve a list of each device registered with Apple Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 60 app47 via Shannon Hicks Fastlane plugin for uploading builds to App47 Provided actions Name Category Description upload_to_app47 - Upload IPA to Simple MDM Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 0 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 60 asana_task via respecu asana task plugin Provided actions Name Category Description asana_task - asana task plugin Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 2 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 60 fabulove via carry \"fabulove\" distribution system fastlane plugin Provided actions Name Category Description fabulove - 'fabulove' distribution system fastlane plugin Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 6 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 59 git_import via Dmitry Frishbuter Import all required fastlane dependencies from the git repository and keep your Fastfile simple! Provided actions Name Category Description git_import - Import all required fastlane dependencies from the git repository and keep your Fastfile simple! Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 1 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 59 npm via Erick Martins A very simple plugin to run npm scripts Provided actions Name Category Description npm_test - A very simple plugin to run npm scripts npm_run - A very simple plugin to run npm scripts npm_post_install - A very simple plugin to run npm scripts npm_install - A very simple plugin to run npm scripts upgrade_package_json_version - A very simple plugin to run npm scripts npm_lint - Runs lint script Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 59 aliyunoss via yigua upload package to aliyunoss Provided actions Name Category Description aliyunoss - - Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 58 teams_message_card via Dorian Cheignon Send a message card to your Microsoft teams channel Provided actions Name Category Description teams_message_card notifications Send a message card to your Microsoft teams channel Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 5 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 56 clean_xcarchive via matsuda Fastlane plugin to remove xcarchive created when build & archive Provided actions Name Category Description clean_xcarchive - Delete the archive created at build Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 56 pgyer_cl via chenlei pgyer_cl Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 52 dingtalk_msg via fuzhongqing dingtalk robot Provided actions Name Category Description dingtalk_msg - dingtalk robot Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 3 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 52 bw_open_finder via xubowen this is tool for mac osx to open finder Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 51 open_finder via xiongzenghui this is tool for mac os x to open finder Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 51 fiv_increment_build_no via Fivethree fastlane plugin for ionic 4 Provided actions Name Category Description fivethree_ionic - Fastlane plugin for Ionic v4 Projects fiv_update_version_and_build_no - Fastlane plugin for Ionic v4 Projects fiv_update_version - A short description with < = 80 characters of what this action does fiv_increment_build_no - fastlane plugin for ionic 4 fiv_build_ionic_android - A short description with < = 80 characters of what this action does fiv_add_transparent_statusbar - You can use this action to do cool things... Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 6 More subscribers = more popular project stars 2 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 18 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 50 itargetchecker via Catalin Prata Checks the xcode proj file for targets and points out which files from the project are not present in a certain target. Provided actions Name Category Description itargetchecker - Checks the xcodeproj file for targets and points out which files from the project are not present in a certain target. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 9 More subscribers = more popular project stars 2 More stars = more popular project forks 5 More forks = more people seem to use/modify this project has_mit_license -50 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 50 How well is the README of the document written age 20 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 47 emoji_fetcher via Felix Krause Fetch the emoji font file and copy it to a local directory Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 47 update_device_name via huyanping update device name Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 45 au_danger_gitlab via Emil Allows to use Danger on GitLab Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 25 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 45 fetch_itc_versions via Bennett Rogers Returns a listing of all app versions and their latest builds from iTunes Connect. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 45 discord_webhook_notifier via Samuel B Bispo Notify a Discord channel easuly when a build breake Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 45 jandi_webhook via respecu webhook for jandi Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 44 imagesgoldenrun via Lui\u0301s Esteves this allows comparing images from a golden run with the actual results Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 24 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 41 pixie via Piotrek Dubiel Show your build status on PIXIE! Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 21 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 40 match_android_keystore via izzis92 Get android keystores from github Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 40 pgyer-password via Kila2 distribute app to pgyer beta testing service Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 39 version_from_last_tag via Jeff Stein Perform a regex on last (latest) git tag and perform a regex to extract a version number such as Release 1.2.3 Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 19 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 39 transifex_api via alexander sun basic transifex api wrapper Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 38 profile_expiration_info via Steven Chung Returns if the provisioning profile has expired and the DateTime it expires Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 38 testin via rudy.li testin Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 37 rescan_flaky_tests via Ichiko Moro Re-run scan action for each failed test cases. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 37 appcenter_releases via Qutaibah Esa Get app releases information from AppCenter Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 37 xcode8_srgb_workaround via Siarhei Fiedartsou Converts PNGs and JPEGs in your project to sRGB format to avoid crashes when building with Xcode 8 for iOS 8 and earlier deployment target Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 37 gen_dev_workspace via Andrew Breckenridge Configures an xcworkspace with specified xcodeprojs Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 36 parse_json via Felix Krause Parse a JSON file Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 36 install_certificates via Dylan Gyesbreghs Install all the certificates located in you're project. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 36 ipa_scale via Danilo Caetano \"Checks the size of your built .ipa and warns you if you you are near the given threshold.\" Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 35 carthage_cache_res via Thi Doan A Fastlane plugin that allows to cache Carthage/Build folder in Amazon S3. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 35 test_demo via StephenCurry30 A test demo of fastlane plugin Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 35 parse_configurations via Melki It is used to parse json configration Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 35 bluepillar via Shashikant86 Fastlane Plugin to Run XCUITests in Parallel using Bluepill. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 35 carthage_cache_ftps via Wolfgang Lutz Allows to publish or install the carthage builds via ftps to avoid recompilation Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 15 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 35 bluepillarx via jterhorst Fastlane Plugin to Run XCUITests in Parallel using Bluepill. Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 34 google_cloud_storage_update via Jeroen Stoker Google Cloud Storage Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 34 linear_api via Vini\u0301cius Provide an interface to access the Linear API Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 33 scipio via evandcoleman A fastlane plugin for Scipio - A caching tool for Swift Package Manager Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 33 hello_gem_kimjg via kimjg hello gem kimjg Score details Metric Points Description contributors 12 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub 33 sxc_aliyun_oss via JimmyDaddy sxc aliyun oss uploader Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 13 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 32 screenshot_notifier via Moyuru Aizawa Post screenshots to a pull request Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 32 flutter_build_increment via Matthias Seiderer Increments pubspec.yaml build version number i.e. 1.0.0+1 to 1.0.0+2 Provided actions Name Category Description flutter_build_increment - Increments pubspec.yaml build version number i.e. 1.0.0+1 to 1.0.0+2 Score details Metric Points Description contributors 6 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 0 More downloads = more users have been using the plugin for a while tests 3 The more tests a plugin has, the better Open on GitHub 32 box via Wesley Sui library for the Box Content API Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 32 intentconfirmation via Kamil Krzyk Halts the lane invocation, asks user to confirm if he wants to continue, may require password or key. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 32 ensure_swift_version via Shashikant86 This plugin ensure version of Swift language used for project Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 12 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 31 manage_android_versions via Bruno Correia An easy way to manage your Android App versions. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 31 playship via Helmut Januschka Interact with Google Play Api Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 11 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 30 git_commit_lzx via zhenxingliu git commit all add change to git Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 10 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 29 yalantis_ci via Dima Vorona Set of utilities and useful actions to help setup CI for Yalantis projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 29 install_provisioning_profile via Alexey Martynov This plugin installs provisioning profile to Xcode Provisioning Profiles directory Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 29 jenkins_job_config via Jerome Lacoste Generate the config for a Jenkins job Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 9 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 27 figlet via Jeff Stein Wrapper around figlet which makes large ascii text words Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 27 covfefe via Jakob Jensen A templating engine for generating common file structures. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 27 devicelab_bot via Almouro Automatically install your app on your devicelab with the devicelab bot Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 7 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 26 bitly via Thang Nguyen create bit.ly short link from url Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 6 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 25 add_fix_version via Dmitry Krasulia Create and makr tickets with fix version Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 25 gitlab_increate_swiftlint via xiongzenghui Incremental Code Check using swiftlint for swift language files on gitlab platform ! Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 25 update_app_name via huyanping update app name Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 24 mobile_common via Alexander Semenov Collection of common CI actions for Android, iOS and MacOSX projects - like unit tests, app publishing, version increment, screenshots, etc. Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 24 bump_android_version via Sea\u0301n Labastille Bump Android Manifest Version Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 24 current_datetime via Melki To get current date and time as string Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 24 devresponse via Helmut Januschka Enables Spaceship to deal with developer response Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 24 ram_disk via icyleaf Use a temporary ram disk to do anything else Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 24 mynewplu via lingshijun new plugin Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 24 asciii via Danielle Tomlinson Add ascii text to your fastlane output Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 4 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 23 xcodebuildonlytesting via Lu\u00eds Esteves Creates a array of tests from a junit to feed the xcodebuild only-testing Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 23 incloud_xamarin_build via punksta, torben.carstens@incloud.de Build xamarin android\\ios projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 23 xamarin_build_switch via punksta Build xamarin android\\ios projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 3 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 22 ms_teams via Thang Nguyen Send a success/error message to your Microsoft Teams channel Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 22 teamify via Ron June Valdoz MS Teams message card fastlane plugin Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 22 switchmedia_xamarin_build via punksta Build xamarin android\\ios projects Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 22 unp via Xu Zhen \u6d4b\u8bd5 Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 22 binary via huanglei \u7528\u4e8e\u6253iOS\u4e8c\u8fdb\u5236\u5305 Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 22 my via lujun10446 Hello fastlane plugin demo Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 2 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 21 rocket via \u4e09\u5757 rocket \u652f\u6301app\u6253\u5305\u3001\u7ec4\u4ef6\u6253\u5305\u7b49\u529f\u80fd Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 21 aomi via lihaijian this is fastlane plugin for aomi Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 21 youtrack via Semen Kologrivov Use for communicating with YouTrack (fetching issue's info, adding comments and tags etc.) Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 21 opendir via majianjie open dir Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 21 upload_to_bugly via fisherman \u5feb\u901f\u4e0a\u4f20 .dSYM \u5230 bugly Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 21 android_unpack via yejinxin Fastlane Android Unpack Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 1 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 20 feishu_bot via cook A fastlane plugin to customize your automation workflow(s) with a Feishu Bot Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 0 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) 20 common_fastfile via Pawel Szymanski Gets the requested file, saves it into ./fastlane/imports and return the path Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license 20 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 0 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec) -10 clang_tools via squirrel-explorer A series of clang-based tools for CI/CD, including clang analyzer. Provided actions Name Category Description clang_analyzer - Analyze source codes with clang analyzer Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 3 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license -50 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 25 How well is the README of the document written age 7 Project that have been around for longer tend to be more stable major_release 0 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 5 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open on GitHub -12 retry_failed_tests via Gloria Chow Retries failed iOS tests Score details Metric Points Description contributors 0 The more contributors a project has, the more likely it is it stays alive subscribers 0 More subscribers = more popular project stars 0 More stars = more popular project forks 0 More forks = more people seem to use/modify this project has_mit_license -50 fastlane is MIT licensed, it's good to have plugins use MIT too readme_score 0 How well is the README of the document written age 0 Project that have been around for longer tend to be more stable major_release 30 Post 1.0 releases are great github_issues 0 Lots of open issues are not a good sign usually, unless the project is really popular downloads 8 More downloads = more users have been using the plugin for a while tests 0 The more tests a plugin has, the better Open website (no GitHub link provided in gemspec)","title":"Available Plugins"},{"location":"plugins/available-plugins/#available-plugins","text":"24830","title":"Available Plugins"},{"location":"plugins/create-plugin/","text":"Create your own fastlane plugin cd ~/new/folder/ fastlane new_plugin [plugin_name] fastlane creates the directory structure that's needed to be a valid Ruby gem Edit the lib/fastlane/plugin/[plugin_name]/actions/[plugin_name].rb and implement your action Easily test the plugin locally by running fastlane add_plugin in your project's directory and specifying the local path when asked for it New plugin for existing gem If you already have an existing gem you want to provide a fastlane plugin for, you'll still have to create a new Ruby gem. The reason for that is the way plugins are imported. The example project xcake contains a folder named fastlane-plugin-xcake . All you have to do if you have an existing gem: Navigate to your gem fastlane new_plugin [plugin_name] Inside the newly created folder, edit the fastlane-plugin-[plugin_name].gemspec and add your gem as a dependency. It is recommended to also specify a version number requirement Publishing your plugin RubyGems The recommended way to publish your plugin is to publish it on RubyGems.org . Follow the steps below to publish your plugin. Create an account at RubyGems.org Publish your plugin to a GitHub repo Update the fastlane-plugin-[plugin_name].gemspec file so that the spec.homepage points to your github repo. Publish the first release of your plugin: bundle install rake install rake release Now all your users can run fastlane add_plugin [plugin_name] to install and use your plugin. GitHub If for some reason you don't want to use RubyGems, you can also make your plugin available on GitHub. Your users then need to add the following to the Pluginfile gem \"fastlane-plugin-[plugin_name]\", git: \"https://github.com/[user]/[plugin_name]\" Advanced Multiple actions in one plugin Let's assume you work on a fastlane plugin for project management software. You could call it fastlane-plugin-pm and it may contain any number of actions and helpers, just add them to your actions folder. Make sure to mention the available actions in your plugin's README.md .","title":"Create Your Own Plugin"},{"location":"plugins/create-plugin/#create-your-own-fastlane-plugin","text":"cd ~/new/folder/ fastlane new_plugin [plugin_name] fastlane creates the directory structure that's needed to be a valid Ruby gem Edit the lib/fastlane/plugin/[plugin_name]/actions/[plugin_name].rb and implement your action Easily test the plugin locally by running fastlane add_plugin in your project's directory and specifying the local path when asked for it","title":"Create your own fastlane plugin"},{"location":"plugins/create-plugin/#new-plugin-for-existing-gem","text":"If you already have an existing gem you want to provide a fastlane plugin for, you'll still have to create a new Ruby gem. The reason for that is the way plugins are imported. The example project xcake contains a folder named fastlane-plugin-xcake . All you have to do if you have an existing gem: Navigate to your gem fastlane new_plugin [plugin_name] Inside the newly created folder, edit the fastlane-plugin-[plugin_name].gemspec and add your gem as a dependency. It is recommended to also specify a version number requirement","title":"New plugin for existing gem"},{"location":"plugins/create-plugin/#publishing-your-plugin","text":"","title":"Publishing your plugin"},{"location":"plugins/create-plugin/#advanced","text":"","title":"Advanced"},{"location":"plugins/plugins-troubleshooting/","text":"fastlane plugins troubleshooting If you're having trouble calling a plugin action, here is a simple guide on how to resolve the issue: Make sure fastlane is up to date Run fastlane -v and bundle exec fastlane -v and make sure it's at least version 1.93.0. Update your plugins Run fastlane update_plugins to make sure to have all the latest plugins and their dependencies installed. Use bundle exec Run fastlane using bundle exec fastlane [lane] to make sure your plugins are properly loaded. This is required when you use plugins from a local path or a git remote. Use the --verbose mode Running fastlane [lane] --verbose will show a lot more information that might be useful to resolve the issue. Make sure the action name is correct A plugin can contain any number of actions. Make sure to read the docs for the plugin itself! Additionally check out the source code of the plugin: lib/fastlane/plugin/[plugin_name]/actions/[action_name].rb Open the [action_name].rb file and make sure the name of the class on line 3 looks like this: class [ActionName]Action < Action Note how the name of the class should be capitalised and have Action appended in the name. Additionally this class must be a subclass of Action . Gemfile and Pluginfile Your Gemfile should look something like this: gem \"fastlane\" plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile') eval_gemfile(plugins_path) if File.exist?(plugins_path) Your Pluginfile should look something like this # Autogenerated by fastlane gem 'fastlane-plugin-ruby' Building your own plugin If you have issues with running your local plugins during plugin development, make sure to run bundle install --with development to install all required development dependencies More help If it's still not working for you, please submit a new GitHub issue with your Gemfile , Gemfile.lock , Pluginfile , Fastfile and terminal output when running fastlane using the --verbose flag.","title":"Plugins Troubleshooting"},{"location":"plugins/plugins-troubleshooting/#fastlane-plugins-troubleshooting","text":"If you're having trouble calling a plugin action, here is a simple guide on how to resolve the issue:","title":"fastlane plugins troubleshooting"},{"location":"plugins/using-plugins/","text":"fastlane Plugins The instructions below require fastlane 1.93.0 or higher fastlane is an open platform and we enable every developer to extend it to fit their needs. That's why we built a plugin system that allows you and your company to provide fastlane plugins to other fastlane users. You have the full power and responsibility of maintaining your plugin and keeping it up to date. This is useful if you maintain your own library or web service, and want to make sure the fastlane plugin is always up to date. Local actions (function () { var anchorMap = { \"local-actions\": \"/create-action/\" } var hash = window.location.hash.substring(1); if (hash) { if (anchorMap[hash]) { link = anchorMap[hash] + '#' + hash; window.location.replace(link); } } })(); This content was moved and now lives here . Find a plugin Head over to Available Plugins for a list of plugins you can use. List all available plugins using fastlane search_plugins To search for something specific fastlane search_plugins [query] Add a plugin to your project fastlane add_plugin [name] fastlane will assist you on setting up your project to start using plugins. This will: Add the plugin to fastlane/Pluginfile Make sure your fastlane/Pluginfile is properly referenced from your ./Gemfile Run fastlane install_plugins to make sure all required dependencies are installed on your local machine (this step might ask for your admin password to install Ruby gems) You'll have 3 new files, that should all be checked into version control: Gemfile , Gemfile.lock and fastlane/Pluginfile Plugin Source Your fastlane/Pluginfile contains the list of all fastlane plugins your project uses. The Pluginfile is a Gemfile that gets imported from your main Gemfile . You specify all dependencies, including the required version numbers: # Fetched from RubyGems.org gem \"fastlane-plugin-xcversion\" # Fetched from GitHub gem \"fastlane-plugin-xcversion\", git: \"https://github.com/fastlane/fastlane-plugin-xcversion\" gem \"fastlane-plugin-xcversion\", git: \"https://github.com/fastlane/fastlane-plugin-xcversion\", branch: \"xcode-14-support\" gem \"fastlane-plugin-xcversion\", git: \"https://github.com/fastlane/fastlane-plugin-xcversion\", tag: \"2.0.0\" # Fetched from a local directory gem \"fastlane-plugin-xcversion\", path: \"../fastlane-plugin-xcversion\" # Specify a version requirements gem \"fastlane-plugin-xcversion\", \"1.1.0\" gem \"fastlane-plugin-xcversion\", \">= 1.0\" More information about a Gemfile Run with plugins Run fastlane using bundle exec fastlane [lane] to make sure your plugins are properly loaded. This is required when you use plugins from a local path or a git remote. If you have multiple versions of the same plugin loaded, you may not be using the one you specified in your Pluginfile or Gemfile . Install plugins on another machine To make sure all plugins are installed on the local machine, run fastlane install_plugins Update all plugins To make sure all plugins are updated to the latest version, run fastlane update_plugins Remove a plugin Open your fastlane/Pluginfile and remove the line that looks like this gem \"fastlane-plugin-[plugin_name]\"","title":"Use Plugins"},{"location":"plugins/using-plugins/#fastlane-plugins","text":"The instructions below require fastlane 1.93.0 or higher fastlane is an open platform and we enable every developer to extend it to fit their needs. That's why we built a plugin system that allows you and your company to provide fastlane plugins to other fastlane users. You have the full power and responsibility of maintaining your plugin and keeping it up to date. This is useful if you maintain your own library or web service, and want to make sure the fastlane plugin is always up to date.","title":"fastlane Plugins"},{"location":"plugins/using-plugins/#local-actions","text":"(function () { var anchorMap = { \"local-actions\": \"/create-action/\" } var hash = window.location.hash.substring(1); if (hash) { if (anchorMap[hash]) { link = anchorMap[hash] + '#' + hash; window.location.replace(link); } } })(); This content was moved and now lives here .","title":"Local actions"},{"location":"plugins/using-plugins/#find-a-plugin","text":"Head over to Available Plugins for a list of plugins you can use. List all available plugins using fastlane search_plugins To search for something specific fastlane search_plugins [query]","title":"Find a plugin"},{"location":"plugins/using-plugins/#add-a-plugin-to-your-project","text":"fastlane add_plugin [name] fastlane will assist you on setting up your project to start using plugins. This will: Add the plugin to fastlane/Pluginfile Make sure your fastlane/Pluginfile is properly referenced from your ./Gemfile Run fastlane install_plugins to make sure all required dependencies are installed on your local machine (this step might ask for your admin password to install Ruby gems) You'll have 3 new files, that should all be checked into version control: Gemfile , Gemfile.lock and fastlane/Pluginfile","title":"Add a plugin to your project"},{"location":"plugins/using-plugins/#install-plugins-on-another-machine","text":"To make sure all plugins are installed on the local machine, run fastlane install_plugins","title":"Install plugins on another machine"},{"location":"plugins/using-plugins/#update-all-plugins","text":"To make sure all plugins are updated to the latest version, run fastlane update_plugins","title":"Update all plugins"},{"location":"plugins/using-plugins/#remove-a-plugin","text":"Open your fastlane/Pluginfile and remove the line that looks like this gem \"fastlane-plugin-[plugin_name]\"","title":"Remove a plugin"}]} \ No newline at end of file diff --git a/sitemap.xml.gz b/sitemap.xml.gz index 21dc12b5a2437d6a4c609fee95365bb933bc6906..88d9af7a286b0ddd8be8b44cd47b892f47de7372 100644 GIT binary patch delta 15 WcmX@WbbyIXzMF&N5YI+7D@Fh$DFg)o delta 15 WcmX@WbbyIXzMF$1k!vHH6(ay4*#n{g